A 4-bit Ripple Carry Adder in Verilog (4位元加法器)
//===============================
// Ch07 adder_4bit.v
// 四位元全加法器 (使用加法運算子)
module FA_4bit (S, Co, A, B, Ci);
input [3:0] A, B; // A, B 四位元輸入
input Ci; // Ci 一位元輸入
output Co; // Co 一位元進位輸出
output [3:0] S; // S 四位元加法和輸出
// 使用加法運算子
assign {Co, S} = A + B + Ci;
endmodule
//===============================
/*
module FA_4bit (S, Co, A, B, Ci);
input [3:0] A, B; // A, B 四位元輸入
input Ci; // Ci 一位元輸入
output Co; // Co 一位元進位輸出
output [3:0] S; // S 四位元加法和輸出
*/
//===========================================
// 時間單位 100ns, 時間精確度1 ps
`timescale 100ns/1ps
module T;
// Outputs
wire [3:0] S;
wire Co;
// Inputs
reg [3:0] A = 4'b0000;
reg [3:0] B = 4'b0000;
reg Ci = 1'b0;
integer i;
// Instantiate the Unit Under Test (UUT)
FA_4bit UUT(S, Co, A, B, Ci);
initial
begin
#350 // Final time: 1600 ns
$stop;
end
initial begin
$monitor (S, Co, A, B, Ci);
for(i=1; i<=15; i=i+1)
begin
#20 {A,Ci}= i*5+8; B=i*2;
end
end
endmodule
沒有留言:
張貼留言