OpenCores
URL https://opencores.org/ocsvn/amber/amber/trunk

Subversion Repositories amber

[/] [amber/] [trunk/] [hw/] [vlog/] [amber25/] [a25_execute.v] - Diff between revs 88 and 89

Show entire file | Details | Blame | View Log

Rev 88 Rev 89
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;

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.