FPGA Assembly (FASM) Parser and Generation library
This repository documents the FASM file format and provides parsing libraries and simple tooling for working with FASM files.
It provides both a pure Python parser based on textx and a significantly faster C parser based on ANTLR. The library will try and use the ANTLR parser first and fall back to the textx parser if the compiled module is not found.
Which parsers are supported by your currently install can be found via python3 -c "import fasm.parser as p; print(p.available). The currently in use parser can be found via fasm.parser.implementation.
It is highly recommended to use the ANTLR parser as it is about 15 times faster.
functions for parsing and generating FASM files.
Build Instructions
CMake is required, and ANTLR has a few dependencies:
sudo apt install cmake default-jre-headless uuid-dev libantlr4-runtime-dev
Pull dependencies in third_party:
git submodule update --init
Build:
make build
Test with:
python setup.py test
The ANTLR runtime can either be linked statically or as a shared library. Use the
--antlr-runtime=[static|shared] flag to select between the two modes e.g.:
python setup.py install --antlr-runtime=shared
Or, using pip:
pip install . --install-option="--antlr-runtime=shared" --no-use-pep517
The runtime will be built and statically linked by default. This flag is available in the build_ext, build, develop, and install commands.
The --no-use-pep517 flag is needed because there is currently no way to pass flags with PEP517.
Relevant issue: https://github.com/pypa/pip/issues/5771
FPGA Assembly (FASM)
FPGA Assembly is a file format designed by the SymbiFlow 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.
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 SymbiFlow Verilog to Routing fork, but we hope to get it merged upstream sometime soon.
It is also used by Project X-Ray.
Metadata
Release files for fasm 0.0.2.post80
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| fasm-0.0.2.post80.tar.gz | 80.4 kB | Without provenance | Details for fasm-0.0.2.post80.tar.gz |
Built distributions (wheels)
Total release size: 6.1 MB
Release files / fasm-0.0.2.post80.tar.gz
| Download URL | fasm-0.0.2.post80.tar.gz |
|---|---|
| Size | 80.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
df96c84b1d2e84956e95571eb998f911edbf7d66b901193362789fd919918cb5
|
|
BLAKE2b-256 checksum How to use checksums |
9cc6b322e667c004b3c0b7b4e44ffbd81a2e28568e08ba1d5f6c4ec5b72f1739
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7
|
Release files / fasm-0.0.2.post80-pp37-pypy37_pp73-win_amd64.whl
| Download URL | fasm-0.0.2.post80-pp37-pypy37_pp73-win_amd64.whl |
|---|---|
| Size | 67.1 kB |
| Tags | PyPy 3.7 PyPy 3.7 7.3 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
e47ffed4e7c16383955255f4fb7658747549f859a25f54f1477ba7e4893686ea
|
|
BLAKE2b-256 checksum How to use checksums |
d74cf1860587ebc6e2dc5d28d03f3c945a6b1e5566162fb20ab52299ae399b68
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.4.2 importlib_metadata/4.2.0 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 PyPy/7.3.5
|
Release files / fasm-0.0.2.post80-pp37-pypy37_pp73-macosx_10_15_x86_64.whl
| Download URL | fasm-0.0.2.post80-pp37-pypy37_pp73-macosx_10_15_x86_64.whl |
|---|---|
| Size | 395.6 kB |
| Tags | PyPy 3.7 PyPy 3.7 7.3 macOS 10.15+ x86-64 |
|
SHA-256 checksum How to use checksums |
2546877a992ab950ecc978091fd94c0de30ac67fd1ad03a1e67bb161a33acff8
|
|
BLAKE2b-256 checksum How to use checksums |
929a59b487b9ad1203a55f2b3672ee611369c30fee47b14be56ec93757de3c1a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.4.2 importlib_metadata/4.2.0 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 PyPy/7.3.5
|
Release files / fasm-0.0.2.post80-pp36-pypy36_pp73-win32.whl
| Download URL | fasm-0.0.2.post80-pp36-pypy36_pp73-win32.whl |
|---|---|
| Size | 67.1 kB |
| Tags | PyPy 3.6 PyPy 3.6 7.3 Windows x86-32 |
|
SHA-256 checksum How to use checksums |
1cb70d42e3a18707d795d6e3546cf6d086f0a2f17ab6982f1531c802c9d0af0c
|
|
BLAKE2b-256 checksum How to use checksums |
c0ba9ceb2c0cd328d7a0436c43f9a2189376d39c4d4d456ecb9d9ce11b14ec00
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.4.2 importlib_metadata/4.2.0 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 PyPy/7.3.3
|
Release files / fasm-0.0.2.post80-pp36-pypy36_pp73-macosx_10_15_x86_64.whl
| Download URL | fasm-0.0.2.post80-pp36-pypy36_pp73-macosx_10_15_x86_64.whl |
|---|---|
| Size | 395.6 kB |
| Tags | PyPy 3.6 PyPy 3.6 7.3 macOS 10.15+ x86-64 |
|
SHA-256 checksum How to use checksums |
644ff937cb50829e40289ddae916884d250cff7631a022f93a36ae78c999da1e
|
|
BLAKE2b-256 checksum How to use checksums |
3b85f642d34d65e46efcde8fa71b93642bfcde41d07efee52714f1ed7c97411e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.4.2 importlib_metadata/4.2.0 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 PyPy/7.3.3
|
Release files / fasm-0.0.2.post80-cp39-cp39-win_amd64.whl
| Download URL | fasm-0.0.2.post80-cp39-cp39-win_amd64.whl |
|---|---|
| Size | 67.1 kB |
| Tags | CPython 3.9 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
1296dd24858cda0ccbfead20ec1307c1e1357c138e0fea2d204c3e3561f6732b
|
|
BLAKE2b-256 checksum How to use checksums |
0ba6f4cbbfe1b9a594edad799a689bcc34964afdd74158466347a4a35863077e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7
|
Release files / fasm-0.0.2.post80-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
| Download URL | fasm-0.0.2.post80-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl |
|---|---|
| Size | 788.8 kB |
| Tags | CPython 3.9 Linux glibc 2.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
aa492c4d970120a15e786d421a23f3779963d9abcad2d19192e3c10250c0b515
|
|
BLAKE2b-256 checksum How to use checksums |
419f56829643ab8369b372b24e32341bb3be1f0af92663f5df41c7fb57f57ffa
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7
|
Release files / fasm-0.0.2.post80-cp39-cp39-macosx_10_15_x86_64.whl
| Download URL | fasm-0.0.2.post80-cp39-cp39-macosx_10_15_x86_64.whl |
|---|---|
| Size | 416.6 kB |
| Tags | CPython 3.9 macOS 10.15+ x86-64 |
|
SHA-256 checksum How to use checksums |
8ea71035fec195f244d2b23751f2245b411857ee8dafd5ce53192a85dcdc107c
|
|
BLAKE2b-256 checksum How to use checksums |
4053581c77c447fe253981022750d4641f2b596fa7ac2754a43e89e81f6bb11e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7
|
Release files / fasm-0.0.2.post80-cp38-cp38-win_amd64.whl
| Download URL | fasm-0.0.2.post80-cp38-cp38-win_amd64.whl |
|---|---|
| Size | 67.1 kB |
| Tags | CPython 3.8 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
390566cc941a5fc29beb5bfe16d0f984b273afccfb0d7219106e395ef1620a35
|
|
BLAKE2b-256 checksum How to use checksums |
9b8156de6dd41917cab48132af69ad5d346dfd6873022edd07c712ba050987c6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.8.10
|
Release files / fasm-0.0.2.post80-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
| Download URL | fasm-0.0.2.post80-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl |
|---|---|
| Size | 810.9 kB |
| Tags | CPython 3.8 Linux glibc 2.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
b38524181ce3a0d80d0e2f56c5ad11e7e539c7dec718c0577ea8a89c8da4e4dc
|
|
BLAKE2b-256 checksum How to use checksums |
dabee83d4827c40314893ba90989a5a746f8568df45e0de1fd5bd8968b6780d3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7
|
Release files / fasm-0.0.2.post80-cp38-cp38-macosx_10_15_x86_64.whl
| Download URL | fasm-0.0.2.post80-cp38-cp38-macosx_10_15_x86_64.whl |
|---|---|
| Size | 415.0 kB |
| Tags | CPython 3.8 macOS 10.15+ x86-64 |
|
SHA-256 checksum How to use checksums |
24ff374362580a920ac31b17ec0353cf693acb4781be4859285b151b11e8af4e
|
|
BLAKE2b-256 checksum How to use checksums |
681ab9d5166c604a1b042304e2b9ca78c45b20bfc2f0946cd3981169ef28c323
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.8.12
|
Release files / fasm-0.0.2.post80-cp37-cp37m-win_amd64.whl
| Download URL | fasm-0.0.2.post80-cp37-cp37m-win_amd64.whl |
|---|---|
| Size | 67.1 kB |
| Tags | CPython 3.7 CPython 3.7 pymalloc Windows x86-64 |
|
SHA-256 checksum How to use checksums |
954f6d6547136ce88b6bddcc61a56bd27532d8374e84dc3dca63ba998b297b7a
|
|
BLAKE2b-256 checksum How to use checksums |
e8d68a97ef9e88c5045731f42c67cccca0c81630235c4ea733ada4ebf301e826
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.4.2 importlib_metadata/4.2.0 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.7.9
|
Release files / fasm-0.0.2.post80-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
| Download URL | fasm-0.0.2.post80-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl |
|---|---|
| Size | 759.6 kB |
| Tags | CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
10aaa1c0c15c148f25bdc8b81ab0e0a29e4aebd3125e59e6fb6da4f3ef698ac0
|
|
BLAKE2b-256 checksum How to use checksums |
a0087370cad88ba2e6ed177cdd62e40517a4b32e54b95d436cfabda61f6dc0aa
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7
|
Release files / fasm-0.0.2.post80-cp37-cp37m-macosx_10_15_x86_64.whl
| Download URL | fasm-0.0.2.post80-cp37-cp37m-macosx_10_15_x86_64.whl |
|---|---|
| Size | 414.0 kB |
| Tags | CPython 3.7 CPython 3.7 pymalloc macOS 10.15+ x86-64 |
|
SHA-256 checksum How to use checksums |
2dd4b1414b3128915633c56bc97350826d427ca25928a0958adce470628f4dc7
|
|
BLAKE2b-256 checksum How to use checksums |
4c4b3582c59295988d83670989eb5d527a5ff07e3cd8cfbf3c49680473c5089a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.4.2 importlib_metadata/4.2.0 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.7.12
|
Release files / fasm-0.0.2.post80-cp36-cp36m-win_amd64.whl
| Download URL | fasm-0.0.2.post80-cp36-cp36m-win_amd64.whl |
|---|---|
| Size | 67.1 kB |
| Tags | CPython 3.6 CPython 3.6 pymalloc Windows x86-64 |
|
SHA-256 checksum How to use checksums |
74231b22d12804e50d70b9caeee54b12e388aed7a489560214002f7a8d4ef14b
|
|
BLAKE2b-256 checksum How to use checksums |
6ef68dcdaf5244ba6e9d2caf00669fed9d3d3180fbfae96b7e1fdb320e1e78c6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.4.2 importlib_metadata/4.2.0 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.6.8
|
Release files / fasm-0.0.2.post80-cp36-cp36m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
| Download URL | fasm-0.0.2.post80-cp36-cp36m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl |
|---|---|
| Size | 761.9 kB |
| Tags | CPython 3.6 CPython 3.6 pymalloc Linux glibc 2.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
29ebfb26b15b3c0bf99ec877a4600879d642db8cec287ae95799bf8b1c26fd56
|
|
BLAKE2b-256 checksum How to use checksums |
4bf3a9484b084763956e574e93b34c6753d568850f3245c741bc02b2dba5fb3b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7
|
Release files / fasm-0.0.2.post80-cp36-cp36m-macosx_10_15_x86_64.whl
| Download URL | fasm-0.0.2.post80-cp36-cp36m-macosx_10_15_x86_64.whl |
|---|---|
| Size | 413.6 kB |
| Tags | CPython 3.6 CPython 3.6 pymalloc macOS 10.15+ x86-64 |
|
SHA-256 checksum How to use checksums |
d46f1e1d8acd24445a2c0cf6276fa70df2829ddf50b6405034f50ae4bcd1e005
|
|
BLAKE2b-256 checksum How to use checksums |
bf848b17b66cb653c939ff468946245dea8174778589d6453651a0a87d4a8b96
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.4.2 importlib_metadata/4.2.0 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.6.15
|
Security for fasm 0.0.2.post80
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.