Verilog HDL数字系统设计及实践
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.5 仿真和综合

Verilog HDL编程与传统高级语言(如C语言)编程的不同是,Verilog HDL代码通常分别用于仿真和综合两个部分,如图1.8所示。仿真是指利用仿真工具,在PC上对Verilog HDL代码所描述的电路功能进行验证。仿真是完全在PC上进行的,通过软件完成。仿真工具提供很多功能强大的调试功能,如查看波形等,可以帮助设计者方便且迅速地查找设计中的错误。综合是指将Verilog HDL描述的代码转换成实际的电路结构。转换后的电路可以用于生产并实现真正的芯片硬件电路。

图1.8 综合与仿真示意图

IEEE组织制定了Verilog HDL规范,用于定义Verilog HDL语言的语法,其中最新规范的编号为IEEE Std 1364TM—2005。有兴趣的读者可以在学习完本书的基础内容后参考规范,以便了解更多Verilog HDL语言的语法和特点。Verilog HDL的制定是为了使之能够从很高的层次描述电路的功能,其描述级别与C语言等高级编程语言极为接近。高层次的描述虽然给设计者设计硬件电路带来了方便,但是这些高级描述是站在算法的角度上来描写功能的,因此脱离了实际的电路结构。为此,EDA厂商开发了Verilog HDL的综合工具,用于自动地将高层次的Verilog HDL代码转换为实际的低层次电路结构(如与门、非门的相互连接等)。但是,由于Verilog的语法极为丰富,而实际的电路门单元功能有限,因此综合工具只能综合部分Verilog语法。这些可以被综合工具转换为实际电路结构的Verilog语法,通常称为Verilog HDL语言的可综合描述。Verilog HDL规范中定义的语法只有很小一部分可以综合,而且语法的书写风格会在很大程度上影响综合的结果。学习Verilog HDL语言,很大部分工作是学习如何进行可综合的Verilog HDL描述,以设计出高质量的芯片电路。

提示:可综合Verilog HDL描述的规范

IEEE Std 1364TM —2005中定义的Verilog HDL语法都可以用于仿真,但是只有小部分可以用于综合。可综合的Verilog描述由IEEE规范IEEE Std 1364.1TM —2002制定。此外,部分EDA综合工具可以综合一些可综合描述规范中未定义的Verilog HDL语法,但是综合的效果往往不佳,因此在实际工程中应谨慎使用。

本章描述的层次化Verilog HDL描述方式是可以综合的,因为层次化描述其实和实际的电路结构十分相似。比如用两个74x138器件构成复杂的译码器,在Verilog HDL中,一个3-8译码器的功能可以定义成一个模块,而通过模块的实例化,可以用3-8译码器构成复杂的译码器电路。