litex/README

86 lines
2.4 KiB
Plaintext

__ _ __ _______ _________
/ / (_) /____ / __/ _ /_ __/ _ |
/ /__/ / __/ -_)\ \/ __ |/ / / __ |
/____/_/\__/\__/___/_/ |_/_/ /_/ |_|
Copyright 2014-2015 / Florent Kermarrec / florent@enjoy-digital.fr
A generic and configurable SATA1/2/3 core
developed in partnership with M-Labs Ltd & HKU
[> Features
------------------
PHY:
- OOB, COMWAKE, COMINIT.
- ALIGN inserter/remover and bytes alignment on K28.5.
- 8B/10B encoding/decoding in transceiver.
- Errors detection and reporting.
- 1.5 / 3.0 / 6.0GBPs supported speeds.
- 37.5 / 75 / 150MHz system clock.
Core:
Link:
- CONT inserter/remover.
- Scrambling/Descrambling of data.
- CRC inserter/checker.
- HOLD insertion/detection.
- Errors detection and reporting.
Transport/Command:
- Easy to use user interface (Can be used with or without CPU).
- 48 bits sector addressing.
- 3 supported commands: READ_DMA(_EXT), WRITE_DMA(_EXT), IDENTIFY_DEVICE.
- Errors detection and reporting.
Frontend:
- Configurable crossbar (simply use core.crossbar.get_port() to add a new port!)
- Ports arbitration transparent to the user.
- Synthetizable BIST.
[> Getting started
------------------
1. Install Python3 and Xilinx's Vivado software.
2. Obtain Migen and install it:
git clone https://github.com/enjoy-digital/migen
cd migen
python3 setup.py install
cd ..
3. Obtain Miscope and install it:
git clone https://github.com/enjoy-digital/miscope
cd miscope
python3 setup.py install
cd ..
4. Obtain MiSoC:
git clone https://github.com/enjoy-digital/misoc --recursive
5. Copy lite-sata in working directory and move to it.
6. Build and load design:
make all
7. Test design:
go to test directory and run:
python3 bist.py
[> Simulations :
Simulations are avalaible in ./lib/sata/test:
- crc_tb
- scrambler_tb
- phy_datapath_tb
- link_tb
- command_tb
- bist_tb
hdd.py is a HDD model implementing all SATA layers.
To run a simulation, move to ./lib/sata/test and run:
make simulation_name
[> Tests :
A synthetisable BIST is provided and can be controlled with ./test/bist.py
By using Miscope and the provided ./test/test_link.py example you are able to
visualize the internal logic of the design and even inject the captured data in
the HDD model!
[> Contact
E-mail: florent@enjoy-digital.fr