// Generated by CIRCT firtool-1.151.0 module TLWidthWidget1( input clock, reset, output auto_anon_in_a_ready, input auto_anon_in_a_valid, input [2:0] auto_anon_in_a_bits_opcode, input [3:0] auto_anon_in_a_bits_size, input [31:0] auto_anon_in_a_bits_address, input [7:0] auto_anon_in_a_bits_data, input auto_anon_in_d_ready, output auto_anon_in_d_valid, output [2:0] auto_anon_in_d_bits_opcode, output [1:0] auto_anon_in_d_bits_param, output [3:0] auto_anon_in_d_bits_size, output auto_anon_in_d_bits_sink, auto_anon_in_d_bits_denied, output [7:0] auto_anon_in_d_bits_data, output auto_anon_in_d_bits_corrupt, input auto_anon_out_a_ready, output auto_anon_out_a_valid, output [2:0] auto_anon_out_a_bits_opcode, output [3:0] auto_anon_out_a_bits_size, output [31:0] auto_anon_out_a_bits_address, output [7:0] auto_anon_out_a_bits_mask, output [63:0] auto_anon_out_a_bits_data, output auto_anon_out_d_ready, input auto_anon_out_d_valid, input [2:0] auto_anon_out_d_bits_opcode, input [1:0] auto_anon_out_d_bits_param, input [3:0] auto_anon_out_d_bits_size, input auto_anon_out_d_bits_sink, auto_anon_out_d_bits_denied, input [63:0] auto_anon_out_d_bits_data, input auto_anon_out_d_bits_corrupt ); wire _repeated_repeater_io_deq_valid; wire [2:0] _repeated_repeater_io_deq_bits_opcode; wire [3:0] _repeated_repeater_io_deq_bits_size; wire [63:0] _repeated_repeater_io_deq_bits_data; wire [17:0] _limit_T = 18'h7 << auto_anon_in_a_bits_size; reg [2:0] count; wire last = count == ~(_limit_T[2:0]) | auto_anon_in_a_bits_opcode[2]; wire anonIn_a_ready = auto_anon_out_a_ready | ~last; reg anonOut_a_bits_data_rdata_written_once; wire anonOut_a_bits_data_masked_enable_0 = (count & ~(_limit_T[2:0])) == 3'h0 | ~anonOut_a_bits_data_rdata_written_once; wire anonOut_a_bits_data_masked_enable_1 = ({count[2:1], ~(count[0])} & ~(_limit_T[2:0])) == 3'h0 | ~anonOut_a_bits_data_rdata_written_once; wire anonOut_a_bits_data_masked_enable_2 = ({count[2], count[1:0] ^ 2'h2} & ~(_limit_T[2:0])) == 3'h0 | ~anonOut_a_bits_data_rdata_written_once; wire anonOut_a_bits_data_masked_enable_3 = ({count[2], ~(count[1:0])} & ~(_limit_T[2:0])) == 3'h0 | ~anonOut_a_bits_data_rdata_written_once; wire anonOut_a_bits_data_masked_enable_4 = ((count ^ 3'h4) & ~(_limit_T[2:0])) == 3'h0 | ~anonOut_a_bits_data_rdata_written_once; wire anonOut_a_bits_data_masked_enable_5 = ((count ^ 3'h5) & ~(_limit_T[2:0])) == 3'h0 | ~anonOut_a_bits_data_rdata_written_once; wire anonOut_a_bits_data_masked_enable_6 = ((count ^ 3'h6) & ~(_limit_T[2:0])) == 3'h0 | ~anonOut_a_bits_data_rdata_written_once; reg [7:0] anonOut_a_bits_data_rdata_0; reg [7:0] anonOut_a_bits_data_rdata_1; reg [7:0] anonOut_a_bits_data_rdata_2; reg [7:0] anonOut_a_bits_data_rdata_3; reg [7:0] anonOut_a_bits_data_rdata_4; reg [7:0] anonOut_a_bits_data_rdata_5; reg [7:0] anonOut_a_bits_data_rdata_6; wire [3:0] _anonOut_a_bits_mask_sizeOH_T_1 = 4'h1 << auto_anon_in_a_bits_size[1:0]; wire anonOut_a_bits_mask_sub_sub_sub_0_1 = auto_anon_in_a_bits_size > 4'h2; wire anonOut_a_bits_mask_sub_sub_0_1 = anonOut_a_bits_mask_sub_sub_sub_0_1 | _anonOut_a_bits_mask_sizeOH_T_1[2] & ~(auto_anon_in_a_bits_address[2]); wire anonOut_a_bits_mask_sub_sub_1_1 = anonOut_a_bits_mask_sub_sub_sub_0_1 | _anonOut_a_bits_mask_sizeOH_T_1[2] & auto_anon_in_a_bits_address[2]; wire anonOut_a_bits_mask_sub_0_2 = ~(auto_anon_in_a_bits_address[2]) & ~(auto_anon_in_a_bits_address[1]); wire anonOut_a_bits_mask_sub_0_1 = anonOut_a_bits_mask_sub_sub_0_1 | _anonOut_a_bits_mask_sizeOH_T_1[1] & anonOut_a_bits_mask_sub_0_2; wire anonOut_a_bits_mask_sub_1_2 = ~(auto_anon_in_a_bits_address[2]) & auto_anon_in_a_bits_address[1]; wire anonOut_a_bits_mask_sub_1_1 = anonOut_a_bits_mask_sub_sub_0_1 | _anonOut_a_bits_mask_sizeOH_T_1[1] & anonOut_a_bits_mask_sub_1_2; wire anonOut_a_bits_mask_sub_2_2 = auto_anon_in_a_bits_address[2] & ~(auto_anon_in_a_bits_address[1]); wire anonOut_a_bits_mask_sub_2_1 = anonOut_a_bits_mask_sub_sub_1_1 | _anonOut_a_bits_mask_sizeOH_T_1[1] & anonOut_a_bits_mask_sub_2_2; wire anonOut_a_bits_mask_sub_3_2 = auto_anon_in_a_bits_address[2] & auto_anon_in_a_bits_address[1]; wire anonOut_a_bits_mask_sub_3_1 = anonOut_a_bits_mask_sub_sub_1_1 | _anonOut_a_bits_mask_sizeOH_T_1[1] & anonOut_a_bits_mask_sub_3_2; wire [17:0] _repeat_limit_T = 18'h7 << _repeated_repeater_io_deq_bits_size; reg [2:0] repeat_count; wire repeat_first = repeat_count == 3'h0; wire repeat_last = repeat_count == ~(_repeat_limit_T[2:0]) | ~(_repeated_repeater_io_deq_bits_opcode[0]); reg [2:0] repeat_sel_sel_sources_0; reg [2:0] repeat_sel_hold_r; wire [7:0][7:0] _GEN = {{_repeated_repeater_io_deq_bits_data[63:56]}, {_repeated_repeater_io_deq_bits_data[55:48]}, {_repeated_repeater_io_deq_bits_data[47:40]}, {_repeated_repeater_io_deq_bits_data[39:32]}, {_repeated_repeater_io_deq_bits_data[31:24]}, {_repeated_repeater_io_deq_bits_data[23:16]}, {_repeated_repeater_io_deq_bits_data[15:8]}, {auto_anon_out_d_bits_data[7:0]}}; always @(posedge clock) begin automatic logic _repeat_sel_sel_T; automatic logic _anonOut_a_bits_data_T_2; _repeat_sel_sel_T = anonIn_a_ready & auto_anon_in_a_valid; _anonOut_a_bits_data_T_2 = _repeat_sel_sel_T & ~last; if (reset) begin count <= 3'h0; anonOut_a_bits_data_rdata_written_once <= 1'h0; repeat_count <= 3'h0; end else begin if (_repeat_sel_sel_T) count <= last ? 3'h0 : count + 3'h1; anonOut_a_bits_data_rdata_written_once <= _anonOut_a_bits_data_T_2 | anonOut_a_bits_data_rdata_written_once; if (auto_anon_in_d_ready & _repeated_repeater_io_deq_valid) repeat_count <= repeat_last ? 3'h0 : repeat_count + 3'h1; end if (_anonOut_a_bits_data_T_2 & anonOut_a_bits_data_masked_enable_0) anonOut_a_bits_data_rdata_0 <= auto_anon_in_a_bits_data; if (_anonOut_a_bits_data_T_2 & anonOut_a_bits_data_masked_enable_1) anonOut_a_bits_data_rdata_1 <= auto_anon_in_a_bits_data; if (_anonOut_a_bits_data_T_2 & anonOut_a_bits_data_masked_enable_2) anonOut_a_bits_data_rdata_2 <= auto_anon_in_a_bits_data; if (_anonOut_a_bits_data_T_2 & anonOut_a_bits_data_masked_enable_3) anonOut_a_bits_data_rdata_3 <= auto_anon_in_a_bits_data; if (_anonOut_a_bits_data_T_2 & anonOut_a_bits_data_masked_enable_4) anonOut_a_bits_data_rdata_4 <= auto_anon_in_a_bits_data; if (_anonOut_a_bits_data_T_2 & anonOut_a_bits_data_masked_enable_5) anonOut_a_bits_data_rdata_5 <= auto_anon_in_a_bits_data; if (_anonOut_a_bits_data_T_2 & anonOut_a_bits_data_masked_enable_6) anonOut_a_bits_data_rdata_6 <= auto_anon_in_a_bits_data; if (_repeat_sel_sel_T) repeat_sel_sel_sources_0 <= auto_anon_in_a_bits_address[2:0]; if (repeat_first) repeat_sel_hold_r <= repeat_sel_sel_sources_0; end // always @(posedge) Repeater_TLBundleD_a32d64s1k1z4u repeated_repeater ( .clock (clock), .reset (reset), .io_repeat (~repeat_last), .io_enq_ready (auto_anon_out_d_ready), .io_enq_valid (auto_anon_out_d_valid), .io_enq_bits_opcode (auto_anon_out_d_bits_opcode), .io_enq_bits_param (auto_anon_out_d_bits_param), .io_enq_bits_size (auto_anon_out_d_bits_size), .io_enq_bits_sink (auto_anon_out_d_bits_sink), .io_enq_bits_denied (auto_anon_out_d_bits_denied), .io_enq_bits_data (auto_anon_out_d_bits_data), .io_enq_bits_corrupt (auto_anon_out_d_bits_corrupt), .io_deq_ready (auto_anon_in_d_ready), .io_deq_valid (_repeated_repeater_io_deq_valid), .io_deq_bits_opcode (_repeated_repeater_io_deq_bits_opcode), .io_deq_bits_param (auto_anon_in_d_bits_param), .io_deq_bits_size (_repeated_repeater_io_deq_bits_size), .io_deq_bits_sink (auto_anon_in_d_bits_sink), .io_deq_bits_denied (auto_anon_in_d_bits_denied), .io_deq_bits_data (_repeated_repeater_io_deq_bits_data), .io_deq_bits_corrupt (auto_anon_in_d_bits_corrupt) ); assign auto_anon_in_a_ready = anonIn_a_ready; assign auto_anon_in_d_valid = _repeated_repeater_io_deq_valid; assign auto_anon_in_d_bits_opcode = _repeated_repeater_io_deq_bits_opcode; assign auto_anon_in_d_bits_size = _repeated_repeater_io_deq_bits_size; assign auto_anon_in_d_bits_data = _GEN[(repeat_first ? repeat_sel_sel_sources_0 : repeat_sel_hold_r) & _repeat_limit_T[2:0] | repeat_count]; assign auto_anon_out_a_valid = auto_anon_in_a_valid & last; assign auto_anon_out_a_bits_opcode = auto_anon_in_a_bits_opcode; assign auto_anon_out_a_bits_size = auto_anon_in_a_bits_size; assign auto_anon_out_a_bits_address = auto_anon_in_a_bits_address; assign auto_anon_out_a_bits_mask = {anonOut_a_bits_mask_sub_3_1 | anonOut_a_bits_mask_sub_3_2 & auto_anon_in_a_bits_address[0], anonOut_a_bits_mask_sub_3_1 | anonOut_a_bits_mask_sub_3_2 & ~(auto_anon_in_a_bits_address[0]), anonOut_a_bits_mask_sub_2_1 | anonOut_a_bits_mask_sub_2_2 & auto_anon_in_a_bits_address[0], anonOut_a_bits_mask_sub_2_1 | anonOut_a_bits_mask_sub_2_2 & ~(auto_anon_in_a_bits_address[0]), anonOut_a_bits_mask_sub_1_1 | anonOut_a_bits_mask_sub_1_2 & auto_anon_in_a_bits_address[0], anonOut_a_bits_mask_sub_1_1 | anonOut_a_bits_mask_sub_1_2 & ~(auto_anon_in_a_bits_address[0]), anonOut_a_bits_mask_sub_0_1 | anonOut_a_bits_mask_sub_0_2 & auto_anon_in_a_bits_address[0], anonOut_a_bits_mask_sub_0_1 | anonOut_a_bits_mask_sub_0_2 & ~(auto_anon_in_a_bits_address[0])}; assign auto_anon_out_a_bits_data = {auto_anon_in_a_bits_data, anonOut_a_bits_data_masked_enable_6 ? auto_anon_in_a_bits_data : anonOut_a_bits_data_rdata_6, anonOut_a_bits_data_masked_enable_5 ? auto_anon_in_a_bits_data : anonOut_a_bits_data_rdata_5, anonOut_a_bits_data_masked_enable_4 ? auto_anon_in_a_bits_data : anonOut_a_bits_data_rdata_4, anonOut_a_bits_data_masked_enable_3 ? auto_anon_in_a_bits_data : anonOut_a_bits_data_rdata_3, anonOut_a_bits_data_masked_enable_2 ? auto_anon_in_a_bits_data : anonOut_a_bits_data_rdata_2, anonOut_a_bits_data_masked_enable_1 ? auto_anon_in_a_bits_data : anonOut_a_bits_data_rdata_1, anonOut_a_bits_data_masked_enable_0 ? auto_anon_in_a_bits_data : anonOut_a_bits_data_rdata_0}; endmodule