文档介绍:第九讲
不同抽象级别的
Verilog HDL模型
概述
Verilog 模型可以是实际电路中不同级别的抽象。所谓不同级别的抽象级别,实际上是指同一个物理电路,可以在不同的层次上用Verilog语言来描述它。如果只是从行为和功能的角度来描述某一电路模块,就称为行为模块;如果从电路结构的角度来描述该电路模块,就称为结构模块。
抽象级别
系统级(system):是针对整个电子系统的性能的描述,
是系统的最高层次的描述,目前以C语言为主。
算法级(algorithmic):对每一个功能模块完成行为描述
RTL级(RegisterTransferLevel):用数字电路来实现的算法
和功能,数字电路可以看作寄存器和组合电路的合成
门级(gate-level):描述逻辑门和他们之间的连接关系。
开关级(switch-level):描述晶体管和他们之间的连接关系
其中系统级、算法级和RTL级属于行为级;门级和开关
级属于结构级。
建模方式
在hdl的建模中,主要有结构化描述方式、
同方式或混合方式对设计建模。
在实际的设计中,往往是多种设计模型的混
合。一般地,对顶层设计,采用结构描述方
式,对低层模块,可采用数据流、行为级或
两者的结合。
结构化的建模方式就是通过对电路结构的描述来建
模,即通过对器件的调用(hdl概念称为例化),并使
用线网来连接各器件的描述方式。
数据流的建模方式就是通过对数据流在设计中的具
体行为的描述来建模。最基本的机制就是用连续赋
值语句。在连续赋值语句中,某个值被赋给某个线网
变量(信号)。
行为方式的建模是指采用对信号行为级的描述(不
是结构级的描述)的方法来建模。在表示方面,类似
数据流的建模方式,但一般是把用initial 块语句或
always 块语句描述的归为行为建模方式。行为建模方
式通常需要借助一些行为级的运算符如加法运算符
(+),减法运算符(-)等。
在本课程里我们也是把数据流描述归属为行为描述。
二选一选择器的设计
结构描述方式
module muxtwo (out, a, b, sl);
Inout a , b ,sl ;
Output out;
Not u1(nsl, sl);
And #1 u2(sela, a, nsl);
And #1 u3(selb, b, sl);
Or #2 u4(out ,sela ,selb);
endmodule
行为描述方式
module muxtwo(out,a,b,sel);
input a,b,sel;
output out;
reg out;
always@(a or b or sel)
if(sel==0)
out=a;
else
out=b;
endmodule
行为描述方式建模
硬件电路的行为特性则主要指该电路输入、
输出信号间的逻辑关系,这种逻辑关系以何
种方式表达更为合适,取决于所处的阶段,
或者说取决于所处的级别。
在可综合的电路设计中,一般采用always过
程语句来描述电路的行为特性。这种行为描
述方式即适合于时序逻辑电路,也适合于组
合逻辑电路的设计
模块采用行为描述方式时的基本语法格式如下:
module <模块名>(<端口列表>)
模块端口说明
参数定义(可选)
数据类型说明
过程块(initial过程块或always过程块,可有一个或多个)
连续赋值语句;
任务定义(task)(可选)
函数定义(function)(可选)
endmodule
其中:
端口列表中可以有单个或多个输入、输出或双向端口;这些端口类型要在“模块端口说明”部分进行类型说明。