• Techo

[IC驗證] UVM實戰第六章,使用 uvm_sequence 的一些技巧

更新日期:6月 21

  1. uvm_sequence 中的 grab 和 lock 的差別在於 lock 是發 request 到 sequencer 後面排隊, grab 則是直接到隊伍前面插隊

  2. uvm_sequence 提供一個 virtual function bit is_relevant 可以被override, return 1 代表此 sequence 有效, 0 則無效

  3. `uvm_do(req) 等同於 `uvm_do_on(req, this.m_sequencer)

  4. sequencer 可以傳送不同型態的 transaction, 只要將 sequencer 能接受的型態設定成 uvm_sequence_item, 在 driver 層接收時再 downcast 即可

  5. 在 sequence 中使用 m_sequencer 來放入 req.start(m_sequencer)

  6. 在 sequence 中定義 p_sequencer 來使用定義在 sequencer 中的變數

  7. uvm_sequence 可以 get config_db 來拿到參數, sequence 在整個環境中所在的位置在 uvm_test_top.m_env.m_agt.m_seqr.seq_name, config_db set 則是使用 uvm_test_top.m_env.m_agt.m_seqr.* 來當作各種不同的 sequence 的 hierarchy 名稱

  8. uvm_sequence 對自己傳送 config_db , 如同 flag 的使用一般

  9. 使用 response_handler 來實現 transaction input 和 response 的 pipeline

141 次瀏覽
Logo2020.JPG
  • Instagram - White Circle
  • Google+ - White Circle
  • Facebook - White Circle

Contact Us

Techo私人程式家教

官方LINE ID : @tutortecho

zh-Hant.png

© Copyright 2018 by Sherry Wu and Techo Chao.

Proudly created with Wix.com,

but page loading is too slow,so I don't recommend it.