verilator/test_regress/t/t_param_public.v
Geza Lore 60d5f0e86b
Emit model implementation as loose methods. (#3006)
This patch introduces the concept of 'loose' methods, which semantically
are methods, but are declared as global functions, and are passed an
explicit 'self' pointer. This enables these methods to be declared
outside the class, only when they are needed, therefore removing the
header dependency. The bulk of the emitted model implementation now uses
loose methods.
2021-06-13 14:33:11 +01:00

47 lines
884 B
Systemverilog

// DESCRIPTION: Verilator: Verilog Test module
//
// This file ONLY is placed under the Creative Commons Public Domain, for
// any use, without warranty, 2012 by Wilson Snyder.
// SPDX-License-Identifier: CC0-1.0
//bug505
module t (/*AUTOARG*/
// Inputs
clk
);
input clk;
parameter TOP_PARAM /*verilator public*/ = 20;
a #(1) a1 ();
b #(2) b2 ();
initial begin
$write("*-* All Finished *-*\n");
$finish;
end
endmodule
module a;
parameter ONE /*verilator public*/ = 22;
initial if (ONE != 1) $stop;
`ifdef VERILATOR
initial if ($c32("this->ONE") != 1) $stop;
`endif
endmodule
module b #(
parameter TWO /*verilator public*/ = 22
);
initial if (TWO != 2) $stop;
`ifdef VERILATOR
initial if ($c32("this->TWO") != 2) $stop;
`endif
endmodule
//bug804
package p;
localparam INPACK /*verilator public*/ = 6;
endpackage