【例 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
【例 3.2】4 位计数器
module count4(out,reset,clk);
output[3:0] out;
input reset,clk;
reg[3:0] out;
always @(posedge clk)
begin
王金明:《Verilog HDL 程序设计教程》
if (reset) out<=0; //同步复位
else
end
endmodule
out<=out+1; //计数
【例 3.3】4 位全加器的仿真程序
`timescale 1ns/1ns
`include "adder4.v"
module adder_tp; //测试模块的名字
reg[3:0] a,b;
reg cin;
wire[3:0] sum;
wire cout;
integer i,j;
//测试输入信号定义为 reg 型
//测试输出信号定义为 wire 型
adder4 adder(sum,cout,a,b,cin); //调用测试对象
always #5 cin=~cin;
initial
begin
a=0;b=0;cin=0;
for(i=1;i<16;i=i+1)
#10 a=i;
end
//设定 cin 的取值
//设定 a 的取值
- 1 -