module compare_2_str(a_lt_b,a_gt_b,a_eq_b,a,b);
input [1:0] a,b;
output a_lt_b,a_gt_b,a_eq_b;
reg a_lt_b,a_gt_b,a_eq_b;
always @(a or b)
begin
a_lt_b=0;
a_gt_b=0;
a_eq_b=0;
if(a==b) a_eq_b=1;
else if(a>b) a_gt_b=1;
else a_lt_b=1;
end
endmodule
module system_clock(clk);
parameter PERIOD=100;
output clk;
reg clk;
initial
clk=0;
always
begin
#(PERIOD/2) clk=~clk;
#(PERIOD/2) clk=~clk;
end
always @(posedge clk)
if($time>1000) #(PERIOD-1) $stop;
endmodule
module test;
wire a1,a0,b1,b0;
wire a_lt_b,a_gt_b,a_eq_b;
system_clock #400 clk(a1);
system_clock #200 clk(a0);
system_clock #100 clk(b1);
system_clock #50 clk(b0);
compare_2_str A1(a_lt_b,a_gt_b,a_eq_b,a1,a0,b1,b0);
endmodule
input [1:0] a,b;
output a_lt_b,a_gt_b,a_eq_b;
reg a_lt_b,a_gt_b,a_eq_b;
always @(a or b)
begin
a_lt_b=0;
a_gt_b=0;
a_eq_b=0;
if(a==b) a_eq_b=1;
else if(a>b) a_gt_b=1;
else a_lt_b=1;
end
endmodule
module system_clock(clk);
parameter PERIOD=100;
output clk;
reg clk;
initial
clk=0;
always
begin
#(PERIOD/2) clk=~clk;
#(PERIOD/2) clk=~clk;
end
always @(posedge clk)
if($time>1000) #(PERIOD-1) $stop;
endmodule
module test;
wire a1,a0,b1,b0;
wire a_lt_b,a_gt_b,a_eq_b;
system_clock #400 clk(a1);
system_clock #200 clk(a0);
system_clock #100 clk(b1);
system_clock #50 clk(b0);
compare_2_str A1(a_lt_b,a_gt_b,a_eq_b,a1,a0,b1,b0);
endmodule
