00001 virtual class cl_syoscb_queue_iterator_base extends uvm_object; 00002 00003 `uvm_object_utils(cl_syoscb_queue_iterator_base); 00004 00005 // The owner of this iterator 00006 cl_syoscb_queue owner; 00007 00008 int unsigned position = 0; 00009 00010 // Base 'next' function. Moves iterator to next item in queue 00011 pure virtual function bit next(); 00012 00013 // Base 'previous' function. Moves iterator to previous item in queue 00014 pure virtual function bit previous(); 00015 00016 // Base 'first' function. Moves iterator to first item in queue 00017 pure virtual function bit first(); 00018 00019 // Base 'last' function. Moves iterator to last item in queue 00020 pure virtual function bit last(); 00021 00022 // Base 'get_idx' function. Returns current iterator position 00023 pure virtual function int unsigned get_idx(); 00024 00025 // Base 'get_item' function. Returns item at current iterator position 00026 pure virtual function uvm_sequence_item get_item(); 00027 00028 // Base 'is_done' function. Returns 1 if iterator is at the end of the queue, 00029 // otherwise 0 00030 pure virtual function bit is_done(); 00031 00032 00033 // Returns the queue that this iterator is associated with 00034 extern protected function cl_syoscb_queue get_queue(); 00035 00036 // Sets the queue that this iterator is associated with 00037 pure virtual function bit set_queue(cl_syoscb_queue owner); 00038 00039 endclass : cl_syoscb_queue_iterator_base 00040 00041 00042 function cl_syoscb_queue cl_syoscb_queue_iterator_base::get_queue(); 00043 if(this.owner == null) begin 00044 // An iterator should always have an associated queue 00045 `uvm_error("QUEUE_ERROR", $sformatf("Unable to find queue associated with iterator %s", this.get_name())); 00046 return null; 00047 end else begin 00048 return this.owner; 00049 end 00050 endfunction : get_queue
|
Project: SyoSil ApS UVM Scoreboard, Revision: 1.0.0.0 |
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 Thu Oct 30 05:34:49 2014 |