Graph Representation

Netlist

class frontend.Netlist[source]

A netlist is a collection of modules

Module

class frontend.Module[source]

Module class represents a module in a Verilog netlist. In LEAP, a module is:

  • A Frame, which is a collection of ports

  • A CDFG (BNGraph), which is the control/data flow graph of the module

  • A ParameterHandler, which describes the reconfigurable parameters of the module

  • A Macros, which contains the macros defined in the module (constant values)

Port

class frontend.Port(variable: DFGNode, range: Optional[Range] = None, direction: Optional[PortDirection] = None, type: Optional[PortType] = None)[source]

A port is the elementary unit of a frame.

Assignment

class frontend.Assignment(target: DFGNode, expression: DFGNode, condition: Optional[DFGNode] = None, event: Optional[DFGNode] = None, isBlocking: bool = True)[source]

Assignments are the elementary statements in the module.

  • target (DFGNode): the target variable

  • expression (DFGNode): the expression to be assigned to the target

  • condition (DFGNode): the condition under which the assignment is valid

  • event (DFGNode): the event under which the assignment is valid