ZYNQ进阶之PS-PL项目

ZYNQ进阶之初识PS-PL
看完这个datasheet才发现之前的工作是没有静下心去真正理解这些基础的FPGA 的基础知识的。
1.型号为正点原子领航者ZYNQ7010系列芯片开发板
2.ZYNQ7010为一款片上SOC,主要由PS+PL;
PS:两个ARM
PL:Xilinx7系列
两者间通过AXI接口通信
ZYNQ进阶之PS-PL项目_第1张图片
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由4个查找表,8个触发器和其他一些逻辑所组成的。
那问题来了,xilinx7 系列中有n个CLB呢?就有2
4*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与外设之间通过复用的MIO实现54个引脚;IO外设接口有:SPI,IIC,CAN,UART,USB,SD,GPIO,GigE以太网;
PS中可用的IO通信接口使用GPIO
<2>存储器接口:
包含一个动态存储器控制器和几个静态存储器控制器。动态用于DDR3,DDR2等。静态可用于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之间主要连接通过一组9个AXI接口,每个接口有多个通道组成。这些形成了PS内部的互联以及与PL的连接
ZYNQ进阶之PS-PL项目_第2张图片
ZYNQ进阶之PS-PL项目_第3张图片
ZYNQ进阶之PS-PL项目_第4张图片
ZYNQ进阶之PS-PL项目_第5张图片
由此可见,DDR全部都在PS 端,千兆网在PS端和PL端都有,
BANK34,BANK35为FPGA端的器件连接
BANK500,BANK501,BANK502为PS端的器件连接。DDR3内存也作为PS端处理器的运行内存。

对于相机类型的项目整个软件架构为:
PL端进行InGaAs探测器时序控制ADC时序控制采集数据,通过AXI接口DMA回环存到PS端DDR3中,通过PS端千兆网UDP
传输出来,中间可以在DDRA中进行相机的算法处理;

你可能感兴趣的:(fpga开发)