module __fixed_point__num_bits_overlapping( input wire [31:0] NB_A, input wire [31:0] BE_A, input wire [31:0] NB_B, input wire [31:0] BE_B, output wire [31:0] out ); wire [32:0] lsb_a; wire [32:0] lsb_b; wire [32:0] add_98; wire [32:0] add_100; wire [32:0] msb_a; wire [32:0] msb_b; wire [31:0] sel_105; wire [32:0] sub_108; wire [32:0] overlap; assign lsb_a = {{1{BE_A[31]}}, BE_A}; assign lsb_b = {{1{BE_B[31]}}, BE_B}; assign add_98 = {1'h0, NB_A} + lsb_a; assign add_100 = {1'h0, NB_B} + lsb_b; assign msb_a = add_98 + 33'h1_ffff_ffff; assign msb_b = add_100 + 33'h1_ffff_ffff; assign sel_105 = $signed(BE_A) > $signed(BE_B) ? BE_A : BE_B; assign sub_108 = ($signed(msb_a) < $signed(msb_b) ? msb_a : msb_b) - {{1{sel_105[31]}}, sel_105}; assign overlap = sub_108 + 33'h0_0000_0001; assign out = overlap[31:0] & {32{$signed(overlap) > $signed(33'h0_0000_0000)}}; endmodule