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

Subversion Repositories usbhostslave

[/] [usbhostslave/] [trunk/] [RTL/] [wrapper/] [usbHostSlave.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
//// usbHostSlave.v                                               ////
4
////                                                              ////
5
//// This file is part of the usbhostslave opencores effort.
6
//// <http://www.opencores.org/cores//>                           ////
7
////                                                              ////
8
//// Module Description:                                          ////
9
////   Top level module
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: usbHostSlave.v,v 1.2 2004-12-18 14:36:23 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:01:11  sfielding
50
// Created
51 2 sfielding
//
52 5 sfielding
//
53 2 sfielding
 
54
module usbHostSlave(
55 5 sfielding
  clk,
56 2 sfielding
  rst,
57
  address_i,
58
  data_i,
59
  data_o,
60
  writeEn,
61
  strobe_i,
62
  ack_o,
63
  hostSOFSentIntOut,
64
  hostConnEventIntOut,
65
  hostResumeIntOut,
66
  hostTransDoneIntOut,
67
  slaveNAKSentIntOut,
68
  slaveSOFRxedIntOut,
69
  slaveResetEventIntOut,
70
  slaveResumeIntOut,
71
  slaveTransDoneIntOut,
72 5 sfielding
  USBWireDataIn,
73
  USBWireDataInTick,
74 2 sfielding
  USBWireDataOut,
75
  USBWireDataOutTick,
76 5 sfielding
  USBWireCtrlOut
77
   );
78
  parameter HOST_FIFO_DEPTH = 64; //HOST_FIFO_DEPTH = HOST_ADDR_WIDTH^2
79 2 sfielding
  parameter HOST_FIFO_ADDR_WIDTH = 6;
80 5 sfielding
  parameter EP0_FIFO_DEPTH = 64;
81 2 sfielding
  parameter EP0_FIFO_ADDR_WIDTH = 6;
82 5 sfielding
  parameter EP1_FIFO_DEPTH = 64;
83 2 sfielding
  parameter EP1_FIFO_ADDR_WIDTH = 6;
84 5 sfielding
  parameter EP2_FIFO_DEPTH = 64;
85 2 sfielding
  parameter EP2_FIFO_ADDR_WIDTH = 6;
86 5 sfielding
  parameter EP3_FIFO_DEPTH = 64;
87 2 sfielding
  parameter EP3_FIFO_ADDR_WIDTH = 6;
88
 
89
input clk;
90
input rst;
91
input [7:0] address_i;
92
input [7:0] data_i;
93
output [7:0] data_o;
94
input writeEn;
95
input strobe_i;
96
output ack_o;
97
output hostSOFSentIntOut;
98
output hostConnEventIntOut;
99
output hostResumeIntOut;
100
output hostTransDoneIntOut;
101
output slaveSOFRxedIntOut;
102
output slaveResetEventIntOut;
103
output slaveResumeIntOut;
104
output slaveTransDoneIntOut;
105
output slaveNAKSentIntOut;
106
input [1:0] USBWireDataIn;
107
output [1:0] USBWireDataOut;
108
output USBWireDataOutTick;
109
output USBWireDataInTick;
110
output USBWireCtrlOut;
111
 
112
wire clk;
113
wire rst;
114
wire [7:0] address_i;
115
wire [7:0] data_i;
116
wire [7:0] data_o;
117
wire writeEn;
118
wire strobe_i;
119
wire ack_o;
120
wire hostSOFSentIntOut;
121
wire hostConnEventIntOut;
122
wire hostResumeIntOut;
123
wire hostTransDoneIntOut;
124
wire slaveSOFRxedIntOut;
125
wire slaveResetEventIntOut;
126
wire slaveResumeIntOut;
127
wire slaveTransDoneIntOut;
128
wire slaveNAKSentIntOut;
129
wire [1:0] USBWireDataIn;
130
wire [1:0] USBWireDataOut;
131
wire USBWireDataOutTick;
132
wire USBWireDataInTick;
133
wire USBWireCtrlOut;
134
 
135
//internal wiring
136
wire hostControlSel;
137
wire slaveControlSel;
138
wire hostRxFifoSel;
139
wire hostTxFifoSel;
140
wire hostSlaveMuxSel;
141
wire [7:0] dataFromHostControl;
142
wire [7:0] dataFromSlaveControl;
143
wire [7:0] dataFromHostRxFifo;
144
wire [7:0] dataFromHostTxFifo;
145
wire [7:0] dataFromHostSlaveMux;
146
wire hostTxFifoRE;
147
wire [7:0] hostTxFifoData;
148
wire hostTxFifoEmpty;
149
wire hostRxFifoWE;
150
wire [7:0] hostRxFifoData;
151
wire hostRxFifoFull;
152
wire [7:0] RxCtrlOut;
153
wire [7:0] RxDataFromSIE;
154
wire RxDataOutWEn;
155
wire fullSpeedBitRateFromHost;
156
wire fullSpeedBitRateFromSlave;
157
wire fullSpeedPolarityFromHost;
158
wire fullSpeedPolarityFromSlave;
159
wire SIEPortWEnFromHost;
160
wire SIEPortWEnFromSlave;
161
wire SIEPortTxRdy;
162
wire [7:0] SIEPortDataInFromHost;
163
wire [7:0] SIEPortDataInFromSlave;
164
wire [7:0] SIEPortCtrlInFromHost;
165
wire [7:0] SIEPortCtrlInFromSlave;
166
wire [1:0] connectState;
167
wire resumeDetected;
168
wire [7:0] SIEPortDataInToSIE;
169
wire SIEPortWEnToSIE;
170
wire [7:0] SIEPortCtrlInToSIE;
171
wire fullSpeedPolarityToSIE;
172
wire fullSpeedBitRateToSIE;
173
wire noActivityTimeOut;
174
wire TxFifoEP0REn;
175
wire TxFifoEP1REn;
176
wire TxFifoEP2REn;
177
wire TxFifoEP3REn;
178
wire [7:0] TxFifoEP0Data;
179
wire [7:0] TxFifoEP1Data;
180
wire [7:0] TxFifoEP2Data;
181
wire [7:0] TxFifoEP3Data;
182
wire TxFifoEP0Empty;
183
wire TxFifoEP1Empty;
184
wire TxFifoEP2Empty;
185
wire TxFifoEP3Empty;
186
wire RxFifoEP0WEn;
187
wire RxFifoEP1WEn;
188
wire RxFifoEP2WEn;
189
wire RxFifoEP3WEn;
190
wire RxFifoEP0Full;
191
wire RxFifoEP1Full;
192
wire RxFifoEP2Full;
193
wire RxFifoEP3Full;
194
wire [7:0] slaveRxFifoData;
195
wire [7:0] dataFromEP0RxFifo;
196
wire [7:0] dataFromEP1RxFifo;
197
wire [7:0] dataFromEP2RxFifo;
198
wire [7:0] dataFromEP3RxFifo;
199
wire [7:0] dataFromEP0TxFifo;
200
wire [7:0] dataFromEP1TxFifo;
201
wire [7:0] dataFromEP2TxFifo;
202
wire [7:0] dataFromEP3TxFifo;
203
wire slaveEP0RxFifoSel;
204
wire slaveEP1RxFifoSel;
205
wire slaveEP2RxFifoSel;
206
wire slaveEP3RxFifoSel;
207
wire slaveEP0TxFifoSel;
208
wire slaveEP1TxFifoSel;
209
wire slaveEP2TxFifoSel;
210
wire slaveEP3TxFifoSel;
211
 
212
usbHostControl u_usbHostControl(
213
  .clk(clk),
214
  .rst(rst),
215 5 sfielding
  .TxFifoRE(hostTxFifoRE),
216 2 sfielding
  .TxFifoData(hostTxFifoData),
217
  .TxFifoEmpty(hostTxFifoEmpty),
218 5 sfielding
  .RxFifoWE(hostRxFifoWE),
219 2 sfielding
  .RxFifoData(hostRxFifoData),
220
  .RxFifoFull(hostRxFifoFull),
221 5 sfielding
  .RxByteStatus(RxCtrlOut),
222 2 sfielding
  .RxData(RxDataFromSIE),
223
  .RxDataValid(RxDataOutWEn),
224 5 sfielding
  .SIERxTimeOut(noActivityTimeOut),
225
  .fullSpeedRate(fullSpeedBitRateFromHost),
226 2 sfielding
  .fullSpeedPol(fullSpeedPolarityFromHost),
227 5 sfielding
  .HCTxPortEn(SIEPortWEnFromHost),
228 2 sfielding
  .HCTxPortRdy(SIEPortTxRdy),
229 5 sfielding
  .HCTxPortData(SIEPortDataInFromHost),
230 2 sfielding
  .HCTxPortCtrl(SIEPortCtrlInFromHost),
231 5 sfielding
  .connectStateIn(connectState),
232
  .resumeDetectedIn(resumeDetected),
233 2 sfielding
  .busAddress(address_i[3:0]),
234
  .busDataIn(data_i),
235
  .busDataOut(dataFromHostControl),
236
  .busWriteEn(writeEn),
237
  .busStrobe_i(strobe_i),
238 5 sfielding
  .SOFSentIntOut(hostSOFSentIntOut),
239 2 sfielding
  .connEventIntOut(hostConnEventIntOut),
240
  .resumeIntOut(hostResumeIntOut),
241
  .transDoneIntOut(hostTransDoneIntOut),
242
  .hostControlSelect(hostControlSel) );
243
 
244
 
245
usbSlaveControl u_usbSlaveControl(
246
  .clk(clk),
247
  .rst(rst),
248 5 sfielding
  .RxByteStatus(RxCtrlOut),
249 2 sfielding
  .RxData(RxDataFromSIE),
250
  .RxDataValid(RxDataOutWEn),
251 5 sfielding
  .SIERxTimeOut(noActivityTimeOut),
252 2 sfielding
  .RxFifoData(slaveRxFifoData),
253 5 sfielding
  .fullSpeedRate(fullSpeedBitRateFromSlave),
254 2 sfielding
  .fullSpeedPol(fullSpeedPolarityFromSlave),
255 5 sfielding
  .SCTxPortEn(SIEPortWEnFromSlave),
256 2 sfielding
  .SCTxPortRdy(SIEPortTxRdy),
257 5 sfielding
  .SCTxPortData(SIEPortDataInFromSlave),
258 2 sfielding
  .SCTxPortCtrl(SIEPortCtrlInFromSlave),
259 5 sfielding
  .connectStateIn(connectState),
260
  .resumeDetectedIn(resumeDetected),
261 2 sfielding
  .busAddress(address_i[4:0]),
262
  .busDataIn(data_i),
263
  .busDataOut(dataFromSlaveControl),
264
  .busWriteEn(writeEn),
265
  .busStrobe_i(strobe_i),
266 5 sfielding
  .SOFRxedIntOut(slaveSOFRxedIntOut),
267 2 sfielding
  .resetEventIntOut(slaveResetEventIntOut),
268
  .resumeIntOut(slaveResumeIntOut),
269
  .transDoneIntOut(slaveTransDoneIntOut),
270
  .NAKSentIntOut(slaveNAKSentIntOut),
271
  .slaveControlSelect(slaveControlSel),
272
  .TxFifoEP0REn(TxFifoEP0REn),
273
  .TxFifoEP1REn(TxFifoEP1REn),
274
  .TxFifoEP2REn(TxFifoEP2REn),
275
  .TxFifoEP3REn(TxFifoEP3REn),
276
  .TxFifoEP0Data(TxFifoEP0Data),
277
  .TxFifoEP1Data(TxFifoEP1Data),
278
  .TxFifoEP2Data(TxFifoEP2Data),
279
  .TxFifoEP3Data(TxFifoEP3Data),
280
  .TxFifoEP0Empty(TxFifoEP0Empty),
281
  .TxFifoEP1Empty(TxFifoEP1Empty),
282
  .TxFifoEP2Empty(TxFifoEP2Empty),
283
  .TxFifoEP3Empty(TxFifoEP3Empty),
284
  .RxFifoEP0WEn(RxFifoEP0WEn),
285
  .RxFifoEP1WEn(RxFifoEP1WEn),
286
  .RxFifoEP2WEn(RxFifoEP2WEn),
287
  .RxFifoEP3WEn(RxFifoEP3WEn),
288
  .RxFifoEP0Full(RxFifoEP0Full),
289
  .RxFifoEP1Full(RxFifoEP1Full),
290
  .RxFifoEP2Full(RxFifoEP2Full),
291
  .RxFifoEP3Full(RxFifoEP3Full)
292
  );
293
 
294
wishBoneBI u_wishBoneBI (
295
  .address(address_i),
296
  .dataIn(data_i),
297
  .dataOut(data_o),
298
  .writeEn(writeEn),
299
  .strobe_i(strobe_i),
300
  .ack_o(ack_o),
301
  .clk(clk),
302
  .rst(rst),
303 5 sfielding
  .hostControlSel(hostControlSel),
304 2 sfielding
  .hostRxFifoSel(hostRxFifoSel),
305
  .hostTxFifoSel(hostTxFifoSel),
306
  .slaveControlSel(slaveControlSel),
307
  .slaveEP0RxFifoSel(slaveEP0RxFifoSel),
308
  .slaveEP1RxFifoSel(slaveEP1RxFifoSel),
309
  .slaveEP2RxFifoSel(slaveEP2RxFifoSel),
310
  .slaveEP3RxFifoSel(slaveEP3RxFifoSel),
311
  .slaveEP0TxFifoSel(slaveEP0TxFifoSel),
312
  .slaveEP1TxFifoSel(slaveEP1TxFifoSel),
313
  .slaveEP2TxFifoSel(slaveEP2TxFifoSel),
314
  .slaveEP3TxFifoSel(slaveEP3TxFifoSel),
315
  .hostSlaveMuxSel(hostSlaveMuxSel),
316
  .dataFromHostControl(dataFromHostControl),
317
  .dataFromHostRxFifo(dataFromHostRxFifo),
318
  .dataFromHostTxFifo(dataFromHostTxFifo),
319
  .dataFromSlaveControl(dataFromSlaveControl),
320
  .dataFromEP0RxFifo(dataFromEP0RxFifo),
321
  .dataFromEP1RxFifo(dataFromEP1RxFifo),
322
  .dataFromEP2RxFifo(dataFromEP2RxFifo),
323
  .dataFromEP3RxFifo(dataFromEP3RxFifo),
324
  .dataFromEP0TxFifo(dataFromEP0TxFifo),
325
  .dataFromEP1TxFifo(dataFromEP1TxFifo),
326
  .dataFromEP2TxFifo(dataFromEP2TxFifo),
327
  .dataFromEP3TxFifo(dataFromEP3TxFifo),
328
  .dataFromHostSlaveMux(dataFromHostSlaveMux)
329 5 sfielding
   );
330 2 sfielding
 
331
hostSlaveMux u_hostSlaveMux(
332 5 sfielding
  .SIEPortCtrlInToSIE(SIEPortCtrlInToSIE),
333
  .SIEPortCtrlInFromHost(SIEPortCtrlInFromHost),
334
  .SIEPortCtrlInFromSlave(SIEPortCtrlInFromSlave),
335
  .SIEPortDataInToSIE(SIEPortDataInToSIE),
336
  .SIEPortDataInFromHost(SIEPortDataInFromHost),
337
  .SIEPortDataInFromSlave(SIEPortDataInFromSlave),
338
  .SIEPortWEnToSIE(SIEPortWEnToSIE),
339
  .SIEPortWEnFromHost(SIEPortWEnFromHost),
340
  .SIEPortWEnFromSlave(SIEPortWEnFromSlave),
341
  .fullSpeedPolarityToSIE(fullSpeedPolarityToSIE),
342
  .fullSpeedPolarityFromHost(fullSpeedPolarityFromHost),
343
  .fullSpeedPolarityFromSlave(fullSpeedPolarityFromSlave),
344
  .fullSpeedBitRateToSIE(fullSpeedBitRateToSIE),
345
  .fullSpeedBitRateFromHost(fullSpeedBitRateFromHost),
346
  .fullSpeedBitRateFromSlave(fullSpeedBitRateFromSlave),
347 2 sfielding
  .dataIn(data_i),
348
  .dataOut(dataFromHostSlaveMux),
349
  .writeEn(writeEn),
350
  .strobe_i(strobe_i),
351
  .clk(clk),
352
  .rst(rst),
353
  .hostSlaveMuxSel(hostSlaveMuxSel)  );
354
 
355
usbSerialInterfaceEngine u_usbSerialInterfaceEngine(
356
  .clk(clk),
357
  .rst(rst),
358 5 sfielding
  .USBWireDataIn(USBWireDataIn),
359
  .USBWireDataOut(USBWireDataOut),
360
  .USBWireDataInTick(USBWireDataInTick),
361
  .USBWireDataOutTick(USBWireDataOutTick),
362
  .USBWireCtrlOut(USBWireCtrlOut),
363
  .connectState(connectState),
364
  .resumeDetected(resumeDetected),
365
  .RxCtrlOut(RxCtrlOut),
366
  .RxDataOutWEn(RxDataOutWEn),
367
  .RxDataOut(RxDataFromSIE),
368
  .SIEPortCtrlIn(SIEPortCtrlInToSIE),
369
  .SIEPortDataIn(SIEPortDataInToSIE),
370
  .SIEPortTxRdy(SIEPortTxRdy),
371
  .SIEPortWEn(SIEPortWEnToSIE),
372
  .fullSpeedPolarity(fullSpeedPolarityToSIE),
373
  .fullSpeedBitRate(fullSpeedBitRateToSIE),
374 2 sfielding
  .noActivityTimeOut(noActivityTimeOut)
375
);
376
 
377
//---Host fifos
378
TxFifo #(HOST_FIFO_DEPTH, HOST_FIFO_ADDR_WIDTH) HostTxFifo (
379
  .clk(clk),
380
  .rst(rst),
381
  .fifoREn(hostTxFifoRE),
382
  .fifoEmpty(hostTxFifoEmpty),
383
  .busAddress(address_i[2:0]),
384
  .busWriteEn(writeEn),
385
  .busStrobe_i(strobe_i),
386
  .busFifoSelect(hostTxFifoSel),
387
  .busDataIn(data_i),
388
  .busDataOut(dataFromHostTxFifo),
389
  .fifoDataOut(hostTxFifoData) );
390
 
391
 
392
RxFifo #(HOST_FIFO_DEPTH, HOST_FIFO_ADDR_WIDTH) HostRxFifo(
393
  .clk(clk),
394
  .rst(rst),
395
  .fifoWEn(hostRxFifoWE),
396
  .fifoFull(hostRxFifoFull),
397
  .busAddress(address_i[2:0]),
398
  .busWriteEn(writeEn),
399
  .busStrobe_i(strobe_i),
400
  .busFifoSelect(hostRxFifoSel),
401
  .busDataIn(data_i),
402
  .busDataOut(dataFromHostRxFifo),
403
  .fifoDataIn(hostRxFifoData)  );
404
 
405
//---Slave fifos
406
 
407
TxFifo #(EP0_FIFO_DEPTH, EP0_FIFO_ADDR_WIDTH) EP0TxFifo (
408
  .clk(clk),
409
  .rst(rst),
410
  .fifoREn(TxFifoEP0REn),
411
  .fifoEmpty(TxFifoEP0Empty),
412
  .busAddress(address_i[2:0]),
413
  .busWriteEn(writeEn),
414
  .busStrobe_i(strobe_i),
415
  .busFifoSelect(slaveEP0TxFifoSel),
416
  .busDataIn(data_i),
417
  .busDataOut(dataFromEP0TxFifo),
418
  .fifoDataOut(TxFifoEP0Data) );
419
 
420
TxFifo #(EP1_FIFO_DEPTH, EP1_FIFO_ADDR_WIDTH) EP1TxFifo (
421
  .clk(clk),
422
  .rst(rst),
423
  .fifoREn(TxFifoEP1REn),
424
  .fifoEmpty(TxFifoEP1Empty),
425
  .busAddress(address_i[2:0]),
426
  .busWriteEn(writeEn),
427
  .busStrobe_i(strobe_i),
428
  .busFifoSelect(slaveEP1TxFifoSel),
429
  .busDataIn(data_i),
430
  .busDataOut(dataFromEP1TxFifo),
431
  .fifoDataOut(TxFifoEP1Data) );
432
 
433
  TxFifo #(EP2_FIFO_DEPTH, EP2_FIFO_ADDR_WIDTH) EP2TxFifo (
434
  .clk(clk),
435
  .rst(rst),
436
  .fifoREn(TxFifoEP2REn),
437
  .fifoEmpty(TxFifoEP2Empty),
438
  .busAddress(address_i[2:0]),
439
  .busWriteEn(writeEn),
440
  .busStrobe_i(strobe_i),
441
  .busFifoSelect(slaveEP2TxFifoSel),
442
  .busDataIn(data_i),
443
  .busDataOut(dataFromEP2TxFifo),
444
  .fifoDataOut(TxFifoEP2Data) );
445
 
446
  TxFifo #(EP3_FIFO_DEPTH, EP3_FIFO_ADDR_WIDTH) EP3TxFifo (
447
  .clk(clk),
448
  .rst(rst),
449
  .fifoREn(TxFifoEP3REn),
450
  .fifoEmpty(TxFifoEP3Empty),
451
  .busAddress(address_i[2:0]),
452
  .busWriteEn(writeEn),
453
  .busStrobe_i(strobe_i),
454
  .busFifoSelect(slaveEP3TxFifoSel),
455
  .busDataIn(data_i),
456
  .busDataOut(dataFromEP3TxFifo),
457
  .fifoDataOut(TxFifoEP3Data) );
458
 
459
RxFifo #(EP0_FIFO_DEPTH, EP0_FIFO_ADDR_WIDTH) EP0RxFifo(
460
  .clk(clk),
461
  .rst(rst),
462
  .fifoWEn(RxFifoEP0WEn),
463
  .fifoFull(RxFifoEP0Full),
464
  .busAddress(address_i[2:0]),
465
  .busWriteEn(writeEn),
466
  .busStrobe_i(strobe_i),
467
  .busFifoSelect(slaveEP0RxFifoSel),
468
  .busDataIn(data_i),
469
  .busDataOut(dataFromEP0RxFifo),
470
  .fifoDataIn(slaveRxFifoData)  );
471
 
472
RxFifo #(EP1_FIFO_DEPTH, EP1_FIFO_ADDR_WIDTH) EP1RxFifo(
473
  .clk(clk),
474
  .rst(rst),
475
  .fifoWEn(RxFifoEP1WEn),
476
  .fifoFull(RxFifoEP1Full),
477
  .busAddress(address_i[2:0]),
478
  .busWriteEn(writeEn),
479
  .busStrobe_i(strobe_i),
480
  .busFifoSelect(slaveEP1RxFifoSel),
481
  .busDataIn(data_i),
482
  .busDataOut(dataFromEP1RxFifo),
483
  .fifoDataIn(slaveRxFifoData)  );
484
 
485
RxFifo #(EP2_FIFO_DEPTH, EP2_FIFO_ADDR_WIDTH) EP2RxFifo(
486
  .clk(clk),
487
  .rst(rst),
488
  .fifoWEn(RxFifoEP2WEn),
489
  .fifoFull(RxFifoEP2Full),
490
  .busAddress(address_i[2:0]),
491
  .busWriteEn(writeEn),
492
  .busStrobe_i(strobe_i),
493
  .busFifoSelect(slaveEP2RxFifoSel),
494
  .busDataIn(data_i),
495
  .busDataOut(dataFromEP2RxFifo),
496
  .fifoDataIn(slaveRxFifoData)  );
497
 
498
RxFifo #(EP3_FIFO_DEPTH, EP3_FIFO_ADDR_WIDTH) EP3RxFifo(
499
  .clk(clk),
500
  .rst(rst),
501
  .fifoWEn(RxFifoEP3WEn),
502
  .fifoFull(RxFifoEP3Full),
503
  .busAddress(address_i[2:0]),
504
  .busWriteEn(writeEn),
505
  .busStrobe_i(strobe_i),
506
  .busFifoSelect(slaveEP3RxFifoSel),
507
  .busDataIn(data_i),
508
  .busDataOut(dataFromEP3RxFifo),
509
  .fifoDataIn(slaveRxFifoData)  );
510
 
511
endmodule
512
 
513 5 sfielding
 
514
 
515 2 sfielding
 
516
 
517
 
518
 

powered by: WebSVN 2.1.0

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