Maia SDR FPGA Amaranth HDL code
Project description
maia-hdl
maia-hdl is the Maia SDR FPGA Amaranth HDL code. See maia-sdr.org for a general introduction to the project, and also the maia-sdr/maia-sdr Github repository.
The maia-hdl Python package can be used as a library of HDL modules in third-party HDL designs.
Installation
It is not necessary to install maia-hdl in order to generate the Vivado IP cores or projects, or to run the tests and simulations. These can be run from a checkout of the source code as indicated below.
When using maia-hdl as a library in third-party packages, it can be installed with
pip install maia-hdl
or with any other method for managing Python packages.
Building the Vivado IP cores and projects
The build system for the Vivado IP cores and projects is based on Makefiles. The
IP cores can be built by running make
from the ip
directory. A specific IP
core can be built by running make
from its subdirectory inside the ip
directory.
The Vivado projects can be built by running make
from the projects
directory. A specific project cna be built by running make
from its
subdirectory inside the projects
directory. This will create the Vivado
project and block diagram, run synthesis and place and route, and finally
generate the bitstream.
Testing
Pure Amaranth tests can be run with
python3 -m unittest
Mixed Amaranth/Verilog tests use cocotb and a Verilog
simulator such as Icarus Verilog. Verilog code is
generated from the Amaranth code, so the simulation involves only Verilog code
and the Python code running from cocotb. The test execution of cocotb is based
on Makefiles. Tests can be run by running make
from the test_cocotb
directory. It is possible to check which tests failed with
grep --include=results.xml -r -e failure .
License
Licensed under MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT).
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, shall be licensed as above, without any additional terms or conditions.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file maia_hdl-0.6.0.tar.gz
.
File metadata
- Download URL: maia_hdl-0.6.0.tar.gz
- Upload date:
- Size: 85.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.1.dev0+g94f810c.d20240510 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 32dcf44892210dbecab3c529af3ba373a62d88e5e33a2ec26dafdd2a1903b007 |
|
MD5 | 0962e7d04622836c74d70de23c130ae2 |
|
BLAKE2b-256 | 6f7c4938a52f2b1393639f791f7c972f5b8594485cd517ae2a708bfa0842af40 |
File details
Details for the file maia_hdl-0.6.0-py3-none-any.whl
.
File metadata
- Download URL: maia_hdl-0.6.0-py3-none-any.whl
- Upload date:
- Size: 70.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.1.dev0+g94f810c.d20240510 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 12e61821c80fc7d615bd0bec3c3acc49d1eb045f8bbd2192a2ba603dd8eae4a2 |
|
MD5 | c0b4dbfa8264266dc34258c55bd952d2 |
|
BLAKE2b-256 | c6d820c59a392102163e84a99d251b20ac1b75623a03823d10817509aa03c28c |