Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

maia_hdl-0.6.0.tar.gz (85.8 kB view details)

Uploaded Source

Built Distribution

maia_hdl-0.6.0-py3-none-any.whl (70.4 kB view details)

Uploaded Python 3

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

Hashes for maia_hdl-0.6.0.tar.gz
Algorithm Hash digest
SHA256 32dcf44892210dbecab3c529af3ba373a62d88e5e33a2ec26dafdd2a1903b007
MD5 0962e7d04622836c74d70de23c130ae2
BLAKE2b-256 6f7c4938a52f2b1393639f791f7c972f5b8594485cd517ae2a708bfa0842af40

See more details on using hashes here.

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

Hashes for maia_hdl-0.6.0-py3-none-any.whl
Algorithm Hash digest
SHA256 12e61821c80fc7d615bd0bec3c3acc49d1eb045f8bbd2192a2ba603dd8eae4a2
MD5 c0b4dbfa8264266dc34258c55bd952d2
BLAKE2b-256 c6d820c59a392102163e84a99d251b20ac1b75623a03823d10817509aa03c28c

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page