所以不得不調研了很多關於這個,所以我想我會回答,但這裏的是什麼主意,
模擬總線的交易,就像讀了總線功能模型(BFM)的思考和WRITE,減少了對同一時間進行時序分析的測試平臺的開銷。對BFM有更多的解釋,BFM通常通過使數據更專注於減少測試平臺的工作。
好吧,這是一個高層次的答案,讓我們深入一點,BFM的
覺得作爲測試平臺塊內,它位於整個塊,當測試臺需要執行的任務例如,他想寫一個特定的地址,它要求BFM在該地址寫入BFM,這是一個黑盒子,用於測試臺,同時負責處理時間。它可以由可以由測試臺加載的文件驅動,也可以由測試臺用於執行事務的一堆任務來驅動。
被測設計(DUT)對BFM交易的響應是測試人員對設計感興趣的。有人可能會爭辯說,BFM可能會根據DUT而改變,這就是每個人所說的更好的BFM的區別。
如果BFM可以有一個可以加載的配置向量,以根據DUT規範進行初始化和行爲,那麼它可以幫助測試其他設計。
此外,BFM可以定義爲抽象的虛擬函數(在SV中),它可以基於DUT進一步具體實現。
virtual class apb_bfm;
pure virtual task writeData(int unsigned addr, int unsigned data);
pure virtual task readData (int unsigned addr, output int unsigned data);
pure virtual task initializeSignals();
endclass
上面BFM抽象是對於APB萬事達,即確實提到的,每個這些的低級別的細節必須由接口被封裝並以具有時鐘的健全性以及計時塊的任務抽象接口類型。我在本節中引用了一本書,它精美地描述瞭如何構建測試平臺和設計事務級模型(TLM)。閱讀這篇文章將使你很好地理解如何設計一個。
另外這paper關於抽象BFMs提供了一個好的想法,如何BFM應該建模爲一個好的設計。 APB示例源自此。
以下關於如何將BFM放置在測試框架中的圖像是我可以從Bergeron的書中收集的。
希望那會是什麼BFMS有一個基本的瞭解。當然,寫一篇文章並開始工作很困難,但是這些基礎知識可以讓你對它有一個高層次的瞭解。
參考書籍: Bergeron,J.(n.d.)。在System Verilog中編寫TestBenches。斯普林格。
的一個很好的例子是任何行爲的交易精確的模型提供RTL刺激作爲intrpreting其輸入,用Verilog或C++或任何的結果。 https://en.wikipedia.org/wiki/Bus_Functional_Model。你可以谷歌的。 – Serge