Nic30 / hwt

VHDL/Verilog/SystemC code generator, simulator API written in python/c++
MIT License
202 stars 27 forks source link
codegen codegenerator compiler fpga hcl hls rtl simulator systemc systemverilog uvm verilog vhdl

HWToolkit (hwt),

the library for hardware development in Python

CircleCI Coverage Status PyPI version Documentation Status Python version Join the chat at https://gitter.im/hwt-community/community

Keywords

How HWT can help you?

Features

HWT uses hilevel-netlists for internal representation of target design. Optimized netlists are generated from usual code statements, function calls, statements etc (hw processes are automatically resolved). This netlist is easy to use and easy to modify or analyse by user if there is something missing in main library. Also serialization modes allows to tweaks how component should behave during serialization.

HWT performs no HLS planing or schedueling. HWT is also good as API for code generating by more advanced tools. Hierarchy of components/interfaces/types is not limited. User specifed names are checked for collision with target language.

HWT designs are objects. No specific compiler execution is required, just run python3, import the thing and use to_rtl metod or other (take a look at examples).

HWT ecosystem

hwt_ecosystem_packages.png

Installation

This library is a regular python package. You can install it using:

# system-wide, use -u for local use only
sudo pip3 install hwt

# or directly from git
pip3 install --upgrade --force-reinstall --no-cache-dir -r https://raw.githubusercontent.com/Nic30/hwt/master/doc/requirements.txt git+https://github.com/Nic30/hwt.git@master#egg=hwt

Then you are able to use functions and classes defined in the hwt library from a python console or script. Installation of hwtLib is recomended as it contains common interfaces, agents, components etc...

FAQ

Similar projects

Dictionary

Related open-source

Board support libraries (Potential candidates for public integration)

Sources of informations in this area