傳統的嵌入式集成電路應用級芯片常見的 DSP,ARM,PowerPC,MIPS, FPGA 等,FPGA 有靈活性好,資源豐富,可反覆編程(Programmable)速度快(並行)的優勢。在以往的應用中,常有場景需要使用 ARM 作爲主控,通過 ARM 的外設並行 RAM 類總線外掛 FPGA ,使用 FPGA 來做高速的數據採集或者運算的架構,在通信,醫療電子等等行業,這都屢見不鮮;
傳統的嵌入式 SoC 硬件系統架構如下:
XILINX 作爲 FPGA (Field Programmable Gate Array)的領導者,率先將專用的中央處理器 CPU 硬核與 FPGA 集成於一顆芯片中,產生了一種全新的異構平臺,稱之爲全可編程片上系統(All Programmable SoC);這個全新平臺的誕生,對全球信
息技術的發展起到了巨大的推動作用。一方面,使得嵌入式系統的設計結構更加靈活,體積顯著縮小,可靠性和系統整體性能明顯提高;另一方面,使得FPGA可以進入到嵌入式系統應用領域,極大地擴展了 FPGA 的應用範圍。(Altera 也有類似產品);
其中的“處理系統”爲 PS,“可編程邏輯”爲 PL
PS 處理系統包含 ARM 的硬核,可以上 OS 並跑一些複雜的軟件應用,PL 端可以定製需要的運算或者外設,通過 AXI 總線與 PS 通信:
使用一顆 ZYNQ 來實現以前的 ARM 外掛 FPGA 的設計架構,即降低了總成本,同時可以改善性能,降低功耗,較少體積的同時,提升可靠性;
XILINX 的 ZYNQ 產品線按照不同的場景分了很多類:
從入門級的 ZYNQ-7000 SoC系列到高端的 ZYNQ UltraScale+RFSoC 系列;
不同系列包含的不同主要體現在兩方面:
1、包含的 ARM 處理器核心不一樣(CPU 核心數目以及 CPU 核心版本比如 Cortex-A9,Cortex-A53+Cortex-R)
2、包含的 FPGA 資源不一樣(資源多少以及 XILINX 的 Artix 器件系列和 Kintex系列差別)
這裏,我選擇了入門款的 ZYNQ-7000 系列來玩玩,具體的型號爲 XC72020,也就是 7020 這款;
具體的 ZYNQ-7000 選型列表參考:
這款 ZYNQ-7000 集成了 ARM Cortex-A9 雙核處理器(硬核)+ Artix 7 系列的 FPGA 特性
下面是 ZYNQ-7000 包含的資源:
可以看到7020 這款包含 Dual-Core ARM Cortex-A9 MPCore 以及豐富的外設,FPGA 方面列出了 LUTs 個數,FF 個數,BRAM,DSP Slices 的個數(沒有 PCIe 的 IP);
它的內部互聯結構如下:
兩顆 ARM Cortex-A9 核心帶 L1/L2 Cache,帶 MMU,FPU & NEON 引擎,內部片上存儲器 OCM(On Chip Memory),豐富的外設以及 GIC 中斷控制器;下端是 FPGA 部分,使用 AXI 總線通過 Interconnect 與 CPU 硬核以及外部部分組成互聯結構;
大致瞭解 ZYNQ-7000 的情況後,還需要更加深入的瞭解工作原理、機制、和相關的一些資料,這樣才能將其玩好;針對 ZYNQ-7000 系列的資料,最主要的有如下內容:
UG585, ZYNQ-7000 的 TRM 手冊,關鍵的關鍵
由於 ZYNQ 的 FPGA 是 XINLIX 7 系列的 FPGA,所以針對 FPGA 方面需要了解的還有:
• UG471, 7 Series FPGAs SelectIO Resources User Guide
• UG472, 7 Series FPGAs Clocking Resources User Guide
• UG473, 7 Series FPGAs Memory Resources User Guide
• UG474, 7 Series FPGAs Configurable Logic Block User Guide
• UG476, 7 Series FPGAs GTX Transceiver User Guide
• UG482, 7 Series FPGAs GTP Transceiver User Guide
• PG054, 7 Series FPGAs Integrated Block for PCI Express LogiCORE IP Product Guide
• UG479, 7 Series FPGAs DSP48E1 User Guide
• UG480, 7 Series FPGAs XADC User Guide
• UG821, Zynq-7000 SoC Software Developers Guide
關於 7 系列的 FPGA 的個別部分,之前的博客有所涉及,待今後具體使用到的時候在更加深入的分析;
更多的與 ZYNQ-7000 相關的資料,參考 XILINX 官方網站部分,後續還可能還會涉及到 VIVADO 相關的一些操作說明和 ZYNQ-7000 的 Linux(PetaLinux 工具)的部分,這些 XILINX 官方也有技術手冊,到時候涉及到的時候在分享;
官方的 Xilinx Zynq™-7000 的 Demo 單板叫 ZedBoard 有興趣的可以網上搜索一下,我是某寶上購得一塊 7020,以此學習研究 ZYNQ 異構;
官方文檔參考連接:https://china.xilinx.com/products/silicon-devices/soc/zynq-7000.html#documentation