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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? getpacket.v

?? 包括USB
?? V
字號:

// File        : ../RTL/hostController/getpacket.v
// Generated   : 10/15/06 20:31:19
// From        : ../RTL/hostController/getpacket.asf
// By          : FSM2VHDL ver. 5.0.0.9

//////////////////////////////////////////////////////////////////////
////                                                              ////
//// getpacket
////                                                              ////
//// 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 getPacket (RXDataIn, RXDataValid, RXFifoData, RXFifoFull, RXFifoWEn, RXPacketRdy, RXPktStatus, RXStreamStatusIn, RxPID, SIERxTimeOut, SIERxTimeOutEn, clk, getPacketEn, rst);
input   [7:0] RXDataIn;
input   RXDataValid;
input   RXFifoFull;
input   [7:0] RXStreamStatusIn;
input   SIERxTimeOut;		// Single cycle pulse
input   clk;
input   getPacketEn;
input   rst;
output  [7:0] RXFifoData;
output  RXFifoWEn;
output  RXPacketRdy;
output  [7:0] RXPktStatus;
output  [3:0] RxPID;
output  SIERxTimeOutEn;

wire    [7:0] RXDataIn;
wire    RXDataValid;
reg     [7:0] RXFifoData, next_RXFifoData;
wire    RXFifoFull;
reg     RXFifoWEn, next_RXFifoWEn;
reg     RXPacketRdy, next_RXPacketRdy;
reg     [7:0] RXPktStatus;
wire    [7:0] RXStreamStatusIn;
reg     [3:0] RxPID, next_RxPID;
wire    SIERxTimeOut;
reg     SIERxTimeOutEn, next_SIERxTimeOutEn;
wire    clk;
wire    getPacketEn;
wire    rst;

// diagram signals declarations
reg  ACKRxed, next_ACKRxed;
reg  CRCError, next_CRCError;
reg  NAKRxed, next_NAKRxed;
reg  [7:0]RXByteOld, next_RXByteOld;
reg  [7:0]RXByteOldest, next_RXByteOldest;
reg  [7:0]RXByte, next_RXByte;
reg  RXOverflow, next_RXOverflow;
reg  [7:0]RXStreamStatus, next_RXStreamStatus;
reg  RXTimeOut, next_RXTimeOut;
reg  bitStuffError, next_bitStuffError;
reg  dataSequence, next_dataSequence;
reg  stallRxed, next_stallRxed;

// BINARY ENCODED state machine: getPkt
// 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

reg [4:0] CurrState_getPkt;
reg [4:0] NextState_getPkt;

// Diagram actions (continuous assignments allowed only: assign ...)

always @
(CRCError or bitStuffError or
  RXOverflow or RXTimeOut or
  NAKRxed or stallRxed or
  ACKRxed or dataSequence)
begin
    RXPktStatus <= {
    dataSequence, ACKRxed,
    stallRxed, NAKRxed,
    RXTimeOut, RXOverflow,
    bitStuffError, CRCError};
end

//--------------------------------------------------------------------
// Machine: getPkt
//--------------------------------------------------------------------
//----------------------------------
// Next State Logic (combinatorial)
//----------------------------------
always @ (RXDataIn or RXStreamStatusIn or RXByte or RXByteOldest or RXByteOld or SIERxTimeOut or RXDataValid or RXStreamStatus or getPacketEn or RXFifoFull or CRCError or bitStuffError or RXOverflow or RXTimeOut or NAKRxed or stallRxed or ACKRxed or dataSequence or SIERxTimeOutEn or RxPID or RXPacketRdy or RXFifoWEn or RXFifoData or CurrState_getPkt)
begin : getPkt_NextState
  NextState_getPkt <= CurrState_getPkt;
  // Set default values for outputs and signals
  next_CRCError <= CRCError;
  next_bitStuffError <= bitStuffError;
  next_RXOverflow <= RXOverflow;
  next_RXTimeOut <= RXTimeOut;
  next_NAKRxed <= NAKRxed;
  next_stallRxed <= stallRxed;
  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_getPkt)
    `START_GP:
      NextState_getPkt <= `WAIT_EN;
    `WAIT_PKT:
    begin
      next_CRCError <= 1'b0;
      next_bitStuffError <= 1'b0;
      next_RXOverflow <= 1'b0;
      next_RXTimeOut <= 1'b0;
      next_NAKRxed <= 1'b0;
      next_stallRxed <= 1'b0;
      next_ACKRxed <= 1'b0;
      next_dataSequence <= 1'b0;
      next_SIERxTimeOutEn <= 1'b1;
      if (SIERxTimeOut == 1'b1)	
      begin
        NextState_getPkt <= `PKT_RDY;
        next_RXTimeOut <= 1'b1;
      end
      else if (RXDataValid == 1'b1)	
      begin
        NextState_getPkt <= `CHK_PKT_START;
        next_RXByte <= RXDataIn;
        next_RXStreamStatus <= RXStreamStatusIn;
      end
    end
    `CHK_PKT_START:
      if (RXStreamStatus == `RX_PACKET_START)	
      begin
        NextState_getPkt <= `PROC_PKT_CHK_PID;
        next_RxPID <= RXByte[3:0];
      end
      else
      begin
        NextState_getPkt <= `PKT_RDY;
        next_RXTimeOut <= 1'b1;
      end
    `WAIT_EN:
    begin
      next_RXPacketRdy <= 1'b0;
      next_SIERxTimeOutEn <= 1'b0;
      if (getPacketEn == 1'b1)	
        NextState_getPkt <= `WAIT_PKT;
    end
    `PKT_RDY:
    begin
      next_RXPacketRdy <= 1'b1;
      NextState_getPkt <= `WAIT_EN;
    end
    `PROC_PKT_CHK_PID:
      if (RXByte[1:0] == `HANDSHAKE)	
        NextState_getPkt <= `PROC_PKT_HS;
      else if (RXByte[1:0] == `DATA)	
        NextState_getPkt <= `PROC_PKT_DATA_W_D1;
      else
        NextState_getPkt <= `PKT_RDY;
    `PROC_PKT_HS:
      if (RXDataValid == 1'b1)	
      begin
        NextState_getPkt <= `PKT_RDY;
        next_RXOverflow <= RXDataIn[`RX_OVERFLOW_BIT];
        next_NAKRxed <= RXDataIn[`NAK_RXED_BIT];
        next_stallRxed <= RXDataIn[`STALL_RXED_BIT];
        next_ACKRxed <= RXDataIn[`ACK_RXED_BIT];
      end
    `PROC_PKT_DATA_W_D1:
      if (RXDataValid == 1'b1)	
      begin
        NextState_getPkt <= `PROC_PKT_DATA_CHK_D1;
        next_RXByte <= RXDataIn;
        next_RXStreamStatus <= RXStreamStatusIn;
      end
    `PROC_PKT_DATA_CHK_D1:
      if (RXStreamStatus == `RX_PACKET_STREAM)	
      begin
        NextState_getPkt <= `PROC_PKT_DATA_W_D2;
        next_RXByteOldest <= RXByte;
      end
      else
        NextState_getPkt <= `PROC_PKT_DATA_FIN;
    `PROC_PKT_DATA_W_D2:
      if (RXDataValid == 1'b1)	
      begin
        NextState_getPkt <= `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_getPkt <= `PKT_RDY;
    end
    `PROC_PKT_DATA_CHK_D2:
      if (RXStreamStatus == `RX_PACKET_STREAM)	
      begin
        NextState_getPkt <= `PROC_PKT_DATA_W_D3;
        next_RXByteOld <= RXByte;
      end
      else
        NextState_getPkt <= `PROC_PKT_DATA_FIN;
    `PROC_PKT_DATA_W_D3:
      if (RXDataValid == 1'b1)	
      begin
        NextState_getPkt <= `PROC_PKT_DATA_CHK_D3;
        next_RXByte <= RXDataIn;
        next_RXStreamStatus <= RXStreamStatusIn;
      end
    `PROC_PKT_DATA_CHK_D3:
      if (RXStreamStatus == `RX_PACKET_STREAM)	
        NextState_getPkt <= `PROC_PKT_DATA_LOOP_CHK_FIFO;
      else
        NextState_getPkt <= `PROC_PKT_DATA_FIN;
    `PROC_PKT_DATA_LOOP_CHK_FIFO:
      if (RXFifoFull == 1'b1)	
      begin
        NextState_getPkt <= `PROC_PKT_DATA_LOOP_FIFO_FULL;
        next_RXOverflow <= 1'b1;
      end
      else
      begin
        NextState_getPkt <= `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_getPkt <= `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_getPkt <= `PROC_PKT_DATA_LOOP_DELAY;
        next_RXByte <= RXDataIn;
        next_RXStreamStatus <= RXStreamStatusIn;
      end
      else if (RXDataValid == 1'b1)	
      begin
        NextState_getPkt <= `PROC_PKT_DATA_FIN;
        next_RXByte <= RXDataIn;
        next_RXStreamStatus <= RXStreamStatusIn;
      end
    end
    `PROC_PKT_DATA_LOOP_DELAY:
      NextState_getPkt <= `PROC_PKT_DATA_LOOP_CHK_FIFO;
  endcase
end

//----------------------------------
// Current State Logic (sequential)
//----------------------------------
always @ (posedge clk)
begin : getPkt_CurrentState
  if (rst)	
    CurrState_getPkt <= `START_GP;
  else
    CurrState_getPkt <= NextState_getPkt;
end

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

endmodule

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99久久免费精品高清特色大片| 国产盗摄女厕一区二区三区| 国产欧美一区二区三区网站 | 欧美高清视频在线高清观看mv色露露十八| 欧美aaaaa成人免费观看视频| 国产精品免费av| 欧美一区二区久久| 欧洲精品视频在线观看| av一区二区不卡| 国产一区免费电影| 日本aⅴ亚洲精品中文乱码| 亚洲乱码一区二区三区在线观看| 26uuu亚洲| 91精品国产欧美日韩| 91黄色在线观看| 91丝袜国产在线播放| 国产成人8x视频一区二区| 精品久久久久久久久久久久久久久久久| 国产精品理伦片| 精品久久久久99| 日韩欧美一级二级三级| 欧美高清激情brazzers| 色老综合老女人久久久| 精品国产区一区| 51精品久久久久久久蜜臀| 欧美亚洲动漫另类| 99re免费视频精品全部| 国产成人精品aa毛片| 国产乱淫av一区二区三区 | 三级影片在线观看欧美日韩一区二区| 亚洲欧美一区二区三区久本道91| 国产精品每日更新| 国产精品欧美一区喷水| 国产精品久久久一本精品| 国产精品亲子伦对白| 国产精品不卡在线| 亚洲三级在线免费观看| 樱桃视频在线观看一区| 一区二区三区视频在线看| 一区二区高清免费观看影视大全| 一区二区三区四区精品在线视频| 亚洲欧美日韩在线不卡| 亚洲精品第1页| 亚洲大型综合色站| 国产在线精品不卡| 天天色综合天天| 日韩国产一二三区| 麻豆91小视频| 亚洲一区在线视频| 亚洲综合在线免费观看| 午夜精品123| 免费在线观看一区二区三区| 久久爱另类一区二区小说| 国产一区二区三区免费观看| 国产精品1区二区.| 不卡视频一二三四| 欧美日韩一区二区三区四区| 欧美一区二区三区四区视频| 亚洲精品一区在线观看| 国产精品久久久久影院色老大| 亚洲精品中文在线| 日韩有码一区二区三区| 国产在线视视频有精品| 99久免费精品视频在线观看| 91久久人澡人人添人人爽欧美| 51精品久久久久久久蜜臀| 国产亚洲自拍一区| 亚洲欧美日韩综合aⅴ视频| 日本中文字幕一区二区有限公司| 国产一区二区在线观看视频| 99re6这里只有精品视频在线观看| 一区二区三区精品在线| 国产盗摄一区二区| 97精品久久久久中文字幕| 欧美三区免费完整视频在线观看| 精品国免费一区二区三区| 国产精品区一区二区三| 亚洲成国产人片在线观看| 韩国一区二区视频| 99精品热视频| 这里是久久伊人| 中文字幕日韩精品一区| 肉肉av福利一精品导航| www.久久久久久久久| 91麻豆精品国产91久久久更新时间| 久久久国产综合精品女国产盗摄| 亚洲欧美另类久久久精品| 狂野欧美性猛交blacked| 91网站视频在线观看| 久久只精品国产| 一区二区三区在线视频观看| 国产在线不卡视频| 欧美午夜精品电影| 国产mv日韩mv欧美| 亚洲在线一区二区三区| 国产盗摄视频一区二区三区| 日韩美女视频一区二区 | 一本高清dvd不卡在线观看| 91精品欧美综合在线观看最新 | 亚洲一区二区三区爽爽爽爽爽| 国产一区二区三区在线观看精品 | 欧美羞羞免费网站| 中文成人av在线| 久久国产三级精品| 欧美午夜精品一区二区三区| 国产精品国模大尺度视频| 秋霞午夜鲁丝一区二区老狼| 不卡av在线免费观看| 日韩免费看网站| 日本成人在线电影网| 91国产成人在线| 亚洲人成亚洲人成在线观看图片 | 一区二区三区不卡视频| 成人一区二区在线观看| 精品久久久久av影院| 欧美aaaaa成人免费观看视频| 精品视频123区在线观看| 伊人婷婷欧美激情| 91猫先生在线| 亚洲视频电影在线| 99久久伊人精品| 欧美激情一区二区三区不卡 | 欧美日韩精品福利| 99久久精品免费观看| 26uuu久久综合| 麻豆视频观看网址久久| 欧美高清视频一二三区| 亚洲成人黄色影院| 欧美三级资源在线| 亚洲成人资源在线| 欧美福利电影网| 日本伊人精品一区二区三区观看方式| 欧美日韩一级片网站| 亚洲综合丁香婷婷六月香| 一本久久a久久免费精品不卡| 国产精品久久久久一区| www.日韩av| 最新热久久免费视频| www.亚洲色图.com| 欧美三级蜜桃2在线观看| 久久蜜桃av一区精品变态类天堂| 成人中文字幕电影| 亚洲综合偷拍欧美一区色| 欧美日韩极品在线观看一区| 国产成人精品在线看| 麻豆91精品91久久久的内涵| 精品国产一二三区| 久久美女高清视频| 亚洲综合免费观看高清完整版在线 | 麻豆91在线看| 欧美影院一区二区三区| 婷婷开心激情综合| 日韩视频一区在线观看| 国产一二三精品| 国产精品家庭影院| 欧美日韩中文字幕一区| 蜜桃精品视频在线观看| 欧美激情综合五月色丁香小说| 成人h版在线观看| 樱花草国产18久久久久| 欧美一卡二卡在线观看| 国产成人av自拍| 一区二区三区在线免费观看| 欧美肥妇free| 亚洲日本va在线观看| 国产一区二区在线视频| 最好看的中文字幕久久| 精品视频在线看| 国产自产2019最新不卡| 亚洲精品欧美激情| 欧美sm美女调教| 一本色道综合亚洲| 狠狠狠色丁香婷婷综合激情| 亚洲三级在线观看| 日韩美女主播在线视频一区二区三区| 高清国产一区二区| 五月天欧美精品| 中文字幕一区二区三区蜜月| 欧美日韩成人综合天天影院| 日韩激情视频在线观看| 久久久亚洲午夜电影| 欧美综合在线视频| 国产成人久久精品77777最新版本 国产成人鲁色资源国产91色综 | 国产风韵犹存在线视精品| 亚洲资源中文字幕| 欧美韩国一区二区| 日韩写真欧美这视频| 91啪亚洲精品| 狠狠色狠狠色综合日日91app| 一区二区免费在线播放| 国产欧美日韩不卡免费| 日韩一区二区三区在线视频| 99国产精品国产精品毛片| 极品少妇一区二区| 午夜精品爽啪视频| 亚洲免费av在线| 久久99精品国产麻豆婷婷| 亚洲线精品一区二区三区| 欧美国产一区视频在线观看| 7777精品伊人久久久大香线蕉完整版 |