verilator/test_regress/t/t_package_export.v

71 lines
1.3 KiB
Systemverilog
Raw Normal View History

// DESCRIPTION: Verilator: Verilog Test module
//
// This file ONLY is placed under the Creative Commons Public Domain.
// SPDX-FileCopyrightText: 2012 Jeremy Bennett
// SPDX-License-Identifier: CC0-1.0
// See issue #591
2017-09-21 03:04:59 +02:00
package pkg1;
2026-03-10 02:38:29 +01:00
parameter PARAM2 = 16;
parameter PARAM3 = 16;
2017-09-21 03:04:59 +02:00
endpackage : pkg1
2017-09-21 03:04:59 +02:00
package pkg10;
2026-03-10 02:38:29 +01:00
import pkg1::*;
import pkg1::*; // Ignore if already
2017-09-21 03:04:59 +02:00
`ifdef T_PACKAGE_EXPORT
2026-03-10 02:38:29 +01:00
export * ::*; // Not supported on all simulators
2017-09-21 03:04:59 +02:00
`endif
2026-03-10 02:38:29 +01:00
parameter PARAM1 = 8;
2017-09-21 03:04:59 +02:00
endpackage
package pkg11;
2026-03-10 02:38:29 +01:00
import pkg10::*;
2017-09-21 03:04:59 +02:00
endpackage
package pkg20;
2026-03-10 02:38:29 +01:00
import pkg1::*;
2017-09-21 03:04:59 +02:00
`ifdef T_PACKAGE_EXPORT
2026-03-10 02:38:29 +01:00
export pkg1::*;
2017-09-21 03:04:59 +02:00
`endif
2026-03-10 02:38:29 +01:00
parameter PARAM1 = 8;
2017-09-21 03:04:59 +02:00
endpackage
package pkg21;
2026-03-10 02:38:29 +01:00
import pkg20::*;
2017-09-21 03:04:59 +02:00
endpackage
package pkg30;
2026-03-10 02:38:29 +01:00
import pkg1::*;
`ifdef T_PACKAGE_EXPORT
2026-03-10 02:38:29 +01:00
export pkg1::PARAM2; export pkg1::PARAM3;
2020-05-17 17:06:14 +02:00
`endif
`ifdef T_PACKAGE_EXPORT_BAD
2026-03-10 02:38:29 +01:00
export pkg1::BAD_DOES_NOT_EXIST;
`endif
2026-03-10 02:38:29 +01:00
parameter PARAM1 = 8;
2017-09-21 03:04:59 +02:00
endpackage
package pkg31;
2026-03-10 02:38:29 +01:00
import pkg30::*;
2017-09-21 03:04:59 +02:00
endpackage
module t;
2026-03-10 02:38:29 +01:00
reg [pkg11::PARAM1 : 0] bus11;
reg [pkg11::PARAM2 : 0] bus12;
reg [pkg11::PARAM3 : 0] bus13;
2017-09-21 03:04:59 +02:00
2026-03-10 02:38:29 +01:00
reg [pkg21::PARAM1 : 0] bus21;
reg [pkg21::PARAM2 : 0] bus22;
reg [pkg21::PARAM3 : 0] bus23;
2026-03-10 02:38:29 +01:00
reg [pkg31::PARAM1 : 0] bus31;
reg [pkg31::PARAM2 : 0] bus32;
reg [pkg31::PARAM3 : 0] bus33;
2026-03-10 02:38:29 +01:00
initial begin
$write("*-* All Finished *-*\n");
$finish;
end
endmodule