mirror of
https://github.com/YosysHQ/yosys
synced 2025-04-23 00:55:32 +00:00
sv: support tasks and functions within packages
This commit is contained in:
parent
6d5d845788
commit
8cfed1a979
5 changed files with 56 additions and 2 deletions
30
tests/verilog/package_task_func.sv
Normal file
30
tests/verilog/package_task_func.sv
Normal file
|
@ -0,0 +1,30 @@
|
|||
package P;
|
||||
localparam Y = 2;
|
||||
localparam X = Y + 1;
|
||||
task t;
|
||||
output integer x;
|
||||
x = Y;
|
||||
endtask
|
||||
function automatic integer f;
|
||||
input integer i;
|
||||
f = i * X;
|
||||
endfunction
|
||||
function automatic integer g;
|
||||
input integer i;
|
||||
g = i == 0 ? 1 : Y * g(i - 1);
|
||||
endfunction
|
||||
localparam Z = g(4);
|
||||
endpackage
|
||||
|
||||
module top;
|
||||
integer a;
|
||||
initial P::t(a);
|
||||
integer b = P::f(3);
|
||||
integer c = P::g(3);
|
||||
integer d = P::Z;
|
||||
|
||||
assert property (a == 2);
|
||||
assert property (b == 9);
|
||||
assert property (c == 8);
|
||||
assert property (d == 16);
|
||||
endmodule
|
4
tests/verilog/package_task_func.ys
Normal file
4
tests/verilog/package_task_func.ys
Normal file
|
@ -0,0 +1,4 @@
|
|||
read_verilog -sv package_task_func.sv
|
||||
proc
|
||||
opt -full
|
||||
sat -verify -seq 1 -prove-asserts -show-all
|
Loading…
Add table
Add a link
Reference in a new issue