2015-02-22 12:19:05 -05:00
|
|
|
__ _ __ ___ ___ ___ __ ___
|
|
|
|
/ / (_) /____ / _ \/ _ \/ _ | / |/ /
|
|
|
|
/ /__/ / __/ -_) // / , _/ __ |/ /|_/ /
|
|
|
|
/____/_/\__/\__/____/_/|_/_/ |_/_/ /_/
|
|
|
|
|
2020-02-25 04:36:56 -05:00
|
|
|
Copyright 2015-2020 / EnjoyDigital
|
2015-02-22 12:19:05 -05:00
|
|
|
|
|
|
|
A small footprint and configurable DRAM core
|
2019-04-27 03:46:59 -04:00
|
|
|
powered by Migen & LiteX
|
2015-02-22 12:19:05 -05:00
|
|
|
|
|
|
|
[> Intro
|
2017-06-22 10:57:14 -04:00
|
|
|
--------
|
2015-02-22 12:19:05 -05:00
|
|
|
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
|
2018-02-22 04:10:54 -05:00
|
|
|
of components used in today's SoC such as Ethernet, SATA, PCIe, SDRAM Controller...
|
2015-02-22 12:19:05 -05:00
|
|
|
|
2018-08-31 02:25:05 -04:00
|
|
|
Using Migen to describe the HDL allows the core to be highly and easily configurable.
|
2015-02-22 12:19:05 -05:00
|
|
|
|
2018-02-22 04:10:54 -05:00
|
|
|
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.
|
2015-02-22 12:19:05 -05:00
|
|
|
|
|
|
|
[> Features
|
|
|
|
-----------
|
2016-05-03 19:13:00 -04:00
|
|
|
PHY:
|
|
|
|
- Generic SDRAM PHY (vendor agnostic, tested on Xilinx, Altera, Lattice)
|
|
|
|
- Spartan6 DDR/LPDDR/DDR2/DDR3 PHY (1:2 or 1:4 frequency ratio)
|
2018-09-03 08:17:03 -04:00
|
|
|
- Spartan7/Artix7/Kintex7/Virtex7 DDR2/DDR3 PHY (1:2 or 1:4 frequency ratio)
|
2020-02-25 04:36:56 -05:00
|
|
|
- Kintex/Virtex Ultrascale (Plus) DDR3/DDR4 PHY (1:4 frequency ratio)
|
2019-06-16 15:35:46 -04:00
|
|
|
- ECP5 DDR3 PHY (1:2 frequency ratio)
|
2016-05-03 19:13:00 -04:00
|
|
|
Core:
|
|
|
|
- Fully pipelined, high performance.
|
|
|
|
- Configurable commands depth on bankmachines.
|
2018-08-29 10:34:53 -04:00
|
|
|
- Auto-Precharge.
|
2019-09-11 02:38:17 -04:00
|
|
|
- Periodic refresh/ZQ short calibration (up to 8 postponed refreshes).
|
2016-05-03 19:13:00 -04:00
|
|
|
Frontend:
|
2019-04-27 03:46:59 -04:00
|
|
|
- Configurable crossbar (simply use crossbar.get_port() to add a new port!)
|
2016-05-03 19:13:00 -04:00
|
|
|
- Ports arbitration transparent to the user.
|
2018-08-29 10:34:53 -04:00
|
|
|
- Native, AXI-MM or Wishbone user interface.
|
2016-05-03 19:13:00 -04:00
|
|
|
- DMA reader/writer.
|
|
|
|
- BIST.
|
2018-09-19 05:42:13 -04:00
|
|
|
- ECC (Error-correcting code)
|
2015-02-22 12:19:05 -05:00
|
|
|
|
2018-02-22 04:10:54 -05:00
|
|
|
[> FPGA Proven
|
|
|
|
---------------
|
|
|
|
LiteDRAM is already used in commercial and open-source designs:
|
|
|
|
- HDMI2USB: http://hdmi2usb.tv/home/
|
2019-04-27 03:46:59 -04:00
|
|
|
- NeTV2: https://www.crowdsupply.com/alphamax/netv2
|
|
|
|
- USBSniffer: http://blog.lambdaconcept.com/doku.php?id=products:usb_sniffer
|
2018-02-22 04:10:54 -05:00
|
|
|
- and others commercial designs...
|
|
|
|
|
2015-02-22 12:19:05 -05:00
|
|
|
[> Possible improvements
|
2017-06-22 10:57:14 -04:00
|
|
|
------------------------
|
2018-08-29 10:34:53 -04:00
|
|
|
- add Avalon-ST interface.
|
2019-04-27 03:46:59 -04:00
|
|
|
- add support for Altera devices.
|
2018-02-22 04:10:54 -05:00
|
|
|
- add more documentation
|
2015-02-22 12:19:05 -05:00
|
|
|
- ... See below Support and consulting :)
|
|
|
|
|
|
|
|
If you want to support these features, please contact us at florent [AT]
|
2018-02-22 04:10:54 -05:00
|
|
|
enjoy-digital.fr.
|
2015-02-22 12:19:05 -05:00
|
|
|
|
2018-02-22 04:10:54 -05:00
|
|
|
[> Getting started
|
2015-02-22 12:19:05 -05:00
|
|
|
------------------
|
2019-04-27 03:46:59 -04:00
|
|
|
0. Install Python 3.5+ and FPGA vendor's development tools.
|
2015-02-22 12:19:05 -05:00
|
|
|
|
2019-04-27 03:46:59 -04:00
|
|
|
1. Install Migen/LiteX and the LiteX's cores:
|
|
|
|
wget https://raw.githubusercontent.com/enjoy-digital/litex/master/litex_setup.py
|
|
|
|
./litex_setup.py init install
|
|
|
|
Later, if you need to update all repositories:
|
|
|
|
./litex_setup.py update
|
2015-02-22 12:19:05 -05:00
|
|
|
|
2019-04-27 03:46:59 -04:00
|
|
|
2. TODO: add/describe examples
|
2018-02-22 04:10:54 -05:00
|
|
|
|
|
|
|
[> Tests
|
|
|
|
--------
|
|
|
|
Unit tests are available in ./test/.
|
|
|
|
To run all the unit tests:
|
|
|
|
./setup.py test
|
|
|
|
Tests can also be run individually:
|
|
|
|
python3 -m unittest test.test_name
|
2015-02-22 12:19:05 -05:00
|
|
|
|
|
|
|
[> License
|
2017-06-22 10:57:14 -04:00
|
|
|
----------
|
2015-02-22 12:19:05 -05:00
|
|
|
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
|
2017-06-22 10:57:14 -04:00
|
|
|
-------------------------
|
2015-02-22 12:19:05 -05:00
|
|
|
We love open-source hardware and like sharing our designs with others.
|
|
|
|
|
2018-02-22 04:10:54 -05:00
|
|
|
LiteDRAM is developed and maintained by EnjoyDigital.
|
2015-02-22 12:19:05 -05:00
|
|
|
|
|
|
|
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
|
2017-06-22 10:57:14 -04:00
|
|
|
----------
|
2015-02-22 12:19:05 -05:00
|
|
|
E-mail: florent [AT] enjoy-digital.fr
|