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

Subversion Repositories usbhostslave

[/] [usbhostslave/] [trunk/] [RTL/] [hostController/] [usbHostControl.v] - Blame information for rev 5

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

Line No. Rev Author Line
1 2 sfielding
//////////////////////////////////////////////////////////////////////
2
////                                                              ////
3
//// usbHostControl.v                                             ////
4
////                                                              ////
5
//// This file is part of the usbhostslave opencores effort.
6
//// <http://www.opencores.org/cores//>                           ////
7
////                                                              ////
8
//// Module Description:                                          ////
9
//// 
10
////                                                              ////
11
//// To Do:                                                       ////
12
//// 
13
////                                                              ////
14
//// Author(s):                                                   ////
15
//// - Steve Fielding, sfielding@base2designs.com                 ////
16
////                                                              ////
17
//////////////////////////////////////////////////////////////////////
18
////                                                              ////
19
//// Copyright (C) 2004 Steve Fielding and OPENCORES.ORG          ////
20
////                                                              ////
21
//// This source file may be used and distributed without         ////
22
//// restriction provided that this copyright statement is not    ////
23
//// removed from the file and that any derivative work contains  ////
24
//// the original copyright notice and the associated disclaimer. ////
25
////                                                              ////
26
//// This source file is free software; you can redistribute it   ////
27
//// and/or modify it under the terms of the GNU Lesser General   ////
28
//// Public License as published by the Free Software Foundation; ////
29
//// either version 2.1 of the License, or (at your option) any   ////
30
//// later version.                                               ////
31
////                                                              ////
32
//// This source is distributed in the hope that it will be       ////
33
//// useful, but WITHOUT ANY WARRANTY; without even the implied   ////
34
//// warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR      ////
35
//// PURPOSE. See the GNU Lesser General Public License for more  ////
36
//// details.                                                     ////
37
////                                                              ////
38
//// You should have received a copy of the GNU Lesser General    ////
39
//// Public License along with this source; if not, download it   ////
40
//// from <http://www.opencores.org/lgpl.shtml>                   ////
41
////                                                              ////
42
//////////////////////////////////////////////////////////////////////
43
//
44 5 sfielding
// $Id: usbHostControl.v,v 1.2 2004-12-18 14:36:11 sfielding Exp $
45 2 sfielding
//
46
// CVS Revision History
47
//
48
// $Log: not supported by cvs2svn $
49 5 sfielding
// Revision 1.1.1.1  2004/10/11 04:00:56  sfielding
50
// Created
51 2 sfielding
//
52 5 sfielding
//
53 2 sfielding
module usbHostControl(
54 5 sfielding
  clk, rst,
55
  //sendPacket
56
  TxFifoRE, TxFifoData, TxFifoEmpty,
57
  //getPacket
58
  RxFifoWE, RxFifoData, RxFifoFull,
59
  RxByteStatus, RxData, RxDataValid,
60
  SIERxTimeOut,
61
  //speedCtrlMux
62
  fullSpeedRate, fullSpeedPol,
63
  //HCTxPortArbiter
64
  HCTxPortEn, HCTxPortRdy,
65
  HCTxPortData, HCTxPortCtrl,
66
  //rxStatusMonitor
67
  connectStateIn,
68
  resumeDetectedIn,
69 2 sfielding
  //USBHostControlBI 
70
  busAddress,
71
  busDataIn,
72
  busDataOut,
73
  busWriteEn,
74
  busStrobe_i,
75 5 sfielding
  SOFSentIntOut,
76 2 sfielding
  connEventIntOut,
77
  resumeIntOut,
78
  transDoneIntOut,
79
  hostControlSelect
80 5 sfielding
    );
81 2 sfielding
 
82
input clk, rst;
83
//sendPacket
84
output TxFifoRE;
85
input [7:0] TxFifoData;
86
input TxFifoEmpty;
87
//getPacket
88
output RxFifoWE;
89
output [7:0] RxFifoData;
90
input RxFifoFull;
91
input [7:0] RxByteStatus;
92
input [7:0] RxData;
93
input RxDataValid;
94
input SIERxTimeOut;
95
//speedCtrlMux
96
output fullSpeedRate;
97
output fullSpeedPol;
98
//HCTxPortArbiter
99
output HCTxPortEn;
100
input HCTxPortRdy;
101
output [7:0] HCTxPortData;
102
output [7:0] HCTxPortCtrl;
103
//rxStatusMonitor
104
input [1:0] connectStateIn;
105
input resumeDetectedIn;
106
//USBHostControlBI 
107
input [3:0] busAddress;
108
input [7:0] busDataIn;
109
output [7:0] busDataOut;
110
input busWriteEn;
111
input busStrobe_i;
112
output SOFSentIntOut;
113
output connEventIntOut;
114
output resumeIntOut;
115
output transDoneIntOut;
116
input hostControlSelect;
117
 
118
wire clk;
119
wire rst;
120
wire [10:0] frameNum;
121
wire SOFSent;
122
wire TxFifoRE;
123
wire [7:0] TxFifoData;
124
wire TxFifoEmpty;
125
wire RxFifoWE;
126
wire [7:0] RxFifoData;
127
wire RxFifoFull;
128
wire [7:0] RxByteStatus;
129
wire [7:0] RxData;
130
wire RxDataValid;
131
wire SIERxTimeOut;
132
wire fullSpeedRate;
133
wire fullSpeedPol;
134
wire HCTxPortEn;
135
wire HCTxPortRdy;
136
wire [7:0] HCTxPortData;
137
wire [7:0] HCTxPortCtrl;
138
wire [1:0] connectStateIn;
139
wire resumeDetectedIn;
140
wire [3:0] busAddress;
141
wire [7:0] busDataIn;
142
wire [7:0] busDataOut;
143
wire busWriteEn;
144
wire busStrobe_i;
145
wire SOFSentIntOut;
146
wire connEventIntOut;
147
wire resumeIntOut;
148
wire transDoneIntOut;
149
wire hostControlSelect;
150
 
151
//internal wiring
152
wire SOFTimerClr;
153
wire getPacketREn;
154
wire getPacketRdy;
155
wire HCTxGnt;
156
wire HCTxReq;
157
wire [3:0] HC_PID;
158
wire HC_SP_WEn;
159
wire SOFTxGnt;
160
wire SOFTxReq;
161
wire SOF_SP_WEn;
162
wire SOFEnable;
163
wire SOFSyncEn;
164
wire sendPacketCPReadyIn;
165
wire sendPacketCPReadyOut;
166
wire [3:0] sendPacketCPPIDIn;
167
wire [3:0] sendPacketCPPIDOut;
168
wire sendPacketCPWEnIn;
169
wire sendPacketCPWEnOut;
170
wire sendPacketCPFSRate;
171
wire sendPacketCPFSPol;
172
wire sendPacketCPGrabLine;
173
wire [7:0] SOFCntlCntl;
174
wire [7:0] SOFCntlData;
175
wire SOFCntlGnt;
176
wire SOFCntlReq;
177
wire SOFCntlWEn;
178
wire [7:0] directCntlCntl;
179
wire [7:0] directCntlData;
180
wire directCntlGnt;
181
wire directCntlReq;
182
wire directCntlWEn;
183
wire [7:0] sendPacketCntl;
184
wire [7:0] sendPacketData;
185
wire sendPacketGnt;
186
wire sendPacketReq;
187 5 sfielding
wire sendPacketWEn;
188 2 sfielding
wire [15:0] SOFTimer;
189
wire clrTxReq;
190
wire transDone;
191
wire transReq;
192
wire [1:0] transType;
193
wire preAmbleEnable;
194
wire [1:0] directLineState;
195
wire directLineCtrlEn;
196
wire [6:0] TxAddr;
197
wire [3:0] TxEndP;
198
wire [7:0] RxPktStatus;
199
wire [3:0] RxPID;
200
wire directCtrlRate;
201
wire directCtrlPol;
202
wire [1:0] connectStateOut;
203
wire resumeIntFromRxStatusMon;
204
wire connectionEventFromRxStatusMon;
205
 
206
USBHostControlBI u_USBHostControlBI
207
  (.address(busAddress),
208
  .dataIn(busDataIn),
209
  .dataOut(busDataOut),
210
  .writeEn(busWriteEn),
211
  .strobe_i(busStrobe_i),
212
  .clk(clk),
213
  .rst(rst),
214 5 sfielding
  .SOFSentIntOut(SOFSentIntOut),
215 2 sfielding
  .connEventIntOut(connEventIntOut),
216
  .resumeIntOut(resumeIntOut),
217
  .transDoneIntOut(transDoneIntOut),
218
  .TxTransTypeReg(transType),
219
  .TxSOFEnableReg(SOFEnable),
220 5 sfielding
  .TxAddrReg(TxAddr),
221 2 sfielding
  .TxEndPReg(TxEndP),
222
  .frameNumIn(frameNum),
223
  .RxPktStatusIn(RxPktStatus),
224
  .RxPIDIn(RxPID),
225
  .connectStateIn(connectStateOut),
226 5 sfielding
  .SOFSentIn(SOFSent),
227 2 sfielding
  .connEventIn(connectionEventFromRxStatusMon),
228
  .resumeIntIn(resumeIntFromRxStatusMon),
229
  .transDoneIn(transDone),
230
  .hostControlSelect(hostControlSelect),
231
  .clrTransReq(clrTxReq),
232
  .preambleEn(preAmbleEnable),
233
  .SOFSync(SOFSyncEn),
234
  .TxLineState(directLineState),
235
  .LineDirectControlEn(directLineCtrlEn),
236
  .fullSpeedPol(directCtrlPol),
237
  .fullSpeedRate(directCtrlRate),
238
  .transReq(transReq)
239
 
240
  );
241
 
242
 
243
hostcontroller u_hostController
244 5 sfielding
  (.RXStatus(RxPktStatus),
245
  .clearTXReq(clrTxReq),
246
  .clk(clk),
247
  .getPacketREn(getPacketREn),
248
  .getPacketRdy(getPacketRdy),
249
  .rst(rst),
250
  .sendPacketArbiterGnt(HCTxGnt),
251
  .sendPacketArbiterReq(HCTxReq),
252
  .sendPacketPID(HC_PID),
253
  .sendPacketRdy(sendPacketCPReadyOut),
254
  .sendPacketWEn(HC_SP_WEn),
255
  .transDone(transDone),
256
  .transReq(transReq),
257
  .transType(transType) );
258 2 sfielding
 
259
SOFController u_SOFController
260 5 sfielding
  (.HCTxPortCntl(SOFCntlCntl),
261
  .HCTxPortData(SOFCntlData),
262
  .HCTxPortGnt(SOFCntlGnt),
263
  .HCTxPortRdy(HCTxPortRdy),
264
  .HCTxPortReq(SOFCntlReq),
265
  .HCTxPortWEn(SOFCntlWEn),
266
  .SOFEnable(SOFEnable),
267
  .SOFTimerClr(SOFTimerClr),
268
  .SOFTimer(SOFTimer),
269
  .clk(clk),
270
  .rst(rst) );
271 2 sfielding
 
272
SOFTransmit u_SOFTransmit
273 5 sfielding
  (.SOFEnable(SOFEnable),
274
  .SOFSent(SOFSent),
275
  .SOFSyncEn(SOFSyncEn),
276
  .SOFTimerClr(SOFTimerClr),
277
  .SOFTimer(SOFTimer),
278
  .clk(clk),
279
  .rst(rst),
280
  .sendPacketArbiterGnt(SOFTxGnt),
281
  .sendPacketArbiterReq(SOFTxReq),
282
  .sendPacketRdy(sendPacketCPReadyOut),
283
  .sendPacketWEn(SOF_SP_WEn) );
284 2 sfielding
 
285
 
286
sendPacketArbiter u_sendPacketArbiter
287 5 sfielding
  (.HCTxGnt(HCTxGnt),
288
  .HCTxReq(HCTxReq),
289
  .HC_PID(HC_PID),
290
  .HC_SP_WEn(HC_SP_WEn),
291
  .SOFTxGnt(SOFTxGnt),
292
  .SOFTxReq(SOFTxReq),
293
  .SOF_SP_WEn(SOF_SP_WEn),
294
  .clk(clk),
295
  .rst(rst),
296
  .sendPacketPID(sendPacketCPPIDIn),
297
  .sendPacketWEnable(sendPacketCPWEnIn) );
298 2 sfielding
 
299
sendPacketCheckPreamble u_sendPacketCheckPreamble
300 5 sfielding
  (.sendPacketCPPID(sendPacketCPPIDIn),
301
  .clk(clk),
302
  .fullSpeedBitRate(sendPacketCPFSRate),
303
  .fullSpeedPolarity(sendPacketCPFSPol),
304
  .grabLineControl(sendPacketCPGrabLine),
305
  .preAmbleEnable(preAmbleEnable),
306
  .rst(rst),
307
  .sendPacketCPReady(sendPacketCPReadyOut),
308
  .sendPacketCPWEn(sendPacketCPWEnIn),
309
  .sendPacketPID(sendPacketCPPIDOut),
310
  .sendPacketRdy(sendPacketCPReadyIn),
311
  .sendPacketWEn(sendPacketCPWEnOut) );
312 2 sfielding
 
313
sendPacket u_sendPacket
314 5 sfielding
  (.HCTxPortCntl(sendPacketCntl),
315
  .HCTxPortData(sendPacketData),
316
  .HCTxPortGnt(sendPacketGnt),
317
  .HCTxPortRdy(HCTxPortRdy),
318
  .HCTxPortReq(sendPacketReq),
319
  .HCTxPortWEn(sendPacketWEn),
320
  .PID(sendPacketCPPIDOut),
321
  .TxAddr(TxAddr),
322
  .TxEndP(TxEndP),
323
  .clk(clk),
324
  .fifoData(TxFifoData),
325
  .fifoEmpty(TxFifoEmpty),
326
  .fifoReadEn(TxFifoRE),
327
  .frameNum(frameNum),
328
  .rst(rst),
329
  .sendPacketRdy(sendPacketCPReadyIn),
330
  .sendPacketWEn(sendPacketCPWEnOut) );
331
 
332 2 sfielding
directControl u_directControl
333 5 sfielding
  (.HCTxPortCntl(directCntlCntl),
334
  .HCTxPortData(directCntlData),
335
  .HCTxPortGnt(directCntlGnt),
336
  .HCTxPortRdy(HCTxPortRdy),
337
  .HCTxPortReq(directCntlReq),
338
  .HCTxPortWEn(directCntlWEn),
339
  .clk(clk),
340
  .directControlEn(directLineCtrlEn),
341
  .directControlLineState(directLineState),
342
  .rst(rst) );
343 2 sfielding
 
344
HCTxPortArbiter u_HCTxPortArbiter
345 5 sfielding
  (.HCTxPortCntl(HCTxPortCtrl),
346
  .HCTxPortData(HCTxPortData),
347
  .HCTxPortWEnable(HCTxPortEn),
348
  .SOFCntlCntl(SOFCntlCntl),
349
  .SOFCntlData(SOFCntlData),
350
  .SOFCntlGnt(SOFCntlGnt),
351
  .SOFCntlReq(SOFCntlReq),
352
  .SOFCntlWEn(SOFCntlWEn),
353
  .clk(clk),
354
  .directCntlCntl(directCntlCntl),
355
  .directCntlData(directCntlData),
356
  .directCntlGnt(directCntlGnt),
357
  .directCntlReq(directCntlReq),
358
  .directCntlWEn(directCntlWEn),
359
  .rst(rst),
360
  .sendPacketCntl(sendPacketCntl),
361
  .sendPacketData(sendPacketData),
362
  .sendPacketGnt(sendPacketGnt),
363
  .sendPacketReq(sendPacketReq),
364
  .sendPacketWEn(sendPacketWEn) );
365 2 sfielding
 
366
getPacket u_getPacket
367 5 sfielding
  (.RXDataIn(RxData),
368
  .RXDataValid(RxDataValid),
369
  .RXFifoData(RxFifoData),
370
  .RXFifoFull(RxFifoFull),
371
  .RXFifoWEn(RxFifoWE),
372
  .RXPacketRdy(getPacketRdy),
373
  .RXPktStatus(RxPktStatus),
374
  .RXStreamStatusIn(RxByteStatus),
375
  .RxPID(RxPID),
376
  .SIERxTimeOut(SIERxTimeOut),
377
  .clk(clk),
378
  .getPacketEn(getPacketREn),
379
  .rst(rst) );
380 2 sfielding
 
381
speedCtrlMux u_speedCtrlMux
382 5 sfielding
  (.directCtrlRate(directCtrlRate),
383
  .directCtrlPol(directCtrlPol),
384
  .sendPacketRate(sendPacketCPFSRate),
385
  .sendPacketPol(sendPacketCPFSPol),
386
  .sendPacketSel(sendPacketCPGrabLine),
387
  .fullSpeedRate(fullSpeedRate),
388
  .fullSpeedPol(fullSpeedPol) );
389 2 sfielding
 
390 5 sfielding
rxStatusMonitor  u_rxStatusMonitor
391
  (.connectStateIn(connectStateIn),
392
  .connectStateOut(connectStateOut),
393
  .resumeDetectedIn(resumeDetectedIn),
394
  .connectionEventOut(connectionEventFromRxStatusMon),
395
  .resumeIntOut(resumeIntFromRxStatusMon),
396
  .clk(clk),
397
  .rst(rst)  );
398 2 sfielding
 
399
endmodule
400
 
401 5 sfielding
 
402
 
403 2 sfielding
 
404
 
405
 
406
 

powered by: WebSVN 2.1.0

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