FPGA设计之硬件篇(一)

 

下了很大的决心来写这篇文章,我做FPGA也有两年了,从刚开始的Verilog开始学起,到后来的最小系统,再到飓风II代开发板设计,到现在的XILINX XC2C系列CPLD开发,覆盖了硬件设计底层的一些经验。其实自己很想玩下FPGA的嵌入式,觉得很有前途的,但是后来自己也只是在学校开发板上过了下瘾。谈谈如何玩FPGA吧

     要了解FPGA首先弄懂它的结构,FPGA是基于LUT结构,在器件选型的时候一般是参考它的逻辑单元的大小,然后是功耗和匹配电平的关系,IO口供电电平;内部PLL供电电平;所有的FPGA工作电压都是在3.3V,2.5V,1.2V三者之间选择,当然一定要弄清楚IO口是基于CMOS还是TTL工艺的,两者不能混淆。

     选好器件后,接下来是原理图设计。在原理图设计中一般要注意去耦电容的容值大小,时钟电路,内部锁相环电路,下载电路。一般AS下载电路还要注意匹配的配置芯片的大小,在器件手册上都能查到,所以在设计前一定要通读对应的器件手册,一般的配置电路手册上都有参考,少走很多弯路。设计好原理图后一般要考虑下面IO口的接法:GCLK/GRST;这些复用的管脚一般不用作普通的IO口。而用作对应的第二功能。

     原理图设计好后重点是PCB的设计,在设计前一定要反复检查原理图,是否有原理上的错误,一定注意电源电路的设计完整性。对于一般的TQFP封装的芯片要注意采用双面板我习惯把电源放在底层,滤波电容也通过过孔置于底层,在设计中当然是先布电源,时钟,最后布信号线了,其中的一些小的细节不用我啰嗦了,想必各位比我还厉害了。

     完成整个硬件电路板的设计后,接下来就是程序的设计了,这里面灵活性很大,在设计中一定要注意语法的严谨性,一个小小的“<="都会带来无尽的麻烦,在完成程序设计后,一定要进行时序仿真,我一般是先把模块分块利用工具内部波形仿真来查看时序,接着采用SIGNAL TAP II进行内部逻辑分析,这个花了太多时间了,一个仿真就要几个小时。所以还是用TESTBENCH比较实际,注意是测试信号建立时间保持时间是否满足时序要求。

     当然这个里面涉及到的知识面远远不止这些,越是懂它越是难以琢磨。逻辑电路设计的时序是难点。时间有限先写这么多吧。未完待续。。。。。。

你可能感兴趣的:(FPGA设计之硬件篇(一))