Skip to content
Nic30 edited this page Sep 21, 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.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...
  • hwt.pyUtils - general purpose python utils

Structure hwt of type system

hwt_type_system_parts

Operators and conversions are defined on HdlType class. This methods are called from RtlSignal/Signal/Value instances. HdlType instance is available in _dtype property of RtlSignal/Signal/Value. Each HdlType class has also specific Value class for example HdlType Bits has Value class BitsVal.

HWToolkit tutorials

Simulation and verification

Clone this wiki locally