// // Generated by Bluespec Compiler, version 2025.01.1 (build 65e3a87) // // On Tue Feb 17 13:11:39 GMT 2026 // // // Ports: // Name I/O size props // wrap128_modifyOffset O 116 // wrap128_modifyOffset_cap I 115 // wrap128_modifyOffset_offset I 32 // wrap128_modifyOffset_doInc I 1 // // Combinational paths from inputs to outputs: // (wrap128_modifyOffset_cap, // wrap128_modifyOffset_offset, // wrap128_modifyOffset_doInc) -> wrap128_modifyOffset // // `ifdef BSV_ASSIGNMENT_DELAY `else `define BSV_ASSIGNMENT_DELAY `endif `ifdef BSV_POSITIVE_RESET `define BSV_RESET_VALUE 1'b1 `define BSV_RESET_EDGE posedge `else `define BSV_RESET_VALUE 1'b0 `define BSV_RESET_EDGE negedge `endif module module_wrap128_modifyOffset(wrap128_modifyOffset_cap, wrap128_modifyOffset_offset, wrap128_modifyOffset_doInc, wrap128_modifyOffset); // value method wrap128_modifyOffset input [114 : 0] wrap128_modifyOffset_cap; input [31 : 0] wrap128_modifyOffset_offset; input wrap128_modifyOffset_doInc; output [115 : 0] wrap128_modifyOffset; // signals for module outputs wire [115 : 0] wrap128_modifyOffset; // remaining internal signals reg [1 : 0] mask__h585; wire [31 : 0] addBase__h631, pointer__h74, result_d_address__h600, ret___1_address__h611, x__h491, x__h741; wire [23 : 0] highOffsetBits__h81, mask__h632, signBits__h78, x__h108; wire [9 : 0] x__h682; wire [7 : 0] newAddrBits__h584, repBoundBits__h87, result_d_addrBits__h601, toBoundsM1_A__h86, toBoundsM1_B__h89, toBoundsM1__h91, toBounds_A__h85, toBounds_B__h88, toBounds__h90; wire [3 : 0] IF_wrap128_modifyOffset_cap_BITS_25_TO_23_9_UL_ETC___d83; wire [2 : 0] repBound__h881; wire IF_wrap128_modifyOffset_doInc_THEN_wrap128_mod_ETC___d73, IF_wrap128_modifyOffset_offset_BIT_31_THEN_NOT_ETC___d34, NOT_wrap128_modifyOffset_offset_SRL_wrap128_mo_ETC___d25, wrap128_modifyOffset_cap_BITS_17_TO_15_7_ULT_w_ETC___d71, wrap128_modifyOffset_cap_BITS_25_TO_23_9_ULT_w_ETC___d70; // value method wrap128_modifyOffset assign wrap128_modifyOffset = { highOffsetBits__h81 == 24'd0 && IF_wrap128_modifyOffset_offset_BIT_31_THEN_NOT_ETC___d34 || wrap128_modifyOffset_cap[31:26] >= 6'd24, (highOffsetBits__h81 == 24'd0 && IF_wrap128_modifyOffset_offset_BIT_31_THEN_NOT_ETC___d34 || wrap128_modifyOffset_cap[31:26] >= 6'd24) && wrap128_modifyOffset_cap[114], result_d_address__h600, result_d_addrBits__h601, wrap128_modifyOffset_cap[73:10], repBound__h881, wrap128_modifyOffset_cap_BITS_25_TO_23_9_ULT_w_ETC___d70, wrap128_modifyOffset_cap_BITS_17_TO_15_7_ULT_w_ETC___d71, IF_wrap128_modifyOffset_doInc_THEN_wrap128_mod_ETC___d73, IF_wrap128_modifyOffset_cap_BITS_25_TO_23_9_UL_ETC___d83 } ; // remaining internal signals assign IF_wrap128_modifyOffset_cap_BITS_25_TO_23_9_UL_ETC___d83 = { (wrap128_modifyOffset_cap_BITS_25_TO_23_9_ULT_w_ETC___d70 == IF_wrap128_modifyOffset_doInc_THEN_wrap128_mod_ETC___d73) ? 2'd0 : ((wrap128_modifyOffset_cap_BITS_25_TO_23_9_ULT_w_ETC___d70 && !IF_wrap128_modifyOffset_doInc_THEN_wrap128_mod_ETC___d73) ? 2'd1 : 2'd3), (wrap128_modifyOffset_cap_BITS_17_TO_15_7_ULT_w_ETC___d71 == IF_wrap128_modifyOffset_doInc_THEN_wrap128_mod_ETC___d73) ? 2'd0 : ((wrap128_modifyOffset_cap_BITS_17_TO_15_7_ULT_w_ETC___d71 && !IF_wrap128_modifyOffset_doInc_THEN_wrap128_mod_ETC___d73) ? 2'd1 : 2'd3) } ; assign IF_wrap128_modifyOffset_doInc_THEN_wrap128_mod_ETC___d73 = result_d_addrBits__h601[7:5] < repBound__h881 ; assign IF_wrap128_modifyOffset_offset_BIT_31_THEN_NOT_ETC___d34 = wrap128_modifyOffset_offset[31] ? NOT_wrap128_modifyOffset_offset_SRL_wrap128_mo_ETC___d25 : (wrap128_modifyOffset_doInc ? x__h491[7:0] < toBoundsM1__h91 : x__h491[7:0] <= toBoundsM1__h91) ; assign NOT_wrap128_modifyOffset_offset_SRL_wrap128_mo_ETC___d25 = x__h491[7:0] >= toBounds__h90 && (!wrap128_modifyOffset_doInc || repBoundBits__h87 != wrap128_modifyOffset_cap[81:74]) ; assign addBase__h631 = { {22{x__h682[9]}}, x__h682 } << wrap128_modifyOffset_cap[31:26] ; assign highOffsetBits__h81 = x__h108 & mask__h632 ; assign mask__h632 = 24'd16777215 << wrap128_modifyOffset_cap[31:26] ; assign newAddrBits__h584 = wrap128_modifyOffset_cap[17:10] + x__h491[7:0] ; assign pointer__h74 = wrap128_modifyOffset_cap[113:82] + wrap128_modifyOffset_offset ; assign repBoundBits__h87 = { wrap128_modifyOffset_cap[9:7], 5'd0 } ; assign repBound__h881 = wrap128_modifyOffset_cap[17:15] - 3'b001 ; assign result_d_addrBits__h601 = wrap128_modifyOffset_doInc ? x__h741[7:0] : { mask__h585, 6'd63 } & newAddrBits__h584 ; assign result_d_address__h600 = wrap128_modifyOffset_doInc ? pointer__h74 : ret___1_address__h611 ; assign ret___1_address__h611 = { wrap128_modifyOffset_cap[113:90] & mask__h632, 8'd0 } + addBase__h631 + wrap128_modifyOffset_offset ; assign signBits__h78 = {24{wrap128_modifyOffset_offset[31]}} ; assign toBoundsM1_A__h86 = { 3'b110, ~wrap128_modifyOffset_cap[14:10] } ; assign toBoundsM1_B__h89 = repBoundBits__h87 + ~wrap128_modifyOffset_cap[81:74] ; assign toBoundsM1__h91 = wrap128_modifyOffset_doInc ? toBoundsM1_B__h89 : toBoundsM1_A__h86 ; assign toBounds_A__h85 = 8'd224 - { 3'b0, wrap128_modifyOffset_cap[14:10] } ; assign toBounds_B__h88 = repBoundBits__h87 - wrap128_modifyOffset_cap[81:74] ; assign toBounds__h90 = wrap128_modifyOffset_doInc ? toBounds_B__h88 : toBounds_A__h85 ; assign wrap128_modifyOffset_cap_BITS_17_TO_15_7_ULT_w_ETC___d71 = wrap128_modifyOffset_cap[17:15] < repBound__h881 ; assign wrap128_modifyOffset_cap_BITS_25_TO_23_9_ULT_w_ETC___d70 = wrap128_modifyOffset_cap[25:23] < repBound__h881 ; assign x__h108 = wrap128_modifyOffset_offset[31:8] ^ signBits__h78 ; assign x__h491 = wrap128_modifyOffset_offset >> wrap128_modifyOffset_cap[31:26] ; assign x__h682 = { wrap128_modifyOffset_cap[1:0], wrap128_modifyOffset_cap[17:10] } ; assign x__h741 = pointer__h74 >> wrap128_modifyOffset_cap[31:26] ; always@(wrap128_modifyOffset_cap) begin case (wrap128_modifyOffset_cap[31:26]) 6'd25: mask__h585 = 2'b01; 6'd26: mask__h585 = 2'b0; default: mask__h585 = 2'b11; endcase end endmodule // module_wrap128_modifyOffset