1
我想模擬具有簡單的地址/數據接口的模塊。我想創建一個單獨的模塊作爲模塊的交易者。因此,例如,我可以簡單地在交易模塊中調用一個任務來執行地址和數據的寫入。例如用於模擬的模塊瞬變
Transactor.Write_Task(0, 123); //Writes 123 to Addr 0.
我的問題是,我應該做一個include
包括在測試平臺上交易者模塊?或者是單獨編譯交易者並將其實例化並將其連接起來的好方法,就好像它是另一個被測試的單元一樣? e.g:
\lib_Local_Bus.Local_Bus_Transactor Transactor
(
.i_LB_Clk(w_LB_Clk),
.o_LB_CS(w_LB_CS),
.o_LB_Wr_Rd_n(w_LB_Wr_Rd_n),
.o_LB_Addr8(w_LB_Addr8),
.o_LB_Wr_Data(w_LB_Wr_Data),
.i_LB_Rd_Data(w_LB_Rd_Data),
.i_LB_Rd_DV(w_LB_Rd_DV)
);
我覺得這是很容易直接包括它與include
,但後來我需要正確地指向它,這可能是一個問題。通過預編譯,將它像UUT那樣實例化,然後連接起來,還有更多的代碼,但是對於發生的事情來說更直接。
爲什麼不將兩個文件作爲兩個單獨的文件一起編譯? – Ari 2014-09-26 18:20:01
@Ari,我相信這就是我在使用'include'的地方所做的。交易者和測試臺都在他們自己的文件中。當我將交易者包含在結核病中時,它將它們編譯在一起。 – Russell 2014-09-26 18:23:20
測試將在測試平臺的頂部調用這些任務在哪裏?你有權訪問SystemVerilog嗎?它有很多功能可以幫助您組織測試臺並使其更加可重用。 – 2014-09-29 16:23:24