Skip to main content

FPGA Assembly (FASM) Parser and Generation library

Project description

FPGA Assembly (FASM) Parser and Generation library

This is a fork of chipsalliance/fasm, adapted for use in the FABulous flow. The original repository is no longer actively maintained.

This fork removes the ANTLR-based C++ parser that was present in the original. The original library shipped two parsers — a fast C++/ANTLR parser and a pure Python textX fallback — and would print a confusing runtime warning whenever ANTLR was not installed. Since FABulous only needs the textX parser and the ANTLR build required cmake, Java, and native libraries, the C++ parser has been removed entirely to keep installation simple and warning-free.

This repository documents the FASM file format and provides parsing libraries and simple tooling for working with FASM files using a pure Python parser based on textx.

Installation

pip install FABulous-fasm

Development

pip install -e ".[dev]"
pytest tests/

Documentation

FPGA Assembly (FASM)

FPGA Assembly is a file format designed by the F4PGA Project developers to provide a plain text file format for configuring the internals of an FPGA.

It is designed to allow FPGA place and route to not care about the actual bitstream format used on an FPGA.

FASM Ecosystem Diagram

Properties

  • Removing a line from a FASM file leaves you with a valid FASM file.
  • Allow annotation with human readable comments.
  • Allow annotation with "computer readable" comments.
  • Has syntactic sugar for expressing memory / lut init bits / other large arrays of data.
  • Has a canonical form.
  • Does not require any specific bitstream format.

Supported By

FASM is currently supported by the F4PGA Verilog to Routing fork, but we hope to get it merged upstream sometime soon.

It is also used by Project X-Ray.

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

fabulous_fasm-0.2.0.tar.gz (78.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

fabulous_fasm-0.2.0-py3-none-any.whl (72.2 kB view details)

Uploaded Python 3

File details

Details for the file fabulous_fasm-0.2.0.tar.gz.

File metadata

  • Download URL: fabulous_fasm-0.2.0.tar.gz
  • Upload date:
  • Size: 78.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for fabulous_fasm-0.2.0.tar.gz
Algorithm Hash digest
SHA256 082c883615b1aef99c17c73e6b52593c716e233fff3088d2e5e5ef0eb8a05929
MD5 a45ad7ab228474d4c9f3c0507f87d39f
BLAKE2b-256 6862865565db82da4fc627aa96d67f99a923b25181838b24f0d04a80acb8b455

See more details on using hashes here.

Provenance

The following attestation bundles were made for fabulous_fasm-0.2.0.tar.gz:

Publisher: publish-to-pypi.yml on FPGA-Research/FABulous-fasm

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file fabulous_fasm-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: fabulous_fasm-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 72.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for fabulous_fasm-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d9f0f24fb1158dcd7b57da62ba2478cf3a8323dbae83fe5d7bf3e05fac74bbf4
MD5 62ef2ddbf5a6fafa0cbbdc227743edd4
BLAKE2b-256 70e27e0491c5c2b07cfe60f7bccc30e2f10342bd8371f72b08accba9709de94b

See more details on using hashes here.

Provenance

The following attestation bundles were made for fabulous_fasm-0.2.0-py3-none-any.whl:

Publisher: publish-to-pypi.yml on FPGA-Research/FABulous-fasm

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

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