00001 class cl_syoscb_queue extends uvm_component; 00002 `uvm_component_utils(cl_syoscb_queue) 00003 00004 // List of iterators registered with queue 00005 cl_syoscb_queue_iterator_base iterators[cl_syoscb_queue_iterator_base]; 00006 int unsigned iter_idx; 00007 00008 semaphore iter_sem; 00009 00010 // Basic queue functions 00011 virtual function bit add_item(string producer, uvm_sequence_item item); 00012 `uvm_fatal("IMPL_ERROR", $sformatf("cl_syoscb_queue::add_item() *MUST* be overwritten")); 00013 return(1'b0); 00014 endfunction 00015 00016 virtual function bit delete_item(int unsigned idx); 00017 `uvm_fatal("IMPL_ERROR", $sformatf("cl_syoscb_queue::delete_item() *MUST* be overwritten")); 00018 return(1'b0); 00019 endfunction 00020 00021 virtual function uvm_sequence_item get_item(int unsigned idx); 00022 `uvm_fatal("IMPL_ERROR", $sformatf("cl_syoscb_queue::get_item() *MUST* be overwritten")); 00023 return(null); 00024 endfunction 00025 00026 virtual function int unsigned get_size(); 00027 `uvm_fatal("IMPL_ERROR", $sformatf("cl_syoscb_queue::get_size() *MUST* be overwritten")); 00028 return(0); 00029 endfunction 00030 00031 virtual function bit insert_item(string producer, uvm_sequence_item item, int unsigned idx); 00032 `uvm_fatal("IMPL_ERROR", $sformatf("cl_syoscb_queue::insert_item() *MUST* be overwritten")); 00033 return(1'b0); 00034 endfunction 00035 00036 // Iterator support functions 00037 virtual function cl_syoscb_queue_iterator_base create_iterator(); 00038 `uvm_fatal("IMPL_ERROR", $sformatf("cl_syoscb_queue::create_iterator() *MUST* be overwritten")); 00039 return(null); 00040 endfunction 00041 00042 virtual function bit delete_iterator(cl_syoscb_queue_iterator_base iterator); 00043 `uvm_fatal("IMPL_ERROR", $sformatf("cl_syoscb_queue::delete_item() *MUST* be overwritten")); 00044 return(1'b0); 00045 endfunction 00046 00047 // TBD: Locator not implemented yet 00048 00049 // Constructor 00050 extern function new(string name, uvm_component parent); 00051 endclass : cl_syoscb_queue 00052 00053 function cl_syoscb_queue::new(string name, uvm_component parent); 00054 super.new(name, parent); 00055 00056 this.iter_sem = new(1); 00057 this.iter_idx = 0; 00058 endfunction : new
|
Project: SyoSil ApS UVM Scoreboard, Revision: 1.0.0.2 |
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 Version: 1.6.1 IDV SV Filter Version: 2.6.2 Wed Feb 25 04:01:40 2015 |