结构化描述形式

在 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 连接,余下的由此类推。

 



  Verilog HDL简介|

Copyright © 2005-2008 All Rights Reserved
ARM开发板网 版权所有