组合逻辑电路即敏感列表中没有时序相关的信号的逻辑电路,本次实验设计一个最简单的的计算电路,传入A和B的值,返回A+B、A-B和A,B的比较结果。比较大小时,如果A>B,则返回01,A<B则返回11,未传入值则返回00;
RTL级代码如下:
module compare(
input clk,
input rst,
input[15:0] a,
input[15:0] b,
output reg [1:0] result,
output reg [15:0] plus,
output reg [15:0] sub
);
always@(*)
if(!rst)
result = 2'b00;
else if(a > b)
result <= 2'b01;
else if(a < b)
result <= 2'b11;
else
result <= 2'b00;
always@(*)
if(!rst)
begin
plus = 16'b0;
sub = 16'b0;
end
else begin
plus = a + b;
sub = a - b;
end
endmodule
RTL电路图如下:
仿真TestBench代码如下:
`timescale 1 ps/ 1 ps
module compare_vlg_tst();
// test vector input registers
reg [15: