2006-08-26 13:35:28 +02:00
|
|
|
// DESCRIPTION: Verilator: Verilog Test module
|
|
|
|
|
//
|
2020-03-21 16:24:24 +01:00
|
|
|
// This file ONLY is placed under the Creative Commons Public Domain, for
|
|
|
|
|
// any use, without warranty, 2003 by Wilson Snyder.
|
|
|
|
|
// SPDX-License-Identifier: CC0-1.0
|
2006-08-26 13:35:28 +02:00
|
|
|
|
2023-10-31 13:15:54 +01:00
|
|
|
class cls;
|
|
|
|
|
static task automatic tsk1;
|
|
|
|
|
integer task_assign = 1;
|
|
|
|
|
if (task_assign != 1) $stop;
|
|
|
|
|
task_assign = 2;
|
|
|
|
|
if (task_assign != 2) $stop;
|
|
|
|
|
endtask
|
|
|
|
|
static task tsk2;
|
|
|
|
|
integer task_assign = 1;
|
|
|
|
|
if (task_assign != 1) $stop;
|
|
|
|
|
task_assign = 2;
|
|
|
|
|
if (task_assign != 2) $stop;
|
|
|
|
|
endtask
|
|
|
|
|
endclass
|
|
|
|
|
|
2006-08-26 13:35:28 +02:00
|
|
|
module t;
|
|
|
|
|
|
|
|
|
|
integer top;
|
2010-01-22 02:08:45 +01:00
|
|
|
integer top_assign=1;
|
|
|
|
|
|
|
|
|
|
task automatic tsk;
|
|
|
|
|
integer task_assign = 1;
|
|
|
|
|
if (task_assign != 1) $stop;
|
|
|
|
|
task_assign = 2;
|
|
|
|
|
if (task_assign != 2) $stop;
|
|
|
|
|
endtask
|
2006-08-26 13:35:28 +02:00
|
|
|
|
|
|
|
|
initial begin
|
|
|
|
|
begin : a
|
2022-05-01 16:10:00 +02:00
|
|
|
integer lower;
|
|
|
|
|
integer lower_assign=1;
|
|
|
|
|
lower = 1;
|
|
|
|
|
top = 1;
|
|
|
|
|
if (lower != 1) $stop;
|
|
|
|
|
if (lower_assign != 1) $stop;
|
|
|
|
|
begin : aa
|
|
|
|
|
integer lev2;
|
|
|
|
|
lev2 = 1;
|
|
|
|
|
lower = 2;
|
|
|
|
|
lower_assign = 2;
|
|
|
|
|
top = 2;
|
|
|
|
|
end
|
|
|
|
|
if (lower != 2) $stop;
|
|
|
|
|
if (lower_assign != 2) $stop;
|
2006-08-26 13:35:28 +02:00
|
|
|
end
|
|
|
|
|
begin : b
|
2022-05-01 16:10:00 +02:00
|
|
|
integer lower;
|
|
|
|
|
lower = 1;
|
|
|
|
|
top = 2;
|
|
|
|
|
begin : empty
|
|
|
|
|
begin : empty
|
|
|
|
|
end
|
|
|
|
|
end
|
2006-08-26 13:35:28 +02:00
|
|
|
end
|
2023-10-31 13:15:54 +01:00
|
|
|
// Repeat task calls to ensure we reinit the initial value
|
|
|
|
|
tsk;
|
2010-01-22 02:08:45 +01:00
|
|
|
tsk;
|
2023-10-31 13:15:54 +01:00
|
|
|
cls::tsk1();
|
|
|
|
|
cls::tsk1();
|
|
|
|
|
cls::tsk2();
|
|
|
|
|
cls::tsk2();
|
2006-08-26 13:35:28 +02:00
|
|
|
$write("*-* All Finished *-*\n");
|
|
|
|
|
$finish;
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
endmodule
|