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

Subversion Repositories aemb

[/] [aemb/] [trunk/] [rtl/] [verilog/] [aeMB_xecu.v] - Diff between revs 96 and 102

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

Rev 96 Rev 102
Line 1... Line 1...
/* $Id: aeMB_xecu.v,v 1.10 2007-12-25 22:15:09 sybreon Exp $
/* $Id: aeMB_xecu.v,v 1.11 2008-01-19 15:57:36 sybreon Exp $
**
**
** AEMB MAIN EXECUTION ALU
** AEMB MAIN EXECUTION ALU
** Copyright (C) 2004-2007 Shawn Tan Ser Ngiap <shawn.tan@aeste.net>
** Copyright (C) 2004-2007 Shawn Tan Ser Ngiap <shawn.tan@aeste.net>
**
**
** This file is part of AEMB.
** This file is part of AEMB.
Line 253... Line 253...
 
 
 
 
   // --- MSR REGISTER -----------------
   // --- MSR REGISTER -----------------
 
 
   // C
   // C
   wire            fMTS = (rOPC == 6'o45) & rIMM[14];
   wire            fMTS = (rOPC == 6'o45) & rIMM[14] & !fSKIP;
   wire            fADDC = ({rOPC[5:4], rOPC[2]} == 3'o0);
   wire            fADDC = ({rOPC[5:4], rOPC[2]} == 3'o0);
 
 
   always @(/*AUTOSENSE*/fADDC or fMTS or fSKIP or rMSR_C or rMXALU
   always @(/*AUTOSENSE*/fADDC or fMTS or fSKIP or rMSR_C or rMXALU
            or rOPA or rRES_ADDC or rRES_SFTC)
            or rOPA or rRES_ADDC or rRES_SFTC)
     //if (fSKIP | |rXCE) begin
     //if (fSKIP | |rXCE) begin
Line 270... Line 270...
         3'o2: xMSR_C <= rRES_SFTC; // SHIFT
         3'o2: xMSR_C <= rRES_SFTC; // SHIFT
         3'o3: xMSR_C <= (fMTS) ? rOPA[2] : rMSR_C;
         3'o3: xMSR_C <= (fMTS) ? rOPA[2] : rMSR_C;
         3'o4: xMSR_C <= rMSR_C;
         3'o4: xMSR_C <= rMSR_C;
         3'o5: xMSR_C <= rMSR_C;
         3'o5: xMSR_C <= rMSR_C;
         default: xMSR_C <= 1'hX;
         default: xMSR_C <= 1'hX;
       endcase
       endcase // case (rMXALU)
 
 
   // IE/BIP/BE
   // IE/BIP/BE
   wire             fRTID = (rOPC == 6'o55) & rRD[0];
   wire             fRTID = (rOPC == 6'o55) & rRD[0] & !fSKIP;
   wire             fRTBD = (rOPC == 6'o55) & rRD[1];
   wire             fRTBD = (rOPC == 6'o55) & rRD[1] & !fSKIP;
   wire             fBRK = ((rOPC == 6'o56) | (rOPC == 6'o66)) & (rRA == 5'hC);
   wire             fBRK = ((rOPC == 6'o56) | (rOPC == 6'o66)) & (rRA == 5'hC);
   wire             fINT = ((rOPC == 6'o56) | (rOPC == 6'o66)) & (rRA == 5'hE);
   wire             fINT = ((rOPC == 6'o56) | (rOPC == 6'o66)) & (rRA == 5'hE);
 
 
   always @(/*AUTOSENSE*/fINT or fMTS or fRTID or rMSR_IE or rOPA)
   always @(/*AUTOSENSE*/fINT or fMTS or fRTID or rMSR_IE or rOPA)
     xMSR_IE <= (fINT) ? 1'b0 :
     xMSR_IE <= (fINT) ? 1'b0 :
Line 359... Line 359...
        rMSR_BIP <= 1'h0;
        rMSR_BIP <= 1'h0;
        rMSR_C <= 1'h0;
        rMSR_C <= 1'h0;
        rMSR_IE <= 1'h0;
        rMSR_IE <= 1'h0;
        rRESULT <= 32'h0;
        rRESULT <= 32'h0;
        // End of automatics
        // End of automatics
     end else if (gena) begin
     end else if (gena) begin // if (grst)
        rRESULT <= #1 xRESULT;
        rRESULT <= #1 xRESULT;
        rDWBSEL <= #1 xDWBSEL;
        rDWBSEL <= #1 xDWBSEL;
        rMSR_C <= #1 xMSR_C;
        rMSR_C <= #1 xMSR_C;
        rMSR_IE <= #1 xMSR_IE;
        rMSR_IE <= #1 xMSR_IE;
        rMSR_BE <= #1 xMSR_BE;
        rMSR_BE <= #1 xMSR_BE;
Line 373... Line 373...
 
 
endmodule // aeMB_xecu
endmodule // aeMB_xecu
 
 
/*
/*
 $Log: not supported by cvs2svn $
 $Log: not supported by cvs2svn $
 
 Revision 1.10  2007/12/25 22:15:09  sybreon
 
 Stalls pipeline on MUL/BSF instructions results in minor speed improvements.
 
 
 Revision 1.9  2007/11/30 16:42:51  sybreon
 Revision 1.9  2007/11/30 16:42:51  sybreon
 Minor code cleanup.
 Minor code cleanup.
 
 
 Revision 1.8  2007/11/16 21:52:03  sybreon
 Revision 1.8  2007/11/16 21:52:03  sybreon
 Added fsl_tag_o to FSL bus (tag either address or data).
 Added fsl_tag_o to FSL bus (tag either address or data).

powered by: WebSVN 2.1.0

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