`include "bcd.v"
module bcd_4(A,B,Cin,S,Cout);
input [15:0] A,B;
input Cin;
output [15:0] S;
output Cout;
wire w1,w2,w3;
bcd_adder U1(.A(A[3:0]),.B(B[3:0]),.Cin(Cin),.S(S[3:0]),.Cout(w1));
bcd_adder U2(.A(A[7:4]),.B(B[7:4]),.Cin(w1),.S(S[7:4]),.Cout(w2));
bcd_adder U3(.A(A[11:8]),.B(B[11:8]),.Cin(w2),.S(S[11:8]),.Cout(w3));
bcd_adder U4(.A(A[15:12]),.B(B[15:12]),.Cin(w3),.S(S[15:12]),.Cout(Cout));
endmodule
我已经使用四个4位BCD adder.The输入“A”和“B”设计了一个4位数BCD加法器正在服用十六进制values.how我可以写一个测试平台,以便输入值应仅为小数。如果({Cout,S} == A + B + Cin)$ display(“pass”);我不得不检查以下条件,
else $ stop;如何转换4位十六进制数的Verilog测试平台以BCD
不要忘了八进制的'o':) – toolic
@Dwikle我在unix中没有使用vi编辑器。我用for循环来生成输入值。默认情况下,输入值将是十六进制,所以我必须将它们转换为十进制,得到的十进制结果将被转换为十六进制来检查上面提到的条件。 – user3331420
其16位bcd加法器不是4位 – user3331420