Line 83... |
Line 83... |
input [31:0] i_imm32,
|
input [31:0] i_imm32,
|
input [4:0] i_imm_shift_amount,
|
input [4:0] i_imm_shift_amount,
|
input i_shift_imm_zero,
|
input i_shift_imm_zero,
|
input [3:0] i_condition,
|
input [3:0] i_condition,
|
input i_exclusive_exec, // swap access
|
input i_exclusive_exec, // swap access
|
|
input i_use_carry_in, // e.g. add with carry instruction
|
|
|
input [3:0] i_rm_sel,
|
input [3:0] i_rm_sel,
|
input [3:0] i_rds_sel,
|
input [3:0] i_rds_sel,
|
input [3:0] i_rn_sel,
|
input [3:0] i_rn_sel,
|
input [3:0] i_rm_sel_nxt,
|
input [3:0] i_rm_sel_nxt,
|
Line 194... |
Line 195... |
wire [1:0] status_bits_out;
|
wire [1:0] status_bits_out;
|
|
|
wire [31:0] alu_out_pc_filtered;
|
wire [31:0] alu_out_pc_filtered;
|
wire adex_nxt;
|
wire adex_nxt;
|
|
|
|
wire carry_in;
|
|
|
|
|
// ========================================================
|
// ========================================================
|
// Status Bits in PC register
|
// Status Bits in PC register
|
// ========================================================
|
// ========================================================
|
assign status_bits_out = (i_status_bits_mode_wen && i_status_bits_sel == 3'd1 && execute) ?
|
assign status_bits_out = (i_status_bits_mode_wen && i_status_bits_sel == 3'd1 && execute) ?
|
alu_out[1:0] : status_bits_mode ;
|
alu_out[1:0] : status_bits_mode ;
|
Line 469... |
Line 473... |
|
|
|
|
// ========================================================
|
// ========================================================
|
// Instantiate Barrel Shift
|
// Instantiate Barrel Shift
|
// ========================================================
|
// ========================================================
|
|
|
|
assign carry_in = i_use_carry_in ? status_bits_flags[1] : 1'd0;
|
|
|
`ifndef ALTERA_FPGA
|
`ifndef ALTERA_FPGA
|
a23_barrel_shift u_barrel_shift (
|
a23_barrel_shift u_barrel_shift (
|
`else
|
`else
|
a23_barrel_shift_fpga u_barrel_shift (
|
a23_barrel_shift_fpga u_barrel_shift (
|
`endif
|
`endif
|
.i_in ( barrel_shift_in ),
|
.i_in ( barrel_shift_in ),
|
.i_carry_in ( status_bits_flags[1] ),
|
.i_carry_in ( carry_in ),
|
.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 ),
|