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

Subversion Repositories ethmac

[/] [ethmac/] [tags/] [rel_17/] [rtl/] [verilog/] [eth_top.v] - Diff between revs 125 and 149

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

Rev 125 Rev 149
Line 39... Line 39...
//////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////
//
//
// CVS Revision History
// CVS Revision History
//
//
// $Log: not supported by cvs2svn $
// $Log: not supported by cvs2svn $
 
// Revision 1.27  2002/07/25 18:15:37  mohor
 
// RxAbort changed. Packets received with MRxErr (from PHY) are also
 
// aborted.
 
//
// Revision 1.26  2002/07/17 18:51:50  mohor
// Revision 1.26  2002/07/17 18:51:50  mohor
// EXTERNAL_DMA removed. External DMA not supported.
// EXTERNAL_DMA removed. External DMA not supported.
//
//
// Revision 1.25  2002/05/03 10:15:50  mohor
// Revision 1.25  2002/05/03 10:15:50  mohor
// Outputs registered. Reset changed for eth_wishbone module.
// Outputs registered. Reset changed for eth_wishbone module.
Line 259... Line 263...
wire            TxUnderRun;
wire            TxUnderRun;
wire            TxDone;
wire            TxDone;
wire     [5:0]  CollValid;
wire     [5:0]  CollValid;
 
 
 
 
 
reg             WillSendControlFrame_sync1;
 
reg             WillSendControlFrame_sync2;
 
reg             WillSendControlFrame_sync3;
 
reg             RstTxPauseRq;
 
 
 
 
// Connecting Miim module
// Connecting Miim module
eth_miim miim1
eth_miim miim1
(
(
Line 305... Line 313...
wire  [7:0] r_TxBDNum;      // Receive buffer descriptor number
wire  [7:0] r_TxBDNum;      // Receive buffer descriptor number
wire  [6:0] r_IPGT;         // 
wire  [6:0] r_IPGT;         // 
wire  [6:0] r_IPGR1;        // 
wire  [6:0] r_IPGR1;        // 
wire  [6:0] r_IPGR2;        // 
wire  [6:0] r_IPGR2;        // 
wire  [5:0] r_CollValid;    // 
wire  [5:0] r_CollValid;    // 
wire        r_TPauseRq;     // Transmit PAUSE request pulse
wire [15:0] r_TxPauseTV;    // Transmit PAUSE value
 
wire        r_TxPauseRq;    // Transmit PAUSE request
 
 
wire  [3:0] r_MaxRet;       //
wire  [3:0] r_MaxRet;       //
wire        r_NoBckof;      // 
wire        r_NoBckof;      // 
wire        r_ExDfrEn;      // 
wire        r_ExDfrEn;      // 
wire        TX_BD_NUM_Wr;   // Write enable that writes RX_BD_NUM to the registers.
wire        TX_BD_NUM_Wr;   // Write enable that writes RX_BD_NUM to the registers.
wire        TPauseRq;       // Sinhronized Tx PAUSE request
 
wire [15:0] TxPauseTV;      // Tx PAUSE timer value
 
wire        r_TxFlow;       // Tx flow control enable
wire        r_TxFlow;       // Tx flow control enable
wire        r_IFG;          // Minimum interframe gap for incoming packets
wire        r_IFG;          // Minimum interframe gap for incoming packets
 
 
wire        TxB_IRQ;        // Interrupt Tx Buffer
wire        TxB_IRQ;        // Interrupt Tx Buffer
wire        TxE_IRQ;        // Interrupt Tx Error
wire        TxE_IRQ;        // Interrupt Tx Error
wire        RxB_IRQ;        // Interrupt Rx Buffer
wire        RxB_IRQ;        // Interrupt Rx Buffer
wire        RxE_IRQ;        // Interrupt Rx Error
wire        RxE_IRQ;        // Interrupt Rx Error
wire        Busy_IRQ;       // Interrupt Busy (lack of buffers)
wire        Busy_IRQ;       // Interrupt Busy (lack of buffers)
wire        TxC_IRQ;        // Interrupt Tx Control Frame
 
wire        RxC_IRQ;        // Interrupt Rx Control Frame
 
 
 
wire        DWord;
wire        DWord;
wire        BDAck;
wire        BDAck;
wire [31:0] BD_WB_DAT_O;    // wb_dat_o that comes from the Wishbone module (for buffer descriptors read/write)
wire [31:0] BD_WB_DAT_O;    // wb_dat_o that comes from the Wishbone module (for buffer descriptors read/write)
wire        BDCs;           // Buffer descriptor CS
wire        BDCs;           // Buffer descriptor CS
Line 376... Line 381...
        temp_wb_err_o_reg <=#Tp temp_wb_err_o & ~temp_wb_err_o_reg;
        temp_wb_err_o_reg <=#Tp temp_wb_err_o & ~temp_wb_err_o_reg;
      end
      end
  end
  end
`endif
`endif
 
 
 
wire [31:0] reg1, reg2, reg3, reg4;
 
 
// Connecting Ethernet registers
// Connecting Ethernet registers
eth_registers ethreg1
eth_registers ethreg1
(
(
  .DataIn(wb_dat_i),                      .Address(wb_adr_i[9:2]),                    .Rw(wb_we_i),
  .DataIn(wb_dat_i),                      .Address(wb_adr_i[9:2]),                    .Rw(wb_we_i),
Line 391... Line 396...
  .r_ExDfrEn(r_ExDfrEn),                  .r_NoBckof(r_NoBckof),                      .r_LoopBck(r_LoopBck),
  .r_ExDfrEn(r_ExDfrEn),                  .r_NoBckof(r_NoBckof),                      .r_LoopBck(r_LoopBck),
  .r_IFG(r_IFG),                          .r_Pro(r_Pro),                              .r_Iam(),
  .r_IFG(r_IFG),                          .r_Pro(r_Pro),                              .r_Iam(),
  .r_Bro(r_Bro),                          .r_NoPre(r_NoPre),                          .r_TxEn(r_TxEn),
  .r_Bro(r_Bro),                          .r_NoPre(r_NoPre),                          .r_TxEn(r_TxEn),
  .r_RxEn(r_RxEn),                        .Busy_IRQ(Busy_IRQ),                        .RxE_IRQ(RxE_IRQ),
  .r_RxEn(r_RxEn),                        .Busy_IRQ(Busy_IRQ),                        .RxE_IRQ(RxE_IRQ),
  .RxB_IRQ(RxB_IRQ),                      .TxE_IRQ(TxE_IRQ),                          .TxB_IRQ(TxB_IRQ),
  .RxB_IRQ(RxB_IRQ),                      .TxE_IRQ(TxE_IRQ),                          .TxB_IRQ(TxB_IRQ),
  .TxC_IRQ(TxC_IRQ),                      .RxC_IRQ(RxC_IRQ),                          .r_IPGT(r_IPGT),
  .r_IPGT(r_IPGT),
  .r_IPGR1(r_IPGR1),                      .r_IPGR2(r_IPGR2),                          .r_MinFL(r_MinFL),
  .r_IPGR1(r_IPGR1),                      .r_IPGR2(r_IPGR2),                          .r_MinFL(r_MinFL),
  .r_MaxFL(r_MaxFL),                      .r_MaxRet(r_MaxRet),                        .r_CollValid(r_CollValid),
  .r_MaxFL(r_MaxFL),                      .r_MaxRet(r_MaxRet),                        .r_CollValid(r_CollValid),
  .r_TxFlow(r_TxFlow),                    .r_RxFlow(r_RxFlow),                        .r_PassAll(r_PassAll),
  .r_TxFlow(r_TxFlow),                    .r_RxFlow(r_RxFlow),                        .r_PassAll(r_PassAll),
  .r_MiiMRst(r_MiiMRst),                  .r_MiiNoPre(r_MiiNoPre),                    .r_ClkDiv(r_ClkDiv),
  .r_MiiMRst(r_MiiMRst),                  .r_MiiNoPre(r_MiiNoPre),                    .r_ClkDiv(r_ClkDiv),
  .r_WCtrlData(r_WCtrlData),              .r_RStat(r_RStat),                          .r_ScanStat(r_ScanStat),
  .r_WCtrlData(r_WCtrlData),              .r_RStat(r_RStat),                          .r_ScanStat(r_ScanStat),
  .r_RGAD(r_RGAD),                        .r_FIAD(r_FIAD),                            .r_CtrlData(r_CtrlData),
  .r_RGAD(r_RGAD),                        .r_FIAD(r_FIAD),                            .r_CtrlData(r_CtrlData),
  .NValid_stat(NValid_stat),              .Busy_stat(Busy_stat),
  .NValid_stat(NValid_stat),              .Busy_stat(Busy_stat),
  .LinkFail(LinkFail),                    .r_MAC(r_MAC),                              .WCtrlDataStart(WCtrlDataStart),
  .LinkFail(LinkFail),                    .r_MAC(r_MAC),                              .WCtrlDataStart(WCtrlDataStart),
  .RStatStart(RStatStart),                .UpdateMIIRX_DATAReg(UpdateMIIRX_DATAReg),  .Prsd(Prsd),
  .RStatStart(RStatStart),                .UpdateMIIRX_DATAReg(UpdateMIIRX_DATAReg),  .Prsd(Prsd),
  .r_TxBDNum(r_TxBDNum),                  .TX_BD_NUM_Wr(TX_BD_NUM_Wr),                .int_o(int_o),
  .r_TxBDNum(r_TxBDNum),                  .TX_BD_NUM_Wr(TX_BD_NUM_Wr),                .int_o(int_o),
  .r_HASH0(r_HASH0),                      .r_HASH1(r_HASH1)
  .r_HASH0(r_HASH0),                      .r_HASH1(r_HASH1),                          .r_TxPauseRq(r_TxPauseRq),
 
  .r_TxPauseTV(r_TxPauseTV),              .RstTxPauseRq(RstTxPauseRq),                .TxCtrlEndFrm(TxCtrlEndFrm),
 
  .StartTxDone(StartTxDone),              .TxClk(mtx_clk_pad_i),                      .RxClk(mrx_clk_pad_i),
 
  .ReceivedPauseFrm(ReceivedPauseFrm),
 
 
 
  .reg1(reg1), .reg2(reg2), .reg3(reg3), .reg4(reg4)
 
 
);
);
 
 
 
 
 
 
wire  [7:0] RxData;
wire  [7:0] RxData;
Line 417... Line 428...
 
 
wire        WillTransmit;            // Will transmit (to RxEthMAC)
wire        WillTransmit;            // Will transmit (to RxEthMAC)
wire        ResetCollision;          // Reset Collision (for synchronizing collision)
wire        ResetCollision;          // Reset Collision (for synchronizing collision)
wire  [7:0] TxDataOut;               // Transmit Packet Data (to TxEthMAC)
wire  [7:0] TxDataOut;               // Transmit Packet Data (to TxEthMAC)
wire        WillSendControlFrame;
wire        WillSendControlFrame;
wire        TxCtrlEndFrm;
 
wire        ReceivedPauseFrm;
 
wire        ReceiveEnd;
wire        ReceiveEnd;
wire        ReceivedPacketGood;
wire        ReceivedPacketGood;
wire        ReceivedLengthOK;
wire        ReceivedLengthOK;
wire        InvalidSymbol;
wire        InvalidSymbol;
wire        LatchedCrcError;
wire        LatchedCrcError;
wire        RxLateCollision;
wire        RxLateCollision;
wire  [3:0] RetryCntLatched;
wire  [3:0] RetryCntLatched;
wire  [3:0] RetryCnt;
wire  [3:0] RetryCnt;
wire        StartTxDone;
 
wire        StartTxAbort;
wire        StartTxAbort;
wire        MaxCollisionOccured;
wire        MaxCollisionOccured;
wire        RetryLimit;
wire        RetryLimit;
wire        StatePreamble;
wire        StatePreamble;
wire  [1:0] StateData;
wire  [1:0] StateData;
 
 
// Connecting MACControl
// Connecting MACControl
eth_maccontrol maccontrol1
eth_maccontrol maccontrol1
(
(
  .MTxClk(mtx_clk_pad_i),                       .TPauseRq(TPauseRq),
  .MTxClk(mtx_clk_pad_i),                       .TPauseRq(r_TxPauseRq),
  .TxPauseTV(TxPauseTV),                        .TxDataIn(TxData),
  .TxPauseTV(r_TxPauseTV),                      .TxDataIn(TxData),
  .TxStartFrmIn(TxStartFrm),                    .TxEndFrmIn(TxEndFrm),
  .TxStartFrmIn(TxStartFrm),                    .TxEndFrmIn(TxEndFrm),
  .TxUsedDataIn(TxUsedDataIn),                  .TxDoneIn(TxDoneIn),
  .TxUsedDataIn(TxUsedDataIn),                  .TxDoneIn(TxDoneIn),
  .TxAbortIn(TxAbortIn),                        .MRxClk(mrx_clk_pad_i),
  .TxAbortIn(TxAbortIn),                        .MRxClk(mrx_clk_pad_i),
  .RxData(RxData),                              .RxValid(RxValid),
  .RxData(RxData),                              .RxValid(RxValid),
  .RxStartFrm(RxStartFrm),                      .RxEndFrm(RxEndFrm),
  .RxStartFrm(RxStartFrm),                      .RxEndFrm(RxEndFrm),
Line 620... Line 628...
    RxEnSync <= #Tp r_RxEn;
    RxEnSync <= #Tp r_RxEn;
end
end
 
 
 
 
 
 
 
// Synchronizing WillSendControlFrame to WB_CLK;
 
always @ (posedge wb_clk_i or posedge wb_rst_i)
 
begin
 
  if(wb_rst_i)
 
    WillSendControlFrame_sync1 <= 1'b0;
 
  else
 
    WillSendControlFrame_sync1 <=#Tp WillSendControlFrame;
 
end
 
 
 
always @ (posedge wb_clk_i or posedge wb_rst_i)
 
begin
 
  if(wb_rst_i)
 
    WillSendControlFrame_sync2 <= 1'b0;
 
  else
 
    WillSendControlFrame_sync2 <=#Tp WillSendControlFrame_sync1;
 
end
 
 
 
always @ (posedge wb_clk_i or posedge wb_rst_i)
 
begin
 
  if(wb_rst_i)
 
    WillSendControlFrame_sync3 <= 1'b0;
 
  else
 
    WillSendControlFrame_sync3 <=#Tp WillSendControlFrame_sync2;
 
end
 
 
 
always @ (posedge wb_clk_i or posedge wb_rst_i)
 
begin
 
  if(wb_rst_i)
 
    RstTxPauseRq <= 1'b0;
 
  else
 
    RstTxPauseRq <=#Tp WillSendControlFrame_sync2 & ~WillSendControlFrame_sync3;
 
end
 
 
 
 
// Connecting Wishbone module
// Connecting Wishbone module
eth_wishbone wishbone
eth_wishbone wishbone
(
(
  .WB_CLK_I(wb_clk_i),                .WB_DAT_I(wb_dat_i),
  .WB_CLK_I(wb_clk_i),                .WB_DAT_I(wb_dat_i),
Line 642... Line 683...
 
 
    //TX
    //TX
  .MTxClk(mtx_clk_pad_i),             .TxStartFrm(TxStartFrm),                  .TxEndFrm(TxEndFrm),
  .MTxClk(mtx_clk_pad_i),             .TxStartFrm(TxStartFrm),                  .TxEndFrm(TxEndFrm),
  .TxUsedData(TxUsedData),            .TxData(TxData),
  .TxUsedData(TxUsedData),            .TxData(TxData),
  .TxRetry(TxRetry),                  .TxAbort(TxAbort),                        .TxUnderRun(TxUnderRun),
  .TxRetry(TxRetry),                  .TxAbort(TxAbort),                        .TxUnderRun(TxUnderRun),
  .TxDone(TxDone),                    .TPauseRq(TPauseRq),                      .TxPauseTV(TxPauseTV),
  .TxDone(TxDone),
  .PerPacketCrcEn(PerPacketCrcEn),    .PerPacketPad(PerPacketPad),              .WillSendControlFrame(WillSendControlFrame),
  .PerPacketCrcEn(PerPacketCrcEn),    .PerPacketPad(PerPacketPad),
  .TxCtrlEndFrm(TxCtrlEndFrm),
 
 
 
  // Register
  // Register
  .r_TxEn(r_TxEn),                    .r_RxEn(r_RxEn),                          .r_TxBDNum(r_TxBDNum),
  .r_TxEn(r_TxEn),                    .r_RxEn(r_RxEn),                          .r_TxBDNum(r_TxBDNum),
  .TX_BD_NUM_Wr(TX_BD_NUM_Wr),        .r_RecSmall(r_RecSmall),
  .TX_BD_NUM_Wr(TX_BD_NUM_Wr),
 
 
  //RX
  //RX
  .MRxClk(mrx_clk_pad_i),             .RxData(RxData),                          .RxValid(RxValid),
  .MRxClk(mrx_clk_pad_i),             .RxData(RxData),                          .RxValid(RxValid),
  .RxStartFrm(RxStartFrm),            .RxEndFrm(RxEndFrm),
  .RxStartFrm(RxStartFrm),            .RxEndFrm(RxEndFrm),
  .Busy_IRQ(Busy_IRQ),                .RxE_IRQ(RxE_IRQ),                        .RxB_IRQ(RxB_IRQ),
  .Busy_IRQ(Busy_IRQ),                .RxE_IRQ(RxE_IRQ),                        .RxB_IRQ(RxB_IRQ),
  .TxE_IRQ(TxE_IRQ),                  .TxB_IRQ(TxB_IRQ),                        .TxC_IRQ(TxC_IRQ),
  .TxE_IRQ(TxE_IRQ),                  .TxB_IRQ(TxB_IRQ),
  .RxC_IRQ(RxC_IRQ),
 
 
 
  .RxAbort(RxAbort | (ShortFrame & ~r_RecSmall) | LatchedMRxErr & ~InvalidSymbol),
  .RxAbort(RxAbort | (ShortFrame & ~r_RecSmall) | LatchedMRxErr & ~InvalidSymbol | ReceivedPauseFrm & ~r_PassAll),
 
 
  .InvalidSymbol(InvalidSymbol),      .LatchedCrcError(LatchedCrcError),        .RxLength(RxByteCnt),
  .InvalidSymbol(InvalidSymbol),      .LatchedCrcError(LatchedCrcError),        .RxLength(RxByteCnt),
  .RxLateCollision(RxLateCollision),  .ShortFrame(ShortFrame),                  .DribbleNibble(DribbleNibble),
  .RxLateCollision(RxLateCollision),  .ShortFrame(ShortFrame),                  .DribbleNibble(DribbleNibble),
  .ReceivedPacketTooBig(ReceivedPacketTooBig), .LoadRxStatus(LoadRxStatus),     .RetryCntLatched(RetryCntLatched),
  .ReceivedPacketTooBig(ReceivedPacketTooBig), .LoadRxStatus(LoadRxStatus),     .RetryCntLatched(RetryCntLatched),
  .RetryLimit(RetryLimit),            .LateCollLatched(LateCollLatched),        .DeferLatched(DeferLatched),
  .RetryLimit(RetryLimit),            .LateCollLatched(LateCollLatched),        .DeferLatched(DeferLatched),
  .CarrierSenseLost(CarrierSenseLost),.ReceivedPacketGood(ReceivedPacketGood)
  .CarrierSenseLost(CarrierSenseLost),.ReceivedPacketGood(ReceivedPacketGood),
 
 
 
 
 
  .reg1(reg1), .reg2(reg2), .reg3(reg3), .reg4(reg4)
 
 
);
);
 
 
 
 
 
 
Line 691... Line 730...
  .StartTxAbort(StartTxAbort),        .RetryCntLatched(RetryCntLatched),           .MTxClk(mtx_clk_pad_i),
  .StartTxAbort(StartTxAbort),        .RetryCntLatched(RetryCntLatched),           .MTxClk(mtx_clk_pad_i),
  .MaxCollisionOccured(MaxCollisionOccured), .RetryLimit(RetryLimit),              .LateCollision(LateCollision),
  .MaxCollisionOccured(MaxCollisionOccured), .RetryLimit(RetryLimit),              .LateCollision(LateCollision),
  .LateCollLatched(LateCollLatched),  .StartDefer(StartDefer),                     .DeferLatched(DeferLatched),
  .LateCollLatched(LateCollLatched),  .StartDefer(StartDefer),                     .DeferLatched(DeferLatched),
  .TxStartFrm(TxStartFrmOut),         .StatePreamble(StatePreamble),               .StateData(StateData),
  .TxStartFrm(TxStartFrmOut),         .StatePreamble(StatePreamble),               .StateData(StateData),
  .CarrierSense(CarrierSense_Tx2),    .CarrierSenseLost(CarrierSenseLost),         .TxUsedData(TxUsedDataIn),
  .CarrierSense(CarrierSense_Tx2),    .CarrierSenseLost(CarrierSenseLost),         .TxUsedData(TxUsedDataIn),
  .LatchedMRxErr(LatchedMRxErr)
  .LatchedMRxErr(LatchedMRxErr),      .Loopback(r_LoopBck)
);
);
 
 
 
 
endmodule
endmodule
 
 
 No newline at end of file
 No newline at end of file

powered by: WebSVN 2.1.0

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