一、FPGA板级设计的五要素
1.1、电源电路
核心电压:一般为固定值
IO电压:FPGA的IO分为多个bank,同一个bank的不同IO引脚电压相同,不同bank的电压可以不同
辅助电压:除了核心电压和IO电压,FPGA工作所需的其他电压都叫辅助电压,例如:模拟电压,
Phase-locked loop,锁相环 (PLL) 需要模拟电源。
1.2、时钟电路
外部输入时钟:只需要将振荡器连接到全局时钟的专用引脚上,软件工具一般会自动识别并连接到全局时钟网络上。通常使用有源晶振(Oscillator),非无源晶振(Crystal)。
时钟走线要短,需确保外部输入时钟信号干净且稳定,温漂小。
全局时钟网络:FPGA内部设计的走线池,使用这种专用时钟网络走线,同一时钟到达不同寄存器的时间差很小。
PLL和DLL:FPGA内部进行倍频和分频的时钟管理模块。DLL(Delay Locked Loop 延时锁定环)
1.3、复位电路
复位信号开启时(一般默认为低电平),系统处于复位状态,当电平从低变高后,进入正常工作状态,系统便拥有了所期望的初始状态。
可使用电压监控复位芯片(例如SGM803),可监控多电源系统的上一级公共电源电压,以便实现可靠的上下电复位。
1.4、配置(烧录)电路
FPGA大部分基于SRAM(Static Random Access Memory,静态随机存取存储器)来实现可编程特性,一旦掉电,SRAM数据丢失,所以,FPGA通常需要外挂一个用于保存当前配置数据流的flash芯片,称为“配置芯片”。
通常使用JTAG在线编程,JTAG包含如下关键管脚:
- VDD 电源正(可选)
- GND 电源负
- TDI 测试数据输入引脚,用于将测试数据或指令串行输入到芯片的内部寄存器
- TDO 测试数据输出引脚,用于将芯片内部寄存器的数据串行输出
- TMS 测试模式选择引脚,用于控制JTAG状态机的状态,每个时钟周期的TMS值决定了JTAG的状态机进入哪个状态
- TCK 测试时钟输入引脚,为JTAG操作提供时钟信号
- TRST 测试复位引脚(可选),用于将JTAG控制器复位到初始状态。不使用时可以通过内部逻辑复位。
1.5、外设电路
赛灵思(Xilinx)的FPGA管脚分布图通常不在其Datasheet中直接展示,而是通过专门的Pinout文件或用户手册(如UG475)提供详细信息。
FPGA器件有丰富的外设(I/O)资源,应用时,需考虑以下几点:
- 输入和输出时钟信号分配到专用的引脚上;
- 差分信号分配到支持差分传输的专用引脚上;
- 高速信号分配到支持高速传输的专用引脚上;
- 总线信号分配到同一个BANK或相近的BANK中;
- 引脚分配尽可能减少交叉连接;