cl_syoscb_cfg.svh

Go to the documentation of this file.
00001 class cl_syoscb_cfg extends uvm_object;
00002    //---------------------------------
00003    // non randomizable member variables
00004    //---------------------------------
00005    cl_syoscb_queue     queues[string];
00006    cl_syoscb_cfg_pl producers[string];
00007    string               primary_queue;
00008 // TBD   bit              full_scb_dump;
00009 // TBD  int unsigned     max_queue_size[string];
00010 // TBD  int unsigned     full_max_queue_size[string];
00011 // TBD  string           full_scb_type[];
00012 // TBD  int unsigned     item_time_out_queue[string];
00013 // TBD  int unsigned     item_time_out_producer[string];
00014 
00015    `uvm_object_utils_begin(cl_syoscb_cfg)
00016      `uvm_field_aa_object_string(queues, UVM_DEFAULT)
00017      `uvm_field_aa_object_string(producers, UVM_DEFAULT)
00018      `uvm_field_string(primary_queue, UVM_DEFAULT)
00019    `uvm_object_utils_end
00020 
00021   extern function new(string name = "cl_syoscb_cfg");
00022   extern function void set_queues(string queue_names[]);
00023   extern function void get_queues(output string queue_names[]);
00024   extern function bit set_producer(string producer, queue_names[]);
00025   extern function bit set_primary_queue(string primary_queue_name);
00026 
00027 endclass : cl_syoscb_cfg
00028 
00029 
00030 function cl_syoscb_cfg::new(string name = "cl_syoscb_cfg");
00031    super.new(name);
00032 endfunction : new
00033 
00034 function void cl_syoscb_cfg::set_queues(string queue_names[]);
00035    foreach(queue_names[i]) begin
00036      this.queues[queue_names[i]] = null;
00037    end
00038 endfunction : set_queues
00039 
00040 // TBD: Can be fixed as a return type by using a typedef
00041 // TBD: The implementation is a bit clumsy...
00042 function void cl_syoscb_cfg::get_queues(output string queue_names[]);
00043    string queue_name;
00044    int    unsigned idx = 0;
00045    queue_names = new[this.queues.size()];
00046    while(this.queues.next(queue_name)) begin
00047       //$display("get_queues: %s", queue_name);
00048       queue_names[idx++] = queue_name;
00049    end
00050 endfunction : get_queues
00051 
00052 function bit cl_syoscb_cfg::set_producer(string producer, queue_names[]);
00053    cl_syoscb_cfg_pl prod_list = new();
00054    // TBD: Here there should be a check on the queue names
00055    prod_list.set_list(queue_names);
00056    this.producers[producer] = prod_list;
00057    // TBD: Shall be changed
00058    return(1'b1);
00059 endfunction: set_producer
00060 
00061 function bit cl_syoscb_cfg::set_primary_queue(string primary_queue_name);
00062    // TBD: Here the should be an existence check on the queue
00063    this.primary_queue = primary_queue_name;
00064    // TBD: Shall be changed
00065    return(1'b1);
00066 endfunction: set_primary_queue
 All Classes Namespaces Files Functions Variables

Project: SyoSil ApS UVM Scoreboard, Revision: 1.0.0.1
Copyright 2014 SyoSil ApS
All Rights Reserved Worldwide

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
doxygen
Doxygen Version: 1.6.1
IDV SV Filter Version: 2.6.2
Mon Nov 24 09:24:22 2014
Find a documentation bug? Report bugs to: bugs.intelligentdv.com Project: DoxygenFilterSV