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

Subversion Repositories usbhostslave

[/] [usbhostslave/] [trunk/] [RTL/] [include/] [usbSerialInterfaceEngine_h.v] - Blame information for rev 20

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

Line No. Rev Author Line
1 2 sfielding
//////////////////////////////////////////////////////////////////////
2 5 sfielding
// usbSerialInterfaceEngine_h.v                                
3
//////////////////////////////////////////////////////////////////////
4 2 sfielding
 
5 5 sfielding
`ifdef usbSerialInterfaceEngine_h_vdefined
6
`else
7
`define usbSerialInterfaceEngine_h_vdefined
8 2 sfielding
 
9 9 sfielding
 // Sampling frequency = 'FS_OVER_SAMPLE_RATE' * full speed bit rate = 'LS_OVER_SAMPLE_RATE' * low speed bit rate
10
`define FS_OVER_SAMPLE_RATE 4
11
`define LS_OVER_SAMPLE_RATE 32
12 2 sfielding
 
13
//timeOuts
14
`define RX_PACKET_TOUT 18
15 20 sfielding
`define RX_EDGE_DET_TOUT 7
16 2 sfielding
 
17
//TXStreamControlTypes
18
`define TX_DIRECT_CONTROL 8'h00
19
`define TX_RESUME_START 8'h01
20
`define TX_PACKET_START 8'h02
21
`define TX_PACKET_STREAM 8'h03
22
`define TX_PACKET_STOP 8'h04
23
`define TX_IDLE 8'h05
24 14 sfielding
`define TX_LS_KEEP_ALIVE 8'h06
25 2 sfielding
 
26
//RXStreamControlTypes
27
`define RX_PACKET_START 0
28
`define RX_PACKET_STREAM 1
29
`define RX_PACKET_STOP 2
30
 
31
//USBLineStates
32
// ONE_ZERO corresponds to differential 1. ie D+ = Hi, D- = Lo
33
`define ONE_ZERO 2'b10
34
`define ZERO_ONE 2'b01
35
`define SE0 2'b00
36
`define SE1 2'b11
37
 
38
//RXStatusIndices
39
`define CRC_ERROR_BIT 0
40
`define BIT_STUFF_ERROR_BIT 1
41
`define RX_OVERFLOW_BIT 2
42
`define NAK_RXED_BIT 3
43
`define STALL_RXED_BIT 4
44
`define ACK_RXED_BIT 5
45
`define DATA_SEQUENCE_BIT 6
46
 
47
//usbWireControlStates
48
`define TRI_STATE 1'b0
49
`define DRIVE 1'b1
50
 
51
//limits
52 12 sfielding
`define MAX_CONSEC_SAME_BITS 4'h6
53
`define MAX_CONSEC_SAME_BITS_PLUS1 4'h7
54 14 sfielding
// RESUME_RX_WAIT_TIME defines the time period for resume detection
55
// The resume counter is incremented at the bit rate, so
56
// RESUME_RX_WAIT_TIME = 29 corresponds to 30 * 1/12MHz = 2.5uS at full speed
57
// and 30 * 1/1.5MHz =  20uS at low speed, both of which are within the USB spec of 
58
// 2.5uS <= resumeDetectTime <= 100uS
59
`define RESUME_RX_WAIT_TIME 5'd29
60
//`define RESUME_WAIT_TIME_MINUS1 9
61
// 'HOST_TX_RESUME_TIME' assumes counter is incremented at low speed bit rate 
62
`define HOST_TX_RESUME_TIME 16'd30000  //Host sends resume for 30000 * 1/1.5MHz = 20mS
63
//`define CONNECT_WAIT_TIME 8'd20
64
`define CONNECT_WAIT_TIME 8'd120      //Device connect detected after 120 * 1/48MHz = 2.5uS
65
//`define DISCONNECT_WAIT_TIME 8'd20   
66
`define DISCONNECT_WAIT_TIME 8'd120   //Device disconnect detected after 120 * 1/48MHz = 2.5uS
67 2 sfielding
 
68
//RXConnectStates
69
`define DISCONNECT 2'b00
70
`define LOW_SPEED_CONNECT 2'b01
71
`define FULL_SPEED_CONNECT 2'b10
72
 
73
//TX_RX_InternalStreamTypes
74
`define DATA_START 8'h00
75
`define DATA_STOP 8'h01
76
`define DATA_STREAM 8'h02
77
`define DATA_BIT_STUFF_ERROR 8'h03
78
 
79
//RXStMach states
80
`define DISCONNECT_ST 4'h0
81
`define WAIT_FULL_SPEED_CONN_ST 4'h1
82
`define WAIT_LOW_SPEED_CONN_ST 4'h2
83
`define CONNECT_LOW_SPEED_ST 4'h3
84
`define CONNECT_FULL_SPEED_ST 4'h4
85
`define WAIT_LOW_SP_DISCONNECT_ST 4'h5
86
`define WAIT_FULL_SP_DISCONNECT_ST 4'h6
87
 
88
//RXBitStateMachStates
89
`define IDLE_BIT_ST 2'b00
90
`define DATA_RECEIVE_BIT_ST 2'b01
91
`define WAIT_RESUME_ST 2'b10
92
`define RESUME_END_WAIT_ST 2'b11
93
 
94
//RXByteStateMachStates 
95
`define IDLE_BYTE_ST 3'b000
96
`define CHECK_SYNC_ST 3'b001
97
`define CHECK_PID_ST 3'b010
98
`define HS_BYTE_ST 3'b011
99
`define TOKEN_BYTE_ST 3'b100
100
`define DATA_BYTE_ST 3'b101
101
 
102 5 sfielding
`endif //usbSerialInterfaceEngine_h_vdefined
103 2 sfielding
 
104
 

powered by: WebSVN 2.1.0

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