63 lines
1.3 KiB
Coq
63 lines
1.3 KiB
Coq
|
|
module test ();
|
||
|
|
parameter param = 3;
|
||
|
|
reg [2:0] dummy;
|
||
|
|
|
||
|
|
initial dummy = block.f(0);
|
||
|
|
|
||
|
|
generate
|
||
|
|
case (param)
|
||
|
|
1, 2: if (param==1) begin : block
|
||
|
|
function [2:0] f;
|
||
|
|
input i;
|
||
|
|
begin
|
||
|
|
$display ("if param==1");
|
||
|
|
f = param;
|
||
|
|
end
|
||
|
|
endfunction
|
||
|
|
end else begin : block
|
||
|
|
function [2:0] f;
|
||
|
|
input i;
|
||
|
|
begin
|
||
|
|
$display ("else if param==2");
|
||
|
|
f = param;
|
||
|
|
end
|
||
|
|
endfunction
|
||
|
|
end
|
||
|
|
|
||
|
|
4: begin : block
|
||
|
|
function [2:0] f;
|
||
|
|
input i;
|
||
|
|
begin
|
||
|
|
$display ("if param==4");
|
||
|
|
f = param;
|
||
|
|
end
|
||
|
|
endfunction // f
|
||
|
|
end
|
||
|
|
endcase
|
||
|
|
endgenerate
|
||
|
|
endmodule
|
||
|
|
|
||
|
|
module top ();
|
||
|
|
test #(1) a();
|
||
|
|
test #(2) b();
|
||
|
|
test #(4) c();
|
||
|
|
|
||
|
|
initial begin
|
||
|
|
#1 if (a.dummy !== 1) begin
|
||
|
|
$display("FAILED -- a.dummy = %d", a.dummy);
|
||
|
|
$finish;
|
||
|
|
end
|
||
|
|
if (b.dummy !== 2) begin
|
||
|
|
$display("FAILED -- b.dummy = %d", b.dummy);
|
||
|
|
$finish;
|
||
|
|
end
|
||
|
|
if (c.dummy !== 4) begin
|
||
|
|
$display("FAILED -- c.dummy = %d", c.dummy);
|
||
|
|
$finish;
|
||
|
|
end
|
||
|
|
|
||
|
|
$display("PASSED");
|
||
|
|
end // initial begin
|
||
|
|
|
||
|
|
endmodule
|