Line 45... |
Line 45... |
`timescale 1ns / 1ps
|
`timescale 1ns / 1ps
|
|
|
`include "usbSerialInterfaceEngine_h.v"
|
`include "usbSerialInterfaceEngine_h.v"
|
`include "usbConstants_h.v"
|
`include "usbConstants_h.v"
|
|
|
module getPacket (clk, getPacketEn, rst, RXDataIn, RXDataValid, RXFifoData, RXFifoFull, RXFifoWEn, RXPacketRdy, RxPID, RXPktStatus, RXStreamStatusIn, SIERxTimeOut);
|
module getPacket (clk, getPacketEn, rst, RXDataIn, RXDataValid, RXFifoData, RXFifoFull, RXFifoWEn, RXPacketRdy, RxPID, RXPktStatus, RXStreamStatusIn, SIERxTimeOut, SIERxTimeOutEn);
|
input clk;
|
input clk;
|
input getPacketEn;
|
input getPacketEn;
|
input rst;
|
input rst;
|
input [7:0]RXDataIn;
|
input [7:0]RXDataIn;
|
input RXDataValid;
|
input RXDataValid;
|
Line 59... |
Line 59... |
output [7:0]RXFifoData;
|
output [7:0]RXFifoData;
|
output RXFifoWEn;
|
output RXFifoWEn;
|
output RXPacketRdy;
|
output RXPacketRdy;
|
output [3:0]RxPID;
|
output [3:0]RxPID;
|
output [7:0]RXPktStatus;
|
output [7:0]RXPktStatus;
|
|
output SIERxTimeOutEn;
|
|
|
wire clk;
|
wire clk;
|
wire getPacketEn;
|
wire getPacketEn;
|
wire rst;
|
wire rst;
|
wire [7:0]RXDataIn;
|
wire [7:0]RXDataIn;
|
Line 73... |
Line 74... |
reg RXPacketRdy, next_RXPacketRdy;
|
reg RXPacketRdy, next_RXPacketRdy;
|
reg [3:0]RxPID, next_RxPID;
|
reg [3:0]RxPID, next_RxPID;
|
reg [7:0]RXPktStatus;
|
reg [7:0]RXPktStatus;
|
wire [7:0]RXStreamStatusIn;
|
wire [7:0]RXStreamStatusIn;
|
wire SIERxTimeOut;
|
wire SIERxTimeOut;
|
|
reg SIERxTimeOutEn, next_SIERxTimeOutEn;
|
|
|
// diagram signals declarations
|
// diagram signals declarations
|
reg ACKRxed, next_ACKRxed;
|
reg ACKRxed, next_ACKRxed;
|
reg bitStuffError, next_bitStuffError;
|
reg bitStuffError, next_bitStuffError;
|
reg CRCError, next_CRCError;
|
reg CRCError, next_CRCError;
|
Line 129... |
Line 131... |
|
|
|
|
// Machine: getPkt
|
// Machine: getPkt
|
|
|
// 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 NAKRxed or stallRxed or ACKRxed or CRCError or bitStuffError or dataSequence or RXFifoWEn or RXFifoData or RXPacketRdy or RXTimeOut or RxPID or CurrState_getPkt)
|
always @ (RXByte or RXDataValid or RXDataIn or RXStreamStatusIn or RXStreamStatus or RXFifoFull or RXByteOldest or RXByteOld or SIERxTimeOut or getPacketEn or RXOverflow or NAKRxed or stallRxed or ACKRxed or CRCError or bitStuffError or dataSequence or RXFifoWEn or RXFifoData or RXPacketRdy or RXTimeOut or RxPID or SIERxTimeOutEn or CurrState_getPkt)
|
begin
|
begin
|
NextState_getPkt <= CurrState_getPkt;
|
NextState_getPkt <= CurrState_getPkt;
|
// Set default values for outputs and signals
|
// Set default values for outputs and signals
|
next_RXOverflow <= RXOverflow;
|
next_RXOverflow <= RXOverflow;
|
next_NAKRxed <= NAKRxed;
|
next_NAKRxed <= NAKRxed;
|
Line 149... |
Line 151... |
next_RXFifoWEn <= RXFifoWEn;
|
next_RXFifoWEn <= RXFifoWEn;
|
next_RXFifoData <= RXFifoData;
|
next_RXFifoData <= RXFifoData;
|
next_RXPacketRdy <= RXPacketRdy;
|
next_RXPacketRdy <= RXPacketRdy;
|
next_RXTimeOut <= RXTimeOut;
|
next_RXTimeOut <= RXTimeOut;
|
next_RxPID <= RxPID;
|
next_RxPID <= RxPID;
|
|
next_SIERxTimeOutEn <= SIERxTimeOutEn;
|
case (CurrState_getPkt) // synopsys parallel_case full_case
|
case (CurrState_getPkt) // synopsys parallel_case full_case
|
`START_GP:
|
`START_GP:
|
begin
|
begin
|
NextState_getPkt <= `WAIT_EN;
|
NextState_getPkt <= `WAIT_EN;
|
end
|
end
|
Line 164... |
Line 167... |
next_RXTimeOut <= 1'b0;
|
next_RXTimeOut <= 1'b0;
|
next_NAKRxed <= 1'b0;
|
next_NAKRxed <= 1'b0;
|
next_stallRxed <= 1'b0;
|
next_stallRxed <= 1'b0;
|
next_ACKRxed <= 1'b0;
|
next_ACKRxed <= 1'b0;
|
next_dataSequence <= 1'b0;
|
next_dataSequence <= 1'b0;
|
|
next_SIERxTimeOutEn <= 1'b1;
|
if (SIERxTimeOut == 1'b1)
|
if (SIERxTimeOut == 1'b1)
|
begin
|
begin
|
NextState_getPkt <= `PKT_RDY;
|
NextState_getPkt <= `PKT_RDY;
|
next_RXTimeOut <= 1'b1;
|
next_RXTimeOut <= 1'b1;
|
end
|
end
|
Line 192... |
Line 196... |
end
|
end
|
end
|
end
|
`WAIT_EN:
|
`WAIT_EN:
|
begin
|
begin
|
next_RXPacketRdy <= 1'b0;
|
next_RXPacketRdy <= 1'b0;
|
|
next_SIERxTimeOutEn <= 1'b0;
|
if (getPacketEn == 1'b1)
|
if (getPacketEn == 1'b1)
|
begin
|
begin
|
NextState_getPkt <= `WAIT_PKT;
|
NextState_getPkt <= `WAIT_PKT;
|
end
|
end
|
end
|
end
|
Line 358... |
Line 363... |
begin
|
begin
|
RXFifoWEn <= 1'b0;
|
RXFifoWEn <= 1'b0;
|
RXFifoData <= 8'h00;
|
RXFifoData <= 8'h00;
|
RXPacketRdy <= 1'b0;
|
RXPacketRdy <= 1'b0;
|
RxPID <= 4'h0;
|
RxPID <= 4'h0;
|
|
SIERxTimeOutEn <= 1'b0;
|
RXOverflow <= 1'b0;
|
RXOverflow <= 1'b0;
|
NAKRxed <= 1'b0;
|
NAKRxed <= 1'b0;
|
stallRxed <= 1'b0;
|
stallRxed <= 1'b0;
|
ACKRxed <= 1'b0;
|
ACKRxed <= 1'b0;
|
RXByte <= 8'h00;
|
RXByte <= 8'h00;
|
Line 377... |
Line 383... |
begin
|
begin
|
RXFifoWEn <= next_RXFifoWEn;
|
RXFifoWEn <= next_RXFifoWEn;
|
RXFifoData <= next_RXFifoData;
|
RXFifoData <= next_RXFifoData;
|
RXPacketRdy <= next_RXPacketRdy;
|
RXPacketRdy <= next_RXPacketRdy;
|
RxPID <= next_RxPID;
|
RxPID <= next_RxPID;
|
|
SIERxTimeOutEn <= next_SIERxTimeOutEn;
|
RXOverflow <= next_RXOverflow;
|
RXOverflow <= next_RXOverflow;
|
NAKRxed <= next_NAKRxed;
|
NAKRxed <= next_NAKRxed;
|
stallRxed <= next_stallRxed;
|
stallRxed <= next_stallRxed;
|
ACKRxed <= next_ACKRxed;
|
ACKRxed <= next_ACKRxed;
|
RXByte <= next_RXByte;
|
RXByte <= next_RXByte;
|