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
