logic conversion notices procedural assignments in tasks and functions

This commit is contained in:
Zachary Snow 2020-06-25 09:31:39 -07:00
parent 24071d74ac
commit 80154feb5e
3 changed files with 38 additions and 0 deletions

View File

@ -171,6 +171,8 @@ regIdents :: ModuleItem -> Writer Idents ()
regIdents (item @ AlwaysC{}) = regIdents' item
regIdents (item @ Initial{}) = regIdents' item
regIdents (item @ Final{}) = regIdents' item
regIdents (item @ (MIPackageItem Task {})) = regIdents' item
regIdents (item @ (MIPackageItem Function{})) = regIdents' item
regIdents _ = return ()
regIdents' :: ModuleItem -> Writer Idents ()

16
test/basic/logic_tf.sv Normal file
View File

@ -0,0 +1,16 @@
module top;
logic x, y, z;
task t;
x = 1;
endtask
function f;
y = 1;
f = 0;
endfunction
assign z = 0;
initial begin
t;
$display("%b %b %b %b", x, y, z, f());
$display("%b %b %b %b", x, y, z, f());
end
endmodule

20
test/basic/logic_tf.v Normal file
View File

@ -0,0 +1,20 @@
module top;
reg x, y;
wire z;
task t;
x = 1;
endtask
function f;
input x;
begin
y = 1;
f = 0;
end
endfunction
assign z = 0;
initial begin
t;
$display("%b %b %b %b", x, y, z, f(0));
$display("%b %b %b %b", x, y, z, f(0));
end
endmodule