zynq中的逻辑部分是基于Artix7和Kintex7的fpga组件。

逻辑部分

notion image
  • 可配置逻辑块(CLB)—— CLB是逻辑单元的小规模、普通编组,在PL中排列为一个二维阵列,通过可编程互联连接到其他类似的资源。每个CLB内都含有两个逻辑片,并紧邻一个开关矩阵。
  • 片(Slice)—— CLB里的子单元,里面有实现组合和时序逻辑电路的资源。
notion image
  • 查找表(Lookup Table,LUT)—— 一个灵活的资源,可以实现
      1. 至多6个输入的逻辑函数
      1. 一小片只读存储器(ROM)
      1. 一小片随机访问存储器(RAM)
      1. 一个移位寄存器
      LUT可以按需组合形成一个更大的逻辑函数、存储器或移位寄存器。
  • 触发器(Flip-flop,FF)—— 一个实现一位寄存的时序电路,带有复位功能。其中一个用处是实现锁存。
  • 开关矩阵(Switch Matrix)—— 每个CLB旁边都有一个开关矩阵,实现灵活的布线功能来连接CLB内的单元,或把CLB与PL内的其他资源连接起来。
  • 进位逻辑(Carry Logic)—— 算术电路需要在相邻的片之间传递信号,这就是通过进位逻辑来实现的。
  • 输入/输出块(IOB)—— IOB实现了PL逻辑资源之间的对接,并提供物理设备“焊盘”来连接外部电路。每个IOB可以处理一位的输入或输出信号,IOB一般位于芯片的周边。

特殊资源:DSP48E1和BRAM

这两个资源都按列排列集成在逻辑阵列中,嵌入在逻辑部分中,而且彼此靠近,原因是密集计算和给内存中存储数据往往是紧密联系的运算。
notion image

BRAM

zynq-7000的BRAM和其他Xilinx 7系列FPGA里的BRAM是相同的,都可以实现RAM、ROM、FIFO,同时还支持纠错编码。
每个BRAM里最多可以存储36KB的信息,可以被配置为一个36KB的RAM或者两个独立的18KB的RAM。还可以被“重塑”来包含更多的更小的单元,或者组合起来组成更大容量大RAM。
使用BRAM意味着能在芯片内部优化的专用存储单元内,用很小的物理空间存储大量的数据。另一种方法是分布式RAM(Distributed RAM),DRAM是用逻辑部分里的LUT来搭建的,想要构成和BRAM大小相当的的存储器,需要用到大量的LUT,而且实现的结果还受到剧增的逻辑和布线延迟所造成的时序性能受限的影响。另一方面,用DRAM实现小存储器是有优势的,这样资源利用率高,并且布局更灵活。BRAM往往能工作在芯片支持的最高时钟频率下。

DSP48E1

逻辑部分的LUT可以用来实现任意长度的算术运算,但由于长字长的算术电路会在逻辑片内占据较大的空间,这样的布局和布线会导致时钟频率是次优的,因此最好拿LUT做短字长的运算。
DSP48E1是专门用于实现对长字长信号的高速算术运算的逻辑片,是专用的硅片资源,并且在逻辑单元内部包含了预加法器/减法器、乘法器和后加法器/减法器。
notion image
后加法器还可以用作逻辑单元,此时它可以做逻辑运算,支持所有的基础布尔运算。
如果需要更大字长的运算,可以将多个DSP组合起来做扩展。

通用输入/输出

zynq上的通用输入/输出功能合起来被成为SelectIO资源,它们被组成50个IOB一组,每个IOB都有一个焊盘,与外部世界连接。
I/O组分为高性能(High Preformance,HP)或高范围(High Range,HR)。HP接口的电压最高为1.8V,通常用作连接存储器和其他芯片的高速接口;HR接口允许3.3V的电压,适合做各种IO标准的连接。两种接口都支持单端和差分信号。
每个IOB还包含一个IOSERDES资源,可以做并行和串行的可编程转换,数据位宽是2~8位。

通信接口

zynq内部含有嵌入在逻辑部分里的GTX收发器和高速通信接口块。

其他可编程逻辑扩展接口

  • ADC—— XADC,具有两个独立的12位ADC,每个采样率为1Msps。
  • 时钟—— PL接收来自PS的四个独立的时钟输入,另外还能产生和分发它自己的与PS无关的时钟。
  • JTAG调试接口

PS与PL之间的接口

如前所述,Zynq 的表现不仅仅依赖于它的两个组成部分 PS 和 PL 的特性,还在于能把两者协同起来形成完整、集成的系统的能力。这其中起关键作用的,是一组高度定制的 AXI 互联和接口用来在两个部分之间形成桥梁。另外,在 PS 和 PL 之间还有一些其他类型的连接,特别是 EMIO。

AXI

高级可扩展接口(Advanced eXtensible Interface)。当前版本为第四代AXI4 。

AXI4

用于存储映射连接,支持最高的性能,通过一簇高达256个数据字的传输来给定一个地址。

AXI4-Lite

简化的连接,只支持每次传输一个数据。AXI4Lite也是存储映射的,每次传输一个地址和单个数据。

AXI4-Stream

用于高速流式数据,支持批量传输无线大小的数据。没有地址机制,适合源与目的之间的直接数据流。

EMIO接口

EMIO涉及两个域之间的传输,是由一组简单的导线连接实现的。
notion image