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

Subversion Repositories aemb

[/] [aemb/] [trunk/] [rtl/] [verilog/] [aeMB_core.v] - Diff between revs 16 and 22

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

Rev 16 Rev 22
Line 1... Line 1...
/*
/*
 * $Id: aeMB_core.v,v 1.3 2007-04-11 04:30:43 sybreon Exp $
 * $Id: aeMB_core.v,v 1.4 2007-04-25 22:15:04 sybreon Exp $
 *
 *
 * AEMB 32-bit Microblaze Compatible Core
 * AEMB 32-bit Microblaze Compatible Core
 * Copyright (C) 2006 Shawn Tan Ser Ngiap <shawn.tan@aeste.net>
 * Copyright (C) 2006 Shawn Tan Ser Ngiap <shawn.tan@aeste.net>
 *
 *
 * This library is free software; you can redistribute it and/or modify it
 * This library is free software; you can redistribute it and/or modify it
Line 23... Line 23...
 * capable of executing software compile for EDK 2.1 using GCC. It has the
 * capable of executing software compile for EDK 2.1 using GCC. It has the
 * capability of handling interrupts as well as exceptions.
 * capability of handling interrupts as well as exceptions.
 *
 *
 * HISTORY
 * HISTORY
 * $Log: not supported by cvs2svn $
 * $Log: not supported by cvs2svn $
 
 * Revision 1.3  2007/04/11 04:30:43  sybreon
 
 * Added pipeline stalling from incomplete bus cycles.
 
 * Separated sync and async portions of code.
 
 *
 * Revision 1.2  2007/04/04 06:13:23  sybreon
 * Revision 1.2  2007/04/04 06:13:23  sybreon
 * Removed unused signals
 * Removed unused signals
 *
 *
 * Revision 1.1  2007/03/09 17:52:17  sybreon
 * Revision 1.1  2007/03/09 17:52:17  sybreon
 * initial import
 * initial import
 *
 *
 */
 */
 
 
module aeMB_core (/*AUTOARG*/
module aeMB_core (/*AUTOARG*/
   // Outputs
   // Outputs
   iwb_stb_o, iwb_adr_o, dwb_we_o, dwb_stb_o, dwb_dat_o, dwb_adr_o,
   iwb_stb_o, iwb_adr_o, dwb_we_o, dwb_stb_o, dwb_sel_o, dwb_dat_o,
 
   dwb_adr_o,
   // Inputs
   // Inputs
   sys_rst_i, sys_int_i, sys_exc_i, sys_clk_i, iwb_dat_i, iwb_ack_i,
   sys_rst_i, sys_int_i, sys_exc_i, sys_clk_i, iwb_dat_i, iwb_ack_i,
   dwb_dat_i, dwb_ack_i
   dwb_dat_i, dwb_ack_i
   );
   );
   // Instruction WB address space
   // Instruction WB address space
Line 47... Line 52...
 
 
   /*AUTOOUTPUT*/
   /*AUTOOUTPUT*/
   // Beginning of automatic outputs (from unused autoinst outputs)
   // Beginning of automatic outputs (from unused autoinst outputs)
   output [DSIZ-1:0]     dwb_adr_o;              // From aslu of aeMB_aslu.v
   output [DSIZ-1:0]     dwb_adr_o;              // From aslu of aeMB_aslu.v
   output [31:0] dwb_dat_o;              // From regfile of aeMB_regfile.v
   output [31:0] dwb_dat_o;              // From regfile of aeMB_regfile.v
 
   output [3:0]          dwb_sel_o;              // From aslu of aeMB_aslu.v
   output               dwb_stb_o;              // From decode of aeMB_decode.v
   output               dwb_stb_o;              // From decode of aeMB_decode.v
   output               dwb_we_o;               // From decode of aeMB_decode.v
   output               dwb_we_o;               // From decode of aeMB_decode.v
   output [ISIZ-1:0]     iwb_adr_o;              // From fetch of aeMB_fetch.v
   output [ISIZ-1:0]     iwb_adr_o;              // From fetch of aeMB_fetch.v
   output               iwb_stb_o;              // From decode of aeMB_decode.v
   output               iwb_stb_o;              // From decode of aeMB_decode.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 control of aeMB_control.v
   input                dwb_ack_i;              // To control of aeMB_control.v
   input [31:0]          dwb_dat_i;              // To regfile of aeMB_regfile.v, ...
   input [31:0]          dwb_dat_i;              // To regfile of aeMB_regfile.v
   input                iwb_ack_i;              // To control of aeMB_control.v
   input                iwb_ack_i;              // To control of aeMB_control.v
   input [31:0]          iwb_dat_i;              // To fetch of aeMB_fetch.v, ...
   input [31:0]          iwb_dat_i;              // To fetch of aeMB_fetch.v, ...
   input                sys_clk_i;              // To control of aeMB_control.v
   input                sys_clk_i;              // To control of aeMB_control.v
   input                sys_exc_i;              // To control of aeMB_control.v
   input                sys_exc_i;              // To control of aeMB_control.v
   input                sys_int_i;              // To control of aeMB_control.v
   input                sys_int_i;              // To control of aeMB_control.v
Line 72... Line 78...
   wire                 nclk;                   // From control of aeMB_control.v
   wire                 nclk;                   // From control of aeMB_control.v
   wire                 nrst;                   // From control of aeMB_control.v
   wire                 nrst;                   // From control of aeMB_control.v
   wire                 nrun;                   // From control of aeMB_control.v
   wire                 nrun;                   // From control of aeMB_control.v
   wire                 rBRA;                   // From decode of aeMB_decode.v
   wire                 rBRA;                   // From decode of aeMB_decode.v
   wire                 rDLY;                   // From decode of aeMB_decode.v
   wire                 rDLY;                   // From decode of aeMB_decode.v
 
   wire [3:0]            rDWBSEL;                // From aslu of aeMB_aslu.v
   wire                 rDWBSTB;                // From decode of aeMB_decode.v
   wire                 rDWBSTB;                // From decode of aeMB_decode.v
   wire                 rDWBWE;                 // From decode of aeMB_decode.v
   wire                 rDWBWE;                 // From decode of aeMB_decode.v
   wire [1:0]            rFSM;                   // From control of aeMB_control.v
   wire [1:0]            rFSM;                   // From control of aeMB_control.v
   wire [15:0]           rIMM;                   // From decode of aeMB_decode.v
   wire [15:0]           rIMM;                   // From decode of aeMB_decode.v
   wire                 rIWBSTB;                // From decode of aeMB_decode.v
   wire                 rIWBSTB;                // From decode of aeMB_decode.v
Line 93... Line 100...
   wire [31:0]           rREGA;                  // From regfile of aeMB_regfile.v
   wire [31:0]           rREGA;                  // From regfile of aeMB_regfile.v
   wire [31:0]           rREGB;                  // From regfile of aeMB_regfile.v
   wire [31:0]           rREGB;                  // From regfile of aeMB_regfile.v
   wire [31:0]           rRESULT;                // From aslu of aeMB_aslu.v
   wire [31:0]           rRESULT;                // From aslu of aeMB_aslu.v
   wire                 rRWE;                   // From decode of aeMB_decode.v
   wire                 rRWE;                   // From decode of aeMB_decode.v
   wire [31:0]           rSIMM;                  // From decode of aeMB_decode.v
   wire [31:0]           rSIMM;                  // From decode of aeMB_decode.v
 
   wire [31:0]           sDWBDAT;                // From regfile of aeMB_regfile.v
   // End of automatics
   // End of automatics
 
 
   aeMB_regfile #(DSIZ)
   aeMB_regfile #(DSIZ)
     regfile (/*AUTOINST*/
     regfile (/*AUTOINST*/
              // Outputs
              // Outputs
              .dwb_dat_o                (dwb_dat_o[31:0]),
              .dwb_dat_o                (dwb_dat_o[31:0]),
              .rREGA                    (rREGA[31:0]),
              .rREGA                    (rREGA[31:0]),
              .rREGB                    (rREGB[31:0]),
              .rREGB                    (rREGB[31:0]),
 
              .sDWBDAT                  (sDWBDAT[31:0]),
              // Inputs
              // Inputs
              .dwb_dat_i                (dwb_dat_i[31:0]),
              .dwb_dat_i                (dwb_dat_i[31:0]),
              .rDWBSTB                  (rDWBSTB),
              .rDWBSTB                  (rDWBSTB),
              .rDWBWE                   (rDWBWE),
              .rDWBWE                   (rDWBWE),
              .rRA                      (rRA[4:0]),
              .rRA                      (rRA[4:0]),
Line 112... Line 121...
              .rRD                      (rRD[4:0]),
              .rRD                      (rRD[4:0]),
              .rRD_                     (rRD_[4:0]),
              .rRD_                     (rRD_[4:0]),
              .rRESULT                  (rRESULT[31:0]),
              .rRESULT                  (rRESULT[31:0]),
              .rFSM                     (rFSM[1:0]),
              .rFSM                     (rFSM[1:0]),
              .rPC                      (rPC[31:0]),
              .rPC                      (rPC[31:0]),
 
              .rOPC                     (rOPC[5:0]),
 
              .rDWBSEL                  (rDWBSEL[3:0]),
              .rLNK                     (rLNK),
              .rLNK                     (rLNK),
              .rRWE                     (rRWE),
              .rRWE                     (rRWE),
              .nclk                     (nclk),
              .nclk                     (nclk),
              .nrst                     (nrst),
              .nrst                     (nrst),
              .drun                     (drun),
              .drun                     (drun),
Line 158... Line 169...
 
 
   aeMB_aslu #(DSIZ)
   aeMB_aslu #(DSIZ)
     aslu (/*AUTOINST*/
     aslu (/*AUTOINST*/
           // Outputs
           // Outputs
           .dwb_adr_o                   (dwb_adr_o[DSIZ-1:0]),
           .dwb_adr_o                   (dwb_adr_o[DSIZ-1:0]),
 
           .dwb_sel_o                   (dwb_sel_o[3:0]),
           .rRESULT                     (rRESULT[31:0]),
           .rRESULT                     (rRESULT[31:0]),
 
           .rDWBSEL                     (rDWBSEL[3:0]),
           // Inputs
           // Inputs
           .dwb_dat_i                   (dwb_dat_i[31:0]),
           .sDWBDAT                     (sDWBDAT[31:0]),
           .rBRA                        (rBRA),
           .rBRA                        (rBRA),
           .rDLY                        (rDLY),
           .rDLY                        (rDLY),
           .rREGA                       (rREGA[31:0]),
           .rREGA                       (rREGA[31:0]),
           .rREGB                       (rREGB[31:0]),
           .rREGB                       (rREGB[31:0]),
           .rSIMM                       (rSIMM[31:0]),
           .rSIMM                       (rSIMM[31:0]),
Line 205... Line 218...
             .rMXLDST                   (rMXLDST[1:0]),
             .rMXLDST                   (rMXLDST[1:0]),
             .iwb_stb_o                 (iwb_stb_o),
             .iwb_stb_o                 (iwb_stb_o),
             .dwb_stb_o                 (dwb_stb_o),
             .dwb_stb_o                 (dwb_stb_o),
             .dwb_we_o                  (dwb_we_o),
             .dwb_we_o                  (dwb_we_o),
             // Inputs
             // Inputs
 
             .sDWBDAT                   (sDWBDAT[31:0]),
 
             .rDWBSEL                   (rDWBSEL[3:0]),
             .rREGA                     (rREGA[31:0]),
             .rREGA                     (rREGA[31:0]),
             .rRESULT                   (rRESULT[31:0]),
             .rRESULT                   (rRESULT[31:0]),
             .iwb_dat_i                 (iwb_dat_i[31:0]),
             .iwb_dat_i                 (iwb_dat_i[31:0]),
             .dwb_dat_i                 (dwb_dat_i[31:0]),
 
             .nclk                      (nclk),
             .nclk                      (nclk),
             .nrst                      (nrst),
             .nrst                      (nrst),
             .drun                      (drun),
             .drun                      (drun),
             .frun                      (frun),
             .frun                      (frun),
             .nrun                      (nrun));
             .nrun                      (nrun));

powered by: WebSVN 2.1.0

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