verilator/test_regress/t/t_unpack_array_no_expand.v

42 lines
936 B
Systemverilog
Raw Normal View History

2023-01-18 20:35:48 +01:00
// DESCRIPTION: Verilator: Verilog Test module
//
// This file ONLY is placed under the Creative Commons Public Domain.
// SPDX-FileCopyrightText: 2023 Wilson Snyder
2023-01-18 20:35:48 +01:00
// SPDX-License-Identifier: CC0-1.0
2026-03-10 02:38:29 +01:00
module t (
output logic [255:0] data_out
);
localparam int NUM_STAGES = 3;
2023-01-18 20:35:48 +01:00
2026-03-10 02:38:29 +01:00
/* verilator lint_off ALWCOMBORDER */
/* verilator lint_off UNOPTFLAT */
2023-01-18 20:35:48 +01:00
2026-03-10 02:38:29 +01:00
`define INPUT 256'hbabecafe
2023-01-18 20:35:48 +01:00
2026-03-10 02:38:29 +01:00
logic [255:0] stage_data[NUM_STAGES+1];
2023-01-18 20:35:48 +01:00
2026-03-10 02:38:29 +01:00
genvar stage;
generate
always_comb begin
stage_data[0] = `INPUT;
end
for (stage = 0; stage < NUM_STAGES; ++stage) begin : stage_gen
2023-01-18 20:35:48 +01:00
always_comb begin
2026-03-10 02:38:29 +01:00
stage_data[stage+1] = stage_data[stage];
2023-01-18 20:35:48 +01:00
end
2026-03-10 02:38:29 +01:00
end
endgenerate
/* verilator lint_on UNOPTFLAT */
/* verilator lint_on ALWCOMBORDER */
always_comb begin
data_out = stage_data[NUM_STAGES];
if (data_out !== `INPUT) $stop;
$write("*-* All Finished *-*\n");
$finish;
end
2023-01-18 20:35:48 +01:00
endmodule