pyxls — Python bindings for XLS

GitHub PyPI Apache 2.0

pyxls is a python Python bindings for the XLS (eXtensible Logic Synthesis) compiler infrastructure. XLS is a high-level synthesis toolkit for generating RTL (Register Transfer Level) hardware descriptions from high-level specifications.

Note

pyxls is a third-party project interfacing with the XLS C API. It is not affiliated, endorsed, or maintained by the XLS team at Google.

Warning

pyxls is in early development. The API is not stable and may change without deprecation.

pyxls exposes the libxls.so’s C API to python, mostly in 1:1 fashion, and some pythonic wrappers for some of them.

libxls.so provides the following APIs that are exposed in pyxls:

  • IR Operations: build, view, optimize, and tweak XLS IR

  • DSLX Operations: parse and typecheck DSLX code

  • Simulation: execute XLS functions or DSLX code with interpretation or JIT

  • Verilog AST: construct and emit Verilog/SystemVerilog files via an AST API

    • binding could be buggy for now, use with caution

  • Code Emission: schedule and codegen XLS IR to produce Verilog output

Index

Indices and tables