URL
https://opencores.org/ocsvn/qaz_libs/qaz_libs/trunk
Subversion Repositories qaz_libs
[/] [qaz_libs/] [trunk/] [BFM/] [src/] [axis_video_frame/] [avf_scoreboard.svh] - Rev 49
Compare with Previous | Blame | View Log
////////////////////////////////////////////////////////////////////////// //////// Copyright (C) 2018 Authors and OPENCORES.ORG //////// //////// This source file may be used and distributed without //////// restriction provided that this copyright statement is not //////// removed from the file and that any derivative work contains //////// the original copyright notice and the associated disclaimer. //////// //////// This source file is free software; you can redistribute it //////// and/or modify it under the terms of the GNU Lesser General //////// Public License as published by the Free Software Foundation; //////// either version 2.1 of the License, or (at your option) any //////// later version. //////// //////// This source is distributed in the hope that it will be //////// useful, but WITHOUT ANY WARRANTY; without even the implied //////// warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR //////// PURPOSE. See the GNU Lesser General Public License for more //////// details. //////// //////// You should have received a copy of the GNU Lesser General //////// Public License along with this source; if not, download it //////// from http://www.opencores.org/lgpl.shtml //////// //////////////////////////////////////////////////////////////////////////class avf_scoreboard extends uvm_subscriber #(avf_sequence_item);`uvm_component_utils(avf_scoreboard);// --------------------------------------------------------------------function new (string name, uvm_component parent);super.new(name, parent);endfunction : new// --------------------------------------------------------------------function void build_phase(uvm_phase phase);endfunction : build_phase// // --------------------------------------------------------------------// mailbox #(avf_sequence_item) mb = new();// avf_sequence_item c_t;// avf_sequence_item item;// int m_matches = 0;// int m_mismatches = 0;// function void write(avf_sequence_item t);// $cast(c_t, t.clone);// if((c_t.command = FIFO_WR) || (c_t.command = FIFO_BOTH))// mb.try_put(c_t);// if((c_t.command = FIFO_RD) || (c_t.command = FIFO_BOTH))// mb.try_get(item);// if(~c_t.compare(item))// begin// uvm_report_info(get_name(), $sformatf("^^^ %16.t | %m | MISMATCH!!! | %s", $time, {20{"-"}}));// uvm_report_info(get_name(), c_t.convert2string);// uvm_report_info(get_name(), item.convert2string);// m_mismatches++;// end// else// m_matches++;// endfunction : write// --------------------------------------------------------------------//function void print_video_frame(ref video_frame_class f_h);string s;$display("%s", {80{"="}});$display(f_h.convert2string());endfunction : print_video_frame// --------------------------------------------------------------------function void write(avf_sequence_item t);print_video_frame(t.f_h);endfunction : write// --------------------------------------------------------------------function void report_phase(uvm_phase phase);// uvm_report_info(get_name(), $sformatf("Matches : %0d", m_matches));// uvm_report_info(get_name(), $sformatf("Mismatches: %0d", m_mismatches));endfunction// --------------------------------------------------------------------endclass : avf_scoreboard
