4.2 Verilog HDL语言的描述层次

本节主要介绍Verilog HDL语言的描述层次,同时针对系统级、算法级、RTL级、门级和开关级的建模进行简单介绍。

4.2.1 Verilog HDL语言描述能力综述

使用Verilog HDL语言可以从3个描述级别的5个抽象级别描述数字典路系统,具体包括系统级、算法级、寄存器传输级(Register Transfer Level,RTL)、门级和开关级,如表4-1所示。

表4-1 Verilog HDL语言设计层次总结

4.2.2 系统级和算法级建模

系统级建模和算法级建模常用来从功能上描述系统的规格、仿真系统或核心算法的功能和特性。这类描述一般不涉及具体的实现细节,只是用Verilog HDL语言描述系统功能,不考虑是否能通过EDA工具将设计转化成硬件设计,因此往往将其称为系统级或者算法级描述。

虽然Verilog HDL语言具备系统级和算法级描述能力,但与MATLAB或C++等高级语言相比仍存在很大的差距,因此在实际开发中,设计人员很少使用Verilog HDL语言的系统级和算法级建模能力。

4.2.3 RTL级建模

RTL级建模,也属于行为级描述范畴,在描述电路的时候只关注寄存器本身,以及寄存器到寄存器之间的逻辑功能,而不在意寄存器和组合逻辑的实现细节。RTL级描述最大的特点就在于它是目前最高层次的可综合描述语言。在EDA工具的帮助下,设计人员可以直接在RTL级设计电路,而无须从逻辑门电路(与门、或门和非门)的较低层次设计电路。

在最终实现时,所有的设计都需要映射到门级电路上,RTL级代码也不例外,只不过RTL代码通过EDA软件中的逻辑综合工具转化成设计网表,网表基本上由门电路组成。目前,RTL级设计代码是Verilog HDL程序设计中最常用的设计层次,因此逻辑综合是设计中必不可缺的部分。本书主要内容都是围绕着RTL级的代码设计和验证展开的。

4.2.4 门级和开关级建模

门级建模和开关级建模都属于结构描述范畴,都是对电路结构的具体描述,先分别把需要的逻辑门单元和MOS晶体管调出来,再用连线把这些基本单元连接起来构成电路。这两种结构化描述方式是简单且严格的,因为一方面只需要说明“某一个门电路或MOS管的某个端口”与“另一个门电路或MOS管的某个端口”相连;但另一方面这种建模方式要求设计者必须对基本门电路和MOS管的功能及连接方式熟悉,否则只要一个端口连错就会使整个模块无法工作。因此这两个层次的描述都类似于汇编语言和机器语言,虽然精确,但十分耗时耗力。

目前,可编程逻辑门数已达百万、千万门,对于大规模电路基于这两类较低层次设计时,效率低下且非常容易出错;但对于小规模的设计,特别是对性能要求非常高的设计,采用门级电路和开关级电路可以满足一些特殊要求。在大多数Verilog HDL程序开发中,基于这两个层次的设计方法已被抛弃。