README.md 4.24 KB
Newer Older
1 2 3 4 5
```
                                 __   _ __      ___  ___  ___   __  ___
                                / /  (_) /____ / _ \/ _ \/ _ | /  |/  /
                               / /__/ / __/ -_) // / , _/ __ |/ /|_/ /
                              /____/_/\__/\__/____/_/|_/_/ |_/_/  /_/
Florent Kermarrec's avatar
Florent Kermarrec committed
6

7 8 9 10 11
                                   Copyright 2015-2020 / EnjoyDigital
                               A small footprint and configurable DRAM core
                                        powered by Migen & LiteX
```

12
[![](https://github.com/enjoy-digital/litedram/workflows/ci/badge.svg)](https://github.com/enjoy-digital/litedram/actions) ![License](https://img.shields.io/badge/License-BSD%202--Clause-orange.svg)
Florent Kermarrec's avatar
Florent Kermarrec committed
13 14 15


[> Intro
16
--------
Florent Kermarrec's avatar
Florent Kermarrec committed
17 18 19 20
LiteDRAM provides a small footprint and configurable DRAM core.

LiteDRAM is part of LiteX libraries whose aims are to lower entry level of
complex FPGA cores by providing simple, elegant and efficient implementations
Florent Kermarrec's avatar
Florent Kermarrec committed
21
of components used in today's SoC such as Ethernet, SATA, PCIe, SDRAM Controller...
Florent Kermarrec's avatar
Florent Kermarrec committed
22

Florent Kermarrec's avatar
Florent Kermarrec committed
23
Using Migen to describe the HDL allows the core to be highly and easily configurable.
Florent Kermarrec's avatar
Florent Kermarrec committed
24

Florent Kermarrec's avatar
Florent Kermarrec committed
25 26
LiteDRAM can be used as LiteX library or can be integrated with your standard
design flow by generating the verilog rtl that you will use as a standard core.
Florent Kermarrec's avatar
Florent Kermarrec committed
27 28 29

[> Features
-----------
30 31 32
PHY:
  - Generic SDRAM PHY (vendor agnostic, tested on Xilinx, Altera, Lattice)
  - Spartan6 DDR/LPDDR/DDR2/DDR3 PHY (1:2 or 1:4 frequency ratio)
Florent Kermarrec's avatar
Florent Kermarrec committed
33
  - Spartan7/Artix7/Kintex7/Virtex7 DDR2/DDR3 PHY (1:2 or 1:4 frequency ratio)
34
  - Kintex/Virtex Ultrascale (Plus) DDR3/DDR4 PHY (1:4 frequency ratio)
35
  - ECP5 DDR3 PHY (1:2 frequency ratio)
36

37 38 39
Core:
  - Fully pipelined, high performance.
  - Configurable commands depth on bankmachines.
Florent Kermarrec's avatar
Florent Kermarrec committed
40
  - Auto-Precharge.
41
  - Periodic refresh/ZQ short calibration (up to 8 postponed refreshes).
42

43
Frontend:
Florent Kermarrec's avatar
Florent Kermarrec committed
44
  - Configurable crossbar (simply use crossbar.get_port() to add a new port!)
45
  - Ports arbitration transparent to the user.
Florent Kermarrec's avatar
Florent Kermarrec committed
46
  - Native, AXI-MM or Wishbone user interface.
47 48
  - DMA reader/writer.
  - BIST.
Florent Kermarrec's avatar
Florent Kermarrec committed
49
  - ECC (Error-correcting code)
Florent Kermarrec's avatar
Florent Kermarrec committed
50

Florent Kermarrec's avatar
Florent Kermarrec committed
51 52 53 54
[> FPGA Proven
---------------
LiteDRAM is already used in commercial and open-source designs:
- HDMI2USB: http://hdmi2usb.tv/home/
Florent Kermarrec's avatar
Florent Kermarrec committed
55 56
- NeTV2: https://www.crowdsupply.com/alphamax/netv2
- USBSniffer: http://blog.lambdaconcept.com/doku.php?id=products:usb_sniffer
Florent Kermarrec's avatar
Florent Kermarrec committed
57 58
- and others commercial designs...

Florent Kermarrec's avatar
Florent Kermarrec committed
59
[> Possible improvements
60
------------------------
Florent Kermarrec's avatar
Florent Kermarrec committed
61
- add Avalon-ST interface.
Florent Kermarrec's avatar
Florent Kermarrec committed
62
- add support for Altera devices.
Florent Kermarrec's avatar
Florent Kermarrec committed
63
- add more documentation
Florent Kermarrec's avatar
Florent Kermarrec committed
64 65 66
- ... See below Support and consulting :)

If you want to support these features, please contact us at florent [AT]
Florent Kermarrec's avatar
Florent Kermarrec committed
67
enjoy-digital.fr.
Florent Kermarrec's avatar
Florent Kermarrec committed
68

Florent Kermarrec's avatar
Florent Kermarrec committed
69
[> Getting started
Florent Kermarrec's avatar
Florent Kermarrec committed
70
------------------
71
1. Install Python 3.6+ and FPGA vendor's development tools.
Florent Kermarrec's avatar
Florent Kermarrec committed
72 73
2. Install LiteX and the cores by following the LiteX's wiki [installation guide](https://github.com/enjoy-digital/litex/wiki/Installation).
3. You can find examples of integration of the core with LiteX in LiteX-Boards and in the examples directory.
Florent Kermarrec's avatar
Florent Kermarrec committed
74 75 76 77 78

[> Tests
--------
Unit tests are available in ./test/.
To run all the unit tests:
79 80 81 82
```sh
$ ./setup.py test
```

Florent Kermarrec's avatar
Florent Kermarrec committed
83
Tests can also be run individually:
84 85 86
```sh
$ python3 -m unittest test.test_name
```
Florent Kermarrec's avatar
Florent Kermarrec committed
87 88

[> License
89
----------
Florent Kermarrec's avatar
Florent Kermarrec committed
90 91 92 93 94 95 96 97 98 99 100 101
LiteDRAM is released under the very permissive two-clause BSD license. Under
the terms of this license, you are authorized to use LiteDRAM for closed-source
proprietary designs.
Even though we do not require you to do so, those things are awesome, so please
do them if possible:
 - tell us that you are using LiteDRAM
 - cite LiteDRAM in publications related to research it has helped
 - send us feedback and suggestions for improvements
 - send us bug reports when something goes wrong
 - send us the modifications and improvements you have done to LiteDRAM.

[> Support and consulting
102
-------------------------
Florent Kermarrec's avatar
Florent Kermarrec committed
103 104
We love open-source hardware and like sharing our designs with others.

Florent Kermarrec's avatar
Florent Kermarrec committed
105
LiteDRAM is developed and maintained by EnjoyDigital.
Florent Kermarrec's avatar
Florent Kermarrec committed
106 107 108 109 110 111 112 113 114

If you would like to know more about LiteDRAM or if you are already a happy
user and would like to extend it for your needs, EnjoyDigital can provide standard
commercial support as well as consulting services.

So feel free to contact us, we'd love to work with you! (and eventually shorten
the list of the possible improvements :)

[> Contact
115
----------
Florent Kermarrec's avatar
Florent Kermarrec committed
116
E-mail: florent [AT] enjoy-digital.fr