原创 学习HDL的几点重要提示

2009-3-7 12:49 1782 6 6 分类: FPGA/CPLD
 

1.了解HDL的可综合性问题:
      HDL有两种用途:系统仿真和硬件实现。 如果程序只用于仿真,那么几乎所有的语法和编程方法都可以使用。 但如果我们的程序是用于硬件实现(例如:用于FPGA设计),那么我们就必须保证程序“可综合”(程序的功能可以用硬件电路实现)。 不可综合的HDL语句在软件综合时将被忽略或者报错。 我们应当牢记一点:“所有的HDL描述都可以用于仿真,但不是所有的HDL描述都能用硬件实现。”
      2. 用硬件电路设计思想来编写HDL:
学好HDL的关键是充分理解HDL语句和硬件电路的关系。 编写HDL,就是在描述一个电路,我们写完一段程序以后,应当对生成的电路有一些大体上的了解, 而不能用纯软件的设计思路来编写硬件描述语言。 要做到这一点,需要我们多实践,多思考,多总结。
      3.语法掌握贵在精,不在多
30%的基本HDL语句就可以完成95%以上的电路设计,很多生僻的语句并不能被所有的综合软件所支持,在程序移植或者更换软件平台时,容易产生兼容性问题,也不利于其他人阅读和修改。建议多用心钻研常用语句,理解这些语句的硬件含义,这比多掌握几个新语法要有用的多。

      HDL与原理图输入法的关系
      HDL和传统的原理图输入方法的关系就好比是高级语言和汇编语言的关系。HDL的可移植性好,使用方便,但效率不如原理图;原理图输入的可控性好,效率高,比较直观,但设计大规模CPLD/FPGA时显得很烦琐,移植性差。在真正的PLD/FPGA设计中,通常建议采用原理图和HDL结合的方法来设计,适合用原理图的地方就用原理图,适合用HDL的地方就用HDL,并没有强制的规定。在最短的时间内,用自己最熟悉的工具设计出高效,稳定,符合设计要求的电路才是我们的最终目的。
      HDL开发流程
      用VHDL/VerilogHD语言开发PLD/FPGA的完整流程为
      1.文本编辑:用任何文本编辑器都可以进行,也可以用专用的HDL编辑环境。通常VHDL文件保存为.vhd文件,Verilog文件保存为.v文件
      2.功能仿真:将文件调入HDL仿真软件进行功能仿真,检查逻辑功能是否正确(也叫前仿真,对简单的设计可以跳过这一步,只在布线完成以后,进行时序仿真)
      3.逻辑综合:将源文件调入逻辑综合软件进行综合,即把语言综合成最简的布尔表达式和信号的连接关系。逻辑综合软件会生成.edf(edif)的EDA工业标准文件。
      4.布局布线:将.edf文件调入PLD厂家提供的软件中进行布线,即把设计好的逻辑安放到PLD/FPGA内
      5.时序仿真:需要利用在布局布线中获得的精确参数,用仿真软件验证电路的时序。(也叫后仿真)
      6.编程下载:确认仿真无误后,将文件下载到芯片中
      通常以上过程可以都在PLD/FPGA厂家提供的开发工具(如MAXPLUSII,Foundation,ISE)中完成,但许多集成的PLD开发软件只支持VHDL/Verilog的子集,可能造成少数语法不能编译,如果采用专用HDL工具分开执行,效果会更好,否则这么多出售专用HDL开发工具的公司就没有存在的理由了。

文章评论0条评论)

登录后参与讨论
我要评论
0
6
关闭 站长推荐上一条 /2 下一条