2014-11-22 52 views
0

我有一個頂級文件,我有一個接口的實例。這是我在頂層文件中的代碼接口端口必須通過一個實際的接口:系統verilog

LC3_io top_io; // LC3_io is the interface which is defined seperately in my interfaces file. 

LC3_test test(top_io); // Passing the interface to my testbench 

測試是我LC3_test(測試平臺)的實例。

現在,將這個接口傳遞給我的測試平臺。我有一個單獨的測試臺文件,其中我的第一行代碼是:

program automatic LC3_test(LC3_io.TB top_io); 

我在測試平臺上寫了一些其他的代碼。

當我試圖模擬測試平臺的問題是:

**Fatal: (vsim-3695) DUT_Testing.sv(0) : The interface port 'top_io' must be passed an actual interface. 
FATAL ERROR while loading design. 

我不明白的地方的問題可能在於。我正在使用vlog編譯所有必需的文件,並嘗試使用vsim運行/模擬我的測試平臺。我嘗試刪除程序,並使用模塊,而不是測試臺,但問題仍然存在。有什麼我在這裏失蹤?謝謝

+0

即使它們存在於標準中,也不會使用「程序」塊。 – 2014-11-22 11:21:28

+0

LC3_io.TB是modport嗎? – 2014-11-22 11:21:52

回答

1

在我看來,類型不匹配。您期望爲您的程序塊提供類型爲LC3_io.TB的參數,但是您傳入的類型爲LC3_io。嘗試將代碼更改爲:

// pass the TB modport from 'top_io' 
LC3_test test(top_io.TB); 
+0

謝謝,我已經解決了這個問題 - 我在測試平臺中生成時鐘而不是頂部文件,然後將時鐘傳遞給測試臺和DUT。對不起,真的很晚回覆。似乎在參數中使用modport並沒有任何效果。 – 2015-07-22 15:48:55

+0

@ MojoJojo58有點像工具bug。無論如何,Modports和東西感覺就像未知的領域。他們在紙上聽起來不錯,但很多時候他們並沒有真正實施。 – 2015-07-22 20:34:26