FPGA 设计的经验技巧,FPGA 开发设计经验总结
大学时代第一次接触 FPGA 至今已有 10 多年的时间,至今记得当初第一次在
EDA 实验平台上完成数字秒表、抢答器、密码锁等实验时那个兴奋劲。当时由于没有接
触到 HDL 硬件描述语言,设计都是在 MAX+plus II 原理图环境下用 74 系列逻辑器件搭建
起来的。
后来读研究生,工作陆陆续续也用过 Quartus II、FoundaTIon、ISE、Libero,并且学习了
verilogHDL 语言,学习的过程中也慢慢体会到 verilog 的妙用,原来一小段语言就能完成
复杂的原理图设计,而且语言的移植性可操作性比原理图设计强很多。
在学习一门技术之前我们往往从它的编程语言入手,比如学习单片机时,我们往往从汇编
或者 C 语言入门。所以不少开始接触FPGA 的开发人员,往往是从VHDL 或者 Verilog 开
始入手学习的。但我个人认为,若能先结合《数字电路基础》系统学习各种 74 系列逻辑
电路,深刻理解逻辑功能,对于学习 HDL 语言大有裨益,往往会起到事半功倍的效果。
当然,任何编程语言的学习都不是一朝一夕的事,经验技巧的积累都是在点滴中完成,
FPGA 设计也无例外。下面就以我的切身体会,谈谈 FPGA 设计的经验技巧。
我们先谈一下 FPGA 基本知识:
1.硬件设计基本原则
FPGA(Field-Programmable Gate Array),即现场可编程门阵列,它是在 PAL、GAL、CPLD
等可编程器件的基础上进一步发展的产物。它是作为专用集成电路领域中的一种半定制电
路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。
速度与面积平衡和互换原则:
一个设计如果时序余量较大,所能跑的频率远高于设计要求,能可以通过模块复用来减少
整个设计消耗的芯片面积,这就是用速度优势换面积的节约;
反之,如果一个设计的时序要求很高,普通方法达不到设计频率,那么可以通过数据流串
并转换,并行复制多个操作模块,对整个设计采用“乒乓操作”和“串并转换”的思想进
行处理,在芯片输出模块处再对数据进行“并串转换”。从而实现了用面积复制换取速度