本文针对7Z010芯片,详细讲解硬件设计需要注意的技术点,可以作为设计和检查时候的参考文件。问了方便实用,按照Bank顺序排列,包含配置Bank、HR Bank、HP Bank、GTX Bank、供电引脚等。
参考文档包括:
ds187-XC7Z010-XC7Z020-Data-Sheet
ds190-Zynq-7000-Overview
ug585-Zynq-7000-TRM
ug865-Zynq-7000-Pkg-Pinout
ug933-Zynq-7000-PCB
ug470_7Series_Config
ug472_7Series_Clocking
ug480_7Series_XADC
目录
Bank 0(配置Bank,HR)
电源
XADC
JTAG
配置
其他
Bank 34/35(HR,PL)
电源
普通IO
时钟IO
配置IO
XADC(Bank 35)
其他IO
Bank 500/501/502(HR,PS)
电源
时钟(Bank 500)
复位(Bank 500/501)
电压参考(Bank 501)
DDR(Bank 502)
MIO(Bank 500/501)
MIO[15:0]
MIO[63:16]
电源
PS部分
PL部分
硬件Checklist
1. VCCO_0:同K7
1V5/1V8/2V5/3V3可选,不支持1V2配置,因此也不支持1V2供电。
Virtex-7 FPGA比较特殊,非HT(Virtex-7 HT)器件的Bank 0和其他S/A/K系列相同,而Bank 14/15时HP Bank,仅支持1V8以下电平;Virtex-7 HT器件无CFGBVS引脚,仅支持1V8电平。
实际应用中,常用主SPI和主BPI模式来配置FPGA,涉及到Bank 0/14/15,三个Bank的VCCO需要保持一致,并且和外挂FLGASH的供电电压也要保持一致。
2. VCCBATT_0:同K7
FPGA内部加密模块供电,连接到外部电池,保证FPGA掉电时加密模块依然有电;若不使用加密功能,连接GND/VCCAUX;该引脚不受VCCO_0的限制。
DS187中规定电压范围为1V0~1V89,并没有明确规定时1V8/1V5还是1V2;
不使用加密功能时,建议接入VCCAUX(1V8)或GND。
实际应用中,一般直连GND。
大多数应用中,不会涉及到多个FPGA,即使涉及到了,也不会级联,而是每个器件都会预留一个JTAG调试口。若涉及到多个FPGA基连的情况,常规的做法是多个FPGA共用TCK/TMS,前级TDO接后级TDI,需要考虑驱动能力、走线等因素。
Zynq-7000的启动方式包括QSPI/SD卡/NAND/NOR四种主模式JTAG三种从模式(独立、EMIO、MIO三种方式,详见UG585-155页),实际应用中,绝大多数采用QSPI模式,进介绍该模式下的硬件设计方法。
VCCO_34/35:可接1V2/1V5/1V8/2V5/3V3等多种电压,根据需要选择。
Bank 34共32个普通IO;
Bank 35共10个普通IO。
VCCO_MIO0/MIO1:可接1V8/2V5/3V3等多种电压,由MIO[8:7]决定。
1.3. 上电复位:PS_POR_B_500
PS的上电复位信号,上电期间需要保持低电平,上电完成以后再释放。
从上电完成开始计时,有一个时间窗口,不允许PS_POR_B信号拉高,范围为TSLWMIN~TSLWMAX,该时间窗口和eFUSE、PLL使能有关,在禁用eFUSE且使能PLL条件下,范围为12~40ms。
实际应用中,建议在上电完成至少40ms后,再释放PS_POR_B信号,比如通过MAX706等信号来控制,可以达到良好的效果。
2. 外部复位:PS_SRST_B_501
PS的外部系统复位引脚,和PS_POR_B相比,不会影响断电,且不会重新采样BOOT_MODE引脚,调试时经常使用。
Xilinx规定,器件执行Boot代码期间,PS_SRST_B引脚不可置低,否则器件会锁死,因此该引脚需要先于PS_POR_B释放(拉高),需要通过设计来保证。
当Boot代码执行完成后,PS_SRST_B可以置低,触发器件复位。
3. 除了上述两种复位以外,还有系统软件复位(寄存器)、看门狗复位(溢出)、调试复位(JTAG)等,非硬件引脚触发的复位,不再介绍。
该Bank为PS DDR专用Bank,当不使用DDR时,VCCO_DDR连接VCCPAUX,剩余引脚悬空(包含VREF/VRP/VRN)。
当使用DDR时,VCCO_DDR按需求选择1V2/1V5/1V8等电平,其余引脚按需求连接。
MIO时PS的多功能引脚,用于启动、配置、接口等,下面进介绍不使用PS功能接口条件下、且使用QSPI FLASH启动情况下的硬件配置方法,其与应用情况不再介绍。
MIO[15:0]主要用在两种情况,启动和配置:
1. 启动:由MIO[8:2]决定,包括Bank电平、PLL使能、启动方式、JTAG模式等,通过外接20k上下拉电阻选择,强烈建议预留JTAG方式(000);
2. 配置:Zynq-7000 SoC支持单器件或双器件模式,单器件连接QSPI 0,8-bit双器件连接QSPI 0/1,4-bit双器件连接QSPI 0以及QSPI 1的片选。
若总线频率超过40MHz,需要使用MIO8作为时钟辉县(MIO8需要外接上下拉电阻)。
MIO[63:16]用作功能接口,如SPI/UART/CAN/I2C/USB等,按照如下表格选择,不用的引脚可以悬空。
Zynq-7000系列SoC相比7系列FPGA多了PS部分,PL部分和7系列FPGA基本一致,且PS和PL相互独立,互不影响,可以分开设计。
包含VCCPINT/VCCPAUX/VCCPLL/VCCO_DDR/VCCO_MIO0/VCCO_MIO1,后三种属于Bank电源,此处不再说明。
要求1:
VCCPLL在7Z010中仅一个引脚,需要0.47uF~4.7uF/0402电容滤波,且离得足够近;当由VCCPZUX供电时,需要串磁珠(120Ω@100MHz,0603),还需要10uF/0603电容滤波。
要求2:
上电时序:VCCPINT(1V0)先上电,VCCPAUX/VCCPLL(1V8)再上电,VCCO(DDR:1V2~1V8,MIO:1V8~3V3)最后上电,以减少上电浪涌且保持上电期间IO三态。若后两者电压值相等(即1V8,DDR选择DDR2),可以同时上电。
要求3:
下电时序:下电顺序和上电顺序相反,但是大部分情况下不能满足该要求,都是同时下电。
要求4:
Xilinx规定下电时,在VCCINT调到0V8之前,至少需要满足以下4个条件之一:
其中前两个条件比较容易满足,复位电路采用MAX706等看门狗芯片可以满足条件1,第二个条件需要参考晶振厂家给出的数据,一般来说或也能满足,后面两个条件在不采用电源管理芯片的情况下不好满足,建议不考虑。
要求5:
针对VCCO_MIO0=VCCO_MIO1=3V3的情况,VCCO_MIO0/VCCO_MIO1和VCCPAUX之间的压差高于2.625V的时间不能超过TVCCO2VCCAUX(125℃最大值300ms),以保证器件可靠性。
包含VCCINT/VCCBRAM/VCCAUX/VCCO,VCCO属于Bank电源,此处不在说明。
要求1:
上电顺序:VCCINT/VCCBRAM先上电,VCCAUX/VCCAUX_IO再上电,VCCO最后上电,若后两种电压相同,可以同时上电;
要求2:
下电顺序:下电顺序和上电顺序相反,大部分情况下都是同时下电。
要求3:
针对Bank 0和3V3 HR BANK的VCCO供电由如下限制:在上下电期间,VCCO和VCCAUX的压差高于2.625VV的事件不能超过TVCCO2VCCAUX(125℃最大典型值300ms)。
序号 |
引脚名称 |
检查内容 |
POWER |
||
1 |
VCCINT |
内核电源(1V0) |
2 |
VCCBRAM |
BRAM电源(1V0) |
3 |
VCCAUX |
辅助电源(1V8) |
4 |
VCCAUX_IO |
IO辅助电源(1V8/2V0),2V0应用于更高速率应用 |
5 |
VCCO_34/35 |
1V5/1V8/2V5/3V3可选 |
6 |
VCCBATT_0 |
加密功能专用(电压:1V0~1V89),不用时接VCCAUX(1V8)或GND |
7 |
VCCPINT |
PS内核电源(1V0) |
8 |
VCCPAUX |
PS辅助电源(1V8) |
9 |
VCCPLL |
PS PLL电源(1V8),需要0.47uF~4.7uF/0402电容滤波。当连接到VCCPAUX时,需要穿120Ω@100MHz/0603磁珠,且10uF/0603电容滤波 |
10 |
VCCO_MIO0/MIO1 |
1V8/2V5/3V3可选,需要适配MIO[8:7] |
11 |
VCCO_DDR |
1V2/1V5/1V8可选 |
PL XADC |
||
1 |
VCCADC_0 |
XADC模拟电源(1V8),串磁珠或接模拟电源,不用时接VCCAUX(1V8) |
2 |
GNDADC_0 |
XADC模拟地,串磁珠或接模拟地,不用时接GND |
3 |
VREFP_0 |
1V25外部基准(需滤波),或内部基准(GNDADC_0),不用时接GNDADC_0 |
4 |
VREFN_0 |
电压基准地,连接GNDADC_0 |
5 |
VP_0/VN_0 |
专用模拟输入引脚,不用时接GNDADC_0 |
6 |
AD[15:0]P/AD[15:0]N |
可选模拟输入引脚,7010有全部16个通道 |
7 |
DXP_0/DXN_0 |
内部温度二极管正/负引脚,不用时接GNDADC_0 |
PL JTAG |
||
1 |
TCK_0 |
测试时钟引脚,连仿真器的TCK引脚,建议加TVS |
2 |
TMS_0 |
测试模式引脚,连仿真器的TMS引脚,建议加TVS |
3 |
TDO_0 |
测试数据输出引脚,连仿真器的TDO引脚,可级联后级TDI,建议加TVS |
4 |
TDI_0 |
测试数据输入,连仿真器的TDI引脚,可级联前级TDO,建议加TVS |
PL Configuration |
||
1 |
INIT_B_0 |
初始化完成引脚,低有效,外接4.7kΩ上拉至VCCO_0 |
2 |
PROGRAM_B_0 |
重配置引脚,低有效,外接4.7kΩ上拉至VCCO_0 |
3 |
CFGBVS_0 |
配置电平选择引脚,高电平(VCCO_0)对应3V3/2V5,低电平对应1V8/1V5 |
4 |
DONE_0 |
启动玩阿城引脚,含IPU(10kΩ),可以不外借330Ω上拉 |
5 |
PUDC_B_14 |
配置期间上拉使能引脚,外接1kΩ上拉,低电平使能上拉 |
PL Clock |
||
1 |
SRCC |
时钟输入引脚,不能连接BUFMR,单端时钟连接_P引脚 |
2 |
MRCC |
时钟输入引脚,能连接BUFMR,单端时钟连接_P引脚 |
PL Memory |
||
1 |
DQS |
DDR等存储器的DQS引脚,接DDR的DQS引脚 |
2 |
VREF |
输入参考电压引脚,用于含差分输入缓冲器的单端引脚,接参考电源 |
3 |
VRP/VRN |
DCI功能引脚,VRN上拉VDDR,VRP下拉GND |
PL Digital IO |
||
1 |
IO_LXXY_#/IO_XX_# |
仅用作普通数字IO,无其他复用功能 |
PL Clock |
||
1 |
PS_CLK_500 |
PS输入时钟引脚,30~60MHz |
PL Reset |
||
1 |
PS_POR_B_500 |
上电复位引脚,上电完成至少40ms后释放 |
2 |
PS_SRST_B_501 |
挖补系统复位引脚(调试用复位),需要遭遇PS_POR_B释放 |
PL VREF |
||
1 |
PS_MIO_VREF_501 |
RGMII接收器电压参考引脚,连接VCCO_MIO1/2,不用时悬空 |
PS MIO |
||
1 |
PS_MIO[15:0]_500 |
启动、配置引脚,外接20kΩ上下拉,功能详见table 6-4/4-2 |
2 |
PS_MIO[63:16]_501 |
功能接口引脚,需软件配置,功能详见table 6-4/4-2 |
PS DDR |
||
1 |
PS_DDR_CKP/CKN |
DDR差分时钟 |
2 |
PS_DDR_CKE |
DDR时钟使能 |
3 |
PS_DDR_CS_B |
DDR片选 |
4 |
PS_DDR_RAS_B |
DDR RAS控制 |
5 |
PS_DDR_CAS_B |
DDR CAS控制 |
6 |
PS_DDR_WE_B |
DDR写使能 |
7 |
PS_DDR_BA[2:0] |
DDR Bank地址线 |
8 |
PS_DDR_A[14:0] |
DDR行列地址线 |
9 |
PS_DDR_ODT |
DDR终端阻抗控制 |
10 |
PS_DDR_DRST_B |
DDR复位 |
11 |
PS_DDR_DQ[31:0] |
DDR数据线 |
12 |
PS_DDR_DM[3:0] |
DDR数据掩码 |
13 |
PS_DDR_DQS_P/N[3:0] |
DDR差分数据线 |
14 |
PS_DDR_VRP/VRN |
DDR DCI控制引脚,VRP下拉,VRN上拉,电阻值为电缆特性阻抗值*2 |
15 |
PS_DDR_VREF[1:0] |
DDR接口参考电压,VCCO_DDR/2 |
Others |
||
1 |
RSVDVCC[3:1] |
保留引脚,连接VCCO_0 |
2 |
RSVDGND |
保留引脚,悬空 |