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

Subversion Repositories m32632

[/] [m32632/] [trunk/] [rtl/] [ADDR_UNIT.v] - Diff between revs 11 and 12

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

Rev 11 Rev 12
Line 2... Line 2...
//
//
// This file is part of the M32632 project
// This file is part of the M32632 project
// http://opencores.org/project,m32632
// http://opencores.org/project,m32632
//
//
// Filename: ADDR_UNIT.v
// Filename: ADDR_UNIT.v
// Version:  1.0
// Version:  1.1 bug fix
// Date:     30 May 2015
// History:  1.0 first release of 30 Mai 2015
 
// Date:     7 October 2015
//
//
// Copyright (C) 2015 Udo Moeller
// Copyright (C) 2015 Udo Moeller
// 
// 
// This source file may be used and distributed without 
// This source file may be used and distributed without 
// restriction provided that this copyright statement is not 
// restriction provided that this copyright statement is not 
Line 37... Line 38...
//
//
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 
 
module ADDR_UNIT ( BCLK, BRESET, READ, WRITE, LDEA, NEWACC, CLRMSW, POST, DISP_OK, FULLACC, SRC2SEL, INDEX, ASIZE, SRC1, SRC2, BWD,
module ADDR_UNIT ( BCLK, BRESET, READ, WRITE, LDEA, NEWACC, CLRMSW, POST, DISP_OK, FULLACC, SRC2SEL, INDEX, ASIZE, SRC1, SRC2, BWD,
                                   DISP, PC_ARCHI, PC_ICACHE, IO_READY, ACC_STAT, MMU_UPDATE, IC_TEX, ABO_STAT, ADIVAR, RWVAL_1, OP_RMW, PHASE_17,
                                   DISP, PC_ARCHI, PC_ICACHE, IO_READY, ACC_STAT, MMU_UPDATE, IC_TEX, ABO_STAT, ADIVAR, RWVAL_1, OP_RMW, PHASE_17,
                                   NO_TRAP, FPU_TRAP, READ_OUT, WRITE_OUT, ZTEST, RMW, VADR, ADDR, SIZE, PACKET, ACC_DONE, ABORT, REG_OUT, BITSEL );
                                   NO_TRAP, FPU_TRAP, READ_OUT, WRITE_OUT, ZTEST, RMW, VADR, ADDR, SIZE, PACKET, ACC_DONE, ABORT, REG_OUT, BITSEL,
 
                                   QWATWO );
 
 
        input                   BCLK,BRESET;
        input                   BCLK,BRESET;
        input                   READ,WRITE,LDEA;
        input                   READ,WRITE,LDEA;
        input                   NEWACC;
        input                   NEWACC;
        input                   CLRMSW,POST,FULLACC;
        input                   CLRMSW,POST,FULLACC;
Line 72... Line 74...
        output   [3:0]   PACKET;
        output   [3:0]   PACKET;
        output                  ACC_DONE;
        output                  ACC_DONE;
        output                  ABORT;
        output                  ABORT;
        output                  REG_OUT;
        output                  REG_OUT;
        output   [2:0]   BITSEL;
        output   [2:0]   BITSEL;
 
        output  reg             QWATWO;
 
 
        reg             [31:0]   VADR;
        reg             [31:0]   VADR;
        reg                             READ_OUT,write_reg,ZTEST,RMW;
        reg                             READ_OUT,write_reg,ZTEST,RMW;
        reg              [1:0]   SIZE;
        reg              [1:0]   SIZE;
        reg              [3:0]   PACKET;
        reg              [3:0]   PACKET;
Line 336... Line 339...
                  else no_done <= (~acc_ende & acc_step) | (no_done & ~(acc_run & acc_ende));
                  else no_done <= (~acc_ende & acc_step) | (no_done & ~(acc_run & acc_ende));
 
 
        // The final DONE Multiplexer
        // The final DONE Multiplexer
        assign ACC_DONE = acc_run ? (acc_step & ~no_done) : ea_ok;
        assign ACC_DONE = acc_run ? (acc_step & ~no_done) : ea_ok;
 
 
 
        // Bugfix of 7.October 2015
 
        always @(posedge BCLK) QWATWO <= acc_run & acc_ok & qwa_flag & ~io_rdy & ca_hit & ~PACKET[3] & (SIZE == 2'b11) & READ_OUT & ~no_done;
 
 
        always @(posedge BCLK) reg_out_i <= ~acc_step & BRESET & ((qwa_flag & (io_rdy | ~ca_hit) & acc_ok) | reg_out_i);
        always @(posedge BCLK) reg_out_i <= ~acc_step & BRESET & ((qwa_flag & (io_rdy | ~ca_hit) & acc_ok) | reg_out_i);
 
 
        always @(posedge BCLK) io_rdy  <= IO_READY & (WRITE_OUT | READ_OUT);
        always @(posedge BCLK) io_rdy  <= IO_READY & (WRITE_OUT | READ_OUT);
 
 
        always @(posedge BCLK) next_reg <= (acc_step & ~qwa_flag) & (SIZE == 2'b11);
        always @(posedge BCLK) next_reg <= (acc_step & ~qwa_flag) & (SIZE == 2'b11);

powered by: WebSVN 2.1.0

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