OpenCores
URL https://opencores.org/ocsvn/qaz_libs/qaz_libs/trunk

Subversion Repositories qaz_libs

[/] [qaz_libs/] [trunk/] [BFM/] [src/] [8b10b/] [video_frame/] [vf_8b10b_scoreboard.svh] - Diff between revs 46 and 47

Go to most recent revision | Show entire file | Details | Blame | View Log

Rev 46 Rev 47
Line 26... Line 26...
//////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////
 
 
class vf_8b10b_scoreboard extends uvm_subscriber #(vf_8b10b_sequence_item);
class vf_8b10b_scoreboard extends uvm_subscriber #(vf_8b10b_sequence_item);
  `uvm_component_utils(vf_8b10b_scoreboard);
  `uvm_component_utils(vf_8b10b_scoreboard);
 
 
 
  mailbox #(vf_8b10b_sequence_item) frame_buffer;
 
  video_frame_class channel_buffer[];
 
  int channel_count;
 
 
 
  // --------------------------------------------------------------------
 
  function void init(int channel_count);
 
    this.channel_count = channel_count;
 
  endfunction : init
 
 
  // --------------------------------------------------------------------
  // --------------------------------------------------------------------
  function new (string name, uvm_component parent);
  function new (string name, uvm_component parent);
    super.new(name, parent);
    super.new(name, parent);
 
    frame_buffer = new();
  endfunction : new
  endfunction : new
 
 
  // --------------------------------------------------------------------
  // --------------------------------------------------------------------
  function void build_phase(uvm_phase phase);
  function void build_phase(uvm_phase phase);
  endfunction : build_phase
  endfunction : build_phase
Line 44... Line 54...
    f_h.print_config();
    f_h.print_config();
    $display(f_h.convert2string());
    $display(f_h.convert2string());
  endfunction : print_video_frame
  endfunction : print_video_frame
 
 
  // --------------------------------------------------------------------
  // --------------------------------------------------------------------
 
 
  function void write(vf_8b10b_sequence_item t);
  function void write(vf_8b10b_sequence_item t);
    print_video_frame(t.f_h);
    // print_video_frame(t.f_h);
 
    if(frame_buffer.try_put(t) == 0)
 
      `uvm_fatal(get_name(), "Couldn't put to frame_buffer!")
  endfunction : write
  endfunction : write
 
 
  // --------------------------------------------------------------------
  // --------------------------------------------------------------------
 
  function void gather_channels(vf_8b10b_sequence_item t);
 
    if(channel_buffer.size() == 0)
 
      channel_buffer = new[channel_count];
 
 
 
    $display("%p", channel_buffer);
 
    // if(channel_buffer.find(x) with (x == ""))
 
      // $display("found null");
 
  endfunction : gather_channels
 
 
 
  // --------------------------------------------------------------------
  function void report_phase(uvm_phase phase);
  function void report_phase(uvm_phase phase);
 
    vf_8b10b_sequence_item t;
 
    while(frame_buffer.try_get(t))
 
      print_video_frame(t.f_h);
 
 
 
    gather_channels(t);
 
 
    // uvm_report_info(get_name(), $sformatf("Matches   : %0d", m_matches));
    // uvm_report_info(get_name(), $sformatf("Matches   : %0d", m_matches));
    // uvm_report_info(get_name(), $sformatf("Mismatches: %0d", m_mismatches));
    // uvm_report_info(get_name(), $sformatf("Mismatches: %0d", m_mismatches));
  endfunction
  endfunction
 
 
// --------------------------------------------------------------------
// --------------------------------------------------------------------

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.