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

Subversion Repositories amber

[/] [amber/] [trunk/] [hw/] [vlog/] [amber23/] [a23_execute.v] - Diff between revs 87 and 88

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

Rev 87 Rev 88
Line 147... Line 147...
wire [31:0]         interrupt_vector;
wire [31:0]         interrupt_vector;
wire [7:0]          shift_amount;
wire [7:0]          shift_amount;
wire [31:0]         barrel_shift_in;
wire [31:0]         barrel_shift_in;
wire [31:0]         barrel_shift_out;
wire [31:0]         barrel_shift_out;
wire                barrel_shift_carry;
wire                barrel_shift_carry;
 
wire                barrel_shift_carry_alu;
 
 
wire [3:0]          status_bits_flags_nxt;
wire [3:0]          status_bits_flags_nxt;
reg  [3:0]          status_bits_flags = 'd0;
reg  [3:0]          status_bits_flags = 'd0;
wire [1:0]          status_bits_mode_nxt;
wire [1:0]          status_bits_mode_nxt;
wire [1:0]          status_bits_mode_nr;
wire [1:0]          status_bits_mode_nr;
Line 488... Line 489...
    .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          ),
    .o_carry_out      ( barrel_shift_carry        )
    .o_carry_out      ( barrel_shift_carry        ));
);
 
 
 
 
 
wire barrel_shift_carry_real;
 
assign barrel_shift_carry_real =  i_barrel_shift_data_sel == 2'd0 ?
 
                                      (i_imm_shift_amount[4:1] == 0 ? status_bits_flags[1] : i_imm32[31]) :
 
                                      barrel_shift_carry;
 
 
 
// ========================================================
// ========================================================
// Instantiate ALU
// Instantiate ALU
// ========================================================
// ========================================================
 
assign barrel_shift_carry_alu =  i_barrel_shift_data_sel == 2'd0 ?
 
                                  (i_imm_shift_amount[4:1] == 0 ? status_bits_flags[1] : i_imm32[31]) :
 
                                   barrel_shift_carry;
 
 
a23_alu u_alu (
a23_alu u_alu (
    .i_a_in                 ( rn                    ),
    .i_a_in                 ( rn                    ),
    .i_b_in                 ( barrel_shift_out      ),
    .i_b_in                 ( barrel_shift_out      ),
    //.i_barrel_shift_carry   ( barrel_shift_carry    ),
    .i_barrel_shift_carry   ( barrel_shift_carry_alu  ),
    .i_barrel_shift_carry   ( barrel_shift_carry_real    ),
 
    .i_status_bits_carry    ( status_bits_flags[1]  ),
    .i_status_bits_carry    ( status_bits_flags[1]  ),
    .i_function             ( i_alu_function        ),
    .i_function             ( i_alu_function        ),
 
 
    .o_out                  ( alu_out               ),
    .o_out                  ( alu_out               ),
    .o_flags                ( alu_flags             )
    .o_flags                ( alu_flags               ));
);
 
 
 
 
 
// ========================================================
// ========================================================
// Instantiate Booth 64-bit Multiplier-Accumulator
// Instantiate Booth 64-bit Multiplier-Accumulator
// ========================================================
// ========================================================

powered by: WebSVN 2.1.0

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