亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? slavegetpacket.v

?? 包括USB
?? V
字號:

// File        : ../RTL/slaveController/slaveGetpacket.v
// Generated   : 10/15/06 20:31:24
// From        : ../RTL/slaveController/slaveGetpacket.asf
// By          : FSM2VHDL ver. 5.0.0.9

//////////////////////////////////////////////////////////////////////
////                                                              ////
//// slaveGetPacket
////                                                              ////
//// This file is part of the usbhostslave opencores effort.
//// http://www.opencores.org/cores/usbhostslave/                 ////
////                                                              ////
//// Module Description:                                          ////
//// 
////                                                              ////
//// To Do:                                                       ////
//// 
////                                                              ////
//// Author(s):                                                   ////
//// - Steve Fielding, sfielding@base2designs.com                 ////
////                                                              ////
//////////////////////////////////////////////////////////////////////
////                                                              ////
//// Copyright (C) 2004 Steve Fielding and OPENCORES.ORG          ////
////                                                              ////
//// This source file may be used and distributed without         ////
//// restriction provided that this copyright statement is not    ////
//// removed from the file and that any derivative work contains  ////
//// the original copyright notice and the associated disclaimer. ////
////                                                              ////
//// This source file is free software; you can redistribute it   ////
//// and/or modify it under the terms of the GNU Lesser General   ////
//// Public License as published by the Free Software Foundation; ////
//// either version 2.1 of the License, or (at your option) any   ////
//// later version.                                               ////
////                                                              ////
//// This source is distributed in the hope that it will be       ////
//// useful, but WITHOUT ANY WARRANTY; without even the implied   ////
//// warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR      ////
//// PURPOSE. See the GNU Lesser General Public License for more  ////
//// details.                                                     ////
////                                                              ////
//// You should have received a copy of the GNU Lesser General    ////
//// Public License along with this source; if not, download it   ////
//// from http://www.opencores.org/lgpl.shtml                     ////
////                                                              ////
//////////////////////////////////////////////////////////////////////
//
`include "timescale.v"
`include "usbSerialInterfaceEngine_h.v"
`include "usbConstants_h.v"

module slaveGetPacket (ACKRxed, CRCError, RXDataIn, RXDataValid, RXFifoData, RXFifoFull, RXFifoWEn, RXOverflow, RXPacketRdy, RXStreamStatusIn, RXTimeOut, RxPID, SIERxTimeOut, SIERxTimeOutEn, bitStuffError, clk, dataSequence, endPointReady, getPacketEn, rst);
input   [7:0] RXDataIn;
input   RXDataValid;
input   RXFifoFull;
input   [7:0] RXStreamStatusIn;
input   SIERxTimeOut;		// Single cycle pulse
input   clk;
input   endPointReady;
input   getPacketEn;
input   rst;
output  ACKRxed;
output  CRCError;
output  [7:0] RXFifoData;
output  RXFifoWEn;
output  RXOverflow;
output  RXPacketRdy;
output  RXTimeOut;
output  [3:0] RxPID;
output  SIERxTimeOutEn;
output  bitStuffError;
output  dataSequence;

reg     ACKRxed, next_ACKRxed;
reg     CRCError, next_CRCError;
wire    [7:0] RXDataIn;
wire    RXDataValid;
reg     [7:0] RXFifoData, next_RXFifoData;
wire    RXFifoFull;
reg     RXFifoWEn, next_RXFifoWEn;
reg     RXOverflow, next_RXOverflow;
reg     RXPacketRdy, next_RXPacketRdy;
wire    [7:0] RXStreamStatusIn;
reg     RXTimeOut, next_RXTimeOut;
reg     [3:0] RxPID, next_RxPID;
wire    SIERxTimeOut;
reg     SIERxTimeOutEn, next_SIERxTimeOutEn;
reg     bitStuffError, next_bitStuffError;
wire    clk;
reg     dataSequence, next_dataSequence;
wire    endPointReady;
wire    getPacketEn;
wire    rst;

// diagram signals declarations
reg  [7:0]RXByteOld, next_RXByteOld;
reg  [7:0]RXByteOldest, next_RXByteOldest;
reg  [7:0]RXByte, next_RXByte;
reg  [7:0]RXStreamStatus, next_RXStreamStatus;

// BINARY ENCODED state machine: slvGetPkt
// State codes definitions:
`define PROC_PKT_CHK_PID 5'b00000
`define PROC_PKT_HS 5'b00001
`define PROC_PKT_DATA_W_D1 5'b00010
`define PROC_PKT_DATA_CHK_D1 5'b00011
`define PROC_PKT_DATA_W_D2 5'b00100
`define PROC_PKT_DATA_FIN 5'b00101
`define PROC_PKT_DATA_CHK_D2 5'b00110
`define PROC_PKT_DATA_W_D3 5'b00111
`define PROC_PKT_DATA_CHK_D3 5'b01000
`define PROC_PKT_DATA_LOOP_CHK_FIFO 5'b01001
`define PROC_PKT_DATA_LOOP_FIFO_FULL 5'b01010
`define PROC_PKT_DATA_LOOP_W_D 5'b01011
`define START_GP 5'b01100
`define WAIT_PKT 5'b01101
`define CHK_PKT_START 5'b01110
`define WAIT_EN 5'b01111
`define PKT_RDY 5'b10000
`define PROC_PKT_DATA_LOOP_DELAY 5'b10001
`define PROC_PKT_DATA_LOOP_EP_N_RDY 5'b10010

reg [4:0] CurrState_slvGetPkt;
reg [4:0] NextState_slvGetPkt;


//--------------------------------------------------------------------
// Machine: slvGetPkt
//--------------------------------------------------------------------
//----------------------------------
// Next State Logic (combinatorial)
//----------------------------------
always @ (RXDataIn or RXStreamStatusIn or RXByte or RXByteOldest or RXByteOld or RXDataValid or SIERxTimeOut or RXStreamStatus or getPacketEn or endPointReady or RXFifoFull or CRCError or bitStuffError or RXOverflow or RXTimeOut or ACKRxed or dataSequence or SIERxTimeOutEn or RxPID or RXPacketRdy or RXFifoWEn or RXFifoData or CurrState_slvGetPkt)
begin : slvGetPkt_NextState
  NextState_slvGetPkt <= CurrState_slvGetPkt;
  // Set default values for outputs and signals
  next_CRCError <= CRCError;
  next_bitStuffError <= bitStuffError;
  next_RXOverflow <= RXOverflow;
  next_RXTimeOut <= RXTimeOut;
  next_ACKRxed <= ACKRxed;
  next_dataSequence <= dataSequence;
  next_SIERxTimeOutEn <= SIERxTimeOutEn;
  next_RXByte <= RXByte;
  next_RXStreamStatus <= RXStreamStatus;
  next_RxPID <= RxPID;
  next_RXPacketRdy <= RXPacketRdy;
  next_RXByteOldest <= RXByteOldest;
  next_RXByteOld <= RXByteOld;
  next_RXFifoWEn <= RXFifoWEn;
  next_RXFifoData <= RXFifoData;
  case (CurrState_slvGetPkt)
    `START_GP:
      NextState_slvGetPkt <= `WAIT_EN;
    `WAIT_PKT:
    begin
      next_CRCError <= 1'b0;
      next_bitStuffError <= 1'b0;
      next_RXOverflow <= 1'b0;
      next_RXTimeOut <= 1'b0;
      next_ACKRxed <= 1'b0;
      next_dataSequence <= 1'b0;
      next_SIERxTimeOutEn <= 1'b1;
      if (RXDataValid == 1'b1)	
      begin
        NextState_slvGetPkt <= `CHK_PKT_START;
        next_RXByte <= RXDataIn;
        next_RXStreamStatus <= RXStreamStatusIn;
      end
      else if (SIERxTimeOut == 1'b1)	
      begin
        NextState_slvGetPkt <= `PKT_RDY;
        next_RXTimeOut <= 1'b1;
      end
    end
    `CHK_PKT_START:
      if (RXStreamStatus == `RX_PACKET_START)	
      begin
        NextState_slvGetPkt <= `PROC_PKT_CHK_PID;
        next_RxPID <= RXByte[3:0];
      end
      else
      begin
        NextState_slvGetPkt <= `PKT_RDY;
        next_RXTimeOut <= 1'b1;
      end
    `WAIT_EN:
    begin
      next_RXPacketRdy <= 1'b0;
      next_SIERxTimeOutEn <= 1'b0;
      if (getPacketEn == 1'b1)	
        NextState_slvGetPkt <= `WAIT_PKT;
    end
    `PKT_RDY:
    begin
      next_RXPacketRdy <= 1'b1;
      NextState_slvGetPkt <= `WAIT_EN;
    end
    `PROC_PKT_CHK_PID:
      if (RXByte[1:0] == `HANDSHAKE)	
        NextState_slvGetPkt <= `PROC_PKT_HS;
      else if (RXByte[1:0] == `DATA)	
        NextState_slvGetPkt <= `PROC_PKT_DATA_W_D1;
      else
        NextState_slvGetPkt <= `PKT_RDY;
    `PROC_PKT_HS:
      if (RXDataValid == 1'b1)	
      begin
        NextState_slvGetPkt <= `PKT_RDY;
        next_RXOverflow <= RXDataIn[`RX_OVERFLOW_BIT];
        next_ACKRxed <= RXDataIn[`ACK_RXED_BIT];
      end
    `PROC_PKT_DATA_W_D1:
      if (RXDataValid == 1'b1)	
      begin
        NextState_slvGetPkt <= `PROC_PKT_DATA_CHK_D1;
        next_RXByte <= RXDataIn;
        next_RXStreamStatus <= RXStreamStatusIn;
      end
    `PROC_PKT_DATA_CHK_D1:
      if (RXStreamStatus == `RX_PACKET_STREAM)	
      begin
        NextState_slvGetPkt <= `PROC_PKT_DATA_W_D2;
        next_RXByteOldest <= RXByte;
      end
      else
        NextState_slvGetPkt <= `PROC_PKT_DATA_FIN;
    `PROC_PKT_DATA_W_D2:
      if (RXDataValid == 1'b1)	
      begin
        NextState_slvGetPkt <= `PROC_PKT_DATA_CHK_D2;
        next_RXByte <= RXDataIn;
        next_RXStreamStatus <= RXStreamStatusIn;
      end
    `PROC_PKT_DATA_FIN:
    begin
      next_CRCError <= RXByte[`CRC_ERROR_BIT];
      next_bitStuffError <= RXByte[`BIT_STUFF_ERROR_BIT];
      next_dataSequence <= RXByte[`DATA_SEQUENCE_BIT];
      NextState_slvGetPkt <= `PKT_RDY;
    end
    `PROC_PKT_DATA_CHK_D2:
      if (RXStreamStatus == `RX_PACKET_STREAM)	
      begin
        NextState_slvGetPkt <= `PROC_PKT_DATA_W_D3;
        next_RXByteOld <= RXByte;
      end
      else
        NextState_slvGetPkt <= `PROC_PKT_DATA_FIN;
    `PROC_PKT_DATA_W_D3:
      if (RXDataValid == 1'b1)	
      begin
        NextState_slvGetPkt <= `PROC_PKT_DATA_CHK_D3;
        next_RXByte <= RXDataIn;
        next_RXStreamStatus <= RXStreamStatusIn;
      end
    `PROC_PKT_DATA_CHK_D3:
      if (RXStreamStatus == `RX_PACKET_STREAM)	
        NextState_slvGetPkt <= `PROC_PKT_DATA_LOOP_CHK_FIFO;
      else
        NextState_slvGetPkt <= `PROC_PKT_DATA_FIN;
    `PROC_PKT_DATA_LOOP_CHK_FIFO:
      if (endPointReady == 1'b0)	
        NextState_slvGetPkt <= `PROC_PKT_DATA_LOOP_EP_N_RDY;
      else if (RXFifoFull == 1'b1)	
      begin
        NextState_slvGetPkt <= `PROC_PKT_DATA_LOOP_FIFO_FULL;
        next_RXOverflow <= 1'b1;
      end
      else
      begin
        NextState_slvGetPkt <= `PROC_PKT_DATA_LOOP_W_D;
        next_RXFifoWEn <= 1'b1;
        next_RXFifoData <= RXByteOldest;
        next_RXByteOldest <= RXByteOld;
        next_RXByteOld <= RXByte;
      end
    `PROC_PKT_DATA_LOOP_FIFO_FULL:
      NextState_slvGetPkt <= `PROC_PKT_DATA_LOOP_W_D;
    `PROC_PKT_DATA_LOOP_W_D:
    begin
      next_RXFifoWEn <= 1'b0;
      if ((RXDataValid == 1'b1) && (RXStreamStatusIn == `RX_PACKET_STREAM))	
      begin
        NextState_slvGetPkt <= `PROC_PKT_DATA_LOOP_DELAY;
        next_RXByte <= RXDataIn;
      end
      else if (RXDataValid == 1'b1)	
      begin
        NextState_slvGetPkt <= `PROC_PKT_DATA_FIN;
        next_RXByte <= RXDataIn;
      end
    end
    `PROC_PKT_DATA_LOOP_DELAY:
      NextState_slvGetPkt <= `PROC_PKT_DATA_LOOP_CHK_FIFO;
    `PROC_PKT_DATA_LOOP_EP_N_RDY:    // Discard data
      NextState_slvGetPkt <= `PROC_PKT_DATA_LOOP_W_D;
  endcase
end

//----------------------------------
// Current State Logic (sequential)
//----------------------------------
always @ (posedge clk)
begin : slvGetPkt_CurrentState
  if (rst)	
    CurrState_slvGetPkt <= `START_GP;
  else
    CurrState_slvGetPkt <= NextState_slvGetPkt;
end

//----------------------------------
// Registered outputs logic
//----------------------------------
always @ (posedge clk)
begin : slvGetPkt_RegOutput
  if (rst)	
  begin
    RXByteOld <= 8'h00;
    RXByteOldest <= 8'h00;
    RXByte <= 8'h00;
    RXStreamStatus <= 8'h00;
    RXPacketRdy <= 1'b0;
    RXFifoWEn <= 1'b0;
    RXFifoData <= 8'h00;
    CRCError <= 1'b0;
    bitStuffError <= 1'b0;
    RXOverflow <= 1'b0;
    RXTimeOut <= 1'b0;
    ACKRxed <= 1'b0;
    dataSequence <= 1'b0;
    SIERxTimeOutEn <= 1'b0;
    RxPID <= 4'h0;
  end
  else 
  begin
    RXByteOld <= next_RXByteOld;
    RXByteOldest <= next_RXByteOldest;
    RXByte <= next_RXByte;
    RXStreamStatus <= next_RXStreamStatus;
    RXPacketRdy <= next_RXPacketRdy;
    RXFifoWEn <= next_RXFifoWEn;
    RXFifoData <= next_RXFifoData;
    CRCError <= next_CRCError;
    bitStuffError <= next_bitStuffError;
    RXOverflow <= next_RXOverflow;
    RXTimeOut <= next_RXTimeOut;
    ACKRxed <= next_ACKRxed;
    dataSequence <= next_dataSequence;
    SIERxTimeOutEn <= next_SIERxTimeOutEn;
    RxPID <= next_RxPID;
  end
end

endmodule

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品久久久久久久久久久久久久久久久| 成人av动漫在线| 91精品国产一区二区| 午夜av一区二区三区| 在线电影一区二区三区| 免费久久99精品国产| 日韩女优毛片在线| 国产不卡视频在线播放| 国产精品久久久久久久久免费樱桃 | 日韩福利视频网| 精品欧美一区二区久久| 国产成人免费9x9x人网站视频| 国产精品国产精品国产专区不蜜 | 亚洲欧美韩国综合色| 欧美四级电影网| 久久99精品国产91久久来源| 国产日韩精品视频一区| 色悠悠久久综合| 三级不卡在线观看| 国产欧美1区2区3区| 色婷婷久久综合| 亚洲国产成人av网| 26uuu精品一区二区| 中文子幕无线码一区tr| 国产无遮挡一区二区三区毛片日本| 国产精品蜜臀在线观看| 亚洲第一精品在线| 91在线视频官网| 国产亚洲一区二区三区四区| 亚洲综合色噜噜狠狠| 日韩美女主播在线视频一区二区三区 | 国产精品99久久久久久有的能看 | 国产精品久久久久久亚洲毛片| 色呦呦一区二区三区| 国精品**一区二区三区在线蜜桃| 中文字幕在线观看不卡视频| 在线播放亚洲一区| fc2成人免费人成在线观看播放| 日韩精品乱码免费| 亚洲欧美福利一区二区| 久久亚洲精华国产精华液| 欧美一级高清片| 91色九色蝌蚪| 国产精品羞羞答答xxdd| 日韩电影在线看| 一区二区在线免费观看| 国产精品三级电影| 精品久久久久久久久久久久包黑料 | 亚洲国产乱码最新视频 | av亚洲精华国产精华| 捆绑紧缚一区二区三区视频| 亚洲色图一区二区三区| 久久综合999| 日韩欧美国产wwwww| 欧美性做爰猛烈叫床潮| 99久久精品国产精品久久| 国产成人免费视频网站高清观看视频 | 国产一区不卡在线| 日日骚欧美日韩| 亚洲一区免费视频| 亚洲欧美另类久久久精品2019| 国产日韩视频一区二区三区| 2021中文字幕一区亚洲| 日韩欧美成人一区| 欧美一区二区三区免费观看视频| 在线观看亚洲精品视频| 日本韩国一区二区| 91国偷自产一区二区使用方法| www.色精品| 99久久婷婷国产| 97se亚洲国产综合自在线观| eeuss鲁片一区二区三区在线观看| 高清不卡一区二区| 99热这里都是精品| 91香蕉视频污| 欧美色老头old∨ideo| 欧美午夜精品久久久久久超碰| 欧美天天综合网| 欧美高清视频在线高清观看mv色露露十八 | 蜜桃av一区二区| 日本视频一区二区| 精品一区二区三区不卡 | 丝袜a∨在线一区二区三区不卡| 亚洲五月六月丁香激情| 亚洲午夜免费电影| 午夜激情综合网| 美女免费视频一区二区| 精品一区二区三区日韩| 国产成人欧美日韩在线电影| 99久久久久免费精品国产| 色天使久久综合网天天| 欧美日韩一区视频| 欧美一区二区大片| 久久久久国产精品麻豆ai换脸| 欧美韩日一区二区三区四区| 亚洲色图制服丝袜| 日韩国产在线一| 国产精品综合久久| 日本黄色一区二区| 精品国一区二区三区| 国产欧美精品一区二区三区四区 | 午夜免费久久看| 久久草av在线| 波多野结衣欧美| 欧美日韩国产一级片| 久久久精品2019中文字幕之3| 亚洲男人的天堂av| 免费不卡在线观看| 成人在线综合网| 欧美久久久久久蜜桃| 久久男人中文字幕资源站| 亚洲欧美日韩国产中文在线| 石原莉奈一区二区三区在线观看| 国产九色sp调教91| 欧美在线高清视频| 久久精品人人爽人人爽| 亚洲成人手机在线| 成人动漫视频在线| 5566中文字幕一区二区电影 | 欧美乱妇15p| 国产精品久久三区| 免费观看成人av| 97国产精品videossex| 日韩欧美国产一二三区| 亚洲美女电影在线| 国内精品嫩模私拍在线| 欧美日韩在线播放三区| 中文幕一区二区三区久久蜜桃| 婷婷久久综合九色国产成人| jizzjizzjizz欧美| 欧美草草影院在线视频| 亚洲成人av一区| 97se亚洲国产综合在线| 久久久久久一二三区| 麻豆成人免费电影| 欧美日韩国产片| 亚洲三级小视频| 国产精品66部| 久久综合狠狠综合久久综合88 | 国产成人在线影院| 91麻豆精品国产无毒不卡在线观看| 中文字幕欧美日韩一区| 精品一区二区综合| 91精品国产综合久久久久久漫画| 亚洲日本青草视频在线怡红院 | 亚洲欧洲av在线| 国产一区二区三区在线观看免费| 6080yy午夜一二三区久久| 亚洲私人黄色宅男| 国产91精品免费| 国产午夜精品在线观看| 国产真实乱对白精彩久久| 9191成人精品久久| 午夜视频在线观看一区二区| 在线精品视频免费观看| 亚洲伦理在线免费看| 成人av在线影院| 国产欧美视频一区二区| 国产成人一区在线| 国产欧美日韩不卡免费| 国产成人精品一区二区三区四区 | 国产视频在线观看一区二区三区| 九色综合国产一区二区三区| 欧美大片在线观看一区| 另类调教123区| 日韩午夜激情av| 激情av综合网| 久久女同精品一区二区| 国产成人综合亚洲网站| 欧美激情一二三区| 精品视频资源站| 亚洲国产一区二区三区青草影视| 欧美日韩精品欧美日韩精品一综合| 亚洲二区视频在线| 欧美欧美欧美欧美首页| 日韩影院在线观看| 日韩网站在线看片你懂的| 精品一区二区三区免费毛片爱| 久久久久久久电影| 99久久免费精品高清特色大片| 亚洲精品国产a久久久久久| 色香色香欲天天天影视综合网| 亚洲国产日日夜夜| 欧美成人福利视频| 处破女av一区二区| 亚洲一区二区三区四区五区黄| 91麻豆精品国产91久久久使用方法 | 99国产欧美久久久精品| 亚洲欧美aⅴ...| 91精品国产综合久久久久| 久久成人综合网| 亚洲欧洲精品一区二区三区 | 美女一区二区三区在线观看| 久久亚洲精华国产精华液| 成人午夜在线视频| 一区二区高清视频在线观看| 欧美一级在线观看| 成人黄色国产精品网站大全在线免费观看| 亚洲图片你懂的| 51精品秘密在线观看|