Skip to main content

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)

Source distribution for maia-hdl 0.6.2
File Size Uploaded
maia_hdl-0.6.2.tar.gz 89.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for maia-hdl 0.6.2
File Interpreter ABI Platform
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

Release history Release notifications | RSS feed

This release

0.6.2 This release

2 release files

0.6.0

2 release files

0.5.0

2 release files

0.4.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page