verilator/test_regress/t/t_scope_map.v

61 lines
1.3 KiB
Systemverilog
Raw Normal View History

// DESCRIPTION: Verilator: Test symbol table scope map and general public
// signal reflection
//
// This file ONLY is placed under the Creative Commons Public Domain.
// SPDX-FileCopyrightText: 2015 Todd Strader
// SPDX-License-Identifier: CC0-1.0
2026-03-10 02:38:29 +01:00
module t (
input wire CLK
);
foo #(.WIDTH(1)) foo1 (.*);
foo #(.WIDTH(7)) foo7 (.*);
foo #(.WIDTH(8)) foo8 (.*);
foo #(.WIDTH(32)) foo32 (.*);
foo #(.WIDTH(33)) foo33 (.*);
foo #(.WIDTH(40)) foo40 (.*);
foo #(.WIDTH(41)) foo41 (.*);
foo #(.WIDTH(64)) foo64 (.*);
foo #(.WIDTH(65)) foo65 (.*);
foo #(.WIDTH(96)) foo96 (.*);
foo #(.WIDTH(97)) foo97 (.*);
foo #(.WIDTH(128)) foo128 (.*);
foo #(.WIDTH(256)) foo256 (.*);
foo #(.WIDTH(1024)) foo1024 (.*);
bar #(.WIDTH(1024)) bar1024 (.*);
endmodule
2026-03-10 02:38:29 +01:00
module foo #(
parameter WIDTH = 32
2026-03-10 02:38:29 +01:00
) (
input CLK
2026-03-10 02:38:29 +01:00
);
2026-03-10 02:38:29 +01:00
logic [( ( WIDTH + 7 ) / 8 ) * 8 - 1 : 0] initial_value;
logic [WIDTH - 1 : 0] value_q /* verilator public */;
integer i;
2026-03-10 02:38:29 +01:00
initial begin
initial_value = '1;
2026-03-10 02:38:29 +01:00
for (i = 0; i < WIDTH / 8; i++) initial_value[i*8+:8] = i[7 : 0];
2026-03-10 02:38:29 +01:00
value_q = initial_value[WIDTH-1 : 0];
end
2026-03-10 02:38:29 +01:00
always @(posedge CLK) value_q <= ~value_q;
endmodule
2026-03-10 02:38:29 +01:00
module bar #(
parameter WIDTH = 32
2026-03-10 02:38:29 +01:00
) (
input CLK
2026-03-10 02:38:29 +01:00
);
2026-03-10 02:38:29 +01:00
foo #(.WIDTH(WIDTH)) foo (.*);
endmodule