问题
组合电路设计并测试,设计一个实现10裁判电路设计,并设计测试文件进行测试,查看测试结果是否符合逻辑要求。每个裁判同意或不同意,裁判结果分为通过(同意人数多)、不通过(不同意人数多)、待定(同意与不同意相等)。
verilog代码
1 2 3 4 5 6 7 8 9 10 11 12 13
| module lab10(a,out); input[9:0] a; output out; reg[1:0] out; reg[3:0] sum; always@(a,sum,out) begin sum=a[0]+a[1]+a[2]+a[3]+a[4]+a[5]+a[6]+a[7]+a[8]+a[9]; if(sum>5) out=2'b01; else if(sum<5) out=2'b00; else out=2'b10; end endmodule
|
仿真测试代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| `timescale 1 ps/ 1 ps module lab10_vlg_tst(); reg eachvec; reg [9:0] a; wire [1:0] out; lab10 i1 ( .a(a), .out(out) ); initial begin $display("Running testbench"); a=10'b1111111110; #1 $display("input:%b -- out:%b", a,out); #5 a=10'b0000000001; #1 $display("input:%b -- out:%b", a,out); #5 a=10'b1111100000; #1 $display("input:%b -- out:%b", a,out); #5 ; end always begin @eachvec; end endmodule
|
仿真结果
