| 
 | 
 
【例 3.1】4 位全加器  
module adder4(cout,sum,ina,inb,cin);  
output[3:0] sum;  
output cout;  
input[3:0] ina,inb;  
input cin;  
assign {cout,sum}=ina+inb+cin;  
endmodule  
  
 
`timescale 1ns/1ns  
 
`include "adder4.v"  
 
module adder_tp;                     //测试模块的名字  
 
reg[3:0] a,b;                        //测试输入信号定义为 reg型  
 
reg cin;  
 
wire[3:0] sum;                       //测试输出信号定义为wire型  
 
wire cout;  
 
integer i,j;  
 
adder4 adder(sum,cout,a,b,cin);  //调用测试对象  
 
always #5 cin=~cin;                  //设定 cin的取值  
 
initial  
 
begin  
 
a=0;b=0;cin=0;  
 
for(i=1;i<16;i=i+1)  
 
#10   a=i;                           //设定 a的取值  
 
end  
  initial  
 
    begin  
 
    for(j=1;j<16;j=j+1)  
 
    #10   b=j;                               //设定b 的取值  
 
    end  
 
    initial                                  //定义结果显示格式  
 
    begin  
 
    $monitor($time,,,"%d + %d + %b={%b,%d}",a,b,cin,cout,sum);  
 
    #160  $finish;  
 
    end  
 
    endmodule  
 
2者有什么区别  为什么在Q2里面不能用 
`timescale 1ns/1ns  
`include "adder4.v"  
求解答  谢谢 |   
 
 
 
 |