一、ZYNQ简介
1 ZYNQ簡介
(1)ZYNQ簡介
? ZYNQ全稱Zynq-7000 All Programmable SoC,是賽靈思公司(Xilinx)推出的新一代全可編程片上系統(tǒng)((APSoC)(全可編程指的是硬件和軟件都可以編程),ZYNQ 的本質(zhì)特征,是它組合了一個雙核 ARM Cortex-A9 處理器和一個傳統(tǒng)的現(xiàn)場可編程門陣列(FPGA)邏輯部件。它將處理器的軟件可編程性與FPGA的硬件可編程性進(jìn)行完美整合,以提供無與倫比的系統(tǒng)性能、靈活性與可擴展性。
? ZYNQ旨在為視頻監(jiān)控、汽車駕駛員輔助以及工廠自動化等高端嵌入式應(yīng)用提供所需的處理能力與計算性能。這款基于ARM處理器的SoC可滿足復(fù)雜嵌入式系統(tǒng)的高性能、低功耗和多核處理能力等要求。
(2)片上系統(tǒng),板上系統(tǒng),可編程片上系統(tǒng),全可編程上系統(tǒng)
1.板上系統(tǒng)
? 一個能夠?qū)崿F(xiàn)一定功能的電路系統(tǒng)由多個模塊構(gòu)成,如處理器、接口、存儲器、模數(shù)轉(zhuǎn)換器等等。這些功能模塊可以由分立的器件來實現(xiàn),然后在印刷電路板(PCB)上組合起來,最終形成板上系統(tǒng)(System-on-a-Board)。
在上圖所示的板上系統(tǒng)中,綠色的矩形代表印刷電路板(PCB),上面各種顏色的小矩形代表了系統(tǒng)中各個功能模塊,如存儲器等。這些模塊的功能都由一個個獨立的硅芯片分別實現(xiàn)的,它們之間通過 PCB 上 的金屬走線連接,最終構(gòu)成一個完整的系統(tǒng)。
2.片上系統(tǒng)(SOC)
? 而**片上系統(tǒng)(System-on-Chip)**指的是在單個硅芯片就可以實現(xiàn)整個系統(tǒng)的功能。
? 如上圖所示,片上系統(tǒng) SoC 在一個芯片里就實現(xiàn)了存儲、處理、邏輯和接口等各個功能模塊,而不是像板上系統(tǒng)那樣,需要用幾個不同的物理芯片來實現(xiàn)。與板上系統(tǒng)相比,SoC 的解決方案成本更低,能在不同的系統(tǒng)單元之間實現(xiàn)更快更安全的數(shù)據(jù)傳輸,具有更高的整體系統(tǒng)速度、更低的功耗、更小的物理尺寸和更好的可靠性。
? 在過去,SoC 這個術(shù)語常用于指專用集成電路(Application Specific Integrated Circuit,ASIC)?;?ASIC的 SoC 的代表性例子包括在 PC、平板和智能手機上使用的處理器,如華為旗艦手機中的麒麟系列芯片。這些處理器典型地是由至少兩個處理器核、存儲器、圖形處理器、接口和其他功能模塊組合起來的?;?ASIC的 SoC 的主要缺點有兩個:1、開發(fā)周期長且成本巨大;2、缺乏靈活性。開發(fā) ASIC 時不可重用的工程投入是巨大的,使得這種 SoC 類型只適合于大批量而且壽命有限的產(chǎn)品中。ASIC SoC 的局限性導(dǎo)致它們不適用于很多應(yīng)用,特別是當(dāng)快速投入市場能力、靈活性和升級能力已經(jīng)成為重要的關(guān)鍵因素。對于小批量或中批量的產(chǎn)品,ASIC SoC 也不是好的解決方案。
3.可編程片上系統(tǒng)(SOPC)
? 可編程片上系統(tǒng)(SOPC,System-on-Progammable-Chip)為上述應(yīng)用提供了一個更靈活的解決方案:一種在可編程、可重新配置的芯片上實現(xiàn)的 SoC。其中,可編程的芯片指的就是 FPGA。FPGA 天生的靈活性使其可以被隨心所欲地重新配置,以實現(xiàn)不同系統(tǒng)的功能,包括嵌入式處理器。和使用 ASIC 來實現(xiàn) SoC相比,FPGA 能構(gòu)成更為基礎(chǔ)靈活的平臺,方便系統(tǒng)的升級。
4.全可編程上系統(tǒng)(APSoC)
? **全可編程上系統(tǒng)(APSoC,All-Programmable SoC)**將處理器的軟件可編程性與 FPGA 的硬件可編程性進(jìn)行完美整合,以提供無與倫比的系統(tǒng)性能、靈活性與可擴展性。ZYNQ 是由兩個主要部分組成的:一個由雙核 ARM Cortex-A9 為核心構(gòu)成的處理系統(tǒng)(PS Processing System),和一個等價于一片 FPGA 的可編程邏輯(PL,Programmable Logic)部分。ZYNQ 架構(gòu)的簡化模型如下圖所示:
? 在上圖中,PS 具有固定的架構(gòu),包含了處理器和系統(tǒng)的存儲器;而 PL 完全是靈活的,給了設(shè)計者一塊“空白畫布”來創(chuàng)建定制的外設(shè)。在 ZYNQ 上,ARM Cortex-A9 是一個應(yīng)用級的處理器,能運行像 Linux 這樣的操作系統(tǒng),而可編程邏輯是基于 Xilinx 7 系列的 FPGA 架構(gòu)。ZYNQ 架構(gòu)實現(xiàn)了工業(yè)標(biāo)準(zhǔn)的 AXI 接口,在芯片的兩個部分之間實現(xiàn)了高帶寬、低延遲的連接。這意味著處理器和邏輯部分各自都可以發(fā)揮最佳的用途,而不會產(chǎn)生在兩個分立器件之間的接口開銷。與此同時,又能獲得系統(tǒng)被簡化為單一芯片所帶來的好處,包括物理尺寸和整體成本的降低。
(3)PL簡介
1.早期生產(chǎn)的數(shù)字集成電路邏輯功能都是固定不變的。要想改變它的邏輯功能,就必須改變內(nèi)部各單元電路之間的連接,而這種連接在集成電路制作過程中已經(jīng)固定下來了。
2.允許用戶自行修改內(nèi)部連接的集成電路:可編程邏輯器件(Programmable Logic Device)–就是ZYNQ的FPGA部分
1、PLD內(nèi)部的電路結(jié)構(gòu)可以通過寫入編程數(shù)據(jù)來設(shè)置;
2、寫入PLD的編程數(shù)據(jù)還可以擦除重寫;
PLD的邏輯功能可以由使用者通過編程來設(shè)定。
3.常用的可編程邏輯器件:
CPLD:復(fù)雜可編程邏輯器件(Complex Programmable Logic Device)
FPGA:現(xiàn)場可編程門陣列(Field Programmable Gate Array)
本質(zhì)差異:電路結(jié)構(gòu)不同。
CPLD:基于“乘積項”的與或邏輯陣列
FPGA:基于“查找表”(LUT,Look UP Table)的CLB陣列
簡化的 FPGA 基本結(jié)構(gòu)由 6 部分組成,分別為可編程輸入/輸出單元、基本可編程邏輯單元、嵌入式塊RAM、豐富的布線資源、底層嵌入功能單元和內(nèi)嵌專用硬核等,如下圖所示:
PL的接口部分基本是FPGA的部分,不再描述。
(4)PS簡介
ZYNQ 實際上是一個以處理器為核心的系統(tǒng),PL 只是它的一個外設(shè)。Zynq-7000 系列的亮點在于它包含了完整的 ARM 處理器系統(tǒng),且處理器系統(tǒng)中集成了內(nèi)存控制器和大量的外設(shè),使 Cortex-A9 處理器可以完全獨立于可編程邏輯單元。而且實際上在 ZYNQ 中,PL 和 PS 兩部分的供電電路是獨立的,這樣 PS 或 PL 部分不被使用的話就可以被斷電。
FPGA 可以用來搭建嵌入式處理器,像 Xilinx 的 MicroBlaze 處理器或者 Altera 的 Nios II 處理器。像這種使用 FPGA 的可編程邏輯資源搭建的處理器我們稱之為“軟核”處理器,它的優(yōu)勢在于處理器的數(shù)量以及實現(xiàn)方式的靈活性。而 ZYNQ 中集成的是一顆“硬核”處理器,它是硅芯片上專用且經(jīng)過優(yōu)化的硬件電路,硬核處理器的優(yōu)勢是它可以獲得相對較高的性能。另外,ZYNQ 中的硬件處理器和軟核處理器并不沖突,我們完全可以使用 PL 的邏輯資源搭建一個 Microblaze 軟核處理器,來和 ARM 硬核處理器協(xié)同工作。需要注意的是,Zynq 處理器系統(tǒng)里并非只有 ARM 處理器,還有一組相關(guān)的處理資源,形成了一個應(yīng)用處理器單元(Application Processing Unit,APU),另外還有擴展外設(shè)接口、cache 存儲器、存儲器接口、互聯(lián)接口和時鐘發(fā)生電路等。
ZYNQ 處理器系統(tǒng)(PS)示意圖如下所示,其中紅色高亮區(qū)域為 APU。
1.APU
? 如上圖所示是 APU 的簡化框圖。APU 主要是由兩個 ARM 處理器核組成的,每個都關(guān)聯(lián)了一些可計算的單元:一個 NEONTM 媒體處理引擎(Media Processing Engine,MPE)和浮點單元(Floating Point Unit,FPU);一個內(nèi)存管理單元(Memory Management Unit,MMU);和一個一級 cache 存儲器(分為指令和數(shù)據(jù)兩個部分)。APU 里還有一個二級 cache 存儲器,再往下還有片上存儲器(On Chip Memory,OCM),這些是兩個 ARM 處理器共用的。最后,由一個一致性控制單元(Snoop Control Unit,SCU)在 ARM 核和二級 cache 及 OCM 存儲器之間形成了橋連接。SCU 還部分負(fù)責(zé)與 PL 對接,圖中沒有標(biāo)出這個接口。
2).外部接口
? 如圖 1.4.1 所示,Zynq PS 實現(xiàn)了眾多接口,既有 PS 和 PL 之間的,也有 PS 和外部部件之間的。PS 和外部接口之間的通信主要是通過復(fù)用的輸入/輸出(Multiplexed Input/Output,MIO)實現(xiàn)的,它提供了可以靈活配置的 54 個引腳,這表明外部設(shè)備和引腳之間的映射是可以按需定義的。當(dāng)需要擴展超過 54 個引腳的時候可以通過擴展 MIO(Extended MIO,EMIO)來實現(xiàn),EMIO 并不是 PS 和外部連接之間的直接通路,而是通過共用了 PL 的 I/O 資源來實現(xiàn)的。PS 中可用的 I/O 包括標(biāo)準(zhǔn)通信接口和通用輸入/輸出(General Purpose Input/Output,GPIO),GPIO 可以用做各種用途,包括簡單的按鈕、開關(guān)和 LED。如下圖所示:
3.存儲器接口
? Zynq-7000 APSoC 上的存儲器接口單元包括一個動態(tài)存儲器控制器和幾個靜態(tài)存儲器接口模塊。動態(tài)存儲器控制器可以用于 DDR3、DDR3L、DDR2 或 LPDDR2。靜態(tài)存儲器控制器支持一個 NAND 閃存接口、一個 Quad-SPI 閃存接口、一個并行數(shù)據(jù)總線和并行 NOR 閃存接口。
4. 片上存儲器
? 片上存儲器包括 256kB 的 RAM(OCM)和 128kB 的 ROM(BootROM)。OCM 支持兩個 64 位 AXI 從機接口端口,一個端口專用于通過 APU SCU 的 CPU/ACP 訪問,而另一個是由 PS 和 PL 內(nèi)其他所有的總線主機所共享的。BootROM 是 ZYNQ 芯片上的一塊非易失性存儲器,它包含了 ZYNQ 所支持的配置器件的驅(qū)動。BootROM 對于用戶是不可見的,專門保留且只用于引導(dǎo)的過程。
5.AXI 接口
? ZYNQ 將高性能 ARM Cotex-A 系列處理器與高性能 FPGA 在單芯片內(nèi)緊密結(jié)合,為設(shè)計帶來了如減小體積和功耗、降低設(shè)計風(fēng)險,增加設(shè)計靈活性等諸多優(yōu)點。在將不同工藝特征的處理器與 FPGA 融合在一個芯片上之后,片內(nèi)處理器與 FPGA 之間的互聯(lián)通路就成了 ZYNQ 芯片設(shè)計的重中之重。如果 Cotex-A9 與FPGA 之間的數(shù)據(jù)交互成為瓶頸,那么處理器與 FPGA 結(jié)合的性能優(yōu)勢就不能發(fā)揮出來。Xilinx 從 Spartan-6 和 Virtex-6 系列開始使用 AXI 協(xié)議來連接 IP 核。在 7 系列和 ZYNQ-7000 AP SoC 器件中,Xilinx 在 IP 核中繼續(xù)使用 AXI 協(xié)議。AXI 的英文全稱是 Advanced eXtensible Interface,即高級可擴展接口,它是 ARM 公司所提出的 AMBA(Advanced Microcontroller Bus Architecture)協(xié)議的一部分。AXI 協(xié)議是一種高性能、高帶寬、低延遲的片內(nèi)總線
總結(jié)
- 上一篇: 高通骁龙wear4100怎么样 相当于骁
- 下一篇: 新鲜出炉的软件测试面试题