UVM RAL 中的显示预测 uvm_reg_predictor
在之前簡單介紹了uvm_reg_predic是怎么實現顯示預測的,連上map,連上adapter,連上bus_in即可,下面我們要詳細的解釋原因
先解釋uvm_reg_predict中重要變量的作用
核心方法write(),下面總結了這個方法具體做的事情
(1) 判斷adapter是否為null (2) 應該增加判斷map是否為null(雖然UVM源碼中沒有實現,嚴謹的角度應該判斷)//注意這里掛載的map的必須是root_map。 (3) adapter.bus2reg// transaction轉換 (4) map.get_reg_by_offset //獲取RAL中reg句柄 (5) 獲取reg所在local_map的map_info//獲取reg的直連map的map_info信息 (6) 根據map_info信息調用uvm_reg::do_predict//實現預測,包的括多地址的處理情況上面即為實現顯示預測的全步驟
下面介紹一下當register 位寬大于bus_width的時候,uvm_reg_predict是如何處理的
這種情況比較特殊,具體看下面的流程。
所有不管是哪種模式,uvm_reg_predict必須采樣到一個寄存器的的完整數據才會去做predict 工作。
同時在做predict的時候uvm_reg_predictor默認是打開寄存器的byte_en使能,所有的byte均可以update,因此我們在adapter中重載bus2reg時如果有相關方面的需求,是無法實現的,我們可以去重載uvm_reg_predictor::write方法來實現。
在uvm_reg_predict還有一個變量 uvm_analysis_port #(uvm_reg_item) reg_an
這個TLM 端口的作用是在進行預測完之后,將相關的uvm_reg_item transaction發送出去,有時候我們可能有這方面的需求,
總結:
(1)掛載的map必須是root_map,這樣才能對全局所有寄存器可見
(2)掛載的adapter可以是local_adapter或者root_adapter
(3)byte_en默認是全打開的
(4)所有不管是哪種模式,uvm_reg_predict必須采樣到一個寄存器的的完整數據才會去做predict 工作。
(5)根據需要可以對write方法進行重載
總結
以上是生活随笔為你收集整理的UVM RAL 中的显示预测 uvm_reg_predictor的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何使用mtPaint制作像素艺术和GI
- 下一篇: Unity学习简易单人FPS开发——AI