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