UVM中的class--2


1)uvm_component從uvm_report_object繼承而來,提供的功能包括:

              1)Hierarchy,-----searching and traversing component hierachy

                       

              2)Phasing-----調用uvm_phase以及預先定義的很多phase

                       

                      

              3)config-------調用config_db的methods

                       

              4)report-------調用uvm_report的methods

                        

              5)Factory-----調用factory的methods

                        

              6)Transaction recording-----調用recording的methods

 

Callbacks Classes用來做registration/user-defined的callback

   uvm_callbacks,實現callback的注冊,

   uvm_callback,自定義callback的基類。

2)uvm_callbacks#(T,CB),T表示基本的object類型,CB表示定義的callback,完成注冊。

3)uvm_callback------------function callback_mode(Enable/disable callbacks)像constraint mode

                                                   is_enabled(返回callback的enable/disable)

 

4)uvm_test,用戶自定義的test的虛基類,run_test必須放在initial內部。

                    virtual class uvm_test extends uvm_component

                    並沒有很多新的variable和methods

5)uvm_env,hierarchy上的container,包含其他的component,來組成和一個整體。

                    virtual class uvm_test extends uvm_component

                    並沒有很多新的variable和methods

6)uvm_agent, virtual class uvm_agent extends uvm_component

                    新加一個virtual function get_is_active(),返回1表示UVM_ACTIVE,返回零表示UVM_PASSIVE

7)uvm_monitor, virtual class uvm_monitor extends uvm_component

                    並沒有很多新的variable和methods

8)uvm_scoreboard, virtual class uvm_scoreboard extends uvm_component

                    並沒有很多新的variable和methods

9)uvm_driver, virtual class uvm_driver extends uvm_component

                    uvm_driver #(REQ, RSP)

                    新增的port,seq_item_port(request items from sequencer)

                                      rsp_port(sending responses)

10)uvm_subscriber, virtual class uvm_subscriber extends uvm_component

                    uvm_subscriber #(T)

                    新增的port,analysis port(提供給write函數)

                    新增的methods,write(pure virtual class)

11)Comparators,應用在transaction的比較,從DUT出來的和expected results

                    uvm_in_order_comparator #(T,comp_type,convert,pair_type)

                    新增的port,before_export:一個transaction從這個port寫入

                                     after_export:另一個transaction從這個port寫入

                                     pair_ap:comparator輸出transaction從這個analysis port

                    新增的methods(virtual function):set m_matches和m_mismatches為零。

12)uvm_sequence_item:用戶自定義transaction的基類,從uvm_transaction繼承來

                    virtual function---set_sequencer()

                    function---get_sequencer()/uvm_report_info/warning/error/fatal

                    virtual task---start_item()/finish_item()/

13)uvm_sequence_base:

                    class uvm_phase starting_phase

                    virtual task---start()/pre_body()/pre_do()/mid_do()/body()/post_do()/start_item/finish_item/wait_for_grant

                    task----lock()/grab()/

                    function---set_priority()/unlock()/ungrab()/

14)uvm_sequence(virtual) #(uvm_sequence_item, REQ)

                    function---send_request(uvm_sequence_item req)/

                    virtual task---get_response(RSP)

15)uvm_sequencer_base,從uvm_component繼承而來,

16)uvm_sequencer_param_base #(REQ= uvm_sequence_item, RSP)

17)uvm_sequencer #(REQ = uvm_sequence_item, RSP)

                新增port:seq_item_export

18)uvm_push_sequencer #(REQ = uvm_sequence_item, RSP)

                新增port:req_port


免責聲明!

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



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