91 const QHash<QString, QList<QSharedPointer<BusInterface>>>& startingPoints,
92 const QHash<QString, QList<QSharedPointer<EndpointData>>>& endPoints,
107 void openDesign(VLNV designVLNV);
115 void createInterconComponent(VLNV VLNV);
121 void findUnconnectedInterfaces();
129 void processStartingPointsAndEndpoints(
130 const QHash<QString, QList<QSharedPointer<BusInterface>>>& startingPoints,
131 const QHash<QString, QList<QSharedPointer<EndpointData>>>& endpoints);
141 std::vector<BusInterfaceInfo> processEndpointSide(
142 const QHash<QString, QList<QSharedPointer<EndpointData>>>& endpoints,
int& index);
152 std::vector<BusInterfaceInfo> processStartingSide(
153 const QHash<QString, QList<QSharedPointer<BusInterface>>>& startingPoints,
int& index);
167 const QString& instanceName,
const QSharedPointer<BusInterface>& bus,
168 bool isTop,
bool isEndpoint,
int& index);
177 void createBusInterface(std::string busName, std::string modeString,
int index);
189 std::string createBusInterface(VLNV busVLNV, std::string busName, std::string modeString,
int index);
197 void createRstorClkInterface(std::string busName,
int index);
205 void createPortMaps(std::string modeString, QSharedPointer<BusInterface> busInf);
214 void createPhysPorts(QSharedPointer<Component> comp, QString busName,
bool isTop =
false);
221 void finalizeBusInterfaceCustomization(
const std::vector<BusInterfaceInfo>& createdBuses);
230 void createAddressSpace(std::string spaceName, QString range, QString width =
"32");
237 void createGlobalAddressSpaceFromEndpoints(
238 const QHash<QString, QList<QSharedPointer<EndpointData>>>& endpoints);
243 void createChannel();
253 QSharedPointer<ConfigurableVLNVReference> resolveComponentVLNV(
254 const QString& instanceName,
bool isTop)
const;
263 bool isTargetInterface(
const QSharedPointer<BusInterface>& bus)
const;
275 std::string getInterfaceMode(QSharedPointer<BusInterface> bus,
bool isTarget,
bool isChannel,
bool isTop);
286 std::string getLogicalPortName(QSharedPointer<Component> comp, QString busName, QString physicalName)
const;
295 std::pair<QString, QString> getWidthBoundsFromAbstraction(
const std::string& logicalName)
const;
304 std::pair<QString, QString> getMirroredWidthBounds(
const QString& physicalName)
const;
314 quint64 parseIpxactHex(
const QString& str,
bool* ok);
319 void createFileAndFileset();
332 QSharedPointer<Component> interconComponent_{
nullptr };
335 QSharedPointer<Design> design_{
nullptr };
338 QSharedPointer<ComponentParameterFinder> parameterFinder_{
339 new ComponentAndInstantiationsParameterFinder(
nullptr) };
342 QSharedPointer<ExpressionParser> expressionParser_{
343 new IPXactSystemVerilogParser(parameterFinder_) };
346 QSharedPointer<ListParameterFinder> absDefParameterFinder_{
new ListParameterFinder()};
349 QSharedPointer<ExpressionParser> absDefExpressionParser_{
new IPXactSystemVerilogParser(absDefParameterFinder_)};
352 QSharedPointer<ExpressionFormatter> expressionFormatter_{
353 new ExpressionFormatter(parameterFinder_) };
356 BusInterfaceInterface* busInfInterface_{
nullptr };
359 QSharedPointer<PortValidator> portValidator_{
360 new PortValidator(expressionParser_,
361 QSharedPointer<QList<QSharedPointer<View>> >()) };
364 PortsInterface* portsInterface_{
365 new PortsInterface(portValidator_, expressionParser_, expressionFormatter_) };
368 PortAbstractionInterface* portAbsInterface_{
369 new PortAbstractionInterface(expressionParser_, expressionFormatter_) };
372 InterconnectionInterface* connectionInterface_{
new InterconnectionInterface() };
375 AdHocConnectionInterface* adhocConnectionInterface_{
new AdHocConnectionInterface() };
378 ComponentInstanceInterface* instanceInterface_{
379 new ComponentInstanceInterface(connectionInterface_, adhocConnectionInterface_) };
382 AbstractionTypeInterface* absTypeInf_{
nullptr };
385 ConfigStruct* config_;
390 QList<QSharedPointer<BusInterface>> initiators_;
393 QList<QSharedPointer<BusInterface>> targets_;
402 std::string globalAddressSpaceName_;
405 std::string clockName_;
408 std::string rstName_;