ZYNQ进阶之初识PS-PL 看完这个datasheet我发现以前的工作并没有冷静下来,真正理解这些基础FPGA 基础知识。 1.型号为正原子领航者ZYNQ7010系列芯片开发板 2.ZYNQ7010为一款片上SOC,主要由PS PL; PS:两个ARM PL:Xilinx7系列 两者间通过AXI接口通信 3.一个FPGA什么是芯片? 1)IO芯片与外部电路的接口电路,如串口,USB,网口,DDR最快的数据传输接口DDR可达到2Gb/s 2)可编程逻辑单元 FPGA可编程的原因是可编程逻辑单元 基于SRAM工艺,(掉电丢失),搜索表和寄存器组成; Xilinx 7 系列FPGA内部搜索表为6输入,搜索表可视为6位地址线641RAM;在原理图中FPGA引脚输入,通过寄存器赋值对应的搜索表,实现纯组合逻辑功能。FPGA同步时序逻辑设计依靠寄存器完成。两个厂家,Altera 成为可编辑逻辑单元LE,由寄存器和搜索表组成;Altera大多数的FPGA将10个LE有机组合形成更大的功能单元-逻辑阵列模块(LAB),LAB中除了LE还包含LE进位链之间,LAB控制信号,局部互联线资源,LUT连接和控制资源,如级联链、寄存器级联链等。 对于xilinx 7 系列FPGA 可编程逻辑单元叫CLB(可配置逻辑块)CLB包含两个SLice。每个slice由四个搜索表、八个触发器和其他逻辑组成。 问题来了,xilinx7 有n个系列CLB呢?就有24*n个查找表; 3)嵌入式块RAM 目前大多数FPGA都有嵌入式块RAM,制造商的规格也不同 Lattice常用的块RAM:9KBIT Altera的块RAM灵活:由三种M512RAM,M4K RAM,M9K RAM; Xilinx 7系列块RAM是等同的,RAM,ROM,FIFO,最多可以存储36KB; 最大配置36KB的RAM,位宽18bit,则最大每个RAM它含有2048个存储单元。自然也可以配置8bit,16bit,有更多的存储单元;只要不超过36KB即可; 当数据量比较大时,可以配置多个RAM乒乓操作, 如果数量更大,可以参考DDR芯片; 除了块RAM,还有分布式RAM,含义在于将LUT配置成RAM,ROM,FIFO等待存储结构!!!终于明白了添加存储器时有分布式。 4)布线资源丰富 连接布线资源FPGA影响驱动能力和传输速度的所有内部单元能力和传输速度; 分为4类 <1>.全局布线资源:芯片内全局时钟及全局复位/位置布线; <2>长期资源:用于芯片完成后Bank第二全局时钟信号之间的高速信号和布线 <3> 短期资源:用于完成基本逻辑单元之间的逻辑互联和布线 <4> 专有时钟复位控制信号线的分布式布线资源 5)底层嵌入功能单元: 指一般程度较高的嵌入式功能模块,如(PLL,DLL,DSP,CPU等),一般使用DLL和PLL用于完成时钟的高精度。 6)嵌入专用硬核: 通用性弱,在ZYNQ的PL数模混合模块端–XADC,包括两个模数转换器(ADC),模拟多路复用器、片上温度和片上电压传感器;该模块可用于检测芯片的温度和电源电压。
ZYNQ—PS zynq7010芯片的重点是包含整个芯片ARM内存控制器和大量外设集成在处理器系统中cortex-A9处理器可以完全独立于可编程逻辑单元。 并且PL和PS电路相互独立,可直接断电。 zynq7010处理器系统 1)两个ARM处理器, 2)还有一组处理资源,媒体处理引擎(MPE)和浮点单元(FPU), 3)内存管理单位(MMU)和一个一级cache存储器(包括指令和数据)两部分 4)二级存储单元cache,片上存储器(OCM)这两个是两个ARM公用的 5)一个一致性控制单元(SCU)再ARM核和二级cache以及OCM,星星之间的桥连接,SCU还负责部分和PL对接; 6)还有扩展外设接口,cache内存、存储接口、互联接口、时钟过电路等。 <1>外部接口: PS与外设重用MIO54个引脚;IO外部接口有:SPI,IIC,CAN,UART,USB,SD,GPIO,GigE以太网; PS中可用的IO使用通信接口GPIO <2>存储器接口: 它包括一个动态存储器控制器和几个静态存储器控制器。动态用于DDR3,DDR等等。静态可用于NAND内存接口、闪存接口、并行数据总线和并行数据总线NOR闪存接口; <3>片上存储器 256KB的RAM(OCM),和128KB的bootROM。OCM支持两个64bit的AXI从机接口端口,专用APU SCU的CPU/ACP访问,一个由PS 和PL所有其他总线主机共享。boorrom用户看不见。 因此PL只能存储上述数据OCM中,并通过AXI总线进行与PS之间通信; <4>AXI接口 用于PL与PS数据交互接口协议 AXI:先进的可扩展接口,是存储映射,无论主机是否发出,都会标明地址,支持突发传输。PS与PL主要连接通过一组9AXI每个接口由多个通道组成。这些形成PS内部互联和和和PL的连接 由此可见,DDR全部都在PS 端,千兆网在PS端和PL端都有, BANK34,BANK35为FPGA端器件连接 BANK500,BANK501,BANK502为PS端器件连接。DDR3内存也作为PS端处理器的运行内存。
相机类项目的整个软件架构如下: PL端进行InGaAs探测器时序控制ADC通过时序控制采集数据,AXI接口DMA回环存到PS端DDR3中,通过PS端千兆网UDP 中间可以传输DDRA相机算法处理;