Line 1... |
Line 1... |
/*
|
/*
|
* $Id: aeMB_core.v,v 1.5 2007-04-27 00:23:55 sybreon Exp $
|
* $Id: aeMB_core.v,v 1.6 2007-05-17 09:08:21 sybreon Exp $
|
*
|
*
|
* AEMB 32-bit Microblaze Compatible Core
|
* AEMB 32-bit Microblaze 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>
|
*
|
*
|
* This library is free software; you can redistribute it and/or
|
* This library is free software; you can redistribute it and/or
|
Line 24... |
Line 24... |
* 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.5 2007/04/27 00:23:55 sybreon
|
|
* Added code documentation.
|
|
* Improved size & speed of rtl/verilog/aeMB_aslu.v
|
|
*
|
* Revision 1.4 2007/04/25 22:15:04 sybreon
|
* Revision 1.4 2007/04/25 22:15:04 sybreon
|
* Added support for 8-bit and 16-bit data types.
|
* Added support for 8-bit and 16-bit data types.
|
*
|
*
|
* Revision 1.3 2007/04/11 04:30:43 sybreon
|
* Revision 1.3 2007/04/11 04:30:43 sybreon
|
* Added pipeline stalling from incomplete bus cycles.
|
* Added pipeline stalling from incomplete bus cycles.
|
Line 78... |
Line 82... |
/*AUTOWIRE*/
|
/*AUTOWIRE*/
|
// Beginning of automatic wires (for undeclared instantiated-module outputs)
|
// Beginning of automatic wires (for undeclared instantiated-module outputs)
|
wire drun; // From control of aeMB_control.v
|
wire drun; // From control of aeMB_control.v
|
wire frun; // From control of aeMB_control.v
|
wire frun; // From control of aeMB_control.v
|
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 prst; // From control of aeMB_control.v
|
wire nrun; // From control of aeMB_control.v
|
wire prun; // 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 [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
|
Line 130... |
Line 134... |
.rOPC (rOPC[5:0]),
|
.rOPC (rOPC[5:0]),
|
.rDWBSEL (rDWBSEL[3:0]),
|
.rDWBSEL (rDWBSEL[3:0]),
|
.rLNK (rLNK),
|
.rLNK (rLNK),
|
.rRWE (rRWE),
|
.rRWE (rRWE),
|
.nclk (nclk),
|
.nclk (nclk),
|
.nrst (nrst),
|
.prst (prst),
|
.drun (drun),
|
.drun (drun),
|
.nrun (nrun));
|
.prun (prun));
|
|
|
aeMB_fetch #(ISIZ)
|
aeMB_fetch #(ISIZ)
|
fetch (/*AUTOINST*/
|
fetch (/*AUTOINST*/
|
// Outputs
|
// Outputs
|
.iwb_adr_o (iwb_adr_o[ISIZ-1:0]),
|
.iwb_adr_o (iwb_adr_o[ISIZ-1:0]),
|
Line 144... |
Line 148... |
.rPC (rPC[31:0]),
|
.rPC (rPC[31:0]),
|
.rIWBSTB (rIWBSTB),
|
.rIWBSTB (rIWBSTB),
|
// Inputs
|
// Inputs
|
.iwb_dat_i (iwb_dat_i[31:0]),
|
.iwb_dat_i (iwb_dat_i[31:0]),
|
.nclk (nclk),
|
.nclk (nclk),
|
.nrst (nrst),
|
.prst (prst),
|
.nrun (nrun),
|
.prun (prun),
|
.rFSM (rFSM[1:0]),
|
.rFSM (rFSM[1:0]),
|
.rBRA (rBRA),
|
.rBRA (rBRA),
|
.rRESULT (rRESULT[31:0]));
|
.rRESULT (rRESULT[31:0]));
|
|
|
aeMB_control
|
aeMB_control
|
control (/*AUTOINST*/
|
control (/*AUTOINST*/
|
// Outputs
|
// Outputs
|
.rFSM (rFSM[1:0]),
|
.rFSM (rFSM[1:0]),
|
.nclk (nclk),
|
.nclk (nclk),
|
.nrst (nrst),
|
.prst (prst),
|
.nrun (nrun),
|
.prun (prun),
|
.frun (frun),
|
.frun (frun),
|
.drun (drun),
|
.drun (drun),
|
// Inputs
|
// Inputs
|
.sys_rst_i (sys_rst_i),
|
.sys_rst_i (sys_rst_i),
|
.sys_clk_i (sys_clk_i),
|
.sys_clk_i (sys_clk_i),
|
Line 195... |
Line 199... |
.rIMM (rIMM[15:0]),
|
.rIMM (rIMM[15:0]),
|
.rRD (rRD[4:0]),
|
.rRD (rRD[4:0]),
|
.rRA (rRA[4:0]),
|
.rRA (rRA[4:0]),
|
.rMXLDST (rMXLDST[1:0]),
|
.rMXLDST (rMXLDST[1:0]),
|
.nclk (nclk),
|
.nclk (nclk),
|
.nrst (nrst),
|
.prst (prst),
|
.drun (drun),
|
.drun (drun),
|
.nrun (nrun));
|
.prun (prun));
|
|
|
aeMB_decode
|
aeMB_decode
|
decode (/*AUTOINST*/
|
decode (/*AUTOINST*/
|
// Outputs
|
// Outputs
|
.rSIMM (rSIMM[31:0]),
|
.rSIMM (rSIMM[31:0]),
|
Line 227... |
Line 231... |
.rDWBSEL (rDWBSEL[3: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]),
|
.nclk (nclk),
|
.nclk (nclk),
|
.nrst (nrst),
|
.prst (prst),
|
.drun (drun),
|
.drun (drun),
|
.frun (frun),
|
.frun (frun),
|
.nrun (nrun));
|
.prun (prun));
|
|
|
endmodule // aeMB_core
|
endmodule // aeMB_core
|
|
|
No newline at end of file
|
No newline at end of file
|