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

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [orpsocv2/] [bench/] [verilog/] [usbhostslave/] [usbHostSlave_h.v] - Blame information for rev 606

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 408 julius
//////////////////////////////////////////////////////////////////////
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
// Version 1.3 - March 22nd 2008. Fixed bug in 'readUSBWireData'. Added
52
//             synchronizer to incoming USB wire data to avoid
53
//             metastability, and delay hazards. Not entirely sure, but it appears that 
54
//             this bug caused more problems with some of the newer low power FPGAs
55
//             Maybe because they are more prone to problems with metastable
56
//             inputs that feed logic functions causing excessive high speed
57
//             toggle activity, and disrupting nearby cicuits.
58
// Version 2.0 - June 16th 2008. Added two new top level modules which
59
//             allow the instantiation of only host (usbHost.v), or only device
60
//             features. Added double sync stages between usbClk, and busClk domains
61
//             to fix possible metastability issues. Also modified synchronization to
62
//             allow operation with busClk frequency less than usbClk frequency (down to
63
//             24MHz). Integrated full support for USB PHY. Prior to this modification
64
//             the user would need to instantiate a GPIO module to control USB speed,
65
//             D+ and D- pull-up control, and VBUS detect. Fixed bug in bus interface wb_ack.
66
//             Modified cross-clock synchronisation of fifo resets
67
//             Added usbDevice, a standalone usb device implementation of usbhostslave
68
//             no additional hardware or software required
69
 
70
 
71
// Most significant nibble corresponds to major revision.
72
// Least significant nibble corresponds to minor revision.
73
`define USBHOSTSLAVE_VERSION_NUM 8'h20
74
 
75
//Host slave common registers
76
`define HOST_SLAVE_CONTROL_REG 1'b0
77
`define HOST_SLAVE_VERSION_REG 1'b1
78
 
79
`endif //usbHostSlave_h_vdefined
80
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.