FPGA硬件设计tips


##FPGA芯片本身特点

关于多时钟fpga系统中时序问题的解决

乒乓缓存

只是书中提到的,其实在arm程序的编写中也有过使用,
例如pid控制器中,保存当前结果,在执行过本周期之后重新释放这个
变量使其又变成可写状态,只是无意的应用,具体的实现机制可以参照这篇博客。

###FPGA的控制器降低功耗的核心是降低内核运行电压。

这也许是目前市面上的主流单片机的电压标准越来越低的主要原因?
FPGA使用多电源供电,IO也可以配置在不同的电压格式下。

###FPGA的部分引脚可以接收差分信号

或许可以直接用来做485之类的差分协议?或者直接作为adc的驱动信号?
或者光耦?我会在以后的使用中注意这个问题。

##PCB设计规范

###电源
电源设计很成熟,大致分为两种:

第一种使用多个ldo进行稳压提供fpga的电源。
第二种使用成熟的电源管理芯片提供多种不同的电源。

个人的见解是,如果是用于开发使用的话,尽量使用前者,一旦损坏维护方便而且成本低。
用于成熟方案需要量产的时候,尤其是在对于体积有严格要求的场合使用第二种方案更合理。

###电源滤波
FPGA近端的电源滤波不能省,每一组电源都应该配一个滤波电容。
我们称之去耦电容,用于提供高频电路中突然出现的功率峰。

###时钟引脚
一般从全局时钟引脚引入复位和时钟,虽然从全局时钟引脚引入复位并不是必须的,但是这对系统
实时性有比较好的保证,也是比较常见的设计。

###布线的小技巧
首先时钟线背面尽量不覆铜,时钟引脚尽可能短。时钟线尽量不与信号线平行,避免干扰。
JTAG四根信号线尽量等长,保持信号完整性。高频信号过孔位置添加电容滤波。足够小。
走线尽量不要走直角。5mil-200ma;50mil-1A注意布线宽度。

##一种新的手工电路板加工工艺,氯化铁腐蚀工艺
看起来挺有意思的工艺,可以手工完成电路板的印制。

blog总结

  1. 完善了FPGA布线上的一些以前没注意到的点。

  2. 下一步进行软件建立工程的相关配置。