[CU]config_db機制5-uvm_config_db與uvm_resource_db的區別


1. uvm_config_db與uvm_resource_db的區別與聯系

(1) uvm_config_db是從uvm_resource_db派生而來的,它對uvm_resource_db的一些功能進行了擴展,這種擴展主要體現在對資源的寫入和讀取上.

(1.1) 在資源的寫入操作上,它重載了uvm_resource_db的set函數;

(1.2) 在資源的讀取操作上,它新建了一個稱為get的函數;

(2) uvm_resource_db雖然也是一種用來共享數據的類,但是層次關系在該類中沒有作用; 與uvm_config_db相比,盡管uvm_resource_db也有內建的數據庫,可以通過字符串或類型來索引配置數據,但缺點是層次的缺失和因此帶來的自頂向下的配置覆蓋關系的缺失.

(2.1) uvm_resource_db采用的是”last write wins”,即對同一配置,最后的寫入有效;

(2.2) uvm_config_db采用的是”parent wins + last write wins”(假設在env中已經有配置,而test的級別高於env).

(3) uvm_config_db與uvm_resource_db共享同一套database; 因此可能會出現通過uvm_config_db::set()往database中存入信息,但用uvm_resource_db::read_by_name()從database中讀取信息;

2. 選用uvm_resource_db還是uvm_config_db

(1) 選取uvm_resource_db還是uvm_config_db取決於當前的setting是否需要考慮層次信息;如果會考慮層次,則采用uvm_config_db; 如果不考慮層次,則應該使用uvm_resource_db;

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM