很多人做了很久的FPGA,知道怎么去给信号分配引脚,却对这些引脚的功能及其资源限制知之甚少;在第一章里对Zynq7000系列的系统框架进行了分析和论述,对Zynq7000系列的基本资源和概念有了大致的认识,然而要很好地进行硬件设计,还必须了解芯片的引脚特性,以确定其是否符合我们的选型要求,这些要求包括GTX引脚数目、select IO引脚数目、select IO引脚的资源配置情况、PS IO的数目及类型等。
1. Zynq7000系列引脚分类
Zynq7000系列引脚的分类是确定的,而各类引脚的数目则因芯片封装的不同而不同,(为了便于理解,本文所列引脚数目皆以XQ7Z045 FFG900封装为例,文章其他部分不再做出说明)其主要类型如下:
| 
 
 FFG900 | 引脚分类 | 引脚个数 | 备注 | 
| PS IO | 128 | ARM处理系统的专用引脚 | |
| Select IO | 362 | 普通的FPGA引脚 | |
| Configuration Pins In Bank 0 | 17 | Jtag类的一些引脚 | |
| GTX Pins | 16X4(16个通道,每通道两对差分引脚) | 高速串行收发引脚 | |
| XADC Pins | 32 | 模数转换引脚 | 
1.1. Configuration Pins In Bank 0
| Pin Name | Type | Direction | Description | 
| DONE_0 | Dedicated | Bidirectional | 高有效,高代表配置完成 | 
| INIT_B_0 | Dedicated | Bidirectional | 低有效,表示配置存储器正在初始化 | 
| PROGRAM_B_0 | Dedicated | Input | 低有效,表示异步复位配置逻辑 | 
| TCK_0 | Dedicated | Input | Jtag时钟信号 | 
| TDI_0 | Dedicated | Input | Jtag数据输入 | 
| TDO_0 | Dedicated | Output | Jtag数据输出 | 
| TMS_0 | Dedicated | Input | Jtag模式选择 | 
| CFGBVS_0 | Dedicated | Input | 为bank0的配置引脚预选择电平标准,1表示bank0的供电电压为2.5或3.3;0表示bank0的供电电压为1.8 | 
| PUDC_B | Multi-function | Input | 上拉电阻配置引脚,配置Select IO在配置阶段或上电后的其上拉电阻是否使能。当接GND,表示不使能;接VCCO_34表示使能。 | 
1.2. Power/Ground Pins
| Pin Name | Type | Direction | Description | 
| GND | Dedicated | N/A | 地 | 
| VCCPINT | Dedicated | N/A | 1.0V,PS的供电电压 | 
| VCCUPAUX | Dedicated | N/A | 1.8V,PS的辅助电源 | 
| VCCO_MIO0 | Dedicated | N/A | 1.8—3.3,bank500中MIO的供电电压 | 
| VCCO_MIO0 | Dedicated | N/A | 1.8—3.3,bank501中MIO的供电电压 | 
| VCCO_DDR | Dedicated | N/A | 1.2V–1.8V,DDR的供电电压 | 
| VCC_PLL | Dedicated | N/A | 1.8V,PS的PLL供电电压,在它附近必须放置0.47uf—4.7uf的电容 | 
| VCCAUX | Dedicated | N/A | 1.8V,辅助电路供电电压 | 
| VCCAUX_IO_G# | Dedicated | N/A | 1.8或2.0V,辅助IO电路的供电电压 | 
| VCCINT | Dedicated | N/A | 内核逻辑的供电电压 | 
| VCCO_# | Dedicated | N/A | 每个bank的输出驱动电压 | 
| VCCBRAM | Dedicated | N/A | 1.0V,PL部分BLOCK RAM的供电电压 | 
| VCCBATT_0 | Dedicated | N/A | 关键存储器备用电源,若不使用,则接地 | 
| VREF | Multi-function | 
 | 门限电压 | 
| RSVDVCC[3:1] | Dedicated | N/A | 保留引脚,必须接到VCCO_0 | 
| RSVDGND | Dedicated | N/A | 保留引脚,必须接地 | 
1.3. PS IO Pins
| Pin Name | Type | Direction | Description | 
| PS_POR_B | Dedicated | input | 上电复位引脚,必须保持低电平直到PS供电和CLK正常,当它为高后,PS开始自举(Boot) | 
| PS_CLK | Dedicated | Input | 系统时钟,必须在区间[30M,60M] | 
| PS_SRST_B | Dedicated | Input | 系统复位,0时强制PS进入复位状态 | 
| PS_MIO_VREF | Dedicated | 电压参考值 | 提供给RGMII的接收参考电压,其值等于1/2VCCO_MIO1 | 
| PS_MIO[53:0] | Multi-function | Input/Output | PS的多功能引脚,可被配置成SPI , Quad-SPI flash, NAND, USB, Ethernet, SDIO, UART, SPI, GPIO 接口 | 
| PS DDR Pins | |||
| PS_DDR_CKP | Dedicated | Output | DDR差分时钟+ | 
| PS_DDR_CKN | Dedicated | Output | DDR差分时钟- | 
| PS_DDR_CKE | Dedicated | Output | DDR时钟允许 | 
| PS_DDR_CS_B | Dedicated | Output | DDR片选 | 
| PS_DDR_RAS_B | Dedicated | Output | DDR行有效信号 | 
| PS_DDR_CAS_B | Dedicated | Output | DDR列有效信号 | 
| PS_DDR_WE_B | Dedicated | Output | DDR写使能 | 
| PS_DDR_BA[2:0] | Dedicated | Output | DDR块地址 | 
| PS_DDR_A[14:0] | Dedicated | Output | DDR行或列地址 | 
| PS_DDR_ODT | Dedicated | Output | DDR终端控制引脚 | 
| PS_DDR_DRST_B | Dedicated | Output | DDR复位引脚 | 
| PS_DDR_DQ[31:0] | Dedicated | Input/Output | DDR数据线 | 
| PS_DDR_DM[3:0] | Dedicated | Output | DDR数据屏蔽信号 | 
| PS_DDR_DQS_P[3:0] | Dedicated | Input/Output | DDR数据选通信号+ | 
| PS_DDR_DQS_N[3:0] | Dedicated | Input/Output | DDR数据选通信号- | 
| PS_DDR_VRP | Dedicated | Output | DCI参考电压+,用来校准DDR的IO驱动强度,连接电阻后接地 | 
| PS_DDR_VRN | Dedicated | Output | DCI参考电压-,用来校准DDR的IO驱动强度,连接电阻后接VCCO_DDR | 
| PS_DDR_VREF[1:0] | Dedicated | Voltage Reference | DDR接口的参考电压 | 
1.4. XADC Pins
| Pin Name | Type | Direction | Description | 
| VCCADC_0 | Dedicated | N/A | XADC模拟电路电源 | 
| GNDADC_0 | Dedicated | N/A | 模拟电路参考地 | 
| VP_0 | Dedicated | Input | 模拟差分输入正极 | 
| VN_0 | Dedicated | Input | 模拟差分输入负极 | 
| VREFP_0 | Dedicated | N/A | 1.2V参考电压 | 
| VREFN_0 | Dedicated | N/A | 参考地 | 
| AD0P through AD15P AD0N through AD15N | Multi-function | Input | 模拟输入端0--15 | 
1.5. Multi-gigabit Serial Transceiver Pins (GTXE2 and GTPE2)
| Pin Name | Type | Direction | Description | 
| MGTXRXP[0:3] or MGTPRXP[0:3] | Dedicated | Input | 差分接收端正极 | 
| MGTXRXN[0:3] or MGTPRXN[0:3] | Dedicated | Input | 差分接收端负极 | 
| MGTXTXP[0:3] or MGTPTXP[0:3] | Dedicated | Output | 差分发送端正极 | 
| MGTXTXN[0:3] or MGTPTXN[0:3] | Dedicated | Output | 差分发送端负极 | 
| MGTAVCC_G# | Dedicated | Input | 1.0V发送器和接收器的内部电路模拟供电电压 | 
| MGTAVTT_G# | Dedicated | Input | 1.2V发送驱动器的模拟供电电压 | 
| MGTVCCAUX_G# | 
 | 
 | 1.8V ,GTXE2发送器专用的Quad PLL辅助模拟供电电压 | 
| MGTREFCLK0/1P | 
 | 
 | 发送器的正参考时钟 | 
| MGTREFCLK0/1N | 
 | 
 | 发送器的负参考时钟 | 
| MGTAVTTRCAL | 
 | N/A | 内部电路校准用的精度参考电阻引脚 | 
| MGTRREF | 
 | Input | 内部电路校准用的精度参考电阻引脚 | 
1.6. Select IO
| Pin Name | Type | Direction | Description | 
| IO_LXXY_# IO_XX_# | Dedicated | Input/Output | 绝大多数IO都是差分的,但芯片顶端和低端的IO是单端的;#表示Bank号,XX表示该引脚在Bank里的序号,Y表示是P端还是N端 | 
XC7Z045 FFG900芯片里Select IO的差分情况如下所示:
HR:High Range,其电压范围1.2và3.3V 延时资源只有IDELAY2;HP:High performance,其电压1.8V,延时资源既有IDELAY2也有ODELAY2;
| Device | I/Opins | SIO(Select IO) | PS IO | |
| HR | HP | |||
| XC7Z045 FFG900 | User IO | 212 | 150 | 128 | 
| Differential | 102 | 72 | -------- | |
需要注意的是,很多Select IO是多功能引脚(Multi-function),它们既可以当做普通IO来用,又可以当做特殊引脚如时钟引脚来用,特殊功能说明如下:
| Pin Name | Type | Direction | Description | 
| MRCC | Multi-function | Input | multi-region Clock引脚,具有时钟功能的引脚,当时钟是单端时,时钟信号必须由MRCC引脚的正端输入 | 
| SRCC | Multi-function | Input | Single-region Clock引脚,具有时钟功能的引脚,当时钟是单端时,时钟信号必须由SRCC引脚的正端输入 | 
| VRN | Multi-function | N/A | DCI电压N型晶体管参考电阻引脚,应该在每一个Bank里接上参考电阻后上拉 | 
| VRP | Multi-function | N/A | DCI电压P型晶体管参考电阻引脚,应该在每一个Bank里接上参考电阻后下拉 | 
| DXP_0, DXN_0 | Dedicated | Input | 温敏二极管引脚,可用于检测芯片温度 | 
| T0, T1, T2, or T3 | Multi-function | Input | 存储器的字节分组 | 
| T0_DQS, T1_DQS, T2_DQS, or T3_DQS | Multi-function | Input | DDR的DQS使能引脚 |