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.
The IP core generation requires yosys, which is used to generate Verilog code. Yosys is already included as part of the maia-sdr-devel Docker image.
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 .
Running the mixed Amaranth/Verilog tests also requires yosys to be installed.
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.
Metadata
Release files for maia-hdl 0.6.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| maia_hdl-0.6.2.tar.gz | 89.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| maia_hdl-0.6.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 161.4 kB
Release files / maia_hdl-0.6.2.tar.gz
| Download URL | maia_hdl-0.6.2.tar.gz |
|---|---|
| Size | 89.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
196f9ecb590aaa5913671875d42aaeed72c34a27278a628f86c05f4e65650d28
|
|
BLAKE2b-256 checksum How to use checksums |
5f2815b0fccaad8ca2e1880c8e46dddd8a56ec875ee7d939c2067e6cc8e3459f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.0.1 CPython/3.13.2
|
Release files / maia_hdl-0.6.2-py3-none-any.whl
| Download URL | maia_hdl-0.6.2-py3-none-any.whl |
|---|---|
| Size | 72.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
31e70743dc8a24111474015085d489aa877d39ed5965d7690949505c14a19a79
|
|
BLAKE2b-256 checksum How to use checksums |
5544452807eccafa6af92269e9f931746679b6e8dba5cdb1f6a2be3806b3fa74
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.0.1 CPython/3.13.2
|