Line 2... |
Line 2... |
//
|
//
|
// This file is part of the M32632 project
|
// This file is part of the M32632 project
|
// http://opencores.org/project,m32632
|
// http://opencores.org/project,m32632
|
//
|
//
|
// Filename: M32632.v
|
// Filename: M32632.v
|
// Version: 1.1 bug fix
|
// Version: 2.0
|
// History: 1.0 first release of 30 Mai 2015
|
// History: 1.1 bug fix of 7 October 2015
|
// Date: 7 October 2015
|
// 1.0 first release of 30 Mai 2015
|
|
// Date: 14 August 2016
|
//
|
//
|
// Copyright (C) 2015 Udo Moeller
|
// Copyright (C) 2016 Udo Moeller
|
//
|
//
|
// This source file may be used and distributed without
|
// This source file may be used and distributed without
|
// restriction provided that this copyright statement is not
|
// restriction provided that this copyright statement is not
|
// removed from the file and that any derivative work contains
|
// removed from the file and that any derivative work contains
|
// the original copyright notice and the associated disclaimer.
|
// the original copyright notice and the associated disclaimer.
|
Line 36... |
Line 37... |
// Modules contained in this file:
|
// Modules contained in this file:
|
// M32632 The top level of M32632
|
// M32632 The top level of M32632
|
//
|
//
|
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
|
module M32632( BCLK, MCLK, WRCFG, BRESET, NMI_N, INT_N, STATUS, ILO, STATSIGS,
|
module M32632( BCLK, MCLK, WRCFG, DRAMSZ, BRESET, NMI_N, INT_N, STATUS, ILO, STATSIGS,
|
IO_WR, IO_RD, IO_A, IO_BE, IO_DI, IO_Q, IO_READY,
|
IO_WR, IO_RD, IO_A, IO_BE, IO_DI, IO_Q, IO_READY,
|
ENDRAM, IC_MDONE, DC_MDONE, ENWR, WAMUX, WADDR, DRAM_Q, DWCTRL, IWCTRL,
|
ENDRAM, IC_MDONE, DC_MDONE, ENWR, WAMUX, WADDR, DRAM_Q, DWCTRL, IWCTRL,
|
IC_ACC, IDRAM_ADR, DC_ACC, DC_WR, DRAM_ADR, DRAM_DI,
|
IC_ACC, IDRAM_ADR, DC_ACC, DC_WR, DRAM_ADR, DRAM_DI,
|
HOLD, HLDA, FILLRAM, DMA_AA,
|
HOLD, HLDA, DMA_CHK, DMA_AA,
|
COP_GO, COP_OP, COP_OUT, COP_DONE, COP_IN );
|
COP_GO, COP_OP, COP_OUT, COP_DONE, COP_IN );
|
|
|
// ++++++++++ Basic Signals
|
// ++++++++++ Basic Signals
|
input BCLK; // Basic Clock for everything
|
input BCLK; // Basic Clock for everything
|
input MCLK; // Memory Clock, used in Caches
|
input MCLK; // Memory Clock, used in Caches
|
input WRCFG;
|
input WRCFG;
|
|
input [2:0] DRAMSZ;
|
input BRESET;
|
input BRESET;
|
input NMI_N;
|
input NMI_N;
|
input INT_N;
|
input INT_N;
|
output [3:0] STATUS;
|
output [3:0] STATUS;
|
output ILO;
|
output ILO;
|
Line 81... |
Line 83... |
output [27:0] DRAM_ADR;
|
output [27:0] DRAM_ADR;
|
output [35:0] DRAM_DI;
|
output [35:0] DRAM_DI;
|
// ++++++++++ DMA Interface
|
// ++++++++++ DMA Interface
|
input HOLD;
|
input HOLD;
|
output HLDA;
|
output HLDA;
|
input FILLRAM;
|
input DMA_CHK;
|
input [27:4] DMA_AA;
|
input [27:4] DMA_AA;
|
// ++++++++++ Coprocessor Interface
|
// ++++++++++ Coprocessor Interface
|
output COP_GO;
|
output COP_GO;
|
output [23:0] COP_OP;
|
output [23:0] COP_OP;
|
output [127:0] COP_OUT;
|
output [127:0] COP_OUT;
|
Line 179... |
Line 181... |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
DCACHE ARMS(
|
DCACHE ARMS(
|
.MCLK(MCLK),
|
.MCLK(MCLK),
|
.BCLK(BCLK),
|
.BCLK(BCLK),
|
.WRCFG(WRCFG),
|
.WRCFG(WRCFG),
|
|
.DRAMSZ(DRAMSZ),
|
.BRESET(BRESET),
|
.BRESET(BRESET),
|
.PTB_WR(PTB_WR),
|
.PTB_WR(PTB_WR),
|
.PTB_SEL(PTB_SEL),
|
.PTB_SEL(PTB_SEL),
|
.MDONE(DC_MDONE),
|
.MDONE(DC_MDONE),
|
.IO_READY(D_IORDY),
|
.IO_READY(D_IORDY),
|
Line 194... |
Line 197... |
.RMW(RMW),
|
.RMW(RMW),
|
.QWATWO(QWATWO),
|
.QWATWO(QWATWO),
|
.WAMUX(WAMUX),
|
.WAMUX(WAMUX),
|
.ENWR(ENWR),
|
.ENWR(ENWR),
|
.IC_PREQ(IC_PREQ),
|
.IC_PREQ(IC_PREQ),
|
.FILLRAM(FILLRAM),
|
.DMA_CHK(DMA_CHK),
|
.CFG(CFG[10:9]),
|
.CFG(CFG[10:9]),
|
.ENDRAM(ENDRAM),
|
.ENDRAM(ENDRAM),
|
.CINVAL(CINV[1:0]),
|
.CINVAL(CINV[1:0]),
|
.DMA_AA(DMA_AA),
|
.DMA_AA(DMA_AA),
|
.DP_Q(DP_Q),
|
.DP_Q(DP_Q),
|
Line 306... |
Line 309... |
// The Instruction Cache
|
// The Instruction Cache
|
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
ICACHE LEGS(
|
ICACHE LEGS(
|
.MCLK(MCLK),
|
.MCLK(MCLK),
|
.BCLK(BCLK),
|
.BCLK(BCLK),
|
|
.DRAMSZ(DRAMSZ),
|
.BRESET(BRESET),
|
.BRESET(BRESET),
|
.PTB_WR(PTB_WR),
|
.PTB_WR(PTB_WR),
|
.PTB_SEL(PTB_SEL),
|
.PTB_SEL(PTB_SEL),
|
.MDONE(IC_MDONE),
|
.MDONE(IC_MDONE),
|
.IO_READY(I_IORDY),
|
.IO_READY(I_IORDY),
|