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.