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

Subversion Repositories m32632

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

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

Rev 23 Rev 29
Line 1... Line 1...
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//
//
// 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:       DATENPFAD.v
//      Filename:       DATENPFAD.v
//      Version:        2.0
//  Version:    3.0 Cache Interface reworked
//      History:        1.1 bug fix of 7 October 2015
//      History:        2.1 bug fix of 26 November 2016
 
//                              1.1 bug fix of 7 October 2015
//                              1.0 first release of 30 Mai 2015
//                              1.0 first release of 30 Mai 2015
//      Date:           14 August 2016
//      Date:           2 December 2018
//
//
// 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.
Line 30... Line 31...
// 
// 
// 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:
//      DATENPFAD       the data path of M32632
//      DATENPFAD       the data path of M32632
//
//
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 
 
module DATENPFAD( BCLK, BRESET, WREN, IO_READY, LD_DIN, LD_IMME, WR_REG, IC_USER, ACC_FELD, ACC_STAT, DIN, DISP, IC_TEX,
module DATENPFAD( BCLK, BRESET, WREN, IO_READY, LD_DIN, LD_IMME, WR_REG, IC_USER, ACC_FELD, ACC_STAT, DIN, DISP, IC_TEX,
                                  IMME_Q, INFO_AU, LD_OUT, DETOIP, MMU_UPDATE, OPER, PC_ARCHI, PC_ICACHE, RDAA, RDAB, START, WMASKE,
                                  IMME_Q, INFO_AU, LD_OUT, DETOIP, MMU_UPDATE, OPER, PC_ARCHI, PC_ICACHE, RDAA, RDAB, START, WMASKE,
                                  WRADR, DONE, Y_INIT, WRITE_OUT, READ_OUT, ZTEST, RMW, QWATWO, ACC_DONE, REG_OUT, PTB_SEL, PTB_WR, ACB_ZERO,
                                  WRADR, DONE, Y_INIT, WRITE_OUT, READ_OUT, ZTEST, RMW, QWATWO, ACC_DONE, CTRL_QW, PTB_SEL, PTB_WR, ACB_ZERO,
                                  ABORT, SAVE_PC, CFG, CINV, DP_Q, IVAR, MCR, PACKET, PC_NEW, PSR, SIZE, STRING, TRAPS, VADR, RWVFLAG,
                                  ABORT, SAVE_PC, CFG, CINV, DP_Q, IVAR, MCR, PACKET, PC_NEW, PSR, SIZE, STRING, TRAPS, VADR, RWVFLAG,
                                  DBG_HIT, DBG_IN, COP_GO, COP_OP, COP_IN, COP_DONE, COP_OUT);
                                  DBG_HIT, DBG_IN, COP_GO, COP_OP, COP_IN, COP_DONE, COP_OUT);
 
 
input                   BCLK;
input                   BCLK;
input                   BRESET;
input                   BRESET;
Line 83... Line 84...
output                  READ_OUT;
output                  READ_OUT;
output                  ZTEST;
output                  ZTEST;
output                  RMW;
output                  RMW;
output                  QWATWO;
output                  QWATWO;
output                  ACC_DONE;
output                  ACC_DONE;
output                  REG_OUT;
output   [1:0]   CTRL_QW;
output                  PTB_SEL;
output                  PTB_SEL;
output                  PTB_WR;
output                  PTB_WR;
output reg              ACB_ZERO;
output reg              ACB_ZERO;
output                  ABORT;
output                  ABORT;
output                  SAVE_PC;
output                  SAVE_PC;
Line 116... Line 117...
wire     [1:0]   BWD;
wire     [1:0]   BWD;
wire                    CLR_LSB;
wire                    CLR_LSB;
wire    [31:0]   ERGEBNIS;       // the result bus
wire    [31:0]   ERGEBNIS;       // the result bus
wire                    FL;
wire                    FL;
wire    [31:0]   FSR;
wire    [31:0]   FSR;
wire    [63:0]   MRESULT;
wire    [32:0]   MRESULT;
wire     [7:0]   OPCODE;
wire     [7:0]   OPCODE;
wire                    SELI_A;
wire                    SELI_A;
wire                    SELI_B;
wire                    SELI_B;
wire     [2:0]   SP_CMP;
wire     [2:0]   SP_CMP;
wire    [31:0]   SRC1;           // the bus for the Source 1 operand
wire    [31:0]   SRC1;           // the bus for the Source 1 operand
Line 215... Line 216...
        .SELI(SELI_B),
        .SELI(SELI_B),
        .DOUT(OUT_B));
        .DOUT(OUT_B));
 
 
assign SRC2 = SELI_B ? OUT_I : OUT_B;
assign SRC2 = SELI_B ? OUT_I : OUT_B;
 
 
MULFILTER       M_FILTER(
MULFILTER       M_FILTER(               // signed multiplier 32 * 32 bits = 64 bits
        .FLOAT(OPCODE[2]),
 
        .BWD(BWD),
        .BWD(BWD),
        .SRC1(SRC1),
        .SRC1(SRC1),
        .SRC2(SRC2),
        .SRC2(SRC2),
        .DEST1(DEST1),
        .MRESULT(MRESULT));
        .DEST2(DEST2));
 
 
 
SIGNMUL         S_MULTI(                // signed multiplier 32 * 32 bits = 64 bits
 
        .dataa(DEST1),
 
        .datab(DEST2),
 
        .result(MRESULT));
 
 
 
BITMASK  BITM_U(
BITMASK  BITM_U(
        .AA(BMCODE),
        .AA(BMCODE),
        .DOUT(BMASKE));
        .DOUT(BMASKE));
 
 
Line 299... Line 293...
        .PC_ARCHI(PC_ARCHI),
        .PC_ARCHI(PC_ARCHI),
        .PC_ICACHE(PC_ICACHE),
        .PC_ICACHE(PC_ICACHE),
        .SRC1(SRC1),
        .SRC1(SRC1),
        .SRC2(SRC2),
        .SRC2(SRC2),
        .SRC2SEL(ACC_FELD[1:0]),
        .SRC2SEL(ACC_FELD[1:0]),
        .REG_OUT(REG_OUT),
        .CTRL_QW(CTRL_QW),
        .ACC_DONE(ACC_DONE),
        .ACC_DONE(ACC_DONE),
        .READ_OUT(READ_OUT),
        .READ_OUT(READ_OUT),
        .WRITE_OUT(WRITE_OUT),
        .WRITE_OUT(WRITE_OUT),
        .ABORT(ABORT),
        .ABORT(ABORT),
        .ADDR(addr_i),
        .ADDR(addr_i),
Line 380... Line 374...
SP_FPU  SINGLE_U(
SP_FPU  SINGLE_U(
        .FL(FL),
        .FL(FL),
        .BCLK(BCLK),
        .BCLK(BCLK),
        .BWD(BWD),
        .BWD(BWD),
        .FSR(FSR[8:3]),
        .FSR(FSR[8:3]),
        .MRESULT(MRESULT[47:0]),
 
        .OPCODE(OPCODE),
        .OPCODE(OPCODE),
        .SRC1(SRC1),
        .SRC1(SRC1),
        .SRC2(SRC2),
        .SRC2(SRC2),
        .LD_FSR(LD_FSR),
        .LD_FSR(LD_FSR),
        .SP_MUX(SP_MUX),
        .SP_MUX(SP_MUX),
        .UP_SP(UP_SP),
        .UP_SP(UP_SP),
        .FP_OUT(FP_OUT),
        .FP_OUT(FP_OUT),
        .I_OUT(SFP_DAT),
        .I_OUT(SFP_DAT),
        .SP_CMP(SP_CMP),
        .SP_CMP(SP_CMP),
        .TT_SP(TT_SP),
        .TT_SP(TT_SP),
        .START(START[1]) );
        .START(START[1]) );             // Aenderung
 
 
FP_STAT_REG     FPS_REG(
FP_STAT_REG     FPS_REG(
        .BCLK(BCLK),
        .BCLK(BCLK),
        .BRESET(BRESET),
        .BRESET(BRESET),
        .LFSR(LD_FSR),
        .LFSR(LD_FSR),
        .WREN(ENWR),
        .WREN(ENWR),
        .WRADR(WRADR[5:4]),
        .WRADR(WRADR[5:4]),
        .UP_DP(UP_DP),
        .UP_DP(UP_DP),
        .UP_SP(UP_SP),
        .UP_SP(UP_SP),          // & LD_OUT[1]), Aenderung
        .DIN(SRC1[16:0]),
        .DIN(SRC1[16:0]),
        .TT_DP(TT_DP),
        .TT_DP(TT_DP),
        .TT_SP(TT_SP),
        .TT_SP(TT_SP),
        .FPU_TRAP(TRAPS[0]),
        .FPU_TRAP(TRAPS[0]),
        .TWREN(TWREN),
        .TWREN(TWREN),

powered by: WebSVN 2.1.0

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