跳转到主要内容

FPGA汇编(FASM)解析器和生成库

项目描述

FPGA汇编(FASM)解析器和生成库

此存储库记录了FASM文件格式,并提供了解析库和简单工具,用于处理FASM文件。

它提供了一种基于 textx 的纯Python解析器和一种基于 ANTLR 的显著更快的C解析器。库将首先尝试使用ANTLR解析器,如果找不到编译的模块,则回退到textx解析器。

可以通过python3 -c "import fasm.parser as p; print(p.available)"找到您当前安装支持的解析器。当前使用的解析器可以通过fasm.parser.implementation找到。

强烈推荐使用ANTLR解析器,因为它大约快15倍。

解析和生成FASM文件的功能。

构建说明

CMake是必需的,ANTLR有一些依赖关系

sudo apt install cmake default-jre-headless uuid-dev libantlr4-runtime-dev

third_party 中拉取依赖项

git submodule update --init

构建

make build

使用 ... 测试

python setup.py test

ANTLR 运行时可以静态链接或作为共享库。使用 --antlr-runtime=[static|shared] 标志在两种模式之间选择,例如:

python setup.py install --antlr-runtime=shared

或者,使用 pip

pip install . --install-option="--antlr-runtime=shared" --no-use-pep517

默认情况下,将构建运行时并将其静态链接。此标志可在 build_ext、build、develop 和 install 命令中使用。

需要使用 --no-use-pep517 标志,因为目前无法使用 PEP517 传递标志。相关问题:https://github.com/pypa/pip/issues/5771

FPGA 组装(FASM)

FPGA 组装是由 F4PGA 项目 开发者设计的一种文件格式,用于为配置 FPGA 内部提供纯文本文件格式。

它旨在允许 FPGA 布局和路由不需要关心 FPGA 上使用的实际位流格式。

FASM Ecosystem Diagram

属性

  • 从 FASM 文件中删除一行后,您将保留一个有效的 FASM 文件。
  • 允许使用人类可读的注释进行注释。
  • 允许使用“计算机可读”的注释进行注释。
  • 有用于表示内存 / lut 初始化位 / 其他大型数据数组的语法糖。
  • 有一个规范形式。
  • 不需要任何特定的位流格式。

支持

FASM 目前由 F4PGA Verilog to Routing 分支 支持,但我们希望它不久就能合并到上游。

它也被 Project X-Ray 使用。

项目详情


下载文件

下载适用于您的平台的文件。如果您不确定选择哪个,请了解有关 安装包 的更多信息。

源分布

此版本没有可用的源代码分发文件。请参阅有关 生成分发存档 的教程。

构建分布

fasm-0.0.2.post100-pp37-pypy37_pp73-win_amd64.whl (73.8 kB 查看散列值)

上传时间 PyPy Windows x86-64

fasm-0.0.2.post100-pp37-pypy37_pp73-macosx_11_0_x86_64.whl (399.0 kB 查看散列值)

上传时间 PyPy macOS 11.0+ x86-64

fasm-0.0.2.post100-pp36-pypy36_pp73-win32.whl (73.8 kB 查看散列值)

上传时间 PyPy Windows x86

fasm-0.0.2.post100-cp39-cp39-win_amd64.whl (73.8 kB 查看散列值)

上传时间 CPython 3.9 Windows x86-64

fasm-0.0.2.post100-cp39-cp39-macosx_11_0_x86_64.whl (420.4 kB 查看哈希值)

上传时间: CPython 3.9 macOS 11.0+ x86-64

fasm-0.0.2.post100-cp38-cp38-win_amd64.whl (73.8 kB 查看哈希值)

上传时间: CPython 3.8 Windows x86-64

fasm-0.0.2.post100-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (820.3 kB 查看哈希值)

上传时间: CPython 3.8 manylinux: glibc 2.12+ x86-64

fasm-0.0.2.post100-cp38-cp38-macosx_11_0_x86_64.whl (419.0 kB 查看哈希值)

上传时间: CPython 3.8 macOS 11.0+ x86-64

fasm-0.0.2.post100-cp37-cp37m-win_amd64.whl (73.8 kB 查看哈希值)

上传时间: CPython 3.7m Windows x86-64

fasm-0.0.2.post100-cp37-cp37m-macosx_11_0_x86_64.whl (418.1 kB 查看哈希值)

上传时间: CPython 3.7m macOS 11.0+ x86-64

fasm-0.0.2.post100-cp36-cp36m-win_amd64.whl (73.8 kB 查看哈希值)

上传时间: CPython 3.6m Windows x86-64

fasm-0.0.2.post100-cp36-cp36m-macosx_11_0_x86_64.whl (417.3 kB 查看哈希值)

上传时间: CPython 3.6m macOS 11.0+ x86-64

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面