本文我们介绍下7系列FPGA的配置接口,在进行硬件电路图设计时,这也是我们非常关心的内容,本文主要介绍配置模式的选择、配置管脚定义以及如何选择CFGBVS管脚电压及Bank14/15电压。
1.概述
Xilinx®7系列设备有五个配置接口。每个配置接口对应一个或多个配置模式和总线宽度,如表1所示。有关接口详细的时序信息,可以参阅相应的7系列FPGA数据手册。配置时序主要与FPGA配置时钟管脚CCLK有关。
表1、7系列FPGA配置模式注意:1)Slave SelectMAP x16 and x32模式不支持AES比特流加密;2)由于FPGA内部上拉电阻原因,该模式为默认模式。在表格1中,可以看到,在主配置模式下,CCLK时钟方向为输出,即有FPGA提供时钟,而在从模式下,CCLK时钟方向为输入,即时钟由外部控制器或处理器提供。
2.配置管脚
每个配置模式都有一组对应的接口引脚,这些引脚跨越7系列FPGA上的一个或多个I/O Bank。Bank0包含专用配置引脚,并且始终是每个配置接口的一部分。Bank14和Bank15包含特定配置模式中涉及的多功能管脚。7系列FPGA数据表规定了在3.3V、2.5V、1.8V或1.5V电压下工作的Bank配置引脚的开关特性。
表2、配置模式管脚
表3、配置模式管脚
注意:
PUDC_B在配置期间具有特殊功能,独立于所有配置接口,例如,PUDC_B不需要与配置接口中的其他引脚电压兼容。
EMCCLK仅BitGen ExtMasterCclk_en选项使能EMCCLK作为主配置模式时钟输入时使用。
DOUT仅在串行配置菊花链中用于向下游FPGA输出数据(或用于DebugBitstream选项)。否则,DOUT为high-Z。
CSO_B仅用于并行配置菊花链中,用于向下游器件输出芯片使能信号。否则,CSO_B为高阻状态。
RS0和RS1仅在启动多引导事件或启用ConfigFallback选项且发生回退事件时才被驱动。否则,RS0和RS1为高阻状态。当使用RS[1:0]引脚进行配置时,建议不要在用户模式下使用它们。
- 空单元格表示该引脚未在配置模式下使用,被忽略,并且在配置期间为高阻状态。
在表2中可以看到,所有JTAG和专用配置引脚都位于一个单独的专用Bank0中,该Bank具有专用电源(VCCO_0)。多功能管脚位于Bank14和Bank15中。所有专用输入引脚均在VCCO_0 LVCMOS电平(LVCMOS18、LVCMOS25或LVCMOS33)下工作。所有激活专用输出引脚在VCCO_0电压水平下工作,输出标准设置为LVCMOS、12 mA驱动、快速转换率。对于使用多功能I/O的所有模式,必须将相关的VCCO_14或VCCO_15连接到适当的电压,以匹配配置器件的I/O标准。多功能引脚也是LVCMOS,12 mA驱动,配置期间转换速率快。如果使用Persist选项,则所选配置模式的多功能I/O在配置后保持激活状态,I/O标准默认设置为LVCMOS、12 mA驱动器、慢转换率。
表4、配置管脚定义
2.1 配置Bank电压选择
配置Bank电压选择(CFGBVS)引脚必须设置为高或低,以便在配置期间使用时确定Bank0中引脚以及组14和15中多功能引脚的I/O电压支持。当CFGBVS引脚为高电平时(例如,连接到3.3V或2.5V的VCCO_0电源),配置期间和之后,Bank0上的配置和JTAG I/O支持3.3V或2.5V下的操作。当CFGBVS引脚为低电平(例如,连接到GND)时,Bank0中的I/O支持1.8V或1.5V下的操作。1.2V下不支持配置。CFGBVS同样控制Bank14和15上的电压公差,但仅在配置期间。当CFGBVS高时,Bank14和15上的配置I/O在配置期间支持在3.3V或2.5V下运行。当CFGBVS引脚较低时,Bank14和15中的配置I/O在配置期间支持在1.8V或1.5V下运行。7系列FPGA有两种I/O组类型:宽范围(HR I/O)组支持3.3V、2.5V和一些低电压I/O标准,高性能(HP I/O)组支持1.8V或更低电压的I/O标准。专用配置和JTAG I/O位于Bank0中。Bank0是除Virtex-7 HT设备外的所有设备上的宽范围Bank类型。一些配置模式也依赖于Bank14和/或Bank15中的管脚。
Bank14和Bank15是Spartan-7、Artix-7和Kintex-7系列中的HR I/O组,但始终是Virtex-7系列中的HP I/O Bank。注意:CFGBVS引脚在Virtex-7 HT设备上不可用。Virtex-7 HT设备仅支持配置Bank 1.8V操作。表5显示了CFGBVS引脚连接选项以及相应的Bank有效VCCO电源和I/O电压。
表5、CVGBVS管脚连接选项警告:当1.8V/1.5V I/O操作的CFGBVS设置为GND时,至Bank0的VCCO_0和I/O信号必须为1.8V(或更低)。如果在配置期间使用这些Bank中的配置I/O,则VCCO_14和VCCO_15也必须为1.8V/1.5V。否则,在这些Bank上的管脚上施加大于1.8V工作最大值的电压可能会损坏器件。
根据配置模式,与该模式相关联的接口引脚可以跨越Bank0、Bank14和Bank15。通常,所有三个Bank都接收相同的VCCO电压电源,以确保所有配置接口引脚具有一致的I/O电压接口。建议对Bank0、14和15使用相同的电压,因为它允许选择使用8位或更宽的配置模式,并避免配置完成后需要I/O转换。使用下列步骤决定CFGBVS管脚设置:
- 确定FPGA配置模式;对于要用于FPGA的配置模式,确定用于配置模式的管脚Bank位置;对于每个Bank配置引脚,确定所需配置Bank通用I/O所需的电压支持;确定目标FPGA系列。Virtex-7 FPGA在Bank14和15上仅支持1.8V/1.5V配置。Virtex-7HT系列在Bank0上也仅支持1.8V配置,因此没有CFGBVS引脚;设置CFGBVS引脚以支持所需的配置I/O电压。
表6、Spartan-7、Artix-7和Kintex-7 FPGA配置模式、兼容电压和CFGBVS连接
表7、Virtex-7 T FPGA配置模式、兼容电压和CFGBVS连接
表8、Virtex-7 HT FPGA配置模式、兼容电压和CFGBVS连接
表9、配置模式、兼容电压和CFGBVS管脚连接
2.2 在Vivado工具中设置配置选项
通过设置配置电压或CFGBVS属性,可以将配置电压的选择传达给Vivado工具。此外,还可以定义CONFIG_MODE属性,以便工具识别所使用的配置管脚。如果配置引脚设置之间存在任何冲突,例如,多功能配置引脚上的IOS标准与配置电压冲突,Vivado工具将提供警告。通过Vivado工具可以验证硬件I/O电压设计是否正确。
2.3 外部主配置时钟(EMCCLK)选项
默认情况下,主配置模式使用内部生成的配置时钟源CCLK。使用此时钟选项很方便,因为不需要外部时钟发生器源。但是,对于配置时间缩短至关重要的应用,应使用外部主配置时钟(EMCCLK)。EMCCLK时钟允许使用比具有主CCLK频率容差(FMCCKTOL)的FPGA内部时钟更精确的外部时钟源。例如,当主CCLK的最大频率为100 MHz时,50%的容差意味着ConfigRate设置不能超过66 MHz。但是,外部时钟源可以在规范允许的情况下以最快的速度应用。7系列FPGA支持在主模式下动态切换到外部时钟源(EMCCLK)的能力。使能EMCCLK时钟可以通过:
- 使能ExtMasterCclk_en比特流产生选项;将FPGA上的EMCCLK连接到主板的振荡器或其他时钟源;定义EMCCLK目标电压。以下方法可以实现这一点:
- Bank14具有另一个已定义IOSTANDARD的管脚。Bank14上定义的电压自动应用于EMCCLK; EMCCLK信号在配置后的设计中使用,并定义了IOSTANDARD。
EMCCLK信号必须实例化,并在提供I/O标准定义的设计中使用,因为EMCCLK是一个多用途引脚,或者电压电平将取自Bank14中定义的另一个引脚。
将EMCCLK输入连接到板上的振荡器或其他时钟源,并当做关键信号进行布线处理,使用良好的信号完整性设计实践,特别是对于非常高速的时钟,以避免配置过程中出现错误。