URL
https://opencores.org/ocsvn/usb11/usb11/trunk
Subversion Repositories usb11
Compare Revisions
- This comparison shows the changes necessary to convert path
/
- from Rev 7 to Rev 8
- ↔ Reverse comparison
Rev 7 → Rev 8
/trunk/bench/verilog/usb_defines.v
0,0 → 1,149
///////////////////////////////////////////////////////////////////// |
//// //// |
//// USB 1.1 function defines file //// |
//// //// |
//// //// |
//// Author: Rudolf Usselmann //// |
//// rudi@asics.ws //// |
//// //// |
//// Modifications: Alfredo Luiz Foltran Fialho //// |
//// alfoltran@opencores.org //// |
//// //// |
//// Downloaded from: http://www.opencores.org/cores/usb1_funct///// |
//// //// |
///////////////////////////////////////////////////////////////////// |
//// //// |
//// Copyright (C) 2000-2002 Rudolf Usselmann //// |
//// www.asics.ws //// |
//// rudi@asics.ws //// |
//// //// |
//// 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 SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY //// |
//// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED //// |
//// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS //// |
//// FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL THE AUTHOR //// |
//// OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, //// |
//// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES //// |
//// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE //// |
//// GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR //// |
//// BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF //// |
//// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT //// |
//// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT //// |
//// OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE //// |
//// POSSIBILITY OF SUCH DAMAGE. //// |
//// //// |
///////////////////////////////////////////////////////////////////// |
|
// CVS Log |
// |
// $Id: usb_defines.v,v 1.1 2004-05-14 16:19:43 alfoltran Exp $ |
// |
// $Date: 2004-05-14 16:19:43 $ |
// $Revision: 1.1 $ |
// $Author: alfoltran $ |
// $Locker: $ |
// $State: Exp $ |
// |
// Change History: |
// $Log: not supported by cvs2svn $ |
// Revision 1.3 2002/09/25 06:06:49 rudi |
// - Added New Top Level |
// - Remove old top level and associated files |
// - Moved FIFOs to "Generic FIFOs" project |
// |
// Revision 1.2 2002/09/20 11:46:54 rudi |
// fixed a type 'define' was missing ... |
// |
// Revision 1.1.1.1 2002/09/19 12:07:40 rudi |
// Initial Checkin |
// |
// |
// |
// |
// |
// |
// |
// |
|
`define USBF_DEBUG |
`define USBF_VERBOSE_DEBUG |
|
// Enable or disable Block Frames |
//`define USB1_BF_ENABLE |
|
///////////////////////////////////////////////////////////////////// |
// |
// Items below this point should NOT be modified by the end user |
// UNLESS you know exactly what you are doing ! |
// Modify at you own risk !!! |
// |
///////////////////////////////////////////////////////////////////// |
|
`define ROM_SIZE0 7'd018 // Device Descriptor Length |
`define ROM_SIZE1 7'd060 // Configuration Descriptor Length |
`define ROM_SIZE2A 7'd008 // Language ID Descriptor Start Length |
`define ROM_SIZE2B 7'd026 // String 1 Descriptor Length |
`define ROM_SIZE2C 7'd028 // String 2 Descriptor Length |
`define ROM_SIZE2D 7'd054 // String 3 Descriptor Length |
|
`define ROM_START0 8'h00 // Device Descriptor Start Address |
`define ROM_START1 8'h12 // Configuration Descriptor Start Address |
`define ROM_START2A 8'h4e // Language ID Descriptor Start Address |
`define ROM_START2B 8'h56 // String 1 Descriptor Start Address |
`define ROM_START2C 8'h70 // String 2 Descriptor Start Address |
`define ROM_START2D 8'h8c // String 3 Descriptor Start Address |
|
// Endpoint Configuration Constants |
`define IN 14'b00_001_000000000 |
`define OUT 14'b00_010_000000000 |
`define CTRL 14'b10_100_000000000 |
`define ISO 14'b01_000_000000000 |
`define BULK 14'b10_000_000000000 |
`define INT 14'b00_000_000000000 |
|
// PID Encodings |
`define USBF_T_PID_OUT 4'b0001 |
`define USBF_T_PID_IN 4'b1001 |
`define USBF_T_PID_SOF 4'b0101 |
`define USBF_T_PID_SETUP 4'b1101 |
`define USBF_T_PID_DATA0 4'b0011 |
`define USBF_T_PID_DATA1 4'b1011 |
`define USBF_T_PID_DATA2 4'b0111 |
`define USBF_T_PID_MDATA 4'b1111 |
`define USBF_T_PID_ACK 4'b0010 |
`define USBF_T_PID_NACK 4'b1010 |
`define USBF_T_PID_STALL 4'b1110 |
`define USBF_T_PID_NYET 4'b0110 |
`define USBF_T_PID_PRE 4'b1100 |
`define USBF_T_PID_ERR 4'b1100 |
`define USBF_T_PID_SPLIT 4'b1000 |
`define USBF_T_PID_PING 4'b0100 |
`define USBF_T_PID_RES 4'b0000 |
|
// The HMS_DEL is a constant for the "Half Micro Second" |
// Clock pulse generator. This constant specifies how many |
// Phy clocks there are between two hms_clock pulses. This |
// constant plus 2 represents the actual delay. |
// Example: For a 60 Mhz (16.667 nS period) Phy Clock, the |
// delay must be 30 phy clock: 500ns / 16.667nS = 30 clocks |
`define USBF_HMS_DEL 5'h16 |
|
// After sending Data in response to an IN token from host, the |
// host must reply with an ack. The host has 622nS in Full Speed |
// mode and 400nS in High Speed mode to reply. RX_ACK_TO_VAL_FS |
// and RX_ACK_TO_VAL_HS are the numbers of UTMI clock cycles |
// minus 2 for Full and High Speed modes. |
//`define USBF_RX_ACK_TO_VAL_FS 8'd36 |
`define USBF_RX_ACK_TO_VAL_FS 8'd200 |
|
// After sending a OUT token the host must send a data packet. |
// The host has 622nS in Full Speed mode and 400nS in High Speed |
// mode to send the data packet. |
// TX_DATA_TO_VAL_FS and TX_DATA_TO_VAL_HS are is the numbers of |
// UTMI clock cycles minus 2. |
//`define USBF_TX_DATA_TO_VAL_FS 8'd36 |
`define USBF_TX_DATA_TO_VAL_FS 8'd200 |