Interconnect

This document is about implementing new Interconnect, check Interconnect generation to read about Interconnect concept in Topwrap.

Interconnect is base class for all interconnects, it has 3 generic classes that are used to represent params: InterconnectParams, InterconnectManagerParams and InterconnectSubordinateParams. All new implementations of interconnect need to be placed in in topwrap/interconnects/ and added to INTERCONNECT_TYPES. Each interconnect needs to have implemented Generator, refer to Generator to check how to implement one.

Base class for multiple interconnect generator implementations.

Interconnects connect multiple interface instances together in a many-to-many topology, combining multiple subordinates into a unified address space so that one or multiple managers can access them.

Base class for parameters/settings specific to a concrete interconnect type

Base class for subordinate parameters specific to a concrete interconnect type.

Transactions to addresses in range [self.address; self.address + self.size) will be routed to this subordinate.

Base class for manager parameters specific to a concrete interconnect type

InterconnectTypeInfo(intercon: Type[topwrap.model.interconnect.Interconnect], params: Type[topwrap.model.interconnect.InterconnectParams], man_params: Type[topwrap.model.interconnect.InterconnectManagerParams], sub_params: Type[topwrap.model.interconnect.InterconnectSubordinateParams])

INTERCONNECT_TYPES : dict[str, InterconnectTypeInfo]

Maps name to specific interconnect implementation. Used by YAML frontend.


Last update: 2025-10-30