1 |
22 |
sfielding |
//////////////////////////////////////////////////////////////////////
|
2 |
|
|
// usbHostSlave_h.v
|
3 |
|
|
//////////////////////////////////////////////////////////////////////
|
4 |
|
|
|
5 |
|
|
`ifdef usbHostSlave_h_vdefined
|
6 |
|
|
`else
|
7 |
|
|
`define usbHostSlave_h_vdefined
|
8 |
|
|
|
9 |
|
|
// Version 0.6 - Feb 4th 2005. Fixed bit stuffing and de-stuffing. This version succesfully supports
|
10 |
|
|
// control reads and writes to USB flash dongle
|
11 |
|
|
// Version 0.7 - Feb 24th 2005. Added support for isochronous transfers, fixed resume, connect and disconnect
|
12 |
|
|
// time outs, added low speed EOP keep alive. The TX bit rate is now controlled by
|
13 |
|
|
// SIETransmitter, and takes account of the requirement that SOF, and PREAMBLE are always full
|
14 |
|
|
// speed, and TX resume is always low speed.
|
15 |
|
|
// Fixed read clock recovery (readUSBWireData.v) issue which was resulting
|
16 |
|
|
// in missing receive packets.
|
17 |
|
|
// Fixed broken SOF Sync mode (where transacations are synchronized with the SOF transmission)
|
18 |
|
|
// by adding kludged delay to softranmit. This needs to be fixed properly.
|
19 |
|
|
// This version has undergone limited testing
|
20 |
|
|
// with full speed flash dongle, low speed keyboard, and a PC in full and low speed modes.
|
21 |
|
|
// Version 0.8 - June 24th 2005. Added bus access to the host SOFTimer. This version has been tested
|
22 |
|
|
// with uClinux, and is known to work with a full speed USB flash stick.
|
23 |
|
|
// Moving Opencores project status from Beta to done.
|
24 |
|
|
// TODO: Test isochronous mode, and low speed mode using uClinux driver
|
25 |
|
|
// Create a seperate clock domain for the bus interface
|
26 |
|
|
// Add frame period adjustment capability
|
27 |
|
|
// Add compilation flags for slave only and host only versions
|
28 |
|
|
// Create data bus width options beyond 8-bit
|
29 |
|
|
// Version 1.0 - October 14th 2005. Seperated the bus clock from the usb logic clock
|
30 |
|
|
// Removed TX and RX fifo status registers, and removed
|
31 |
|
|
// TX fifo data count register.
|
32 |
|
|
// Added RESET_CORE bit to HOST_SLAVE_CONTROL_REG.
|
33 |
|
|
// Fixed slave mode bug which caused receive fifo to be filled with
|
34 |
|
|
// incoming data when the slave was responding with a NAK, and the
|
35 |
|
|
// data should have been discarded.
|
36 |
|
|
// Version 1.1 - February 23rd 2006. Fixed bug related to 'noActivityTimeOut'
|
37 |
|
|
// Previously the 'noActivityTimeOut' flag was repetitively pulsed whenever
|
38 |
|
|
// there was no detected activity on the USB data lines. This caused an infrequent
|
39 |
|
|
// misreporting of time out errors. 'noActivityTimeOut' is now only enabled when
|
40 |
|
|
// the higher level state machines are actively looking for receive packets.
|
41 |
|
|
// Modified USB RX data clock recovery, so that data is sampled during the middle
|
42 |
|
|
// of a USB bit period. Fixed a bug which could result in double sampling
|
43 |
|
|
// of USB RX data if clock phase adjustments were required in the middle of a
|
44 |
|
|
// USB packet.
|
45 |
|
|
// Version 1.2 - October 1st 2006. Small changes to .asf FSM's required
|
46 |
|
|
// during migration to ActiveHDL 7.1. Released SystemC test bench.
|
47 |
|
|
// Re-generated .v files using ActiveHDL 7.1
|
48 |
|
|
// Replaced individual timescale directives with `include "timescale.v
|
49 |
|
|
// Renamed top level Altera wrapper from 'usbHostSlaveWrap' to
|
50 |
|
|
// 'usbHostSlaveAvalonWrap'
|
51 |
|
|
|
52 |
|
|
// Most significant nibble corresponds to major revision.
|
53 |
|
|
// Least significant nibble corresponds to minor revision.
|
54 |
|
|
`define USBHOSTSLAVE_VERSION_NUM 8'h12
|
55 |
|
|
|
56 |
|
|
//Host slave common registers
|
57 |
|
|
`define HOST_SLAVE_CONTROL_REG 1'b0
|
58 |
|
|
`define HOST_SLAVE_VERSION_REG 1'b1
|
59 |
|
|
|
60 |
|
|
`endif //usbHostSlave_h_vdefined
|
61 |
|
|
|