mirror of https://github.com/zachjs/sv2v.git
66 lines
1.6 KiB
Systemverilog
66 lines
1.6 KiB
Systemverilog
package A;
|
|
localparam FOO = 37;
|
|
localparam BAR = 97;
|
|
endpackage
|
|
package B;
|
|
localparam FOO = -37;
|
|
localparam BAR = -97;
|
|
endpackage
|
|
package C;
|
|
typedef logic [3:0] pack_t;
|
|
endpackage
|
|
package D;
|
|
function C::pack_t pack;
|
|
input logic x;
|
|
pack = {$bits(C::pack_t){x}};
|
|
endfunction
|
|
endpackage
|
|
package E;
|
|
import D::*;
|
|
export D::pack;
|
|
endpackage
|
|
package F;
|
|
localparam MAGIC = -42;
|
|
localparam PIZZAZZ = -5;
|
|
endpackage
|
|
module top;
|
|
import A::FOO;
|
|
import B::BAR;
|
|
initial begin
|
|
$display(A::FOO);
|
|
$display(A::BAR);
|
|
$display(B::FOO);
|
|
$display(B::BAR);
|
|
$display(FOO);
|
|
$display(BAR);
|
|
$display("%d", D::pack(0));
|
|
$display("%d", D::pack(1));
|
|
$display("%d", E::pack(0));
|
|
$display("%d", E::pack(1));
|
|
end
|
|
import F::*;
|
|
initial begin
|
|
$display("imported MAGIC %d", MAGIC);
|
|
$display("imported MAGIC %d", F::MAGIC);
|
|
begin
|
|
localparam MAGIC = 42;
|
|
$display("local MAGIC %d", MAGIC);
|
|
$display("imported MAGIC %d", F::MAGIC);
|
|
end
|
|
$display("imported MAGIC %d", MAGIC);
|
|
$display("imported MAGIC %d", F::MAGIC);
|
|
end
|
|
localparam PIZZAZZ = -6;
|
|
initial begin
|
|
$display("local PIZZAZZ %d", PIZZAZZ);
|
|
$display("imported PIZZAZZ %d", F::PIZZAZZ);
|
|
begin
|
|
localparam PIZZAZZ = -7;
|
|
$display("shadowed local PIZZAZZ %d", PIZZAZZ);
|
|
$display("imported PIZZAZZ %d", F::PIZZAZZ);
|
|
end
|
|
$display("local PIZZAZZ %d", PIZZAZZ);
|
|
$display("imported PIZZAZZ %d", F::PIZZAZZ);
|
|
end
|
|
endmodule
|