第2节 硬件描述语言简介
第2节 硬件描述语言简介
硬件描述语言HDL
- 描述数字电路和系统的语言。利用这种语言,可以从上层到下层(从抽象到具体)逐层描述自己的设计思想,用一系列分层次的模块来表示复杂的数字系统。
- 然后,利用电子设计自动化(EDA)工具,逐层进行仿真验证,再把其中需要变为实际电路的模块组合,经过自动综合工具转换到门级电路网表。
- 接下去,再用专用集成电路 ASIC 或现场可编程门阵列 FPGA 自动布局布线工具,把网表转换为要实现的具体电路结构。
- 硬件描述语言的发展至今已有20多年的历史,并成功地应用于设计的各个阶段:建模、仿真、验证和综合等。到20世纪80年代,已出现了上百种硬件描述语言,对设计自动化起到了极大的促进和推动作用。
- 这些语言一般各自面向特定的设计领域和层次,而且众多的语言使用户无所适从。因此,急需一种面向设计的多领域、多层次并得到普遍认同的标准硬件描述语言。20世纪80年代后期,VHDL和Verilog HDL语言适应了这种趋势的要求,先后成为IEEE标准。
- 随着系统级FPGA以及系统芯片的出现,软硬件协调设计和系统设计变得越来越重要。为适应新的情况,出现了很多新的硬件描述语言,像Superlog、System Verilog、SystemC、Cynlib C++、HandleC等等。
学习HDL的几点提示
- 了解HDL的可综合性问题:
--如果HDL代码是用于硬件实现(如用于FPGA设计),就必须保证这些代码可综合,即HDL代码的功能可以用硬件电路实现。不是所有的HDL描述都能用硬件实现的。
--所有的HDL描述都可以用于仿真,但不是所有的HDL描述都能用硬件实现。 不可综合的HDL语句在软件综合时将被忽略或者报错。
- 用硬件电路设计思想来编写HDL:
--编写HDL,就是在描述一个电路,写完一段程序后,应当对生成的电路有大体上的了解。
- 语法掌握贵在精,不在多
--30%的基本HDL语句就可以完成95%以上的电路设计,很多生僻的语句并不能被所有的综合软件所支持,容易产生兼容性问题,也不利于其他人阅读和修改。
HDL开发流程
用HDL开发FPGA/CPLD的完整流程为:
- 设计输入:用任何文本编辑器都可以进行 HDL 设计。
- 功能仿真:检查逻辑功能是否正确。
- 逻辑综合:把设计综合成最简的布尔表达式和信号的连接关系。
- 布局布线:即把设计好的逻辑安放到CPLD或FPGA内。
- 时序仿真:利用在布局布线中获得的精确参数,用仿真软件验证电路的时序。
- 编程下载:确认仿真无误后,将设计下载到芯片中。
VHDL
- 早在80年代初,美国国防部开始进行VHDL的开发。
- 1987年,VHDL成为IEEE标准,称为IEEE 1076-1987。
- 第二个版本是在1993年制定的,称为1076-1993,增加了一些新的命令和属性。
Verilog HDL
- 1990年,Cadence公司公开Verilog HDL语言;
- IEEE于1995年制定了Verilog HDL的IEEE标准,即Verilog HDL 1364-1995;
- 2001年发布了Verilog HDL 1364-2001标准。在这个标准中,加入了Verilog HDL-A标准,使Verilog有了模拟设计描述的能力。
其他HDL
- ABEL-HDL :一种早期的硬件描述语言
- AHDL :移植性不好,只用于Altera的开发系统
- 基于C/C++的HDL:
--SystemC —— IEEE 1666(2005.12)
--HandleC
--......
- SystemVerilog —— IEEE 1800(2005.11)
- ……
选择VHDL还是Verilog HDL?
- 目前最主要的硬件描述语言是VHDL和Verilog HDL。
- 两种语言的差别不大,他们的描述能力也类似。掌握其中一种语言以后,可以通过短期的学习,较快的学会另一种语言。
- 选择何种语言可以看周围人群的使用习惯,这样可以方便日后的学习交流。
- 如果是ASIC设计人员,则应掌握verilog,因为在IC设计领域,90%以上的公司都采用verilog进行设计。对于CPLD/FPGA设计者而言,两种语言可以自由选择。
<<上一节 下一节>>