本文针对7Z045芯片,详细讲解硬件设计需要注意的技术点,可以作为设计和检查时候的参考文件。问了方便实用,按照Bank顺序排列,包含配置Bank、HR Bank、HP Bank、GTX Bank、供电引脚等。
参考文档包括:
ds191-XC7Z030-XC7Z045-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 9/10/11/12/13(HR,PL)
电源
普通IO
时钟IO
Bank 33/34/35(HP,PL)
电源
普通IO
时钟IO
配置IO(Bank 34)
XADC(Bank 35)
其他IO
Bank 109/110/111/112(GTX,PL)
校准(Bank 112)
时钟
数据
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部分(非GTX)
PL部分(GTX)
硬件Checklist
Bank 0(配置Bank,HR)
电源
1. VCCO_0:同K7
1V5/1V8/2V5/3V3可选,不支持1V2配置,因此也不支持1V2供电。
- 当VCCO_0=3V3或2V5时,CFGBVS也必须和VCCO_0保持一致;
- 当VCCO_0=1V8或1V5时,CFGBVS需要接GND;
- CFGBVS一般不需要上下拉电阻,直连就可以。
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。
XADC
- VCCADC_0:XADC的模拟电源引脚,1V8供电,建议单独供电或通过滤波电路(电感等)连到VCCAUX上,不使用时也需要接VCCAUX;
- GNDADC_0:XADC的模拟接地引脚,可以通过磁珠连接到系统GND,也可以连接到系统的模拟地上(此时不再需要额外的磁珠,系统模拟地应已处理),不使用时也需要接GND;
- VREFP_0:参考电压基准(1.25V),可接外部基准(±0.2%或±9LSB/12-bit),也可采用内部基准(±1%或±41LSB/12-bit),不使用外部基准时连GNDADC_0;
- VREFN_0:参考电压基准地,常连GNDADC_0;
- VP_0vn_0:XADC专用输入引脚(专用时对比其他XADC模拟输入来说,该引脚不能用作普通IO,其他的都可以),不使用时连GNDADC_0;
- DXP_0/DXN_0:内部温度二极管,结合外部温度监控电路可实现对FPGA芯片结温的监控,不用时接GNDADC_0。
JTAG
- TCK_0:测试时钟输入,连外部仿真器,建议加防静电措施(TVS管),含驱动电路时需注意保持默认高电平(输入侧加10kΩ上拉),IPU;
- TMS_0:测试模式输入,连外部仿真器,建议加防静电措施(TVS管),含驱动电路时需注意保持默认高电平(输入侧加10kΩ上拉),IPU;
- TDO_0:测试数据输出,连外部仿真器,建议加防静电措施(TVS管),级联时链接后级TDI_0引脚,IPU;
- TDI_0:测试数据输入,连外部仿真器,建议加防静电措施(TVS管),级联时链接前级TDO_0引脚,IPU。
大多数应用中,不会涉及到多个FPGA,即使涉及到了,也不会级联,而是每个器件都会预留一个JTAG调试口。若涉及到多个FPGA基连的情况,常规的做法是多个FPGA共用TCK/TMS,前级TDO接后级TDI,需要考虑驱动能力、走线等因素。
配置
Zynq-7000的启动方式包括QSPI/SD卡/NAND/NOR四种主模式JTAG三种从模式(独立、EMIO、MIO三种方式,详见UG585-155页),实际应用中,绝大多数采用QSPI模式,进介绍该模式下的硬件设计方法。
- INIT_B_0:该引脚刚上电时为低电平,直到初始化完成,变为高阻态,需要外接上拉电阻到VCCO_0(≤4.7kΩ),便能为高电平后开始采用M[2:0]引脚,执行后续操作;该引脚上电期间可以由外部强制拉低,以推迟FPGA配置过程(建议预留下拉电容的位置);不建议将该引脚连接到FLASH的/RESET引脚上,因为各厂家的复位时间要求不同;
- PROGRAM_B_0:重配置引脚,低电平触发配置数据清零并重新配置,下降沿启动复位,上升沿启动重配置,通过电阻(≤4.7kΩ)上拉到VCCO_0,建议通过开关连接到GND,以使能手动复位功能。上电时,PROGRAM_B一直拉低不会使器件一直保持复位状态,而应该通过拉低INIT_B来延迟器件配置过程;
- CFGBVS_0:决定以Bank 0/14/15的点评标准,Bank 14/15仅适用于配置期间,连接VCCO_0代表2V5/3V3(Bank 0),连接GND代表1V8/1V5(Bank 0),Bank 14/15的电平需要和Bank 0匹配。Virtex-7 HT器件的Bank 14/15为HP Bank,仅支持1V8以下电平标准,CFGBVS不影响这两个Bank;Virtex-7 HT器件的Bank 0/14/15仅支持1V8电平标准,无CFGBVS引脚;
- DONE_0:该引脚上的高电平代表配置完成,内涵10kΩ上拉电阻,外部可以不接,也可以接330Ω上拉电阻,以兼容之前系列器件。
其他
- RSVDGND:保留引脚,悬空;
- RSVDVCC[3:1]:保留引脚,接VCCO_0。
Bank 9/10/11/12/13(HR,PL)
电源
VCCO_9/10/11/12/13:可接1V2/1V5/1V8/2V5/3V3等多种电压,根据需要选择。
普通IO
Bank 9只有2个普通IO,其他Bank都是32个普通IO。
时钟IO
- SRCC:共2组4根时钟输入,可驱动BUFIO/BUFR/BUFG,不能连接BUFMR,单端时钟只能从_P引脚接入,且此时_N引脚不能再用做另一路单端时钟输入引脚,只能用作普通IO,不使用某个Bank的CC引脚功能时,该引脚可以用作普通IO;
- MRCC:共2组4根时钟输入,可驱动BUFIO/BUFR/BUFMR/BUFG,单端时钟只能从_P引脚接入,且此时_N引脚不能再用做另一路单端时钟输入引脚,只能用作普通IO,不使用某个Bank的CC引脚功能时,该引脚可以用作普通IO。
Bank 33/34/35(HP,PL)
电源
VCCO_33/34/35:可接1V2/1V5/1V8等多种电压,根据需要选择。
普通IO
Bank 33共30个普通IO;
Bank 34共30个普通IO;
Bank 35共8个普通IO。
时钟IO
- SRCC:共2组4根时钟输入,可驱动BUFIO/BUFR/BUFG,不能连接BUFMR,单端时钟只能从_P引脚接入,且此时_N引脚不能再用做另一路单端时钟输入引脚,只能用作普通IO,不使用某个Bank的CC引脚功能时,该引脚可以用作普通IO;
- MRCC:共2组4根时钟输入,可驱动BUFIO/BUFR/BUFMR/BUFG,单端时钟只能从_P引脚接入,且此时_N引脚不能再用做另一路单端时钟输入引脚,只能用作普通IO,不使用某个Bank的CC引脚功能时,该引脚可以用作普通IO。
配置IO(Bank 34)
- PUDC_B_14:低电平使能配置期间的IPU(所有SelectIO),高电平禁止,需要直连或通过电阻(≤1kΩ)连接VCCO_14/GND,当连接GND时,上拉有效的时刻和商店顺序有关,因为在器件里边,该信号需要经过一级驱动才能传递到上拉电阻使能端,因此在需要立即上拉的场合下,建议引脚和对应Bank电源之间加入外部上拉电阻。配置前和配置期间该引脚禁止悬空。
XADC(Bank 35)
- AD0P/AD0N~AD15P/AD15N:16个模拟输入引脚,7Z010有全部16个通道;
其他IO
- DQS:DDR专用DQS引脚;
- VREF:DDR专用电压参考引脚。
Bank 109/110/111/112(GTX,PL)
校准(Bank 112)
MGTAVTTRCAL和MGTRREF,用于GTX内部校准,MGTAVTTRCAL直连1V2(同MGTAVTT),MGTRREF通过100Ω连接MGTAVTTRCAL。若不用GTX功能,应连接GND。
时钟
含两组差分时钟引脚,MGTREFCLK[n]P/N,接入外部差分时钟(需要电容耦合)。若不用GTX功能,应悬空。
数据
含4组差分收发引脚,MGTXTXP/N[n]、MGTXRXP/N[n],使用时需要电容耦合。若不使用GTX功能,接收端可以选择悬空(供电)或连GND(未供电),发送端应悬空。
Bank 500/501/502(HR,PS)
电源
VCCO_MIO0/MIO1:可接1V8/2V5/3V3等多种电压,由MIO[8:7]决定。
时钟(Bank 500)
- PS_CLK_500:PS的输入时钟信号,根据DS191,频率范围为30~60MHz。
复位(Bank 500/501)
1. 上电复位: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 501)
- PS_MIO_VREF_501:RGMII接收器电压参考引脚,不使用RGMII功能时,可以悬空(不属于IO),使用RGMII时,连接VCCO_MIO1/2,可以电阻分压来提供。
DDR(Bank 502)
该Bank为PS DDR专用Bank,当不使用DDR时,VCCO_DDR连接VCCPAUX,剩余引脚悬空(包含VREF/VRP/VRN)。
当使用DDR时,VCCO_DDR按需求选择1V2/1V5/1V8等电平,其余引脚按需求连接。
MIO(Bank 500/501)
MIO时PS的多功能引脚,用于启动、配置、接口等,下面进介绍不使用PS功能接口条件下、且使用QSPI FLASH启动情况下的硬件配置方法,其与应用情况不再介绍。
MIO[15:0]
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]
MIO[63:16]用作功能接口,如SPI/UART/CAN/I2C/USB等,按照如下表格选择,不用的引脚可以悬空。
电源
Zynq-7000系列SoC相比7系列FPGA多了PS部分,PL部分和7系列FPGA基本一致,且PS和PL相互独立,互不影响,可以分开设计。
PS部分
包含VCCPINT/VCCPAUX/VCCPLL/VCCO_DDR/VCCO_MIO0/VCCO_MIO1,后三种属于Bank电源,此处不再说明。
- VCCPINT:PS内逻辑供电电压,1V0;
- VCCPAUX:PS辅助供电电压,1V8;
- VCCPLL:PS PLL供电电压,1V8。
要求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个条件之一:
- PS_POR_B为低电平;
- PS_CLK输入参考时钟被禁止;
- VCCPAUX低于0.7V;
- VCCO_MIO0低于0.9V。
其中前两个条件比较容易满足,复位电路采用MAX706等看门狗芯片可以满足条件1,第二个条件需要参考晶振厂家给出的数据,一般来说或也能满足,后面两个条件在不采用电源管理芯片的情况下不好满足,建议不考虑。
要求5:
针对VCCO_MIO0=VCCO_MIO1=3V3的情况,VCCO_MIO0/VCCO_MIO1和VCCPAUX之间的压差高于2.625V的时间不能超过TVCCO2VCCAUX(125℃最大值300ms),以保证器件可靠性。
PL部分(非GTX)
包含VCCINT/VCCBRAM/VCCAUX/VCCO,VCCO属于Bank电源,此处不在说明。
- VCCINT:内核电源,1V0/0V95(-2LI);
- VCCBRAM:BRAM供电电源,1V0/0V95(-2LI);
- VCCAUX:辅助供电电源,1V8;
- VCCAUX_IO:专用于HP BANK的辅助电源,1V8/2V0(速率更高),详见UG471。
要求1:
上电顺序:VCCINT/VCCBRAM先上电,VCCAUX/VCCAUX_IO再上电,VCCO最后上电,若后两种电压相同,可以同时上电;
要求2:
下电顺序:下电顺序和上电顺序相反,大部分情况下都是同时下电。
要求3:
针对Bank 0和3V3 HR BANK的VCCO供电由如下限制:在上下电期间,VCCO和VCCAUX的压差高于2.625VV的事件不能超过TVCCO2VCCAUX(125℃最大典型值300ms)。
PL部分(GTX)
包含MGTAVCC/MGTAVTT/MGTVCCAUX。
- MGTAVCC:GTX模拟供电,1V0(≤10.3125GHz)/1V05(>10.3125GHz);
- MGTAVTT:GTX终端电路模拟供电,1V2;
- MGTVCCAUX:QPLL辅助模拟供电,1V8。
要求:
上电顺序:VCCINT/MGTAVCC先上电,MGTAVTT后上电,VCCINT和MGTAVCC之间没有顺序要求,若不满足上述条件,上下电期间VMGTAVTT电流会变大;
当VMGTAVTT先于VMGTAVCC上电,且VMGTAVTT-VMGTAVCC>150Mv,并且VMGTAVCC<0.7V,VMGTAVCC上电期间VMGTAVTT每一路收发器会增加460mA电流消耗,持续时间为0.3*TMGTAVCC(VMGTAVCC从0~90%消耗的时间),下电时也成立;
当VMGTAVTT先于VCCINT上电,且VMGTAVTT-VCCINT>150mV,并且VMGTAVCC<0.7V,VCCINT上电期间VMGTAVTT每一路收发器会增加460mA电流消耗,持续时间为0.3*TVCCINT(VCCINT从0~90%消耗的时间),下电时也成立。
硬件Checklist
序号 | 引脚名称 | 检查内容 |
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,无其他复用功能 |
GTX | ||
1 | MGTAVTTRCAL/MGTRREF | 电阻校准网络的偏置电流供电/校准电阻输入引脚
不用时两个引脚接GND。 |
2 | MGTREFCLK[1:0]P/N | 差分时钟输入引脚
不用时,悬空。 |
3 | MGTPTXP/N[3:0] | 差分数据发送引脚
不用时悬空。 |
4 | MGTPRXP/N[3:0] | 差分数据接受引脚
未使用未供电时接GND,未使用供电时悬空。 |
5 | MGTAVCC | 内部模拟电路供电,1V0(>10.3125Gbps时,调整为1V05)
不用该Bank时,该引脚可以悬空接GND。 |
6 | MGTAVTT | 收发器终端电路模拟供电,1V2,要求同MGTAVCC。 |
7 | MGTVCCAUX | QPLL辅助供电,1V8
不使用该Bank时,悬空或接GND。 |
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 | 保留引脚,悬空 |