FPGA配置模式
Xilinx UltraScale FPGA有7种配置模式,由模式输入引脚M[2:0]决定。
- 主串配置模式
- 从串配置模式
- 主并配置模式(8位或16位)
- 从并配置模式(8位、16位或32位)
- 主SPI配置模式
- 主BPI配置模式
- JTAG/边界扫描配置模式
1、主,即配置时钟CCLK由FPGA提供;从,即配置时钟CCLK由外部控制器提供
2、在主模式下,FPGA自动加载配置文件数据,该配置文件数据存储于板载ROM里;
3、从模式下,通过外部MCU/处理器将配置文件数据加载到FPGA中
4、设计FPGA时,基本上都是采用JTAG配置模式+主SPI配置模式 或者 JTAG配置模式+主BPI配置模式
5、不同模式只有一些用于传输数据的引脚不同,都会使用一些相同的控制信号,并且在不同模式下这些信号功能基本一致
6、用作配置FPGA的专用管脚在配置完成后不能够被用作普通IO管脚,而非专用管脚在配置完毕后即被释放,可用作普通IO管脚
时钟电路的设计选型需要考虑的因素
系统运行的时钟频率是多少?(可能有多个时钟)
是否有内部的时钟管理单元可用(通常是有)?它的输入频率范围(需要查看器件手册进行确认)?
尽可能选择专用的时钟输入引脚
时钟电路PCB layout设计原则
- 时钟晶振源应该尽可能放在与其连接的FPGA时钟专用引脚的临近位置
- 时钟线尽可能走直线。如果无法避免转弯走线,使用45度线,尽量避免T型走线和直角走线
- 尽量避免同时在多个信号层走时钟线
- 时钟走线尽量不要使用过孔,因为过孔会导致阻抗变化及反射
- 靠近外层的地层能够最小化噪声。如果使用内层走时钟线,要有良好的参考平面,且走带状线
- 时钟信号应该有终端匹配电路,以最小化反射
- 尽可能使用点到点的时钟走线
- 对于时钟差分对的走线,必须严格按照D>25规则,以最小化相邻差分对间的串扰
- 确保差分对在整个走线过程中的线间距恒定
复位电路设计原则
- 尽可能使用FPGA的专用时钟或复位引脚
- 上电复位时间的长短需要做好考量
- 确保系统正常运行过程中复位信号不会误动作
- 复位信号尽量不要靠近连接器附近,尤其是和面板连接的连接器,避免外部ESD误触发复位信号
(P.S.复位时间通常要长于FPGA的配置时间,才能保证FPGA刚运行起来时处于复位状态,然后进入正常运行状态,否则起不到上电复位的作用了)
配置电路设计原则
- 配置芯片尽量靠近FPGA
- 考虑配置信号的完整性问题,必要时增加电阻做阻抗匹配
- 相关配置引脚正确地添加上拉或下拉电阻
- 部分配置引脚可以被复用,但是要谨慎使用,以免影响器件的上电配置过程
(在IO引脚资源使用不紧张的情况下,不建议复用FPGA的配置引脚)
FPGA配置比特流的大小
- 对于特定的FPGA器件,无论它本身功能实现所需的代码量有多少,它最终编译产生的比特流文件的大小都是固定的(最大的)
FPGA配置模式的选择因素
- 配置加载的时间或速度要求(通常串行加载的时间慢于并行加载)
- 可用配置引脚数量
- IO Bank电平标准(通常2.5V / 3.3V)
- 成本需求(选择较大的memory或专用的memory来做fpga配置 相比于系统中已有的mcu或cpu加载fpga成本更高)
高速FPGA配置考虑
- 在相同配置速度的情况下,并行配置模式通常要比串行配置模式的加载时间要短
- 单颗FPGA器件的加载,相比于采取“菊花链”方式进行多颗FPGA器件的加载,速度也要快得多
- 主动配置模式下,FPGA产生的配置时钟CCLK默认的时钟频率是最保守的“低频”,可以通过工具中的配置选项提高这个CCLK时钟的频率,从而缩短配置时间;也可以通过配置工具中的选项,改用连接到FPGA的EMCCLK引脚上的时钟源
- 选择的存储器速度越快,则可用的CCLK频率也可以越高,加载配置的时间也可以越短
- 被动配置模式下,FPGA的CCLK时钟源由外部器件产生,其速度高低则完全取决于外部器件的速度性能
查看Vivado的Schematic视图
- RTL Analysis --> Elaborated Design --> Schematic
- "RTL分析"将HDL代码转换为逻辑电路
- Synthesis --> Synthesized Design --> Schematic
- "综合"这一步将经过“RTL分析”后的门电路映射为FPGA器件的物理结构
- 代码学习过程中,通过查看比对RTL Analysis 与 Synthesis的Schematic视图,对代码和电路的映射关系有更直观的认识和理解,达到“敲的是代码,想的是电路”的境界