{"id":13648182,"url":"https://github.com/chipsalliance/fasm","last_synced_at":"2025-04-09T10:05:52.017Z","repository":{"id":37023507,"uuid":"153705342","full_name":"chipsalliance/fasm","owner":"chipsalliance","description":"FPGA Assembly (FASM) Parser and Generator","archived":false,"fork":false,"pushed_at":"2022-07-25T14:57:14.000Z","size":5160,"stargazers_count":91,"open_issues_count":32,"forks_count":30,"subscribers_count":14,"default_branch":"master","last_synced_at":"2025-04-02T09:09:35.874Z","etag":null,"topics":["bitstream","bitstream-format","f4pga","fasm","fpga","fpga-assembly","parser","symbiflow"],"latest_commit_sha":null,"homepage":"https://fasm.readthedocs.io","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/chipsalliance.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-10-19T00:42:26.000Z","updated_at":"2025-03-15T14:35:36.000Z","dependencies_parsed_at":"2022-08-08T19:00:55.087Z","dependency_job_id":null,"html_url":"https://github.com/chipsalliance/fasm","commit_stats":null,"previous_names":["symbiflow/fasm"],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chipsalliance%2Ffasm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chipsalliance%2Ffasm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chipsalliance%2Ffasm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chipsalliance%2Ffasm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/chipsalliance","download_url":"https://codeload.github.com/chipsalliance/fasm/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248018060,"owners_count":21034048,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bitstream","bitstream-format","f4pga","fasm","fpga","fpga-assembly","parser","symbiflow"],"created_at":"2024-08-02T01:04:02.287Z","updated_at":"2025-04-09T10:05:52.000Z","avatar_url":"https://github.com/chipsalliance.png","language":"Python","funding_links":[],"categories":["Python"],"sub_categories":[],"readme":"## FPGA Assembly (FASM) Parser and Generation library\n\nThis repository documents the FASM file format and provides parsing libraries and simple tooling for working with FASM files.\n\nIt 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.\n\nWhich 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`.\n\nIt is highly recommended to use the ANTLR parser as it is about 15 times faster.\n\nfunctions for parsing and generating FASM files.\n\n## Build Instructions\n\nCMake is required, and ANTLR has a few dependencies:\n\n    sudo apt install cmake default-jre-headless uuid-dev libantlr4-runtime-dev\n\nPull dependencies in `third_party`:\n\n    git submodule update --init\n\nBuild:\n\n    make build\n\nTest with:\n\n    python setup.py test\n\nThe ANTLR runtime can either be linked statically or as a shared library. Use the\n`--antlr-runtime=[static|shared]` flag to select between the two modes e.g.:\n\n    python setup.py install --antlr-runtime=shared\n\nOr, using `pip`:\n\n    pip install . --install-option=\"--antlr-runtime=shared\" --no-use-pep517\n\nThe runtime will be built and statically linked by default. This flag is available in the build_ext, build, develop, and install commands.\n\nThe --no-use-pep517 flag is needed because there is currently no way to pass flags with PEP517.\nRelevant issue: https://github.com/pypa/pip/issues/5771\n\n## FPGA Assembly (FASM)\n\nFPGA Assembly is a file format designed by the\n[F4PGA Project](https://f4pga.org/) developers to provide a plain\ntext file format for configuring the internals of an FPGA.\n\nIt is designed to allow FPGA place and route to not care about the *actual*\nbitstream format used on an FPGA.\n\n![FASM Ecosystem Diagram](docs/_static/image/fasm-diagram.png)\n\n### Properties\n\n * Removing a line from a FASM file leaves you with a valid FASM file.\n * Allow annotation with human readable comments.\n * Allow annotation with \"computer readable\" comments.\n * Has syntactic sugar for expressing memory / lut init bits / other large\n   arrays of data.\n * Has a canonical form.\n * Does not require any specific bitstream format.\n\n### Supported By\n\nFASM is currently supported by the\n[F4PGA Verilog to Routing fork](https://github.com/f4pga/vtr-verilog-to-routing),\nbut we hope to get it merged upstream sometime soon.\n\nIt is also used by [Project X-Ray](https://github.com/f4pga/prjxray).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchipsalliance%2Ffasm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fchipsalliance%2Ffasm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchipsalliance%2Ffasm/lists"}