Frontend¶
Frontend is a class that transforms a specific format into IR. There are multiple frontends:
SystemVerilogFrontend class supports SystemVerilog and Verilog files
KpmFrontend class supports Pipeline Manager files
YamlFrontend class supports YAML files
IpXactFrontend class supports IP-XACT 2022 files
Frontends may be initialized with predefined modules and interfaces, which are
used to resolve references while parsing. Parsed modules are returned in
FrontendParseOutput, including modules whose identifiers match predefined
modules. The handling of interfaces in FrontendParseOutput differs between
frontends: SystemVerilogFrontend returns parsed or reused interface
definitions, IpXactFrontend returns interface definitions parsed from
abstractionDefinition files, while YamlFrontend and KpmFrontend only use
predefined interfaces during parsing and do not return them. AutomaticFrontend
preserves the behavior of the frontend it delegates to.
SystemVerilogFrontend¶
SystemVerilogFrontend class is used to parse System Verilog and Verilog files. It is mainly used for adding modules to a repo, connected by Topwrap in a design.yaml.
KpmFrontend¶
KpmFrontend class is used to parse KPM-specific files. It is mainly used for getting a design from a GUI.
YamlFrontend¶
YamlFrontend class is used to parse design.yaml and module.yaml files. It follows a format specified in design description.
IpXactFrontend¶
IpXactFrontend class is used to parse existing IP-XACT files the same way as SystemVerilogFrontend. Not all tags defined in the 2022 specification are supported.
This frontend supports parsing component, design and abstractionDefinition root tags. Supported features are:
VLNV,parameters,portsandbusInterfacesincomponentroot tag.viewstag is unused and only onedesignConfigurationInstantiationis supported. Only onecomponentInstantiationtag is supported.componentInstances,adHocConnectionsandinterconnectionsindesignroot tag.ports, with support for onlylogicalName,onTargetandonInitiatorinportinabstractionDefinitionroot tag.