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

Subversion Repositories usbhostslave

[/] [usbhostslave/] [trunk/] [RTL/] [hostController/] [sendpacket.v] - Diff between revs 9 and 14

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

Rev 9 Rev 14
Line 46... Line 46...
`include "usbSerialInterfaceEngine_h.v"
`include "usbSerialInterfaceEngine_h.v"
`include "usbConstants_h.v"
`include "usbConstants_h.v"
 
 
 
 
 
 
module sendPacket (clk, fifoData, fifoEmpty, fifoReadEn, frameNum, HCTxPortCntl, HCTxPortData, HCTxPortGnt, HCTxPortRdy, HCTxPortReq, HCTxPortWEn, PID, rst, sendPacketRdy, sendPacketWEn, TxAddr, TxEndP);
module sendPacket (clk, fifoData, fifoEmpty, fifoReadEn, frameNum, fullSpeedPolarity, HCTxPortCntl, HCTxPortData, HCTxPortGnt, HCTxPortRdy, HCTxPortReq, HCTxPortWEn, PID, rst, sendPacketRdy, sendPacketWEn, TxAddr, TxEndP);
input   clk;
input   clk;
input   [7:0]fifoData;
input   [7:0]fifoData;
input   fifoEmpty;
input   fifoEmpty;
 
input   fullSpeedPolarity;
input   HCTxPortGnt;
input   HCTxPortGnt;
input   HCTxPortRdy;
input   HCTxPortRdy;
input   [3:0]PID;
input   [3:0]PID;
input   rst;
input   rst;
input   sendPacketWEn;
input   sendPacketWEn;
Line 70... Line 71...
wire    clk;
wire    clk;
wire    [7:0]fifoData;
wire    [7:0]fifoData;
wire    fifoEmpty;
wire    fifoEmpty;
reg     fifoReadEn, next_fifoReadEn;
reg     fifoReadEn, next_fifoReadEn;
reg     [10:0]frameNum, next_frameNum;
reg     [10:0]frameNum, next_frameNum;
 
wire    fullSpeedPolarity;
reg     [7:0]HCTxPortCntl, next_HCTxPortCntl;
reg     [7:0]HCTxPortCntl, next_HCTxPortCntl;
reg     [7:0]HCTxPortData, next_HCTxPortData;
reg     [7:0]HCTxPortData, next_HCTxPortData;
wire    HCTxPortGnt;
wire    HCTxPortGnt;
wire    HCTxPortRdy;
wire    HCTxPortRdy;
reg     HCTxPortReq, next_HCTxPortReq;
reg     HCTxPortReq, next_HCTxPortReq;
Line 109... Line 111...
`define DATA0_DATA1_TERM_BYTE 5'b10000
`define DATA0_DATA1_TERM_BYTE 5'b10000
`define OUT_IN_SETUP_CLR_WEN1 5'b10001
`define OUT_IN_SETUP_CLR_WEN1 5'b10001
`define SEND_SOF_CLR_WEN1 5'b10010
`define SEND_SOF_CLR_WEN1 5'b10010
`define DATA0_DATA1_CLR_WEN 5'b10011
`define DATA0_DATA1_CLR_WEN 5'b10011
`define DATA0_DATA1_CLR_REN 5'b10100
`define DATA0_DATA1_CLR_REN 5'b10100
 
`define LS_EOP_WAIT_RDY 5'b10101
 
`define LS_EOP_FIN 5'b10110
 
 
reg [4:0]CurrState_sndPkt, NextState_sndPkt;
reg [4:0]CurrState_sndPkt, NextState_sndPkt;
 
 
// Diagram actions (continuous assignments allowed only: assign ...)
// Diagram actions (continuous assignments allowed only: assign ...)
always @(PID)
always @(PID)
Line 122... Line 126...
 
 
 
 
// Machine: sndPkt
// Machine: sndPkt
 
 
// NextState logic (combinatorial)
// NextState logic (combinatorial)
always @ (sendPacketWEn or HCTxPortGnt or HCTxPortRdy or PIDNotPID or PID or TxEndP or TxAddr or frameNum or fifoData or fifoEmpty or sendPacketRdy or fifoReadEn or HCTxPortData or HCTxPortCntl or HCTxPortWEn or HCTxPortReq or CurrState_sndPkt)
always @ (sendPacketWEn or HCTxPortGnt or fullSpeedPolarity or HCTxPortRdy or PIDNotPID or PID or TxEndP or TxAddr or frameNum or fifoData or fifoEmpty or sendPacketRdy or fifoReadEn or HCTxPortData or HCTxPortCntl or HCTxPortWEn or HCTxPortReq or CurrState_sndPkt)
begin
begin
  NextState_sndPkt <= CurrState_sndPkt;
  NextState_sndPkt <= CurrState_sndPkt;
  // Set default values for outputs and signals
  // Set default values for outputs and signals
  next_sendPacketRdy <= sendPacketRdy;
  next_sendPacketRdy <= sendPacketRdy;
  next_fifoReadEn <= fifoReadEn;
  next_fifoReadEn <= fifoReadEn;
Line 149... Line 153...
        next_HCTxPortReq <= 1'b1;
        next_HCTxPortReq <= 1'b1;
      end
      end
    end
    end
    `SP_WAIT_GNT:
    `SP_WAIT_GNT:
    begin
    begin
      if (HCTxPortGnt == 1'b1)
      if ((HCTxPortGnt == 1'b1) && (PID == `SOF && fullSpeedPolarity == 1'b0))
 
      begin
 
        NextState_sndPkt <= `LS_EOP_WAIT_RDY;
 
      end
 
      else if (HCTxPortGnt == 1'b1)
      begin
      begin
        NextState_sndPkt <= `SEND_PID_WAIT_RDY;
        NextState_sndPkt <= `SEND_PID_WAIT_RDY;
      end
      end
    end
    end
    `FIN_SP:
    `FIN_SP:
Line 307... Line 315...
    `DATA0_DATA1_CLR_REN:
    `DATA0_DATA1_CLR_REN:
    begin
    begin
      next_fifoReadEn <= 1'b0;
      next_fifoReadEn <= 1'b0;
      NextState_sndPkt <= `DATA0_DATA1_READ_FIFO;
      NextState_sndPkt <= `DATA0_DATA1_READ_FIFO;
    end
    end
 
    `LS_EOP_WAIT_RDY:
 
    begin
 
      if (HCTxPortRdy == 1'b1)
 
      begin
 
        NextState_sndPkt <= `LS_EOP_FIN;
 
        next_HCTxPortWEn <= 1'b1;
 
        next_HCTxPortData <= 8'h00;
 
        next_HCTxPortCntl <= `TX_LS_KEEP_ALIVE;
 
      end
 
    end
 
    `LS_EOP_FIN:
 
    begin
 
      next_HCTxPortWEn <= 1'b0;
 
      NextState_sndPkt <= `FIN_SP;
 
    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.