Line 59... |
Line 59... |
input i_decode_daccess, // Indicates a data access
|
input i_decode_daccess, // Indicates a data access
|
input [7:0] i_decode_load_rd, // The destination register for a load instruction
|
input [7:0] i_decode_load_rd, // The destination register for a load instruction
|
|
|
output reg [31:0] o_copro_write_data = 'd0,
|
output reg [31:0] o_copro_write_data = 'd0,
|
output reg [31:0] o_write_data = 'd0,
|
output reg [31:0] o_write_data = 'd0,
|
output reg [31:0] o_iaddress = 32'hdead_dead,
|
output wire [31:0] o_iaddress,
|
output [31:0] o_iaddress_nxt, // un-registered version of address to the
|
output [31:0] o_iaddress_nxt, // un-registered version of address to the
|
// cache rams address ports
|
// cache rams address ports
|
output reg o_iaddress_valid = 'd0, // High when instruction address is valid
|
output reg o_iaddress_valid = 'd0, // High when instruction address is valid
|
output reg [31:0] o_daddress = 32'h0, // Address to data cache
|
output reg [31:0] o_daddress = 32'h0, // Address to data cache
|
output [31:0] o_daddress_nxt, // un-registered version of address to the
|
output [31:0] o_daddress_nxt, // un-registered version of address to the
|
Line 215... |
Line 215... |
wire ldm_flags;
|
wire ldm_flags;
|
wire ldm_status_bits;
|
wire ldm_status_bits;
|
|
|
wire carry_in;
|
wire carry_in;
|
|
|
|
reg [31:0] iaddress_r = 32'hdead_dead;
|
|
|
|
|
// ========================================================
|
// ========================================================
|
// Status Bits in PC register
|
// Status Bits in PC register
|
// ========================================================
|
// ========================================================
|
wire [1:0] status_bits_mode_out;
|
wire [1:0] status_bits_mode_out;
|
Line 544... |
Line 546... |
o_priviledged <= priviledged_update ? priviledged_nxt : o_priviledged;
|
o_priviledged <= priviledged_update ? priviledged_nxt : o_priviledged;
|
o_exclusive <= exclusive_update ? i_decode_exclusive : o_exclusive;
|
o_exclusive <= exclusive_update ? i_decode_exclusive : o_exclusive;
|
o_write_enable <= write_enable_update ? write_enable_nxt : o_write_enable;
|
o_write_enable <= write_enable_update ? write_enable_nxt : o_write_enable;
|
o_write_data <= write_data_update ? write_data_nxt : o_write_data;
|
o_write_data <= write_data_update ? write_data_nxt : o_write_data;
|
o_byte_enable <= byte_enable_update ? byte_enable_nxt : o_byte_enable;
|
o_byte_enable <= byte_enable_update ? byte_enable_nxt : o_byte_enable;
|
o_iaddress <= iaddress_update ? o_iaddress_nxt : o_iaddress;
|
iaddress_r <= iaddress_update ? o_iaddress_nxt : iaddress_r;
|
o_iaddress_valid <= iaddress_update ? iaddress_valid_nxt : o_iaddress_valid;
|
o_iaddress_valid <= iaddress_update ? iaddress_valid_nxt : o_iaddress_valid;
|
o_adex <= iaddress_update ? adex_nxt : o_adex;
|
o_adex <= iaddress_update ? adex_nxt : o_adex;
|
o_copro_write_data <= copro_write_data_update ? write_data_nxt : o_copro_write_data;
|
o_copro_write_data <= copro_write_data_update ? write_data_nxt : o_copro_write_data;
|
|
|
base_address <= base_address_update ? rn : base_address;
|
base_address <= base_address_update ? rn : base_address;
|
Line 558... |
Line 560... |
status_bits_mode_rds_oh <= status_bits_mode_rds_oh_update ? status_bits_mode_rds_oh_nxt : status_bits_mode_rds_oh;
|
status_bits_mode_rds_oh <= status_bits_mode_rds_oh_update ? status_bits_mode_rds_oh_nxt : status_bits_mode_rds_oh;
|
status_bits_irq_mask <= status_bits_irq_mask_update ? status_bits_irq_mask_nxt : status_bits_irq_mask;
|
status_bits_irq_mask <= status_bits_irq_mask_update ? status_bits_irq_mask_nxt : status_bits_irq_mask;
|
status_bits_firq_mask <= status_bits_firq_mask_update ? status_bits_firq_mask_nxt : status_bits_firq_mask;
|
status_bits_firq_mask <= status_bits_firq_mask_update ? status_bits_firq_mask_nxt : status_bits_firq_mask;
|
end
|
end
|
|
|
|
assign o_iaddress = iaddress_r;
|
|
|
|
|
// ========================================================
|
// ========================================================
|
// Instantiate Barrel Shift
|
// Instantiate Barrel Shift
|
// ========================================================
|
// ========================================================
|
assign carry_in = i_use_carry_in ? status_bits_flags[1] : 1'd0;
|
assign carry_in = i_use_carry_in ? status_bits_flags[1] : 1'd0;
|