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

Subversion Repositories usbhostslave

[/] [usbhostslave/] [trunk/] [RTL/] [wrapper/] [usbHostSlave.v] - Blame information for rev 9

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

powered by: WebSVN 2.1.0

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