第一次写博客,排版也不太会,见谅!
一、 电源电路
电源电路分为三部分包括: 核心电压、I/O电压、辅助电压
1.核心电压
一般为固定值
2.IO电压
IO引脚工作所需参考电压
FPGA的IO分为多个bank,每一个板块的IO引脚电压相同,不同bank电压可以不同
3.辅助电压
除了核心电压和IO电压,FPGA工作所需的其他电压叫做辅助电压
二、时钟电路
PLL和DLL FPGA内部进行倍频或分频的时钟管理模块
时钟网络延迟:从时钟沿到不同寄存器存在延时
全局时钟网络:FPGA内部设计的走线池,使用这种专用时钟网络走线,同一时钟到达不同寄存器的时间差可以被控制到很小的范围内
外部输入时钟,只需将晶振连接到全局时钟专用引脚上;内部的信号,软件工具一般会自动识别并连接到全局时钟网络上
三、复位电路
复位后 FPGA进入一个确定的初始模块,以保证器件内部逻辑快速进入正常工作状态。
FPGA是基于RAM结构的,通常需要一颗外置的外部ROM或flash进行上电加载
阻容复位电路/专用复位芯片,通常FPGA有专用的复位引脚
主要关注这几点:
- 尽可能使用FPGA专用复位引脚
- 上电复位时间长短做好考量
- 确保系统正常运行过程中复位信号不会误动作
四、配置电路
FPGA器件都支持JTAG在线配置,在FPGA器件内部,边界扫描寄存器由TDI作为输入TDO作为输出,形成移位寄存器链。JTAG通过寄存器链,可以配置或访问FPGA器件内部逻辑状态。
JTAG四个信号TCK/TMS/TDI/TDO以及电源、地连接到下载线即可
FPGA与CPLD(内部存储介质)的区别:
- CPLD大多基于PROM或flash来实现可编程特性,因此在线编程时数据已经固化,重新上电数据不会丢失。
- FPGA基于SRAM来实现可以编程逻辑,通过JTAG在线编程时,不断电情况下可以正常运行,一旦掉电,SRAM数据丢失FPGA则一片空白,一次FPGA通常要外挂一个用于保存当前配置数据流的PROM或flash,通常称为“配置芯片”,CPLD则不需要。
五、外设电路
FPGA有丰富的外设资源,可扩展性很强,选择很多,但是有一些要注意的地方:
- 输入输出时钟信号尽量分配到专用引脚
- 差分信号对必须分配到支持差分传输的专用引脚
- 高速信号分配到支持高度传输的专用引脚上,如支持DDR的专用IO接口
- 一些硬核使用引脚尽可能是固定的,千万不能随机分配
- 总线信号尽量分配到同一个bank或者相近的bank
- 一些可能产生噪声干扰的信号(如时钟),尽量远离器件的配置信号和其他敏感信号
- 引脚分配尽可能减少交叉连接