uvm

    1熱度

    1回答

    我有3個序列和4個序列。 我想 序器1運行序列1, 序2運行序列1, 定序器3以串行順序運行序列2,序列3。 序列發生器4以序列順序運行序列1,序列2。 一種方法這樣做是測試類 task run_phase(uvm_phase phase); fork sequence1.start(sequencer1); sequence1.start(sequencer2);

    0熱度

    2回答

    這是我驗證奇偶編碼器解碼器DUT的方案。此處的解碼器輸入代理是重新激活的代理,並將錯誤注入從編碼器輸出代理中的被動監視器捕獲的數據流中。 現在我已經分別爲編碼器和解碼器輸入代理序列和序列項目。但是,如何同步兩個代理,以便解碼器重新激活代理添加錯誤併爲每個數據按順序創建一個新數據包。 例如,假設編碼器以1000,1010,0100,1011的順序發送數據,並且解碼器重新激活代理以次序(一個熱位) -

    1熱度

    1回答

    我有一個「而」循環爲OVM測試,看起來像這樣的部分: while (signal_val == 0) begin signal_val = sla_vpi_get_value_by_name ("blah"); end 我想限制此循環120微秒,然後退出。如果(signal_val == 0)在120μs結束時仍不滿足,我想退出測試。我如何實現這一目標? 我想我必須調用'globa

    0熱度

    1回答

    抓取函數可以在uvm_sequence_base和uvm_sequencer_base中找到,這個解釋讓我對鎖定和抓取感到困惑。 我認爲序列就像流水,序列發生器是閥門,只有序列發生器可以被阻塞或打開。 我對不對?請在順序和音序器中對grab()進行說明。

    0熱度

    1回答

    出於某種原因,我創建時的對象不會選擇通過測試傳遞的配置。當啓用跟蹤時,我看不到GET,只有SET。 我有對象如下: class top_env_cfg extends uvm_object; int set_default_env = 1; `uvm_object_utils_begin(top_env_cfg) `uvm_field_int(set_default

    0熱度

    2回答

    我是新來的系統Verilog和UVM,我已經看到了這個線程:在 Regex in SV or UVM 我找不到任何地方一個適當的例子使用正則表達式/通配符,我應該使用什麼樣的語法來強制設計多個連線。 例如: 比方說,我有一個名爲my_fifo模塊,這是在設計中多次實例化: top.dut.my_fifo_in top.dut.master.my_fifo_a top.dut.slave.axi

    0熱度

    1回答

    我想弄清楚UVM虛擬序列器的用途是什麼。 如果您看看驗證學院對此有何評論。它基本上是其他音序器的容器類。 class sequencer extends uvm_virtual_sequencer; `uvm_component_utils(virtual_sequencer) sequencer_a m_seq_a; sequencer_b m_seq_b; ... ... en

    0熱度

    2回答

    在UVM中,測試臺對DUT的內部寄存器沒有任何可見性。那麼爲什麼在UVM測試平臺架構中鏡像和創建註冊模型?它的用途是什麼? 測試平臺不會知道狀態位等是否更新或不在DUT內部,因爲它只能訪問其輸入輸出端口。

    -4熱度

    1回答

    我有一個DUT可以接收來自所有4個相同接口(A,B,C,D)的數據包來自一個端口的數據包可以進入任一個輸出端口(1,2,3 ,4)。例如:來自A的分組可以進入1,2,3或4.來自端口B的分組可以進入1,2,3或4等等。來自同一端口的數據包是有序的,但數據包可以按照A,B,C,D之間的任意順序進行服務(由於所有4個接口在發送數據包的同時可以處於活動狀態,因此端口之間沒有訂單)。 如何驗證這樣的DUT

    0熱度

    1回答

    我正在尋找一種方法,當我讀取或寫入uvm_reg時,總是可以添加額外的uvm_reg寫入權限。流程顯示在僞代碼中。 僞代碼: reg_map.MY_REGS.REG1.write(status, <my data >); 這應該是: reg_map.MY_CTRL_REG.CFG (status, <data>); reg_map.MY_REGS.REG1.write(status, <da