uvm 形式验证_一种基于UVM的总线验证方法与流程
本發明涉及芯片設計的功能驗證領域,尤其是一種基于UVM的總線驗證方法。
背景技術:
隨著集成電路工藝的不斷進步,集成電路的規模和復雜度也在不斷地提高,驗證的難度也越來越大。在集成電路設計中,驗證工作已經占到了整個研發周期的一半以上,而驗證的效率直接關系到芯片的質量和上市速度,所以對驗證方法和技術都提出了越來越高的要求。
UVM驗證方法學是最新一代的驗證方法學,其充分繼承了OVM和VMM等驗證方法學的優點。UVM驗證方法學提供了結構統一的驗證平臺框架和一整套構建驗證平臺組件的類庫,使用UVM驗證方法學可以提高驗證效率、降低驗證成本,從而使產品及時推向市場。
總線是連接計算機硬件系統內多種設備的通信線路,如PCIe、USB、UART、I2C等。在總線中一般都存在主機和從機,并且有的總線中還允許存在多個主機,在對總線進行驗證時,如何解決主機和從機之間的數據交互是總線協議驗證中的一個難點。
技術實現要素:
本發明的目的在于克服上述不足,提出了一種基于UVM驗證方法學的總線驗證方法,其能夠非常方便地對總線協議進行驗證。
為了解決上述技術問題,本發明搭建了一個具備高可重用性的總線驗證平臺,其包括:
測試向量TESTS,用于建立和配置驗證環境,并運行相應的測試。
虛擬序列vseq,用于調度主機seq和從機seq的運行。
驗證環境env,其內部封裝了驗證總線所需的其他驗證組件,包括虛擬序列器vsqr、主機agent、從機agent、記分板scoreboard和覆蓋率模型。
虛擬序列器vsqr,用于啟動虛擬序列vseq。
主機agent,用于模仿總線上的主機發起總線操作,其內部封裝了主機序列器sqr、主機驅動器driver和主機監視器monitor。主機序列器用于將主機seq產生的總線事務數據轉交給主機驅動器,主機驅動器根據事務數據的內容驅動總線,主機監視器負責主機的活動。
從機agent,用于模仿總線上的從機響應主機的操作,其內部封裝了從機序列器、從機驅動器和從機監視器。
記分板scoreboard,用于總線事務數據的自動比對,其分別接收來自主機和從機監視器的事務數據,然后比對它們是否一致。
覆蓋率模型,用于統計總線事務數據的功能覆蓋率。
本發明使用UVM驗證方法學搭建了可重用的總線驗證平臺,并編寫測試用例,采用受約束的隨機激勵、功能覆蓋率驅動的方法對其進行了功能驗證。
附圖說明
圖1為總線驗證平臺的系統框圖。
圖2為總線驗證平臺的樹形層級圖。
圖3為1次總線操作的流程圖。
具體實施方式
本發明驗證平臺的架構如圖1所示,整個驗證平臺包括測試用例層TEST、驗證環境層env、代理層agent和總線接口,驗證平臺的樹形層級圖如圖2所示。
TEST層是測試用例層,UVM會根據仿真命令行選項+UVM_TESTNAME來運行相應的測試用例。測試用例首先例化并配置驗證環境,然后在虛擬序列器vsqr上啟動虛擬序列vseq,在vseq中再啟動主機seq和從機seq。
env是驗證環境層,用于例化所需的驗證組件,包括主機agent、從機agent、虛擬序列器vsqr、記分板scoreboard和覆蓋率模型cov。主機agent和從機agent分別用于用于模仿總線上主機和從機的行為,虛擬序列器vsqr用于在其上啟動虛擬序列vseq,記分板scoreboard用于總線事務數據的自動比對,其分別接收來自主機和從機監視器的事務數據,然后比對它們是否一致。覆蓋率模型cov,用于統計總線事務數據的功能覆蓋率,從而反映激勵的完備性。
agent為代理層,其一般封裝了序列器sqr、驅動器和監視器。為了對總線協議進行驗證,驗證環境中包含主機agent和從機agent分別用于模仿主機和從機的行為。為了讓從機seq能夠獲取主機事務數據,在主機驅動器中定義了peek_imp類型的端口,并在從機序列器中定義了peek_port類型的端口,并在驗證環境層中將其連接起來。
驗證平臺中1次總線操作的流程圖如圖3所示,首先主機seq產生事務數據并通過主機序列器sqr發送給主機驅動器,主機驅動器獲取主機事務數據后,通過端口peek_imp將其發送給從機序列器sqr,然后發起總線操作。從機seq等待主機驅動器獲取新的主機事務數據后,通過從機序列器sqr的peek_port端口獲取主機事務數據后,然后從機seq根據獲取的主機事務數據來產生從機事務數據并在通過從機序列器sqr發送給從機驅動器。從機驅動器獲取從機事務數據后,根據從機事務數據的內容來響應主機的操作。
總結
以上是生活随笔為你收集整理的uvm 形式验证_一种基于UVM的总线验证方法与流程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: pyharm虚拟环境_手把手教你如何在P
- 下一篇: 运行时错误7内存溢出_JVM运行时内存数