`timescale 1ns/10ps
module ymq24(
a,
b,
y
);
input a,b;
output reg[3:0] y;
always@(a,b,y)
case({a,b})
2'b00:y=4'b0001;
2'b01:y=4'b0010;
2'b10:y=4'b0100;
2'b11:y=4'b1000;
default:y=4'b0001;
endcase
endmodule
//testbench
`timescale 1ns/10ps
module ymq24_tb();
reg a,b;
wire[3:0] y;
ymq24 u1(
.a(a),
.b(b),
.y(y)
);
initial begin
a<=0;b<=0;
#100 $stop;
end
always #10 a<={$random} %2;
always #10 b<={$random} %2;
/*initial
begin
$timeformat(-9,0,"ns",6);
$monitor("@time %t:a=%b,b=%b,y=%b",$time,a,b,y);
end
*/
endmodule