2016-06-20 7 views
0

Wir benötigen normalerweise analysis_export für die Datenübertragung von analysis_port zu analysis_imp. Sie dienen als Datenübertragungsobjekte von Ports zu Implementierungen, da wir analysis_imp nicht mit einem anderen analysis_imp verbinden können.Warum wir analyse_export brauchen, wenn wir haben analyse_port

Die analysis_port -s können jedoch mit anderen analysis_port-s verbunden werden. Also meine Fragen ist, warum wir analysis_export brauchen, wenn wir statt analysis_export einfach analysis_port verwenden können?

+0

nicht sicher, dass Ihre Erklärung verstanden Könnten Sie bitte einen Blick hier werfen: https://verificationacademy.com/verification-methodology-reference/uvm/docs_1.1a/html/files2/tlm1-txt.html, in Abschnitt "Verwendung" Ich möchte wissen, warum anstelle des Exports nicht Port-Objekt zu verwenden? – haykp

+1

Der Export ist etwas, das ** auf eine Anfrage passiv reagiert. Auf der anderen Seite initiiert Port die Anfrage. Wenn das Paket von "leaf1" zu "comp1" wandert, ändert sich die Hierarchie daher * port-port * connection. Nun haben 'comp1' und' comp2' die gleiche Hierarchie, 'comp2' nur ** reagiert auf eine Anfrage von' comp1' und enthält daher den Export. Ähnliche Kommentare gelten für 'comp2' bis' subcomp2', da beide nur * antworten *. – sharvil111

+0

Vielen Dank für die Antwort Sorry, aber ich verstehe nicht Was meinst du saing passiv reagiert? wenn comp2 nur auf comp1 Anfrage anfordert, warum es bedeutet, dass wir exportieren müssen? – haykp

Antwort

1

Sieht so aus, als ob die Exportschnittstellen nur für Verbindungszwecke verwendet werden sollen und die Portschnittstellen zum Senden der Daten verwendet werden sollen - port.write (data); [ein Export braucht die Schreibfunktion nicht zu implementieren]

ABER der analyse_export und analysis_port scheinen in der Implementierung sehr ähnlich zu sein. sieht es auch so aus das kann auch vertauscht werden. Der einzige Unterschied ist das MASK/type-Bit, das sagt, welcher Typ von Schnittstelle es ist - export/port. Andere, dass dies die Schnittstellenimplementierung scheint gleich zu sein.

Der Hauptunterschied ist, wenn die Schnittstellen verbunden werden (Verbindungsfunktion), wird eine Überprüfung durchgeführt, wie die Verbindung hergestellt werden kann. Port-zu-Port, Port-zu-Export, Port-zu-Imp, Export-zu-Export, Export-zu-Imp. Diese können verwendet werden, um sicherzustellen, dass wir den Export verwenden, um Schnittstellen zu propagieren und sie schließlich mit einer Implementierung zu verbinden. Aber von der aktuellen Implementierung sieht es so aus, als ob sowohl der Port als auch der Export Schreibfunktionen haben, die aufgerufen werden können, und sie können auch für Verbindungen austauschbar verwendet werden.

Der einzige Haken ist, sobald ein Port mit einem Export verbunden ist, er kann nur mit anderen Exporten verbinden und muss bei einer Implementierung enden. [aus irgendeinem Grund erzeugt nur eine Port-Port-Verbindungen keine Laufzeit]

Auch ist es möglich, irgendwann in der Vergangenheit haben sie möglicherweise verschiedene Implementierungen [nur spekulieren, jemand, der die Geschichte des UVM verfolgt hat könnte antworte darauf. ]