1 |
2 |
ZTEX |
memfifo
|
2 |
|
|
-------
|
3 |
|
|
This example demonstrates:
|
4 |
|
|
|
5 |
|
|
* High speed EZ-USB -> FPGA transfers using the default firmware
|
6 |
|
|
interface
|
7 |
|
|
* High speed FPGA -> EZ-USB transfers using the default firmware
|
8 |
|
|
interface
|
9 |
|
|
* Usage of memory (type depends on FPGA Board, see below)
|
10 |
|
|
|
11 |
|
|
The following FPGA Board / memory types are supported:
|
12 |
|
|
|
13 |
|
|
FPGA Board memory type
|
14 |
|
|
------------------------------------------------------------------------
|
15 |
|
|
USB-FPGA Module 2.14 DDR3 SDRAM
|
16 |
|
|
|
17 |
|
|
All memory is used to build a large FIFO. Input of this FIFO is either
|
18 |
|
|
USB or a test pattern generator with variable data rate. Output of the
|
19 |
|
|
FIFO is written to USB.
|
20 |
|
|
|
21 |
|
|
For the communication with the host the default firmware interface is
|
22 |
|
|
used, i.e. no special firmware is required.
|
23 |
|
|
|
24 |
|
|
The host software writes the data, reads it back and verifies it.
|
25 |
|
|
Several tests are performed in order to test flow control, data rates,
|
26 |
|
|
etc.
|
27 |
|
|
|
28 |
|
|
The modules are re-usable for many other projects. The example is a good
|
29 |
|
|
starting point for many different applications.
|
30 |
|
|
|
31 |
|
|
Data source source is selected by the GPIO pins the the default firmware
|
32 |
|
|
interface:
|
33 |
|
|
|
34 |
|
|
GPIO 1:0 Source
|
35 |
|
|
------------------------------------------------------------------------
|
36 |
|
|
0:0 USB Endpoint 6 (EZ-USB Slave FIFO interface)
|
37 |
|
|
0:1 48 MByte/s test pattern generator
|
38 |
|
|
1:0 12 MByte/s test pattern generator
|
39 |
|
|
1:1 For debugging: Dummy reads form USB + Test pattern generator
|
40 |
|
|
|
41 |
|
|
The HDL sources contain 4 modules:
|
42 |
|
|
|
43 |
|
|
1a. dram_fifo.v: Implements a huge FIFO from on-board SDRAM.
|
44 |
|
|
1b. bram_fifo.v: Implements a smaller FIFO from on-chip BRAM.
|
45 |
|
|
2a. ../../default/fpga-fx3/ezusb_io.v: Implements the high speed
|
46 |
|
|
interface on FX3 based FPGA Boards
|
47 |
|
|
2b. ../../default/fpga-fx2/ezusb_io.v: Implements the high speed
|
48 |
|
|
interface on FX2 based FPGA Boards
|
49 |
|
|
3a. ../../default/fpga-fx3/ezusb_gpio.v: Implements GPIO's for mode
|
50 |
|
|
selection on FX3 based FPGA Boards
|
51 |
|
|
3b. ../../default/fpga-fx2/ezusb_gpio.v: Implements GPIO's for mode
|
52 |
|
|
selection FX2 based FPGA Boards
|
53 |
|
|
4. memfifo.c: The top level module glues everything together.
|
54 |
|
|
|
55 |
|
|
Debug Board (not required)
|
56 |
|
|
--------------------------
|
57 |
|
|
LED1: Debug/status output, see SW10
|
58 |
|
|
LED2-3: Fill level of the DRAM FIFO
|
59 |
|
|
SW10 on: status signals from dram_fifo module
|
60 |
|
|
off:status signals from top level module
|
61 |
|
|
|
62 |
|
|
For more documentations for this example please read
|
63 |
|
|
Also read http://wiki.ztex.de/doku.php?id=en:ztex_boards:ztex_fpga_boards:memfifo:memfifo
|