Line 147... |
Line 147... |
wire [31:0] interrupt_vector;
|
wire [31:0] interrupt_vector;
|
wire [7:0] shift_amount;
|
wire [7:0] shift_amount;
|
wire [31:0] barrel_shift_in;
|
wire [31:0] barrel_shift_in;
|
wire [31:0] barrel_shift_out;
|
wire [31:0] barrel_shift_out;
|
wire barrel_shift_carry;
|
wire barrel_shift_carry;
|
|
wire barrel_shift_carry_alu;
|
|
|
wire [3:0] status_bits_flags_nxt;
|
wire [3:0] status_bits_flags_nxt;
|
reg [3:0] status_bits_flags = 'd0;
|
reg [3:0] status_bits_flags = 'd0;
|
wire [1:0] status_bits_mode_nxt;
|
wire [1:0] status_bits_mode_nxt;
|
wire [1:0] status_bits_mode_nr;
|
wire [1:0] status_bits_mode_nr;
|
Line 488... |
Line 489... |
.i_shift_amount ( shift_amount ),
|
.i_shift_amount ( shift_amount ),
|
.i_shift_imm_zero ( i_shift_imm_zero ),
|
.i_shift_imm_zero ( i_shift_imm_zero ),
|
.i_function ( i_barrel_shift_function ),
|
.i_function ( i_barrel_shift_function ),
|
|
|
.o_out ( barrel_shift_out ),
|
.o_out ( barrel_shift_out ),
|
.o_carry_out ( barrel_shift_carry )
|
.o_carry_out ( barrel_shift_carry ));
|
);
|
|
|
|
|
|
wire barrel_shift_carry_real;
|
|
assign barrel_shift_carry_real = i_barrel_shift_data_sel == 2'd0 ?
|
|
(i_imm_shift_amount[4:1] == 0 ? status_bits_flags[1] : i_imm32[31]) :
|
|
barrel_shift_carry;
|
|
|
|
// ========================================================
|
// ========================================================
|
// Instantiate ALU
|
// Instantiate ALU
|
// ========================================================
|
// ========================================================
|
|
assign barrel_shift_carry_alu = i_barrel_shift_data_sel == 2'd0 ?
|
|
(i_imm_shift_amount[4:1] == 0 ? status_bits_flags[1] : i_imm32[31]) :
|
|
barrel_shift_carry;
|
|
|
a23_alu u_alu (
|
a23_alu u_alu (
|
.i_a_in ( rn ),
|
.i_a_in ( rn ),
|
.i_b_in ( barrel_shift_out ),
|
.i_b_in ( barrel_shift_out ),
|
//.i_barrel_shift_carry ( barrel_shift_carry ),
|
.i_barrel_shift_carry ( barrel_shift_carry_alu ),
|
.i_barrel_shift_carry ( barrel_shift_carry_real ),
|
|
.i_status_bits_carry ( status_bits_flags[1] ),
|
.i_status_bits_carry ( status_bits_flags[1] ),
|
.i_function ( i_alu_function ),
|
.i_function ( i_alu_function ),
|
|
|
.o_out ( alu_out ),
|
.o_out ( alu_out ),
|
.o_flags ( alu_flags )
|
.o_flags ( alu_flags ));
|
);
|
|
|
|
|
|
// ========================================================
|
// ========================================================
|
// Instantiate Booth 64-bit Multiplier-Accumulator
|
// Instantiate Booth 64-bit Multiplier-Accumulator
|
// ========================================================
|
// ========================================================
|