ovm_push_driver.svh

Go to the documentation of this file.
00001 // $Id: a00261.html,v 1.1 2009/01/07 19:29:50 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 class ovm_push_driver #(type REQ = ovm_sequence_item,
00024                         type RSP = REQ) extends ovm_component;
00025 
00026 typedef ovm_push_driver #(REQ, RSP) this_type;
00027 
00028   ovm_blocking_put_imp #(REQ, this_type) req_export;
00029   ovm_analysis_port #(RSP) rsp_port;
00030 
00031   REQ req;
00032   RSP rsp;
00033 
00034   function new (string name, ovm_component parent);
00035     super.new(name, parent);
00036     req_export    = new("req_export", this);
00037     rsp_port    = new("rsp_port", this);
00038   endfunction // new
00039 
00040   virtual function void build();
00041     super.build();
00042   endfunction // function
00043 
00044   function void check_port_connections();
00045     assert(req_export.size() == 1) else
00046     ovm_report_fatal("Connection Error",
00047                      $psprintf("Must connect to seq_item_port(%0d)",
00048                                req_export.size()));
00049   endfunction // void
00050   
00051   virtual function void end_of_elaboration();
00052     check_port_connections();
00053   endfunction // void
00054   
00055   virtual task put(REQ item);
00056     ovm_report_fatal("OVM_PUSH_DRIVER", "Put task for push driver is not implemented");
00057   endtask // put
00058 
00059 endclass
00060 

Intelligent Design Verification
Intelligent Design Verification
Project: OVM, Revision: 2.0.1
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.5.5
Wed Jan 7 19:27:18 2009
Find a documentation bug? Report bugs to: bugs.intelligentdv.com Project: DoxygenFilterSV