Line 125... |
Line 125... |
input i_rm_use_read,
|
input i_rm_use_read,
|
input i_rs_use_read,
|
input i_rs_use_read,
|
input i_rd_use_read
|
input i_rd_use_read
|
);
|
);
|
|
|
`include "a25_localparams.v"
|
`include "a25_localparams.vh"
|
`include "a25_functions.v"
|
`include "a25_functions.vh"
|
|
|
// ========================================================
|
// ========================================================
|
// Internal signals
|
// Internal signals
|
// ========================================================
|
// ========================================================
|
wire [31:0] write_data_nxt;
|
wire [31:0] write_data_nxt;
|
Line 238... |
Line 238... |
assign status_bits_flags_nxt = ldm_flags ? read_data_filtered[31:28] :
|
assign status_bits_flags_nxt = ldm_flags ? read_data_filtered[31:28] :
|
i_status_bits_sel == 3'd0 ? alu_flags :
|
i_status_bits_sel == 3'd0 ? alu_flags :
|
i_status_bits_sel == 3'd1 ? alu_out [31:28] :
|
i_status_bits_sel == 3'd1 ? alu_out [31:28] :
|
i_status_bits_sel == 3'd3 ? i_copro_read_data[31:28] :
|
i_status_bits_sel == 3'd3 ? i_copro_read_data[31:28] :
|
// 4 = update flags after a multiply operation
|
// 4 = update flags after a multiply operation
|
{ multiply_flags, status_bits_flags[1:0] } ;
|
i_status_bits_sel == 3'd4 ? { multiply_flags, status_bits_flags[1:0] } :
|
|
// regops that do not change the overflow flag
|
|
i_status_bits_sel == 3'd5 ? { alu_flags[3:1], status_bits_flags[0] } :
|
|
4'b1111 ;
|
|
|
assign status_bits_mode_nxt = ldm_status_bits ? read_data_filtered [1:0] :
|
assign status_bits_mode_nxt = ldm_status_bits ? read_data_filtered [1:0] :
|
i_status_bits_sel == 3'd0 ? i_status_bits_mode :
|
i_status_bits_sel == 3'd0 ? i_status_bits_mode :
|
|
i_status_bits_sel == 3'd5 ? i_status_bits_mode :
|
i_status_bits_sel == 3'd1 ? alu_out [1:0] :
|
i_status_bits_sel == 3'd1 ? alu_out [1:0] :
|
i_copro_read_data [1:0] ;
|
i_copro_read_data [1:0] ;
|
|
|
|
|
// Used for the Rds output of register_bank - this special version of
|
// Used for the Rds output of register_bank - this special version of
|
Line 260... |
Line 264... |
oh_status_bits_mode(status_bits_mode) ;
|
oh_status_bits_mode(status_bits_mode) ;
|
|
|
|
|
assign status_bits_irq_mask_nxt = ldm_status_bits ? read_data_filtered [27] :
|
assign status_bits_irq_mask_nxt = ldm_status_bits ? read_data_filtered [27] :
|
i_status_bits_sel == 3'd0 ? i_status_bits_irq_mask :
|
i_status_bits_sel == 3'd0 ? i_status_bits_irq_mask :
|
|
i_status_bits_sel == 3'd5 ? i_status_bits_irq_mask :
|
i_status_bits_sel == 3'd1 ? alu_out [27] :
|
i_status_bits_sel == 3'd1 ? alu_out [27] :
|
i_copro_read_data [27] ;
|
i_copro_read_data [27] ;
|
|
|
assign status_bits_firq_mask_nxt = ldm_status_bits ? read_data_filtered [26] :
|
assign status_bits_firq_mask_nxt = ldm_status_bits ? read_data_filtered [26] :
|
i_status_bits_sel == 3'd0 ? i_status_bits_firq_mask :
|
i_status_bits_sel == 3'd0 ? i_status_bits_firq_mask :
|
|
i_status_bits_sel == 3'd5 ? i_status_bits_firq_mask :
|
i_status_bits_sel == 3'd1 ? alu_out [26] :
|
i_status_bits_sel == 3'd1 ? alu_out [26] :
|
i_copro_read_data [26] ;
|
i_copro_read_data [26] ;
|
|
|
|
|
|
|