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

Subversion Repositories m32632

[/] [m32632/] [trunk/] [rtl/] [STEUERUNG.v] - Diff between revs 23 and 29

Go to most recent revision | Only display areas with differences | Details | Blame | View Log

Rev 23 Rev 29
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//
//
// 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:       STEUERUNG.v
//      Filename:       STEUERUNG.v
//      Version:        2.0
//      Version:        3.0
//      History:        1.0 first release of 30 Mai 2015
//      Date:           2 December 2018
//      Date:           14 August 2016
 
//
//
// Copyright (C) 2016 Udo Moeller
// Copyright (C) 2018 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.
// 
// 
// This source file is free software; you can redistribute it 
// This source file is free software; you can redistribute it 
// and/or modify it under the terms of the GNU Lesser General 
// and/or modify it under the terms of the GNU Lesser General 
// Public License as published by the Free Software Foundation;
// Public License as published by the Free Software Foundation;
// either version 2.1 of the License, or (at your option) any 
// either version 2.1 of the License, or (at your option) any 
// later version. 
// later version. 
// 
// 
// This source is distributed in the hope that it will be 
// This source is distributed in the hope that it will be 
// useful, but WITHOUT ANY WARRANTY; without even the implied 
// useful, but WITHOUT ANY WARRANTY; without even the implied 
// warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
// warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
// PURPOSE. See the GNU Lesser General Public License for more 
// PURPOSE. See the GNU Lesser General Public License for more 
// details. 
// details. 
// 
// 
// You should have received a copy of the GNU Lesser General 
// You should have received a copy of the GNU Lesser General 
// Public License along with this source; if not, download it 
// Public License along with this source; if not, download it 
// from http://www.opencores.org/lgpl.shtml 
// from http://www.opencores.org/lgpl.shtml 
// 
// 
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//
//
//      Modules contained in this file:
//      Modules contained in this file:
//      STEUERUNG       The control logic of M32632
//      STEUERUNG       The control logic of M32632
//
//
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 
 
module STEUERUNG( BCLK, BRESET, DC_ACC_DONE, ACB_ZERO, DONE, INT_N, NMI_N, DC_ABORT, IC_INIT, DC_INIT, SAVE_PC, CFG,
module STEUERUNG( BCLK, BRESET, DC_ACC_DONE, ACB_ZERO, DONE, INT_N, NMI_N, DC_ABORT, IC_INIT, DC_INIT, SAVE_PC, CFG,
                                  IACC_STAT, PROT_ERROR, IC_DIN, PC_NEW, PSR, STRING, TRAPS, IC_READ, DATA_HOLD, LD_DIN, LD_IMME,
                                  IACC_STAT, PROT_ERROR, IC_DIN, PC_NEW, PSR, STRING, TRAPS, IC_READ, DATA_HOLD, LD_DIN, LD_IMME,
                                  WREN, WR_REG, GENSTAT, ILO, COP_OP, IC_USER, ACC_FELD, DISP, IC_TEX, IMME_Q, INFO_AU, LD_OUT,
                                  WREN, WR_REG, GENSTAT, ILO, COP_OP, IC_USER, ACC_FELD, DISP, IC_TEX, IMME_Q, INFO_AU, LD_OUT,
                                  DETOIP, MMU_UPDATE, OPER, PC_ARCHI, PC_ICACHE, RDAA, RDAB, START, WMASKE, WRADR, RWVAL, Y_INIT,
                                  DETOIP, MMU_UPDATE, OPER, PC_ARCHI, PC_ICACHE, RDAA, RDAB, START, WMASKE, WRADR, RWVAL, Y_INIT,
                                  ENA_HK, STOP_CINV );
                                  ENA_HK, STOP_CINV );
 
 
input                   BCLK;
input                   BCLK;
input                   BRESET;
input                   BRESET;
input                   DC_ACC_DONE;
input                   DC_ACC_DONE;
input                   ACB_ZERO;
input                   ACB_ZERO;
input                   DONE;
input                   DONE;
input                   INT_N;
input                   INT_N;
input                   NMI_N;
input                   NMI_N;
input                   DC_ABORT;
input                   DC_ABORT;
input                   IC_INIT;
input                   IC_INIT;
input                   DC_INIT;
input                   DC_INIT;
input                   SAVE_PC;
input                   SAVE_PC;
input                   Y_INIT;
input                   Y_INIT;
input    [8:0]   CFG;
input    [8:0]   CFG;
input    [3:0]   IACC_STAT;
input    [3:0]   IACC_STAT;
input                   PROT_ERROR;
input                   PROT_ERROR;
input   [31:0]   IC_DIN;
input   [31:0]   IC_DIN;
input   [31:0]   PC_NEW;
input   [31:0]   PC_NEW;
input   [11:0]   PSR;
input   [11:0]   PSR;
input    [4:0]   STRING;
input    [4:0]   STRING;
input    [5:0]   TRAPS;
input    [5:0]   TRAPS;
input                   STOP_CINV;
input                   STOP_CINV;
 
 
output                  IC_READ;
output                  IC_READ;
output                  DATA_HOLD;
output                  DATA_HOLD;
output                  LD_DIN;
output                  LD_DIN;
output                  LD_IMME;
output                  LD_IMME;
output                  WREN;
output                  WREN;
output                  WR_REG;
output                  WR_REG;
output   [2:0]   GENSTAT;
output   [2:0]   GENSTAT;
output                  IC_USER;
output                  IC_USER;
output  [14:0]   ACC_FELD;
output  [14:0]   ACC_FELD;
output  [31:0]   DISP;
output  [31:0]   DISP;
output   [2:0]   IC_TEX;
output   [2:0]   IC_TEX;
output  [31:0]   IMME_Q;
output  [31:0]   IMME_Q;
output   [6:0]   INFO_AU;
output   [6:0]   INFO_AU;
output   [1:0]   LD_OUT;
output   [1:0]   LD_OUT;
output  [12:0]   DETOIP;
output  [12:0]   DETOIP;
output   [1:0]   MMU_UPDATE;
output   [1:0]   MMU_UPDATE;
output  [10:0]   OPER;
output  [10:0]   OPER;
output  [31:0]   PC_ARCHI;
output  [31:0]   PC_ARCHI;
output  [31:0]   PC_ICACHE;
output  [31:0]   PC_ICACHE;
output   [7:0]   RDAA;
output   [7:0]   RDAA;
output   [7:0]   RDAB;
output   [7:0]   RDAB;
output   [1:0]   START;
output   [1:0]   START;
output   [1:0]   WMASKE;
output   [1:0]   WMASKE;
output   [5:0]   WRADR;
output   [5:0]   WRADR;
output   [2:0]   RWVAL;
output   [2:0]   RWVAL;
output                  ENA_HK;
output                  ENA_HK;
output                  ILO;
output                  ILO;
output  [23:0]   COP_OP;
output  [23:0]   COP_OP;
 
 
wire    [55:0]   OPREG;
wire    [55:0]   OPREG;
wire                    IC_ABORT;
wire                    IC_ABORT;
wire                    INIT_DONE;
wire                    INIT_DONE;
wire                    UNDEF;
wire                    UNDEF;
wire                    ILLEGAL;
wire                    ILLEGAL;
wire     [2:0]   ANZ_VAL;
wire     [2:0]   ANZ_VAL;
wire    [31:0]   PC_SAVE;
wire    [31:0]   PC_SAVE;
wire                    NEW;
wire                    NEW;
wire                    RESTART;
wire                    RESTART;
wire                    STOP_IC;
wire                    STOP_IC;
wire     [1:0]   ALSB;
wire     [1:0]   ALSB;
wire     [2:0]   USED;
wire     [2:0]   USED;
wire                    NEXT_ADR;
wire                    NEXT_ADR;
wire                    NEW_PC;
wire                    NEW_PC;
wire                    NEXT_PCA;
wire                    NEXT_PCA;
wire                    LOAD_PC;
wire                    LOAD_PC;
wire    [31:0]   DISP_BR;
wire    [31:0]   DISP_BR;
 
 
DECODER BEFEHLS_DEC(
DECODER BEFEHLS_DEC(
        .BCLK(BCLK),
        .BCLK(BCLK),
        .BRESET(BRESET),
        .BRESET(BRESET),
        .ACC_DONE(DC_ACC_DONE),
        .ACC_DONE(DC_ACC_DONE),
        .ACB_ZERO(ACB_ZERO),
        .ACB_ZERO(ACB_ZERO),
        .DONE(DONE),
        .DONE(DONE),
        .NMI_N(NMI_N),
        .NMI_N(NMI_N),
        .INT_N(INT_N),
        .INT_N(INT_N),
        .DC_ABORT(DC_ABORT),
        .DC_ABORT(DC_ABORT),
        .IC_ABORT(IC_ABORT),
        .IC_ABORT(IC_ABORT),
        .INIT_DONE(INIT_DONE),
        .INIT_DONE(INIT_DONE),
        .UNDEF(UNDEF),
        .UNDEF(UNDEF),
        .ILL(ILLEGAL),
        .ILL(ILLEGAL),
        .IC_READ(IC_READ),
        .IC_READ(IC_READ),
        .ANZ_VAL(ANZ_VAL),
        .ANZ_VAL(ANZ_VAL),
        .CFG(CFG),
        .CFG(CFG),
        .OPREG(OPREG),
        .OPREG(OPREG),
        .PC_SAVE(PC_SAVE),
        .PC_SAVE(PC_SAVE),
        .PSR(PSR),
        .PSR(PSR),
        .STRING(STRING),
        .STRING(STRING),
        .TRAPS(TRAPS),
        .TRAPS(TRAPS),
        .NEW(NEW),
        .NEW(NEW),
        .WREN(WREN),
        .WREN(WREN),
        .LD_DIN(LD_DIN),
        .LD_DIN(LD_DIN),
        .LD_IMME(LD_IMME),
        .LD_IMME(LD_IMME),
        .NEXT_PCA(NEXT_PCA),
        .NEXT_PCA(NEXT_PCA),
        .WR_REG(WR_REG),
        .WR_REG(WR_REG),
        .LOAD_PC(LOAD_PC),
        .LOAD_PC(LOAD_PC),
        .GENSTAT(GENSTAT),
        .GENSTAT(GENSTAT),
        .RESTART(RESTART),
        .RESTART(RESTART),
        .STOP_IC(STOP_IC),
        .STOP_IC(STOP_IC),
        .ACC_FELD(ACC_FELD),
        .ACC_FELD(ACC_FELD),
        .DISP(DISP),
        .DISP(DISP),
        .DISP_BR(DISP_BR),
        .DISP_BR(DISP_BR),
        .IMME_Q(IMME_Q),
        .IMME_Q(IMME_Q),
        .INFO_AU(INFO_AU),
        .INFO_AU(INFO_AU),
        .LD_OUT(LD_OUT),
        .LD_OUT(LD_OUT),
        .DETOIP(DETOIP),
        .DETOIP(DETOIP),
        .MMU_UPDATE(MMU_UPDATE),
        .MMU_UPDATE(MMU_UPDATE),
        .OPER(OPER),
        .OPER(OPER),
        .RDAA(RDAA),
        .RDAA(RDAA),
        .RDAB(RDAB),
        .RDAB(RDAB),
        .START(START),
        .START(START),
        .USED(USED),
        .USED(USED),
        .WMASKE(WMASKE),
        .WMASKE(WMASKE),
        .WRADR(WRADR),
        .WRADR(WRADR),
        .RWVAL(RWVAL),
        .RWVAL(RWVAL),
        .ENA_HK(ENA_HK),
        .ENA_HK(ENA_HK),
        .ILO(ILO),
        .ILO(ILO),
        .COP_OP(COP_OP),
        .COP_OP(COP_OP),
        .STOP_CINV(STOP_CINV),
        .STOP_CINV(STOP_CINV),
        .PHOUT());
        .PHOUT());
 
 
ILL_UNDEF       CHECKER(
ILL_UNDEF       CHECKER(
        .USER(PSR[8]),
        .USER(PSR[8]),
        .ANZ_VAL(ANZ_VAL),
        .ANZ_VAL(ANZ_VAL),
        .CFG(CFG[3:1]),
        .CFG(CFG[3:1]),
        .OPREG(OPREG[23:0]),
        .OPREG(OPREG[23:0]),
        .ILL(ILLEGAL),
        .ILL(ILLEGAL),
        .UNDEF(UNDEF));
        .UNDEF(UNDEF));
 
 
OPDEC_REG       OPC_REG(
OPDEC_REG       OPC_REG(
        .BCLK(BCLK),
        .BCLK(BCLK),
        .BRESET(BRESET),
        .BRESET(BRESET),
        .NEW(NEW),
        .NEW(NEW),
        .DC_INIT(DC_INIT),
        .DC_INIT(DC_INIT),
        .IC_INIT(IC_INIT),
        .IC_INIT(IC_INIT),
        .Y_INIT(Y_INIT),
        .Y_INIT(Y_INIT),
        .RESTART(RESTART),
        .RESTART(RESTART),
        .STOP_IC(STOP_IC),
        .STOP_IC(STOP_IC),
        .ACC_STAT(IACC_STAT),
        .ACC_STAT(IACC_STAT),
        .PROT_ERROR(PROT_ERROR),
        .PROT_ERROR(PROT_ERROR),
        .ALSB(ALSB),
        .ALSB(ALSB),
        .IC_DIN(IC_DIN),
        .IC_DIN(IC_DIN),
        .USED(USED),
        .USED(USED),
        .IC_READ(IC_READ),
        .IC_READ(IC_READ),
        .NEXT_ADR(NEXT_ADR),
        .NEXT_ADR(NEXT_ADR),
        .DATA_HOLD(DATA_HOLD),
        .DATA_HOLD(DATA_HOLD),
        .NEW_PC(NEW_PC),
        .NEW_PC(NEW_PC),
        .ABORT(IC_ABORT),
        .ABORT(IC_ABORT),
        .INIT_DONE(INIT_DONE),
        .INIT_DONE(INIT_DONE),
        .ANZ_VAL(ANZ_VAL),
        .ANZ_VAL(ANZ_VAL),
        .IC_TEX(IC_TEX),
        .IC_TEX(IC_TEX),
        .OPREG(OPREG));
        .OPREG(OPREG));
 
 
PROG_COUNTER    PCS(
PROG_COUNTER    PCS(
        .BCLK(BCLK),
        .BCLK(BCLK),
        .BRESET(BRESET),
        .BRESET(BRESET),
        .NEXT_ADR(NEXT_ADR),
        .NEXT_ADR(NEXT_ADR),
        .NEW_PC(NEW_PC),
        .NEW_PC(NEW_PC),
        .NEXT_PCA(NEXT_PCA),
        .NEXT_PCA(NEXT_PCA),
        .NEW(NEW),
        .NEW(NEW),
        .LOAD_PC(LOAD_PC),
        .LOAD_PC(LOAD_PC),
        .USER(PSR[8]),
        .USER(PSR[8]),
        .SAVE_PC(SAVE_PC),
        .SAVE_PC(SAVE_PC),
        .FPU_TRAP(TRAPS[0]),
        .FPU_TRAP(TRAPS[0]),
        .ADIVAR(INFO_AU[3]),
        .ADIVAR(INFO_AU[3]),
        .DISP(DISP_BR),
        .DISP(DISP_BR),
        .PC_NEW(PC_NEW),
        .PC_NEW(PC_NEW),
        .USED(USED),
        .USED(USED),
        .IC_USER(IC_USER),
        .IC_USER(IC_USER),
        .ALSB(ALSB),
        .ALSB(ALSB),
        .PC_ARCHI(PC_ARCHI),
        .PC_ARCHI(PC_ARCHI),
        .PC_ICACHE(PC_ICACHE),
        .PC_ICACHE(PC_ICACHE),
        .PC_SAVE(PC_SAVE));
        .PC_SAVE(PC_SAVE));
 
 
endmodule
endmodule
 
 

powered by: WebSVN 2.1.0

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