iverilog/ivtest/ivltests/pr1704726c.v

601 lines
12 KiB
Verilog

module top;
parameter parm = 1;
parameter name_v = 1; // genvar
localparam name_lpv = 0; // genvar
parameter name_t = 1; // task
parameter name_f = 1; // function
parameter name_i = 1; // module instance
parameter name_b = 1; // named block
parameter name_gl = 1; // generate block loop
parameter name_gi = 1; // generate block if
parameter name_gc = 1; // generate block case
parameter name_gb = 1; // generate block
parameter name_e = 1; // named event
parameter name_s = 1; // signal
wire [1:0] out;
/***********
* Check genvars
***********/
// Check genvar/parameter name issues.
genvar name_v;
generate
for (name_v = 0; name_v < 2; name_v = name_v + 1) begin
assign out[name_v] = name_v;
end
endgenerate
// Check genvar/localparam name issues.
genvar name_lpv;
generate
for (name_lpv = 0; name_lpv < 2; name_lpv = name_lpv + 1) begin
assign out[name_lpv] = name_lpv;
end
endgenerate
// Check genvar/genvar name issues.
// This is in a different file since this fails during parsing.
/***********
* Check tasks.
***********/
// Check task/parameter name issues.
task name_t;
$display("FAILED in task name_t");
endtask
// Check task/task name issues.
// This is in a different file since this fails during parsing.
// Check task/genvar name issues.
genvar name_tv;
generate
for (name_tv = 0; name_tv < 2; name_tv = name_tv + 1) begin
assign out[name_tv] = name_tv;
end
endgenerate
task name_tv;
$display("FAILED in task name_tv");
endtask
/***********
* Check functions.
***********/
// Check function/parameter name issues.
function name_f;
input in;
name_f = in;
endfunction
// Check function/task name issues.
task name_ft;
$display("FAILED in task name_ft");
endtask
function name_ft;
input in;
name_tf = in;
endfunction
// Check function/function name issues.
// This is in a different file since this fails during parsing.
// Check function/genvar name issues.
genvar name_fv;
generate
for (name_fv = 0; name_fv < 2; name_fv = name_fv + 1) begin
assign out[name_fv] = name_fv;
end
endgenerate
function name_fv;
input in;
name_fv = in;
endfunction
/***********
* Check module instances.
***********/
// Check modul instance/parameter name issues.
test name_i(out[0]);
// Check module instance/task name issues.
task name_it;
$display("FAILED in task name_it");
endtask
test name_it(out[0]);
// Check module instance/function name issues.
function name_if;
input in;
name_if = in;
endfunction
test name_if(out[0]);
// Check module instance/genvar name issues.
genvar name_iv;
generate
for (name_iv = 0; name_iv < 2; name_iv = name_iv + 1) begin
assign out[name_iv] = name_iv;
end
endgenerate
test name_iv(out[1]);
// Check module instance/module instance name issues.
test name_ii(out[0]);
test name_ii(out[1]);
/***********
* Check named blocks.
***********/
// Check named block/parameter name issues.
initial begin: name_b
$display("FAILED in name_b");
end
// Check named block/task name issues.
task name_bt;
$display("FAILED in task name_bt");
endtask
initial begin: name_bt
$display("FAILED in name_bt");
end
// Check named block/function name issues.
function name_bf;
input in;
name_bf = in;
endfunction
initial begin: name_bf
$display("FAILED in name_bf");
end
// Check named block/genvar name issues.
genvar name_bv;
generate
for (name_bv = 0; name_bv < 2; name_bv = name_bv + 1) begin
assign out[name_bv] = name_bv;
end
endgenerate
initial begin: name_bv
$display("FAILED in name_bv");
end
// Check named block/module instance name issues.
test name_bi(out[0]);
initial begin: name_bi
$display("FAILED in name_bi");
end
// Check named block/named block name issues.
initial begin: name_bb
$display("FAILED in name_bb(a)");
end
initial begin: name_bb
$display("FAILED in name_bb(b)");
end
/***********
* Check named events
***********/
// Check named event/parameter name issues.
event name_e;
// Check named event/task name issues.
task name_et;
$display("FAILED in task name_et");
endtask
event name_et;
// Check named event/function name issues.
function name_ef;
input in;
name_ef = in;
endfunction
event name_ef;
// Check named event/genvar name issues.
genvar name_ev;
generate
for (name_ev = 0; name_ev < 2; name_ev = name_ev + 1) begin
assign out[name_ev] = name_ev;
end
endgenerate
event name_ev;
// Check named event/module instance name issues.
test name_ei(out[0]);
event name_ei;
// Check named event/named block name issues.
initial begin: name_eb
$display("FAILED in name_eb");
end
event name_eb;
// Check named event/named event name issues.
// This is in a different file since this fails during parsing.
/***********
* Check generate loop blocks
***********/
genvar i;
// Check generate loop/parameter name issues.
generate
for (i = 0; i < 2; i = i + 1) begin: name_gl
assign out[i] = i;
end
endgenerate
// Check generate loop/task name issues.
task name_glt;
$display("FAILED in task name_glt");
endtask
generate
for (i = 0; i < 2; i = i + 1) begin: name_glt
assign out[i] = i;
end
endgenerate
// Check generate loop/function name issues.
function name_glf;
input in;
name_glf = in;
endfunction
generate
for (i = 0; i < 2; i = i + 1) begin: name_glf
assign out[i] = i;
end
endgenerate
// Check generate loop/genvar name issues.
genvar name_glv;
generate
for (name_glv = 0; name_glv < 2; name_glv = name_glv + 1) begin
assign out[name_glv] = name_glv;
end
endgenerate
generate
for (i = 0; i < 2; i = i + 1) begin: name_glv
assign out[i] = i;
end
endgenerate
// Check generate loop/module instance name issues.
test name_gli(out[0]);
generate
for (i = 0; i < 2; i = i + 1) begin: name_gli
assign out[i] = i;
end
endgenerate
// Check generate loop/named block name issues.
initial begin: name_glb
$display("FAILED in name_glb");
end
generate
for (i = 0; i < 2; i = i + 1) begin: name_glb
assign out[i] = i;
end
endgenerate
// Check generate loop/named event name issues.
event name_gle;
generate
for (i = 0; i < 2; i = i + 1) begin: name_gle
assign out[i] = i;
end
endgenerate
// Check generate loop/generate loop name issues.
generate
for (i = 0; i < 2; i = i + 1) begin: name_glgl
assign out[i] = i;
end
endgenerate
generate
for (i = 0; i < 2; i = i + 1) begin: name_glgl
assign out[i] = i;
end
endgenerate
/***********
* Check generate if blocks
***********/
// Check generate if/parameter name issues.
generate
if (parm == 1) begin: name_gi
assign out[1] = 1;
end
endgenerate
// Check generate if/task name issues.
task name_git;
$display("FAILED in task name_git");
endtask
generate
if (parm == 1) begin: name_git
assign out[1] = 1;
end
endgenerate
// Check generate if/function name issues.
function name_gif;
input in;
name_gif = in;
endfunction
generate
if (parm == 1) begin: name_gif
assign out[1] = 1;
end
endgenerate
// Check generate if/genvar name issues.
genvar name_giv;
generate
for (name_giv = 0; name_giv < 2; name_giv = name_giv + 1) begin
assign out[name_giv] = name_giv;
end
endgenerate
generate
if (parm == 1) begin: name_giv
assign out[1] = 1;
end
endgenerate
// Check generate if/module instance name issues.
test name_gii(out);
generate
if (parm == 1) begin: name_gii
assign out[1] = 1;
end
endgenerate
// Check generate if/named block name issues.
initial begin: name_gib
$display("FAILED in name_gib");
end
generate
if (parm == 1) begin: name_gib
assign out[1] = 1;
end
endgenerate
// Check generate if/named event name issues.
event name_gie;
generate
if (parm == 1) begin: name_gie
assign out[1] = 1;
end
endgenerate
// Check generate if/generate if name issues.
generate
if (parm == 1) begin: name_gigi
assign out[1] = 1;
end
endgenerate
generate
if (parm == 1) begin: name_gigi
assign out[1] = 0;
end
endgenerate
/***********
* Check generate case blocks
***********/
// Check generate case/parameter name issues.
generate
case (parm)
1: begin: name_gc
assign out[1] = 1;
end
default: begin: name_gc
assign out[1] = 0;
end
endcase
endgenerate
// Check generate case/task name issues.
task name_gct;
$display("FAILED in task name_gct");
endtask
generate
case (parm)
1: begin: name_gct
assign out[1] = 1;
end
default: begin: name_gct
assign out[1] = 0;
end
endcase
endgenerate
// Check generate case/function name issues.
function name_gcf;
input in;
name_gcf = in;
endfunction
generate
case (parm)
1: begin: name_gcf
assign out[1] = 1;
end
default: begin: name_gcf
assign out[1] = 0;
end
endcase
endgenerate
// Check generate case/genvar name issues.
genvar name_gcv;
generate
for (name_gcv = 0; name_gcv < 2; name_gcv = name_gcv + 1) begin
assign out[name_gcv] = name_gcv;
end
endgenerate
generate
case (parm)
1: begin: name_gcv
assign out[1] = 1;
end
default: begin: name_gcv
assign out[1] = 0;
end
endcase
endgenerate
// Check generate case/module instance name issues.
test name_gci(out[0]);
generate
case (parm)
1: begin: name_gci
assign out[1] = 1;
end
default: begin: name_gci
assign out[1] = 0;
end
endcase
endgenerate
// Check generate case/named block name issues.
initial begin: name_gcb
$display("FAILED in name_gcb");
end
generate
case (parm)
1: begin: name_gcb
assign out[1] = 1;
end
default: begin: name_gcb
assign out[1] = 0;
end
endcase
endgenerate
// Check generate case/named event name issues.
event name_gce;
generate
case (parm)
1: begin: name_gce
assign out[1] = 1;
end
default: begin: name_gce
assign out[1] = 0;
end
endcase
endgenerate
// Check generate case/generate case name issues.
generate
case (parm)
1: begin: name_gcgc
assign out[1] = 1;
end
default: begin: name_gcgc
assign out[1] = 0;
end
endcase
endgenerate
generate
case (parm)
1: begin: name_gcgc
assign out[1] = 1;
end
default: begin: name_gcgc
assign out[1] = 0;
end
endcase
endgenerate
/***********
* Check generate blocks (from 1364-2001)
***********/
// Check generate block/parameter name issues.
generate
begin: name_gb
assign out[0] = 0;
end
endgenerate
// Check generate block/task name issues.
task name_gbt;
$display("FAILED in task name_gbt");
endtask
generate
begin: name_gbt
assign out[0] = 0;
end
endgenerate
// Check generate block/function name issues.
function name_gbf;
input in;
name_gbf = in;
endfunction
generate
begin: name_gbf
assign out[0] = 0;
end
endgenerate
// Check generate block/genvar name issues.
genvar name_gbv;
generate
for (name_gbv = 0; name_gbv < 2; name_gbv = name_gbv + 1) begin
assign out[name_gbv] = name_gbv;
end
endgenerate
generate
begin: name_gbv
assign out[0] = 0;
end
endgenerate
// Check generate block/module instance name issues.
test name_gbi(out[0]);
generate
begin: name_gbi
assign out[0] = 0;
end
endgenerate
// Check generate block/named block name issues.
initial begin: name_gbb
$display("FAILED in name_gbb");
end
generate
begin: name_gbb
assign out[0] = 0;
end
endgenerate
// Check generate case/named event name issues.
event name_gbe;
generate
begin: name_gbe
assign out[0] = 0;
end
endgenerate
// Check generate case/generate case name issues.
generate
begin: name_gbgb
assign out[0] = 0;
end
endgenerate
generate
begin: name_gbgb
assign out[0] = 0;
end
endgenerate
initial $display("FAILED");
endmodule
module test(out);
output out;
reg out = 1'b0;
endmodule