6   `uvm_object_utils(cl_syoscb_compare_io_2hp)
    14   function new(string name = "cl_syoscb_compare_io_2hp");
    21   extern 
protected virtual function void 
compare_do();
    33   if(this.secondary_queues.size() != 1) begin
    34     `uvm_fatal("QUEUE_ERROR", $sformatf("[%s]: cmp-io-2hp: This in order compare only works with a single secondary queue. %0d secondary queues defined", this.cfg.get_scb_name(), this.secondary_queues.size()));
    45   `uvm_info("DEBUG", $sformatf("[%s]: cmp-io-2hp: number of queues: %0d", this.cfg.get_scb_name(), this.secondary_queues.size()+1), UVM_FULL);
    46   `uvm_info("DEBUG", $sformatf("[%s]: cmp-io-2hp: primary queue: %s", this.cfg.get_scb_name(), this.primary_queue_name), UVM_FULL);
    51   `uvm_info("DEBUG", $sformatf("[%s]: cmp-io-2hp: Now comparing primary transaction:\n%s",
    52                                this.cfg.get_scb_name(),
    53                                cl_syoscb_string_library::sprint_item(primary_item, this.cfg)),
    63     uvm_comparer                  comparer;
    69     if(iter == null) begin
    73     sec_proxy = iter.next();
    76     comparer = this.
cfg.get_comparer(this.primary_queue_name, this.primary_item.get_producer());
    77     if(comparer == null) begin
    78       comparer = this.
cfg.get_default_comparer();
    81     if(secondary_item.compare(primary_item, comparer) == 1'b1) begin
    82       `uvm_info("DEBUG", $sformatf("[%s]: cmp-io-2hp: Secondary item found:\n%s",
    83                                    this.cfg.get_scb_name(),
    84                                    cl_syoscb_string_library::sprint_item(secondary_item, this.cfg)),
    91       miscmp_table = this.
generate_miscmp_table(primary_item, secondary_item, this.secondary_queue_names[0], comparer, "cmp-io-2hp");
    92       `uvm_error("COMPARE_ERROR", $sformatf("\n%0s", miscmp_table))
 cl_syoscb_queue_iterator_base primary_queue_iter
Iterator into primary queue. 
The UVM scoreboard item which wraps uvm_sequence_item . 
cl_syoscb_queue_base secondary_queues[]
Handles to secondary queues. 
cl_syoscb_item primary_item
Scoreboard wrapper item from the primary queue. 
Base class for all proxy items. 
virtual void compare_do()
Compare Strategy API: Mandatory overwriting of the base class' do_compare method. ...
virtual bit delete()
Compare Strategy API: Deletes matched items from the primary and all secondary queues if a match was ...
Implementation of the 2-queue, high speed in-order comparison algorithm. 
cl_syoscb_proxy_item_base secondary_item_found[string]
Associative array used to indicate if a matching item was found in a secondary queue. 
string secondary_queue_names[]
Names of secondary queues. 
cl_syoscb_proxy_item_base primary_item_proxy
Proxy item for the item being searched for in all secondary queue. 
Queue iterator base class defining the iterator API used for iterating over queues. 
cl_syoscb_queue_base primary_queue
Handle to primary queue. 
virtual string generate_miscmp_table(cl_syoscb_item primary_item, cl_syoscb_item secondary_item, string sec_queue_name, uvm_comparer comparer, string cmp_name)
Generates a side-by-side comparison of the seq. 
virtual void primary_loop_do()
Compare Strategy API: Selects the primary queue's first element, comparing it to the secondary queue'...
Class which represents the base concept of a queue. 
cl_syoscb_cfg cfg
Handle to the configuration object. 
virtual void primary_loop_init()
Compare Strategy API: Contains all the operations to be executed immediately before starting the prim...
cl_syoscb_queue_base secondary_queue
Handle to the secondary queue. 
Implementation of the in-order comparison algorithm for N queues.