00001 /// The UVM scoreboard item. This item wraps the uvm_sequence_items. This ensures that future 00002 /// extensions to the UVM scoreboard will always be able to use all uvm_sqeuence_items from 00003 /// already existing testbenches etc. even htough more META data is added to the wrapping item. 00004 class cl_syoscb_item extends uvm_object; 00005 //------------------------------------- 00006 // Non randomizable variables 00007 //------------------------------------- 00008 /// Hold the name of the producer 00009 string producer; 00010 00011 /// Handle to the wrapped uvm_sequence_item 00012 uvm_sequence_item item; 00013 00014 //------------------------------------- 00015 // UVM Macros 00016 //------------------------------------- 00017 `uvm_object_utils_begin(cl_syoscb_item) 00018 `uvm_field_string(producer, UVM_DEFAULT) 00019 `uvm_field_object(item, UVM_DEFAULT) 00020 `uvm_object_utils_end 00021 00022 //------------------------------------- 00023 // Constructor 00024 //------------------------------------- 00025 extern function new(string name = "cl_syoscb_item"); 00026 00027 //------------------------------------- 00028 // Item API 00029 //------------------------------------- 00030 extern function string get_producer(); 00031 extern function void set_producer(string producer); 00032 extern function uvm_sequence_item get_item(); 00033 extern function void set_item(uvm_sequence_item item); 00034 endclass: cl_syoscb_item 00035 00036 function cl_syoscb_item::new(string name = "cl_syoscb_item"); 00037 super.new(name); 00038 endfunction : new 00039 00040 /// <b>Item API:</b> Returns the producer 00041 function string cl_syoscb_item::get_producer(); 00042 return(this.producer); 00043 endfunction: get_producer 00044 00045 /// <b>Item API:</b> Sets the producer 00046 function void cl_syoscb_item::set_producer(string producer); 00047 // The producer has been checked by the parent prior 00048 // to the insertion 00049 this.producer = producer; 00050 endfunction: set_producer 00051 00052 /// <b>Item API:</b> Returns the wrapped uvm_sequence_item 00053 function uvm_sequence_item cl_syoscb_item::get_item(); 00054 return(this.item); 00055 endfunction: get_item 00056 00057 /// <b>Item API:</b> Sets the to be wrapped uvm_sequence_item 00058 function void cl_syoscb_item::set_item(uvm_sequence_item item); 00059 this.item = item; 00060 endfunction: set_item
|
Project: SyoSil ApS UVM Scoreboard, Revision: 1.0.2.1 Copyright 2014-2015 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 Jun 4 23:02:22 2015 |