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

Subversion Repositories aemb

[/] [aemb/] [trunk/] [rtl/] [verilog/] [aeMB_edk32.v] - Diff between revs 45 and 50

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

Rev 45 Rev 50
Line 1... Line 1...
// $Id: aeMB_edk32.v,v 1.3 2007-11-03 08:34:55 sybreon Exp $
// $Id: aeMB_edk32.v,v 1.4 2007-11-08 14:17:47 sybreon Exp $
//
//
// AEMB EDK 3.2 Compatible Core
// AEMB EDK 3.2 Compatible Core
//
//
// 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...
// License along with this library; if not, write to the Free Software
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
// USA
// USA
//
//
// $Log: not supported by cvs2svn $
// $Log: not supported by cvs2svn $
 
// Revision 1.3  2007/11/03 08:34:55  sybreon
 
// Minor code cleanup.
 
//
// Revision 1.2  2007/11/02 19:20:58  sybreon
// Revision 1.2  2007/11/02 19:20:58  sybreon
// Added better (beta) interrupt support.
// Added better (beta) interrupt support.
// Changed MSR_IE to disabled at reset as per MB docs.
// Changed MSR_IE to disabled at reset as per MB docs.
//
//
// Revision 1.1  2007/11/02 03:25:40  sybreon
// Revision 1.1  2007/11/02 03:25:40  sybreon
Line 36... Line 39...
   dwb_adr_o,
   dwb_adr_o,
   // Inputs
   // Inputs
   sys_rst_i, sys_int_i, sys_clk_i, iwb_dat_i, iwb_ack_i, dwb_dat_i,
   sys_rst_i, sys_int_i, sys_clk_i, iwb_dat_i, iwb_ack_i, dwb_dat_i,
   dwb_ack_i
   dwb_ack_i
   );
   );
 
   // Bus widths
   parameter IW = 32;
   parameter IW = 32; /// Instruction bus address width
   parameter DW = 32;
   parameter DW = 32; /// Data bus address width
 
 
 
   // Optional functions
 
   parameter MUL = 1; // Multiplier
 
   parameter BSF = 1; // Barrel Shifter
 
 
   /*AUTOOUTPUT*/
   /*AUTOOUTPUT*/
   // Beginning of automatic outputs (from unused autoinst outputs)
   // Beginning of automatic outputs (from unused autoinst outputs)
   output [DW-1:2]      dwb_adr_o;              // From xecu of aeMB_xecu.v
   output [DW-1:2]      dwb_adr_o;              // From xecu of aeMB_xecu.v
   output [31:0] dwb_dat_o;              // From regf of aeMB_regf.v
   output [31:0] dwb_dat_o;              // From regf of aeMB_regf.v
Line 52... Line 59...
   output [IW-1:2]      iwb_adr_o;              // From bpcu of aeMB_bpcu.v
   output [IW-1:2]      iwb_adr_o;              // From bpcu of aeMB_bpcu.v
   output               iwb_stb_o;              // From ibuf of aeMB_ibuf.v
   output               iwb_stb_o;              // From ibuf of aeMB_ibuf.v
   // End of automatics
   // End of automatics
   /*AUTOINPUT*/
   /*AUTOINPUT*/
   // Beginning of automatic inputs (from unused autoinst inputs)
   // Beginning of automatic inputs (from unused autoinst inputs)
   input                dwb_ack_i;              // To scon of aeMB_scon.v
   input                dwb_ack_i;              // To scon of aeMB_scon.v, ...
   input [31:0]          dwb_dat_i;              // To regf of aeMB_regf.v
   input [31:0]          dwb_dat_i;              // To regf of aeMB_regf.v
   input                iwb_ack_i;              // To scon of aeMB_scon.v, ...
   input                iwb_ack_i;              // To scon of aeMB_scon.v, ...
   input [31:0]          iwb_dat_i;              // To ibuf of aeMB_ibuf.v
   input [31:0]          iwb_dat_i;              // To ibuf of aeMB_ibuf.v
   input                sys_clk_i;              // To scon of aeMB_scon.v
   input                sys_clk_i;              // To scon of aeMB_scon.v
   input                sys_int_i;              // To scon of aeMB_scon.v
   input                sys_int_i;              // To scon of aeMB_scon.v
Line 94... Line 101...
   wire [4:0]            rRW;                    // From ctrl of aeMB_ctrl.v
   wire [4:0]            rRW;                    // From ctrl of aeMB_ctrl.v
   wire [31:0]           rSIMM;                  // From ibuf of aeMB_ibuf.v
   wire [31:0]           rSIMM;                  // From ibuf of aeMB_ibuf.v
   wire [1:0]            rXCE;                   // From scon of aeMB_scon.v
   wire [1:0]            rXCE;                   // From scon of aeMB_scon.v
   // End of automatics
   // End of automatics
 
 
   wire [31:0]           rOPA, rOPB;
 
   wire [31:0]           rRES_MUL, rRES_BSF;
 
 
 
   // --- OPTIONAL COMPONENTS -----------------------------------
 
   // Trade off hardware size/speed for software speed
 
 
 
   aeMB_mult
 
     mult (
 
           // Outputs
 
           .rRES_MUL                    (rRES_MUL[31:0]),
 
           // Inputs
 
           .rOPA                        (rOPA[31:0]),
 
           .rOPB                        (rOPB[31:0]));
 
 
 
   aeMB_bsft
 
     bsft (
 
           // Outputs
 
           .rRES_BSF                    (rRES_BSF[31:0]),
 
           // Inputs
 
           .rOPA                        (rOPA[31:0]),
 
           .rOPB                        (rOPB[31:0]),
 
           .rALT                        (rALT[10:0]));
 
 
 
 
 
   // --- NON-OPTIONAL COMPONENTS -------------------------------
 
   // These components make up the main AEMB processor.
 
 
 
   aeMB_scon
   aeMB_scon
     scon (/*AUTOINST*/
     scon (/*AUTOINST*/
           // Outputs
           // Outputs
           .rXCE                        (rXCE[1:0]),
           .rXCE                        (rXCE[1:0]),
           .grst                        (grst),
           .grst                        (grst),
Line 186... Line 166...
           .rRA                         (rRA[4:0]),
           .rRA                         (rRA[4:0]),
           .rRB                         (rRB[4:0]),
           .rRB                         (rRB[4:0]),
           .rPC                         (rPC[31:2]),
           .rPC                         (rPC[31:2]),
           .rBRA                        (rBRA),
           .rBRA                        (rBRA),
           .rMSR_IE                     (rMSR_IE),
           .rMSR_IE                     (rMSR_IE),
 
           .dwb_ack_i                   (dwb_ack_i),
           .gclk                        (gclk),
           .gclk                        (gclk),
           .grst                        (grst),
           .grst                        (grst),
           .gena                        (gena));
           .gena                        (gena));
 
 
   aeMB_bpcu #(IW)
   aeMB_bpcu #(IW)
Line 236... Line 217...
           .dwb_dat_i                   (dwb_dat_i[31:0]),
           .dwb_dat_i                   (dwb_dat_i[31:0]),
           .gclk                        (gclk),
           .gclk                        (gclk),
           .grst                        (grst),
           .grst                        (grst),
           .gena                        (gena));
           .gena                        (gena));
 
 
   aeMB_xecu #(DW)
   aeMB_xecu #(DW, MUL, BSF)
     xecu (
     xecu (/*AUTOINST*/
           .rOPA                        (rOPA[31:0]),
 
           .rOPB                        (rOPB[31:0]),
 
           /*AUTOINST*/
 
           // Outputs
           // Outputs
           .dwb_adr_o                   (dwb_adr_o[DW-1:2]),
           .dwb_adr_o                   (dwb_adr_o[DW-1:2]),
           .dwb_sel_o                   (dwb_sel_o[3:0]),
           .dwb_sel_o                   (dwb_sel_o[3:0]),
           .rRESULT                     (rRESULT[31:0]),
           .rRESULT                     (rRESULT[31:0]),
           .rDWBSEL                     (rDWBSEL[3:0]),
           .rDWBSEL                     (rDWBSEL[3:0]),
Line 258... Line 236...
           .rMXTGT                      (rMXTGT[1:0]),
           .rMXTGT                      (rMXTGT[1:0]),
           .rRA                         (rRA[4:0]),
           .rRA                         (rRA[4:0]),
           .rMXALU                      (rMXALU[2:0]),
           .rMXALU                      (rMXALU[2:0]),
           .rBRA                        (rBRA),
           .rBRA                        (rBRA),
           .rDLY                        (rDLY),
           .rDLY                        (rDLY),
 
           .rALT                        (rALT[10:0]),
           .rSIMM                       (rSIMM[31:0]),
           .rSIMM                       (rSIMM[31:0]),
           .rIMM                        (rIMM[15:0]),
           .rIMM                        (rIMM[15:0]),
           .rOPC                        (rOPC[5:0]),
           .rOPC                        (rOPC[5:0]),
           .rRD                         (rRD[4:0]),
           .rRD                         (rRD[4:0]),
           .rDWBDI                      (rDWBDI[31:0]),
           .rDWBDI                      (rDWBDI[31:0]),
           .rPC                         (rPC[31:2]),
           .rPC                         (rPC[31:2]),
           .rRES_MUL                    (rRES_MUL[31:0]),
 
           .rRES_BSF                    (rRES_BSF[31:0]),
 
           .gclk                        (gclk),
           .gclk                        (gclk),
           .grst                        (grst),
           .grst                        (grst),
           .gena                        (gena));
           .gena                        (gena));
 
 
 
 

powered by: WebSVN 2.1.0

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