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

Subversion Repositories aemb

[/] [aemb/] [branches/] [AEMB2_712/] [rtl/] [verilog/] [aeMB_xecu.v] - Diff between revs 66 and 72

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

Rev 66 Rev 72
Line 1... Line 1...
// $Id: aeMB_xecu.v,v 1.8 2007-11-16 21:52:03 sybreon Exp $
// $Id: aeMB_xecu.v,v 1.9 2007-11-30 16:42:51 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>
//  
//  
Line 18... Line 18...
//
//
// You should have received a copy of the GNU Lesser General Public
// You should have received a copy of the GNU Lesser General Public
// License along with AEMB. If not, see <http://www.gnu.org/licenses/>.
// License along with AEMB. If not, see <http://www.gnu.org/licenses/>.
//
//
// $Log: not supported by cvs2svn $
// $Log: not supported by cvs2svn $
 
// Revision 1.8  2007/11/16 21:52:03  sybreon
 
// Added fsl_tag_o to FSL bus (tag either address or data).
 
//
// Revision 1.7  2007/11/14 22:14:34  sybreon
// Revision 1.7  2007/11/14 22:14:34  sybreon
// Changed interrupt handling system (reported by M. Ettus).
// Changed interrupt handling system (reported by M. Ettus).
//
//
// Revision 1.6  2007/11/10 16:39:38  sybreon
// Revision 1.6  2007/11/10 16:39:38  sybreon
// Upgraded license to LGPLv3.
// Upgraded license to LGPLv3.
Line 70... Line 73...
   // INTERNAL
   // INTERNAL
   output [31:0]   rRESULT;
   output [31:0]   rRESULT;
   output [3:0]    rDWBSEL;
   output [3:0]    rDWBSEL;
   output          rMSR_IE;
   output          rMSR_IE;
   output          rMSR_BIP;
   output          rMSR_BIP;
   //input [1:0]           rXCE;   
 
   input [31:0]    rREGA, rREGB;
   input [31:0]    rREGA, rREGB;
   input [1:0]      rMXSRC, rMXTGT;
   input [1:0]      rMXSRC, rMXTGT;
   input [4:0]      rRA, rRB;
   input [4:0]      rRA, rRB;
   input [2:0]      rMXALU;
   input [2:0]      rMXALU;
   input           rBRA, rDLY;
   input           rBRA, rDLY;
Line 84... Line 86...
   input [15:0]    rIMM;
   input [15:0]    rIMM;
   input [5:0]      rOPC;
   input [5:0]      rOPC;
   input [4:0]      rRD;
   input [4:0]      rRD;
   input [31:0]    rDWBDI;
   input [31:0]    rDWBDI;
   input [31:2]    rPC;
   input [31:2]    rPC;
   //input [31:0]    rRES_MUL; // External Multiplier
 
   //input [31:0]    rRES_BSF; // External Barrel Shifter
 
 
 
   // SYSTEM
   // SYSTEM
   input           gclk, grst, gena;
   input           gclk, grst, gena;
 
 
   reg             rMSR_C, xMSR_C;
   reg             rMSR_C, xMSR_C;
Line 186... Line 186...
                 (fMFPC) ? rPC :
                 (fMFPC) ? rPC :
                 (rRA[3]) ? rOPB :
                 (rRA[3]) ? rOPB :
                 rOPA;
                 rOPA;
 
 
   // --- MULTIPLIER ------------------------------------------
   // --- MULTIPLIER ------------------------------------------
 
   // TODO: 2 stage multiplier
 
 
   reg [31:0]        rRES_MUL;
   reg [31:0]        rRES_MUL;
   always @(/*AUTOSENSE*/rOPA or rOPB) begin
   always @(/*AUTOSENSE*/rOPA or rOPB) begin
      rRES_MUL <= (rOPA * rOPB);
      rRES_MUL <= (rOPA * rOPB);
   end
   end
Line 277... Line 278...
 
 
   // IE/BIP/BE
   // IE/BIP/BE
   wire             fRTID = (rOPC == 6'o55) & rRD[0];
   wire             fRTID = (rOPC == 6'o55) & rRD[0];
   wire             fRTBD = (rOPC == 6'o55) & rRD[1];
   wire             fRTBD = (rOPC == 6'o55) & rRD[1];
   wire             fBRK = ((rOPC == 6'o56) | (rOPC == 6'o66)) & (rRA == 5'hC);
   wire             fBRK = ((rOPC == 6'o56) | (rOPC == 6'o66)) & (rRA == 5'hC);
   wire             fXCE = ((rOPC == 6'o56) | (rOPC == 6'o66)) & (rRA == 5'hE);
   wire             fINT = ((rOPC == 6'o56) | (rOPC == 6'o66)) & (rRA == 5'hE);
 
 
   always @(/*AUTOSENSE*/fMTS or fRTID or fXCE or rMSR_IE or rOPA)
   always @(/*AUTOSENSE*/fINT or fMTS or fRTID or rMSR_IE or rOPA)
     xMSR_IE <= (fXCE) ? 1'b0 :
     xMSR_IE <= (fINT) ? 1'b0 :
                (fRTID) ? 1'b1 :
                (fRTID) ? 1'b1 :
                (fMTS) ? rOPA[1] :
                (fMTS) ? rOPA[1] :
                rMSR_IE;
                rMSR_IE;
 
 
   always @(/*AUTOSENSE*/fBRK or fMTS or fRTBD or rMSR_BIP or rOPA)
   always @(/*AUTOSENSE*/fBRK or fMTS or fRTBD or rMSR_BIP or rOPA)

powered by: WebSVN 2.1.0

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