传统的嵌入式集成电路应用级芯片常见的 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 SoC Family Product Selection Guide》
这款 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