90 const QHash<QString, QList<QSharedPointer<BusInterface>>>& startingPoints,
91 const QHash<QString, QList<QSharedPointer<EndpointData>>>& endPoints,
106 void openDesign(VLNV designVLNV);
114 void createInterconComponent(VLNV VLNV);
120 void findUnconnectedInterfaces();
128 void processStartingPointsAndEndpoints(
129 const QHash<QString, QList<QSharedPointer<BusInterface>>>& startingPoints,
130 const QHash<QString, QList<QSharedPointer<EndpointData>>>& endpoints);
140 std::vector<BusInterfaceInfo> processEndpointSide(
141 const QHash<QString, QList<QSharedPointer<EndpointData>>>& endpoints,
int& index);
151 std::vector<BusInterfaceInfo> processStartingSide(
152 const QHash<QString, QList<QSharedPointer<BusInterface>>>& startingPoints,
int& index);
166 const QString& instanceName,
const QSharedPointer<BusInterface>& bus,
167 bool isTop,
bool isEndpoint,
int& index);
176 void createBusInterface(std::string busName, std::string modeString,
int index);
188 std::string createBusInterface(VLNV busVLNV, std::string busName, std::string modeString,
int index);
196 void createRstorClkInterface(std::string busName,
int index);
204 void createPortMaps(std::string modeString, QSharedPointer<BusInterface> busInf);
213 void createPhysPorts(QSharedPointer<Component> comp, QString busName,
bool isTop =
false);
220 void finalizeBusInterfaceCustomization(
const std::vector<BusInterfaceInfo>& createdBuses);
229 void createAddressSpace(std::string spaceName, QString range, QString width =
"32");
236 void createGlobalAddressSpaceFromEndpoints(
237 const QHash<QString, QList<QSharedPointer<EndpointData>>>& endpoints);
242 void createChannel();
252 QSharedPointer<ConfigurableVLNVReference> resolveComponentVLNV(
253 const QString& instanceName,
bool isTop)
const;
262 bool isTargetInterface(
const QSharedPointer<BusInterface>& bus)
const;
274 std::string getInterfaceMode(QSharedPointer<BusInterface> bus,
bool isTarget,
bool isChannel,
bool isTop);
285 std::string getLogicalPortName(QSharedPointer<Component> comp, QString busName, QString physicalName)
const;
294 std::pair<QString, QString> getWidthBoundsFromAbstraction(
const std::string& logicalName)
const;
303 std::pair<QString, QString> getMirroredWidthBounds(
const QString& physicalName)
const;
313 quint64 parseIpxactHex(
const QString& str,
bool* ok);
318 void createFileAndFileset();
331 QSharedPointer<Component> interconComponent_{
nullptr };
334 QSharedPointer<Design> design_{
nullptr };
337 QSharedPointer<ComponentParameterFinder> parameterFinder_{
338 new ComponentAndInstantiationsParameterFinder(
nullptr) };
341 QSharedPointer<ExpressionParser> expressionParser_{
342 new IPXactSystemVerilogParser(parameterFinder_) };
345 QSharedPointer<ExpressionFormatter> expressionFormatter_{
346 new ExpressionFormatter(parameterFinder_) };
349 BusInterfaceInterface* busInfInterface_{
nullptr };
352 QSharedPointer<PortValidator> portValidator_{
353 new PortValidator(expressionParser_,
354 QSharedPointer<QList<QSharedPointer<View>> >()) };
357 PortsInterface* portsInterface_{
358 new PortsInterface(portValidator_, expressionParser_, expressionFormatter_) };
361 PortAbstractionInterface* portAbsInterface_{
362 new PortAbstractionInterface(expressionParser_, expressionFormatter_) };
365 InterconnectionInterface* connectionInterface_{
new InterconnectionInterface() };
368 AdHocConnectionInterface* adhocConnectionInterface_{
new AdHocConnectionInterface() };
371 ComponentInstanceInterface* instanceInterface_{
372 new ComponentInstanceInterface(connectionInterface_, adhocConnectionInterface_) };
375 AbstractionTypeInterface* absTypeInf_{
nullptr };
378 ConfigStruct* config_;
383 QList<QSharedPointer<BusInterface>> initiators_;
386 QList<QSharedPointer<BusInterface>> targets_;
395 std::string globalAddressSpaceName_;
398 std::string clockName_;
401 std::string rstName_;