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

Subversion Repositories usbhostslave

[/] [usbhostslave/] [trunk/] [RTL/] [slaveController/] [slaveGetpacket.v] - Diff between revs 9 and 18

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

Rev 9 Rev 18
Line 44... Line 44...
//
//
`timescale 1ns / 1ps
`timescale 1ns / 1ps
`include "usbSerialInterfaceEngine_h.v"
`include "usbSerialInterfaceEngine_h.v"
`include "usbConstants_h.v"
`include "usbConstants_h.v"
 
 
module slaveGetPacket (ACKRxed, bitStuffError, clk, CRCError, dataSequence, getPacketEn, rst, RXDataIn, RXDataValid, RXFifoData, RXFifoFull, RXFifoWEn, RXOverflow, RXPacketRdy, RxPID, RXStreamStatusIn, RXTimeOut, SIERxTimeOut);
module slaveGetPacket (ACKRxed, bitStuffError, clk, CRCError, dataSequence, endPointReady, getPacketEn, rst, RXDataIn, RXDataValid, RXFifoData, RXFifoFull, RXFifoWEn, RXOverflow, RXPacketRdy, RxPID, RXStreamStatusIn, RXTimeOut, SIERxTimeOut);
input   clk;
input   clk;
 
input   endPointReady;
input   getPacketEn;
input   getPacketEn;
input   rst;
input   rst;
input   [7:0]RXDataIn;
input   [7:0]RXDataIn;
input   RXDataValid;
input   RXDataValid;
input   RXFifoFull;
input   RXFifoFull;
Line 69... Line 70...
reg     ACKRxed, next_ACKRxed;
reg     ACKRxed, next_ACKRxed;
reg     bitStuffError, next_bitStuffError;
reg     bitStuffError, next_bitStuffError;
wire    clk;
wire    clk;
reg     CRCError, next_CRCError;
reg     CRCError, next_CRCError;
reg     dataSequence, next_dataSequence;
reg     dataSequence, next_dataSequence;
 
wire    endPointReady;
wire    getPacketEn;
wire    getPacketEn;
wire    rst;
wire    rst;
wire    [7:0]RXDataIn;
wire    [7:0]RXDataIn;
wire    RXDataValid;
wire    RXDataValid;
reg     [7:0]RXFifoData, next_RXFifoData;
reg     [7:0]RXFifoData, next_RXFifoData;
Line 109... Line 111...
`define WAIT_PKT 5'b01101
`define WAIT_PKT 5'b01101
`define CHK_PKT_START 5'b01110
`define CHK_PKT_START 5'b01110
`define WAIT_EN 5'b01111
`define WAIT_EN 5'b01111
`define PKT_RDY 5'b10000
`define PKT_RDY 5'b10000
`define PROC_PKT_DATA_LOOP_DELAY 5'b10001
`define PROC_PKT_DATA_LOOP_DELAY 5'b10001
 
`define PROC_PKT_DATA_LOOP_EP_N_RDY 5'b10010
 
 
reg [4:0]CurrState_slvGetPkt, NextState_slvGetPkt;
reg [4:0]CurrState_slvGetPkt, NextState_slvGetPkt;
 
 
 
 
// Machine: slvGetPkt
// Machine: slvGetPkt
 
 
// NextState logic (combinatorial)
// NextState logic (combinatorial)
always @ (RXByte or RXDataValid or RXDataIn or RXStreamStatusIn or RXStreamStatus or RXFifoFull or RXByteOldest or RXByteOld or SIERxTimeOut or getPacketEn or RXOverflow or ACKRxed or CRCError or bitStuffError or dataSequence or RXFifoWEn or RXFifoData or RXPacketRdy or RXTimeOut or RxPID or CurrState_slvGetPkt)
always @ (RXByte or RXDataValid or RXDataIn or RXStreamStatusIn or RXStreamStatus or endPointReady or RXFifoFull or RXByteOldest or RXByteOld or SIERxTimeOut or getPacketEn or RXOverflow or ACKRxed or CRCError or bitStuffError or dataSequence or RXFifoWEn or RXFifoData or RXPacketRdy or RXTimeOut or RxPID or CurrState_slvGetPkt)
begin
begin
  NextState_slvGetPkt <= CurrState_slvGetPkt;
  NextState_slvGetPkt <= CurrState_slvGetPkt;
  // Set default values for outputs and signals
  // Set default values for outputs and signals
  next_RXOverflow <= RXOverflow;
  next_RXOverflow <= RXOverflow;
  next_ACKRxed <= ACKRxed;
  next_ACKRxed <= ACKRxed;
Line 280... Line 283...
        NextState_slvGetPkt <= `PROC_PKT_DATA_FIN;
        NextState_slvGetPkt <= `PROC_PKT_DATA_FIN;
      end
      end
    end
    end
    `PROC_PKT_DATA_LOOP_CHK_FIFO:
    `PROC_PKT_DATA_LOOP_CHK_FIFO:
    begin
    begin
      if (RXFifoFull == 1'b1)
      if (endPointReady == 1'b0)
 
      begin
 
        NextState_slvGetPkt <= `PROC_PKT_DATA_LOOP_EP_N_RDY;
 
      end
 
      else if (RXFifoFull == 1'b1)
      begin
      begin
        NextState_slvGetPkt <= `PROC_PKT_DATA_LOOP_FIFO_FULL;
        NextState_slvGetPkt <= `PROC_PKT_DATA_LOOP_FIFO_FULL;
        next_RXOverflow <= 1'b1;
        next_RXOverflow <= 1'b1;
      end
      end
      else
      else
Line 316... Line 323...
    end
    end
    `PROC_PKT_DATA_LOOP_DELAY:
    `PROC_PKT_DATA_LOOP_DELAY:
    begin
    begin
      NextState_slvGetPkt <= `PROC_PKT_DATA_LOOP_CHK_FIFO;
      NextState_slvGetPkt <= `PROC_PKT_DATA_LOOP_CHK_FIFO;
    end
    end
 
    `PROC_PKT_DATA_LOOP_EP_N_RDY:    // Discard data
 
    begin
 
      NextState_slvGetPkt <= `PROC_PKT_DATA_LOOP_W_D;
 
    end
  endcase
  endcase
end
end
 
 
// Current State Logic (sequential)
// Current State Logic (sequential)
always @ (posedge clk)
always @ (posedge clk)

powered by: WebSVN 2.1.0

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