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

Subversion Repositories amber

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

Go to most recent revision | Show entire file | Details | Blame | View Log

Rev 54 Rev 82
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] ;
 
 
 
 
 
 

powered by: WebSVN 2.1.0

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