2016-06-20 241 views
0

我們通常需要analysis_export數據傳輸從analysis_portanalysis_imp。它們充當從端口到實現的數據傳輸對象,因爲我們無法將analysis_imp連接到另一個analysis_imp爲什麼我們需要analysis_export當我們有analysis_port

但是,analysis_port-s可以連接到其他analysis_port-s。 所以我的問題是,爲什麼我們需要analysis_export,而不是analysis_export我們可以用analysis_port

+0

不知道是否理解你的解釋 你可以看看這裏:https://verificationacademy.com/verification-methodology-reference/uvm/docs_1.1a/html/files2/tlm1-txt.html,在「用法」部分。我想知道爲什麼而不是導出不使用端口對象? – haykp

+1

導出是**被動地響應**請求。另一方面,端口啓動請求。當數據包從「leaf1」傳輸到「comp1」時,層次結構改變* port-port *連接。現在,'comp1'和'comp2'處於同一層次,'comp2'只**響應**來自'comp1'的請求,因此它包含導出。類似的註釋適用於'comp2'到'subcomp2',因爲它們都只響應*。 – sharvil111

+0

謝謝你的回答 對不起,但我不明白 你的意思是被動地迴應? 如果comp2只響應來自comp1的請求,爲什麼這意味着我們需要導出? – haykp

回答

1

看起來像意圖可能是出口接口僅用於連接目的,端口接口將用於發送數據 - port.write(data); [導出不需要執行寫入功能]

但是Analysis_export和analysis_port在實現中似乎非常相似。它也看起來像也可以互換。它唯一的區別是MASK/type位說明它是哪種類型的接口 - export/port。除此之外,接口實現看起來是相同的。

主要區別在於當接口正在連接(連接功能)時,可以進行連接檢查。港口到港口,港口到出口,港口到進口,出口到出口,出口到進口。 這些可能用於確保我們使用export來傳播接口並最終將它們連接到某個實現。 但是從目前的實現看來,端口和導出都具有可以調用的寫函數,並且即使對於連接也可以互換使用。

唯一的問題是一旦一個端口連接到一個導出,它只能連接到其他導出並且必須在一個實現中終止。 [由於某種原因,只有一個端口連接不會產生任何運行時間]

也有可能在過去的某個時候他們可能會有不同的實現[只是猜測,誰跟隨了UVM的歷史可以回答。 ]

相關問題