2006-08-26 11:35:28 +00:00
|
|
|
// DESCRIPTION: Verilator: Verilog Test module
|
|
|
|
// simplistic example, should choose 1st conditional generate and assign straight through
|
|
|
|
// the tool also compiles the special case and determines an error (replication value is 0)
|
|
|
|
//
|
|
|
|
// This file ONLY is placed into the Public Domain, for any use,
|
|
|
|
// without warranty.
|
2020-03-21 15:24:24 +00:00
|
|
|
// SPDX-License-Identifier: CC0-1.0
|
|
|
|
|
2006-08-26 11:35:28 +00:00
|
|
|
`timescale 1ns / 1ps
|
|
|
|
|
2010-01-11 17:36:12 +00:00
|
|
|
module t(data_i, data_o, single);
|
2006-08-26 11:35:28 +00:00
|
|
|
parameter op_bits = 32;
|
|
|
|
input [op_bits -1:0] data_i;
|
|
|
|
output [31:0] data_o;
|
2010-01-11 17:36:12 +00:00
|
|
|
input single;
|
2006-08-26 11:35:28 +00:00
|
|
|
|
2022-10-21 02:04:50 +00:00
|
|
|
// Bare begin/end extension of IEEE allowed by most all tools
|
|
|
|
begin
|
|
|
|
end
|
|
|
|
begin : named
|
|
|
|
end : named
|
|
|
|
|
2006-08-26 11:35:28 +00:00
|
|
|
//simplistic example, should choose 1st conditional generate and assign straight through
|
|
|
|
//the tool also compiles the special case and determines an error (replication value is 0
|
|
|
|
generate
|
|
|
|
if (op_bits == 32) begin : general_case
|
|
|
|
assign data_o = data_i;
|
2022-05-01 14:10:00 +00:00
|
|
|
// Test implicit signals
|
|
|
|
/* verilator lint_off IMPLICIT */
|
|
|
|
assign imp = single;
|
|
|
|
/* verilator lint_on IMPLICIT */
|
2006-08-26 11:35:28 +00:00
|
|
|
end
|
|
|
|
else begin : special_case
|
|
|
|
assign data_o = {{(32 -op_bits){1'b0}},data_i};
|
2022-05-01 14:10:00 +00:00
|
|
|
/* verilator lint_off IMPLICIT */
|
|
|
|
assign imp = single;
|
|
|
|
/* verilator lint_on IMPLICIT */
|
2006-08-26 11:35:28 +00:00
|
|
|
end
|
|
|
|
endgenerate
|
|
|
|
endmodule
|