mirror of
https://github.com/YosysHQ/yosys.git
synced 2026-08-28 17:14:11 +02:00
sv: support tasks and functions within packages
This commit is contained in:
committed by
Zachary Snow
parent
6d5d845788
commit
8cfed1a979
@@ -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
|
||||
Reference in New Issue
Block a user