1SMB5949BT3 Vemog HDL的运算符
发布时间:2019/10/13 18:44:41 访问次数:1104
1SMB5949BT3按照自底向上的方法描述的4位全加器模块如例4.6.3所示。首先,通过调用基本门级元件xor、and定义了底层的半加器模块halfadder,然后调用两个半加器模块halfadder和一个基本元件or组合成为全加器模块ful-ladder,最后调用4个1位的全加器模块fu11adder构成顶层的4位全加器G上层模块调用下层模块时,通过模块名完成调用过程,且调用名不能省略;在调用时可以使用一套新的端口,也可以使用同名的旧端口,但必须注意端口的排列次序。例如,第二个模块中的调用语句halfadder HA 1(S1,D1,A,B)的输出端口更改为S1、D1,而输人端口仍为A、B。除了按照原来端口排列次序(位置)调用下层模块的方式之外,还可以通过端口名称对应调用下层模块。haradder HA1 (.B(B),.s(s1),Co(D1),.A(A))就是一个例子,它实现的功能与上面的调用语句完全相同。带有圆点的名称(例如,s、.C0等)是定义下层模块时使用的端口名称,写在圆括号内的名称(例如S1、D1等)是上层模块调用时使用的新端口名。用这种方法调用模块时,端口的排列次序是任意的。注意,在硬件描述语言中,调用模块的含义并不是程序运行中的进程转移,而是将所调用的模块在调用的位置复制一遍。另外,模块是不能嵌套的,即不能在一个模块的关键词m0dule
和endm0dule之间插入另一个模块。
例4.6.3
//′gate-level hierarchica1 description of 4-bit adder
//description of half adder(see Fig 4・4.29(a))
module ha1fadder(S,C,A,B);
input A,B;
output s,C;
//Instantiate prilnitive gates
xor(S,A,B);
and(C,A,B);
end1nodule
//Description of 1ˉbit full adder(see Fig 4.4.31(a))
module ft111adder(s,Co,A,B,CI);
input A,B,CI;
output s,Co;
wire s1,D1,D2;//内部节点信号
//Instantiate the halfadder
halfadder HA1(s1,D1,A,B);
1SMB5949BT3按照自底向上的方法描述的4位全加器模块如例4.6.3所示。首先,通过调用基本门级元件xor、and定义了底层的半加器模块halfadder,然后调用两个半加器模块halfadder和一个基本元件or组合成为全加器模块ful-ladder,最后调用4个1位的全加器模块fu11adder构成顶层的4位全加器G上层模块调用下层模块时,通过模块名完成调用过程,且调用名不能省略;在调用时可以使用一套新的端口,也可以使用同名的旧端口,但必须注意端口的排列次序。例如,第二个模块中的调用语句halfadder HA 1(S1,D1,A,B)的输出端口更改为S1、D1,而输人端口仍为A、B。除了按照原来端口排列次序(位置)调用下层模块的方式之外,还可以通过端口名称对应调用下层模块。haradder HA1 (.B(B),.s(s1),Co(D1),.A(A))就是一个例子,它实现的功能与上面的调用语句完全相同。带有圆点的名称(例如,s、.C0等)是定义下层模块时使用的端口名称,写在圆括号内的名称(例如S1、D1等)是上层模块调用时使用的新端口名。用这种方法调用模块时,端口的排列次序是任意的。注意,在硬件描述语言中,调用模块的含义并不是程序运行中的进程转移,而是将所调用的模块在调用的位置复制一遍。另外,模块是不能嵌套的,即不能在一个模块的关键词m0dule
和endm0dule之间插入另一个模块。
例4.6.3
//′gate-level hierarchica1 description of 4-bit adder
//description of half adder(see Fig 4・4.29(a))
module ha1fadder(S,C,A,B);
input A,B;
output s,C;
//Instantiate prilnitive gates
xor(S,A,B);
and(C,A,B);
end1nodule
//Description of 1ˉbit full adder(see Fig 4.4.31(a))
module ft111adder(s,Co,A,B,CI);
input A,B,CI;
output s,Co;
wire s1,D1,D2;//内部节点信号
//Instantiate the halfadder
halfadder HA1(s1,D1,A,B);