sqr_ifs.svh

Go to the documentation of this file.
00001 // $Id: sqr__ifs_8svh-source.html,v 1.1 2008/10/07 21:54:11 alex.marin Exp $
00002 //----------------------------------------------------------------------
00003 //   Copyright 2007-2008 Mentor Graphics Corporation
00004 //   Copyright 2007-2008 Cadence Design Systems, Inc.
00005 //   All Rights Reserved Worldwide
00006 //
00007 //   Licensed under the Apache License, Version 2.0 (the
00008 //   "License"); you may not use this file except in
00009 //   compliance with the License.  You may obtain a copy of
00010 //   the License at
00011 //
00012 //       http://www.apache.org/licenses/LICENSE-2.0
00013 //
00014 //   Unless required by applicable law or agreed to in
00015 //   writing, software distributed under the License is
00016 //   distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
00017 //   CONDITIONS OF ANY KIND, either express or implied.  See
00018 //   the License for the specific language governing
00019 //   permissions and limitations under the License.
00020 //----------------------------------------------------------------------
00021 
00022 
00023 //----------------------------------------------------------------------
00024 // sequencer interfaces
00025 //----------------------------------------------------------------------
00026 
00027 `define SEQ_ITEM_TASK_ERROR "Sequencer interface task not implemented"
00028 `define SEQ_ITEM_FUNCTION_ERROR "Sequencer interface function not implemented"
00029 
00030 //----------------------------------------------------------------------
00031 // ovm_sqr_pull_if
00032 //----------------------------------------------------------------------
00033 virtual class sqr_if_base #(type T1=ovm_object, T2=T1);
00034 
00035   virtual task get_next_item(output T1 t);
00036     ovm_report_error("get_next_item", `SEQ_ITEM_TASK_ERROR);
00037   endtask
00038 
00039   virtual task try_next_item(output T1 t);
00040     ovm_report_error("try_next_item", `SEQ_ITEM_TASK_ERROR);
00041   endtask
00042 
00043   virtual function void item_done(input T2 t = null);
00044     ovm_report_error("item_done", `SEQ_ITEM_FUNCTION_ERROR);
00045   endfunction
00046 
00047   virtual task wait_for_sequences();
00048     ovm_report_error("wait_for_sequences", `SEQ_ITEM_TASK_ERROR);
00049   endtask
00050 
00051   virtual function bit has_do_available();
00052     ovm_report_error("has_do_available", `SEQ_ITEM_FUNCTION_ERROR);
00053     return 0;
00054   endfunction
00055 
00056   virtual function void put_response(input T2 t);
00057     ovm_report_error("put_response", `SEQ_ITEM_FUNCTION_ERROR);
00058   endfunction
00059 
00060   // tlm_blocking_slave_if
00061   virtual task get(output T1 t);
00062     ovm_report_error("get", `SEQ_ITEM_TASK_ERROR);
00063   endtask
00064 
00065   virtual task peek(output T1 t);
00066     ovm_report_error("peek", `SEQ_ITEM_TASK_ERROR);
00067   endtask
00068 
00069   virtual task put(input T2 t);
00070     ovm_report_error("put", `SEQ_ITEM_TASK_ERROR);
00071   endtask
00072 
00073 endclass
00074 
00075 `define SEQ_ITEM_GET_NEXT_ITEM_MASK       (1<<0)
00076 `define SEQ_ITEM_TRY_NEXT_ITEM_MASK       (1<<1)
00077 `define SEQ_ITEM_ITEM_DONE_MASK           (1<<2)
00078 `define SEQ_ITEM_HAS_DO_AVAILABLE_MASK    (1<<3)
00079 `define SEQ_ITEM_WAIT_FOR_SEQUENCES_MASK  (1<<4)
00080 `define SEQ_ITEM_PUT_RESPONSE_MASK        (1<<5)
00081 `define SEQ_ITEM_PUT_MASK                 (1<<6)
00082 `define SEQ_ITEM_GET_MASK                 (1<<7)
00083 `define SEQ_ITEM_PEEK_MASK                (1<<8)
00084 
00085 `define SEQ_ITEM_PULL_MASK  (`SEQ_ITEM_GET_NEXT_ITEM_MASK | `SEQ_ITEM_TRY_NEXT_ITEM_MASK | \
00086                         `SEQ_ITEM_ITEM_DONE_MASK | `SEQ_ITEM_HAS_DO_AVAILABLE_MASK |  \
00087                         `SEQ_ITEM_WAIT_FOR_SEQUENCES_MASK | `SEQ_ITEM_PUT_RESPONSE_MASK | \
00088                         `SEQ_ITEM_PUT_MASK | `SEQ_ITEM_GET_MASK | `SEQ_ITEM_PEEK_MASK)
00089 
00090 `define SEQ_ITEM_UNI_PULL_MASK (`SEQ_ITEM_GET_NEXT_ITEM_MASK | `SEQ_ITEM_TRY_NEXT_ITEM_MASK | \
00091                            `SEQ_ITEM_ITEM_DONE_MASK | `SEQ_ITEM_HAS_DO_AVAILABLE_MASK | \
00092                            `SEQ_ITEM_WAIT_FOR_SEQUENCES_MASK | `SEQ_ITEM_GET_MASK | \
00093                            `SEQ_ITEM_PEEK_MASK)
00094 
00095 `define SEQ_ITEM_PUSH_MASK  (`SEQ_ITEM_PUT_MASK)

Intelligent Design Verification
Intelligent Design Verification
Project: OVM, Revision: 1.1.0
Copyright (c) 2008 Intelligent Design Verification.
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
A copy of the license is included here:
http://www.intelligentdv.com/licenses/fdl.txt
doxygen
Doxygen Version: 1.4.6
Mon Sep 29 14:23:30 2008
Find a documentation bug? Report bugs to: bugs.intelligentdv.com Project: DoxygenFilterSV