Skip to content
Nic30 edited this page Sep 19, 2018 · 27 revisions

HWT design workflow

hwt_design_paths

Desing in in form of Unit instance. From this instance it is possible to generate target HDL/IPcore. Or it can be simulated.

HWT structure

  • hwt.hld - HDL related objects for internal representation

  • hwt.interfaces - Collection of most essential interfaces like Signal, Clk, Rst, Rst_n...

  • hwt.serializer - Converters from internal representation to VHDL/Verilog/SystemC/IPcore/...

  • hwt.simulator - RTL based simulator and simulator utils.

  • hwt.synthesizer - Tools for generating of internal representation from HWT hw description.

  • hwt.code - Contains most of code operations used in HWT hw descriptions like:

    • If, Switch and other statements,
    • advanced connection methods like fitTo, connect,
    • arithmetic operators and functions like slr, isPow2, log2ceil
  • hwt.hdl - Classes which representing hdl structures like Entity, Architecture, RtlSignal, hdl types, etc. Object of these classes we call internal representation of HWT. Most of this module is quite low level but there are some part which you will surely use:

    • hwt.hdl.typeShortcuts - this file contains definitions of most used hdl types which can be used in HWT hw descriptions

    • hwt.hdl.constants - Most used constants like Time, Direction, etc...

Internals

  • structure hwt of typesystem

hwt_type_system_parts

  • hwt.pyUtils - general purpose python utils

HWToolkit tutorials

Simulation and verification

Clone this wiki locally