uvm_scoreboard——得分
scoreboard 是验证平台很重要的一部分,因为,验证就是给激励,然后,检查结果。而scoreboard 就是肩负这检查结果的重任。测试用例能不能过,全由scoreboard说了算。
A scoreboard is a verification component that contains checkers and verifies the functionality of a design. It usually receives transactions carrying inputs and outputs of the DUT from a UVM agent via TLM Analysis Ports, which then runs the input packets through some kind of a reference model that would mimic the behavior of DUT to produce expected data. The final task is to compare expected results with the actual output data from DUT. The reference model is also called a predictor.
To define a scoreboard:
- Create a custom class inherited from
uvm_scoreboard
- Add the TLM export necessary to communicate with different monitors
- Define the action to be taken when the export is called
//------------------------------------------------------------------------------ // // CLASS: uvm_scoreboard // // The uvm_scoreboard virtual class should be used as the base class for // user-defined scoreboards. // // Deriving from uvm_scoreboard will allow you to distinguish scoreboards from // other component types inheriting directly from uvm_component. Such // scoreboards will automatically inherit and benefit from features that may be // added to uvm_scoreboard in the future. //------------------------------------------------------------------------------ virtual class uvm_scoreboard extends uvm_component; // Function: new // // Creates and initializes an instance of this class using the normal // constructor arguments for <uvm_component>: ~name~ is the name of the // instance, and ~parent~ is the handle to the hierarchical parent, if any. function new (string name, uvm_component parent); super.new(name, parent); endfunction const static string type_name = "uvm_scoreboard"; virtual function string get_type_name (); return type_name; endfunction endclass
参考文献:
1 Scoreboard. http://www.chipverify.com/uvm/scoreboard.