Zynq7000系列是基於APSOC的可拓展處理平台,它的本質特征是將一個雙核ARM Cortex-A9處理器和一個可編程的FPGA芯片集成到一個片上系統中。在進行Zynq7000的詳細說明前,本節首先對架構的高層模型進行介紹,如圖2-1所示。
通常將ARM處理器和各種存儲外設資源稱為處理系統(Processor System,PS),.將FPGA部分稱為可編程邏輯(Programmable Logic,PL)。ARM Cortex-A9是一個應用級處理器,支持類似Linux操作系統的運行。FPGA采用的Xilinx7架構實現了工業標准的AXI接口,該接口在ARM和FPGA之間形成高效耦合,減少了分立芯片產生的額外功耗,不僅實現了高帶寬、低延遲的連接,同時帶來了物理尺寸和生產成本的降低.
值得一提的是,Zynq7000的PL部分可以配置一個軟處理器MicroBlaze。Micro-Blaze是由可編程邏輯部分的單元組合而成[19],也就是一個MicroBlaze的實現和部署與FPGA中一個普通IP核是等價的。軟處理器可以和ARM協同工作,負責協調特定底層功能和系統之間的配合,將一些要求不高的任務從ARM Cortex-A9處理器上脫離出來,提升系統的性能。
Zynq7000的PL部分用來實現高速邏輯運算和並行數據流處理的子系統是非常理想的,PS部分支持軟件控制或者操作系統。這意味着基於此平台,大多數系統的設計都可以根據功能進行軟件和硬件的划分,使得PS和PL都可以發揮各自的優勢,從而讓整個系統呈現出最佳性能。Zynq7000片上系統的內部架構如圖2-2所示
PS部分的資源主要包括[14][16][20]:
(1)應用處理單元(APU):雙核ARM Cortex-A9處理器,最高工作頻率可達1GHz。兩核中任意一核均包含一個一級cache(分為數據和指令兩個部分,每個都是32KB)、一個內存管理單元(MMU,在虛擬地址和物理地址之間做翻譯)。另外,兩個核共用了一個512KB 的二級cache來存放指令和數據。其他的系統資源還包括NEONTM媒體處理引擎和浮點單元(FPU)、片上存儲器(OCM)、一致性控制單元(SCU)、中斷控制器等。其中SCU在ARM核和二級cache及OCM存儲器之間形成了橋連接,還部分負責與PL對接。
(2)AXI接口,Zynq里的PS和PL部分之間的主要連接形式是AXI接口,下文會做詳細闡述。
(3)存儲器接口,支持16位/32位寬的DDR3、DDR2以及四線SPI控制器等。
(4)I/O外設接口,包括復用輸入/輸出引腳(MIO)、擴展MIO(EMIO,通過共用PL的I/O資源實現)、標准通信接口和通用輸入/輸出引腳(GPIO)。此外,還有以太網控制器(支持10Mbps、100Mbps和1Gbps模式)、USB控制器、SD/SDIO控制器、基於4線的SPI控制器、CAN控制器、UART控制器和I2C控制器等。
PL部分的資源主要包括[21-23]:
(1)通用FPGA邏輯部分。主要包括邏輯片和可配置邏輯塊,另外還有用於接口的輸入/輸出塊。FPGA邏輯部分及其組成單元如圖2-3所示。
(2)XADC塊。這是一個專用的模擬-數字轉換器(Analogue to Digital Converter,ADC)混合信號硬件,具有兩個獨立的12位ADC,每個可以以1Msps的采樣頻率對外部輸入的模擬信號進行采樣。對XADC的控制是用位於PS內的PS-XADC接口控制塊實現的,而且PS-XADC控制塊本身可以由APU進行編程控制。
(3)時鍾:PL接收來自PS的四個獨立的時鍾輸入,另外還能產生和分發它自己的與PS無關的時鍾信號。這個獨立的PL資源與7系列FPGA里的是等價的。