×
嵌入式 > 技术百科 > 详情

Verilog HDL结构化描述形式

发布时间:2023-04-21 发布时间:
|

在Verilog HDL中可使用如下方式描述结构:

1) 内置门原语(在门级);

2) 开关级原语(在晶体管级);

3) 用户定义的原语(在门级);

4) 模块实例 (创建层次结构)。

通过使用线网来相互连接。下面的结构描述形式使用内置门原语描述的全加器电路实例。

module FA_Str (A, B, Cin, Sum, Cout);

input A, B, Cin;

output Sum, Cout;

wire S1, T1, T2, T3;

xor

X1 (S1, A, B),

X2 (Sum, S1, Cin);

and

A1 (T3, A, B),

A2 (T2, B, Cin),

A3 (T1, A, Cin),

or

O1 (Cout, T1, T2, T3);

endmodule

在这一实例中,模块包含门的实例语句,也就是说包含内置门xor、and和or 的实例语句。门实例由线网类型变量S1、T1、T2和T3互连。由于没有指定的顺序, 门实例语句可以以任何顺序出现;图中显示了纯结构;xor、and和or是内置门原语;X1、X2、A1等是实例名称。紧跟在每个门后的信号列表是它的互连;列表中的第一个是门输出,余下的是输入。例如,S1与xor 门实例X1的输出连接,而A和B与实例X1的输入连接。

4位全加器可以使用4个1位全加器模块描述。下面是4位全加器的结构描述形式。

module FourBitFA (FA, FB, FCin, FSum, FCout );

parameter SIZE = 4;

input [SIZE:1] FA, FB;

output [SIZE:1] FSum

input FCin;

input FCout;

wire [ 1: SIZE-1] FTemp;

FA_Str

FA1( .A (FA[1]), .B(FB[1]), .Cin(FCin),

.Sum(FSum[1]), .Cout(FTemp[2])),

FA2( .A (FA[2]), .B(FB[2]), .Cin(FTemp[1]),

.Sum(FSum[2]), .Cout(FTemp[2])),

FA3(FA[3], FB[3], FTemp[2], FSum[3], FTemp[3],

FA4(FA[4], FB[4], FTemp[3], FSum[4], FCout);

endmodule

在这一实例中,模块实例用于建模4位全加器。在模块实例语句中,端口可以与名称或位置关联。前两个实例FA1和FA2使用命名关联方式,也就是说,端口的名称和它连接的线网被显式描述(每一个的形式都为“.port_name (net_name))。最后两个实例语句,实例FA3和FA4使用位置关联方式将端口与线网关联。这里关联的顺序很重要,例如,在实例FA4中,第一个FA[4]与FA_Str 的端口A连接,第二个FB[4]与FA_Str 的端口B连接,余下的由此类推。


『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
Keil5(MDK5)在调试(debug)过程中遇到的问题