elasticai.creator.ir2verilog#

Package Contents#

Classes#

Data#

API#

class elasticai.creator.ir2verilog.Ir2Verilog[source]#

Bases: elasticai.creator.ir.LoweringPass[elasticai.creator.ir2verilog.ir2verilog.Implementation, elasticai.creator.ir2verilog.ir2verilog.Code]

register_static(name: str, fn: collections.abc.Callable[[], str]) None[source]#
__call__(args: collections.abc.Iterable[elasticai.creator.ir2verilog.ir2verilog.Implementation]) collections.abc.Iterator[elasticai.creator.ir2verilog.ir2verilog.Code][source]#
load_from_package(package: str) None[source]#
elasticai.creator.ir2verilog.type_handler#

‘FunctionDecorator(…)’

elasticai.creator.ir2verilog.type_handler_iterable#

‘FunctionDecorator(…)’

class elasticai.creator.ir2verilog.Node(name: str, data: dict[str, elasticai.creator.ir.base.Attribute])[source]#

Bases: elasticai.creator.ir.Node

implementation: str#

None

class elasticai.creator.ir2verilog.Implementation(*, graph: elasticai.creator.graph.Graph[str], data: dict[str, elasticai.creator.ir.Attribute])[source]#

Bases: elasticai.creator.ir.Implementation[elasticai.creator.ir2verilog.ir2verilog.Node, elasticai.creator.ir.Edge]

elasticai.creator.ir2verilog.Code: TypeAlias#

None

class elasticai.creator.ir2verilog.TemplateDirector[source]#

Director for verilog templates.

Most methods correspond to verilog language constructs.

Initialization

reset() Self[source]#
set_prototype(prototype: str) Self[source]#
parameter(name: str) Self[source]#
localparam(name: str) Self[source]#
replace_module_of_instance(name: str) Self[source]#
define_scoped_switch(name: str, default=True) Self[source]#

Add a switch for a define that is scoped to the module name.

The switch will be prefixed with the value that users provide as module_name to the render call.

add_module_name() Self[source]#
build() elasticai.creator.ir2verilog.templates.VerilogTemplate[source]#
class elasticai.creator.ir2verilog.VerilogTemplate(template: string.Template, defines: dict[str, bool])[source]#

Initialization

undef(name: str)[source]#

Disable a define switch, ie. comment out the define statement

define(name: str)[source]#

Enable a define switch, ie. uncomment the define statement

substitute(params: Mapping[str, str | bool]) str[source]#