diff options
author | Zachary Snow <zach@zachjs.com> | 2021-05-27 16:47:02 -0400 |
---|---|---|
committer | Zachary Snow <zachary.j.snow@gmail.com> | 2021-06-01 13:17:41 -0400 |
commit | 8cfed1a97957e4c096d1e0a0304d978bcb27e116 (patch) | |
tree | ea43c00a06a8e1bf86eb11fbdcd19ecf948dc4c1 /tests/verilog/package_task_func.sv | |
parent | 6d5d8457883e5de8df58997d95373d3433b781bf (diff) | |
download | yosys-8cfed1a97957e4c096d1e0a0304d978bcb27e116.tar.gz yosys-8cfed1a97957e4c096d1e0a0304d978bcb27e116.tar.bz2 yosys-8cfed1a97957e4c096d1e0a0304d978bcb27e116.zip |
sv: support tasks and functions within packages
Diffstat (limited to 'tests/verilog/package_task_func.sv')
-rw-r--r-- | tests/verilog/package_task_func.sv | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/tests/verilog/package_task_func.sv b/tests/verilog/package_task_func.sv new file mode 100644 index 000000000..2df7a5205 --- /dev/null +++ b/tests/verilog/package_task_func.sv @@ -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 |