uniformize litex cores
This commit is contained in:
parent
4e08d6e9f9
commit
c42aa09878
|
@ -3,6 +3,9 @@ __pycache__/
|
||||||
*.py[cod]
|
*.py[cod]
|
||||||
*$py.class
|
*$py.class
|
||||||
|
|
||||||
|
# C extensions
|
||||||
|
*.so
|
||||||
|
|
||||||
# Distribution / packaging
|
# Distribution / packaging
|
||||||
.Python
|
.Python
|
||||||
env/
|
env/
|
||||||
|
@ -42,18 +45,45 @@ coverage.xml
|
||||||
*,cover
|
*,cover
|
||||||
.hypothesis/
|
.hypothesis/
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
*.mo
|
||||||
|
*.pot
|
||||||
|
|
||||||
|
# Django stuff:
|
||||||
|
*.log
|
||||||
|
local_settings.py
|
||||||
|
|
||||||
|
# Flask stuff:
|
||||||
|
instance/
|
||||||
|
.webassets-cache
|
||||||
|
|
||||||
|
# Scrapy stuff:
|
||||||
|
.scrapy
|
||||||
|
|
||||||
# Sphinx documentation
|
# Sphinx documentation
|
||||||
docs/_build/
|
docs/_build/
|
||||||
|
|
||||||
# PyBuilder
|
# PyBuilder
|
||||||
target/
|
target/
|
||||||
|
|
||||||
|
# IPython Notebook
|
||||||
|
.ipynb_checkpoints
|
||||||
|
|
||||||
# pyenv
|
# pyenv
|
||||||
.python-version
|
.python-version
|
||||||
|
|
||||||
|
# celery beat schedule file
|
||||||
|
celerybeat-schedule
|
||||||
|
|
||||||
# dotenv
|
# dotenv
|
||||||
.env
|
.env
|
||||||
|
|
||||||
# virtualenv
|
# virtualenv
|
||||||
venv/
|
venv/
|
||||||
ENV/
|
ENV/
|
||||||
|
|
||||||
|
# Spyder project settings
|
||||||
|
.spyderproject
|
||||||
|
|
||||||
|
# Rope project settings
|
||||||
|
.ropeproject
|
||||||
|
|
2
LICENSE
2
LICENSE
|
@ -1,4 +1,4 @@
|
||||||
Unless otherwise noted, LiteEth is copyright (C) 2015 Florent Kermarrec.
|
Unless otherwise noted, LiteEth is Copyright 2012-2018 / EnjoyDigital
|
||||||
|
|
||||||
Redistribution and use in source and binary forms, with or without modification,
|
Redistribution and use in source and binary forms, with or without modification,
|
||||||
are permitted provided that the following conditions are met:
|
are permitted provided that the following conditions are met:
|
||||||
|
|
82
README
82
README
|
@ -3,22 +3,18 @@
|
||||||
/ /__/ / __/ -_) _// __/ _ \
|
/ /__/ / __/ -_) _// __/ _ \
|
||||||
/____/_/\__/\__/___/\__/_//_/
|
/____/_/\__/\__/___/\__/_//_/
|
||||||
|
|
||||||
Copyright 2012-2017 / EnjoyDigital
|
Copyright 2012-2018 / EnjoyDigital
|
||||||
|
|
||||||
A small footprint and configurable Ethernet core
|
A small footprint and configurable Ethernet core
|
||||||
with UDP/IP hw stack and Etherbone frontend
|
powered by LiteX & Migen
|
||||||
powered by LiteX
|
|
||||||
|
|
||||||
[> Intro
|
[> Intro
|
||||||
---------
|
--------
|
||||||
LiteEth provides a small footprint and configurable Ethernet core.
|
LiteEth provides a small footprint and configurable Ethernet core.
|
||||||
|
|
||||||
LiteEth is part of LiteX libraries whose aims are to lower entry level of
|
LiteEth is part of LiteX libraries whose aims are to lower entry level of
|
||||||
complex FPGA cores by providing simple, elegant and efficient implementations
|
complex FPGA cores by providing simple, elegant and efficient implementations
|
||||||
ofcomponents used in today's SoC such as Ethernet, SATA, PCIe, SDRAM Controller...
|
of components used in today's SoC such as Ethernet, SATA, PCIe, SDRAM Controller...
|
||||||
|
|
||||||
The core uses simple and specific streaming buses and will provides in the future
|
|
||||||
adapters to use standardized AXI or Avalon-ST streaming buses.
|
|
||||||
|
|
||||||
Since Python is used to describe the HDL, the core is highly and easily
|
Since Python is used to describe the HDL, the core is highly and easily
|
||||||
configurable.
|
configurable.
|
||||||
|
@ -32,10 +28,19 @@ LiteEth 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.
|
design flow by generating the verilog rtl that you will use as a standard core.
|
||||||
|
|
||||||
[> Features
|
[> Features
|
||||||
------------
|
-----------
|
||||||
- Ethernet MAC with various interfaces and various PHYs (GMII, MII, RGMII, etc)
|
PHY:
|
||||||
- Hardware UDP/IP stack with ARP and ICMP
|
- MII / RMII
|
||||||
- lwIP and uIP TCP/IP stacks ported and tested on lm32 and mor1kx
|
- GMII / RGMII
|
||||||
|
Core:
|
||||||
|
- MAC with various interfaces (to soft core or hardware stack)
|
||||||
|
- ARP
|
||||||
|
- ICMP
|
||||||
|
- UDP
|
||||||
|
Frontend:
|
||||||
|
- Etherbone (Wishbone over UDP, Slave or Master support)
|
||||||
|
- Virtual Serial ports over UDP.
|
||||||
|
|
||||||
|
|
||||||
[> FPGA Proven
|
[> FPGA Proven
|
||||||
---------------
|
---------------
|
||||||
|
@ -46,61 +51,39 @@ LiteEth is already used in commercial and open-source designs:
|
||||||
- and others commercial designs...
|
- and others commercial designs...
|
||||||
|
|
||||||
[> Possible improvements
|
[> Possible improvements
|
||||||
-------------------------
|
------------------------
|
||||||
- optimize ressources on HW ICMP and Etherbone (parameters buffering)
|
- optimize ressources on HW ICMP and Etherbone (parameters buffering)
|
||||||
- add standardized interfaces (AXI, Avalon-ST)
|
- add standardized interfaces (AXI, Avalon-ST)
|
||||||
- add DMA interface to MAC
|
- add DMA interface to MAC
|
||||||
- add RGMII/SGMII PHYs
|
- add SGMII PHYs
|
||||||
- add more documentation
|
- add more documentation
|
||||||
- ... See below Support and consulting :)
|
- ... See below Support and consulting :)
|
||||||
|
|
||||||
If you want to support these features, please contact us at florent [AT]
|
If you want to support these features, please contact us at florent [AT]
|
||||||
enjoy-digital.fr. You can also contact our partner on the public mailing list
|
enjoy-digital.fr.
|
||||||
devel [AT] lists.m-labs.hk.
|
|
||||||
|
|
||||||
|
|
||||||
[> Getting started
|
[> Getting started
|
||||||
-------------------
|
------------------
|
||||||
1. Install Python3 and your vendor's software
|
1. Install Python3 and your vendor's software
|
||||||
|
|
||||||
2. Obtain LiteX and install it:
|
2. Obtain LiteX and install it:
|
||||||
git clone https://github.com/enjoy-digital/litex --recursive
|
git clone https://github.com/enjoy-digital/litex --recursive
|
||||||
cd litex
|
cd litex
|
||||||
python3 setup.py install
|
python3 setup.py develop
|
||||||
cd ..
|
cd ..
|
||||||
|
|
||||||
3. Build and load UDP loopback design (only for KC705 for now):
|
3. TODO: add/describe example design(s)
|
||||||
go to example_designs/
|
|
||||||
run ./make.py -t udp all load-bitstream
|
|
||||||
|
|
||||||
4. Test design (only for KC705 for now):
|
|
||||||
try to ping 192.168.1.50
|
|
||||||
go to example_designs/test/
|
|
||||||
run ./test_udp.py
|
|
||||||
|
|
||||||
5. Build and load Etherbone design (only for KC705 for now):
|
|
||||||
python3 make.py -t etherbone all load-bitstream
|
|
||||||
|
|
||||||
6. Test design (only for KC705 for now):
|
|
||||||
try to ping 192.168.1.50
|
|
||||||
go to example_designs/test/
|
|
||||||
run ./test_etherbone.py
|
|
||||||
|
|
||||||
[> Simulations
|
|
||||||
---------------
|
|
||||||
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
|
|
||||||
|
|
||||||
[> Tests
|
[> Tests
|
||||||
---------
|
--------
|
||||||
An Etherbone example with Wishbone SRAM and an UDP loopback example are provided.
|
Unit tests are available in ./test/.
|
||||||
Please goto to Getting Started section to see how to run the tests.
|
To run all the unit tests:
|
||||||
|
./setup.py test
|
||||||
|
Tests can also be run individually:
|
||||||
|
python3 -m unittest test.test_name
|
||||||
|
|
||||||
[> License
|
[> License
|
||||||
-----------
|
----------
|
||||||
LiteEth is released under the very permissive two-clause BSD license. Under
|
LiteEth is released under the very permissive two-clause BSD license. Under
|
||||||
the terms of this license, you are authorized to use LiteEth for closed-source
|
the terms of this license, you are authorized to use LiteEth for closed-source
|
||||||
proprietary designs.
|
proprietary designs.
|
||||||
|
@ -113,10 +96,10 @@ do them if possible:
|
||||||
- send us the modifications and improvements you have done to LiteEth.
|
- send us the modifications and improvements you have done to LiteEth.
|
||||||
|
|
||||||
[> Support and consulting
|
[> Support and consulting
|
||||||
--------------------------
|
-------------------------
|
||||||
We love open-source hardware and like sharing our designs with others.
|
We love open-source hardware and like sharing our designs with others.
|
||||||
|
|
||||||
LiteEth is mainly developed and maintained by EnjoyDigital.
|
LiteEth is developed and maintained by EnjoyDigital.
|
||||||
|
|
||||||
If you would like to know more about LiteEth or if you are already a happy
|
If you would like to know more about LiteEth or if you are already a happy
|
||||||
user and would like to extend it for your needs, EnjoyDigital can provide standard
|
user and would like to extend it for your needs, EnjoyDigital can provide standard
|
||||||
|
@ -126,4 +109,5 @@ So feel free to contact us, we'd love to work with you! (and eventually shorten
|
||||||
the list of the possible improvements :)
|
the list of the possible improvements :)
|
||||||
|
|
||||||
[> Contact
|
[> Contact
|
||||||
|
----------
|
||||||
E-mail: florent [AT] enjoy-digital.fr
|
E-mail: florent [AT] enjoy-digital.fr
|
6
setup.py
6
setup.py
|
@ -5,14 +5,14 @@ from setuptools import setup
|
||||||
from setuptools import find_packages
|
from setuptools import find_packages
|
||||||
|
|
||||||
|
|
||||||
if sys.version_info[:3] < (3, 3):
|
if sys.version_info[:3] < (3, 5):
|
||||||
raise SystemExit("You need Python 3.3+")
|
raise SystemExit("You need Python 3.5+")
|
||||||
|
|
||||||
|
|
||||||
setup(
|
setup(
|
||||||
name="liteeth",
|
name="liteeth",
|
||||||
version="0.1",
|
version="0.1",
|
||||||
description="small footprint and configurable Ethernet core",
|
description="Small footprint and configurable Ethernet core",
|
||||||
long_description=open("README").read(),
|
long_description=open("README").read(),
|
||||||
author="Florent Kermarrec",
|
author="Florent Kermarrec",
|
||||||
author_email="florent@enjoy-digital.fr",
|
author_email="florent@enjoy-digital.fr",
|
||||||
|
|
Loading…
Reference in New Issue