1.某個暫存器有三個域,低兩位是fielda,接著3位是fieldb,接著4位是fieldc,其餘位未用。
2.邏輯上是乙個register,物理上看,dut實現中是3個register,因此這乙個register對應三個不同的hdl 路徑:fielda, fieldb, fieldc。
3前面的方法不適用,應該如下:
1)首先派生從uvm_reg 派生乙個類,加入3個uvm_reg_field。
2)在reg_block 中將此類例化後,呼叫tf_reg.configure注意,最後乙個代表hdl 路徑的引數已經是空的字串。
3)在tf_reg.build之後要呼叫tf_reg.fielda 的configure 函式。
4)tf_reg的build 中只有create,沒有configure。和7.2.1不一樣。
5)呼叫完fielda 的configure 後,要將fielda 的hdl 路徑加入到tf_reg 中,用到函式add_hdl_path_slice。
第乙個是要加入的路徑(怎麼3個都是fielda,書上錯了?)
第二個是此路徑對應的域在此暫存器中的起始位數。
第三個是此路徑對應域的位寬。
4.不像7.2.1中在three_field_reg 中的build 呼叫fielda.configure 和add_hdl_path_slice是因為:一旦那麼寫,此uvm_reg 就已經定型了。
7.2.1也可以如上定義。
UVM暫存器篇之五 暫存器模型的整合(下)
本文 前門訪問 利用暫存器模型,我們可以更方便地對暫存器做操作。接下來我們分別兩種訪問暫存器的方式,即前門訪問 front door 和後門訪問 back door 前門訪問,顧名思義指的是在暫存器模型上做的讀寫操作,最終會通過匯流排uvc來實現匯流排上的物理時序訪問,因此是真實的物理操作 而後門訪...
UVM暫存器篇之七 暫存器模型的常規方法(下)
本文 mem與reg的聯絡和差別 uvm暫存器模型也可以用來對儲存建模。uvm mem類可以用來模擬rw 讀寫 ro 唯讀 和wo 只寫 型別的儲存,並且可以配置其模型的資料寬度和位址範圍。而uvm mem不同於uvm reg的地方在於,考慮到物理儲存一旦對映到uvm mem會帶來更大的資源消耗,因...
跨時鐘域的暫存器訪問
在verilog中,如果對於乙個暫存器可能同時有兩個時鐘clk對其進行操作,為了防止讀寫衝突,需要做如下簡單處理 clk f fast時鐘 和clk s slow時鐘 clk s對暫存器time cnt進行寫操作,clk f對暫存器time cnt進行讀操作,所以當clk f邊沿讀取time cnt...