verilator/test_regress/t/t_trace_struct_alias.v

48 lines
967 B
Systemverilog

// DESCRIPTION: Verilator: Verilog Test module
//
// This file ONLY is placed under the Creative Commons Public Domain.
// SPDX-FileCopyrightText: 2026 Wilson Snyder
// SPDX-License-Identifier: CC0-1.0
module t (/*AUTOARG*/
// Inputs
clk
);
input clk;
int cyc;
typedef struct packed {
logic [7:0] a;
logic [7:0] b;
} strp_t;
strp_t s1;
strp_t s2;
strp_t s3;
logic [7:0] alias_of_s3a;
assign alias_of_s3a = s3.a;
strp_t s4;
strp_t s5;
assign s5 = s4;
logic [7:0] source_val;
strp_t s6;
assign s6.a = source_val;
always @(posedge clk) begin
cyc <= cyc + 1;
s1 <= {8'(cyc), 8'(cyc + 1)};
s2 <= {8'(cyc + 2), 8'(cyc + 3)};
s3 <= {8'(cyc + 4), 8'(cyc + 5)};
s4 <= {8'(cyc + 6), 8'(cyc + 7)};
source_val <= 8'(cyc + 8);
s6.b <= 8'(cyc + 9);
if (cyc == 9) begin
$write("*-* All Finished *-*\n");
$finish;
end
end
endmodule