| <html><head><title>uvm_*_imp ports</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script></head><body class="FramedContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!-- |
| if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script> |
| |
| <!-- Generated by Natural Docs, version Development Release 01-12-2008 (1.35 base) --> |
| <!-- http://www.naturaldocs.org --> |
| |
| <!-- saved from url=(0026)http://www.naturaldocs.org --> |
| |
| |
| |
| |
| |
| |
| |
| |
| <!--TOP - START OF CONTENT--> |
| <div id=Content> |
| |
| |
| <!--CONTENT index=0 --> |
| <div class="CSection"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="uvm_*_imp_ports" href="../../src/tlm1/uvm_imps.svh">uvm_*_imp ports</a></h1><div class=CBody><p>The following defines the TLM implementation (imp) classes.</p> |
| |
| <!--START_ND_SUMMARY index=0--> |
| <div class=Summary><div class=STitle>Contents</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable> |
| <!-- index=0 --> |
| |
| <tr class="SMain"><td class=SEntry><a href="#uvm_*_imp_ports" >uvm_*_imp ports</a></td><td class=SDescription>The following defines the TLM implementation (imp) classes.</td></tr> |
| <!-- index=1 --> |
| |
| <tr class="SSMethod SMarked"><td class=SEntry><a href="#uvm_*_imp#(T,IMP)" >uvm_*_imp #(T,IMP)</a></td><td class=SDescription>Unidirectional implementation (imp) port classes--An imp port provides access to an implementation of the associated interface to all connected <i>ports</i> and <i>exports</i>. </td></tr> |
| <!-- index=4 --> |
| |
| <tr class="SSMethod"><td class=SEntry><a href="#uvm_*_imp#(REQ,RSP,IMP,REQ_IMP,RSP_IMP)" >uvm_*_imp #(REQ, RSP, IMP, REQ_IMP, RSP_IMP)</a></td><td class=SDescription>Bidirectional implementation (imp) port classes--An imp port provides access to an implementation of the associated interface to all connected <i>ports</i> and <i>exports</i>. </td></tr></table></div></div><!--END_ND_SUMMARY--> |
| </div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=1 --> |
| <div class="CClass"><div class=CTopic><h2 class=CTitle><a name="uvm_*_imp#(T,IMP)" href="../../src/tlm1/uvm_imps.svh">uvm_*_imp #(T,IMP)</a></h2><div class=CBody><p>Unidirectional implementation (imp) port classes--An imp port provides access to an implementation of the associated interface to all connected <i>ports</i> and <i>exports</i>. Each imp port instance <i>must</i> be connected to the component instance that implements the associated interface, typically the imp port’s parent. All other connections-- e.g. to other ports and exports-- are prohibited.</p><p>The asterisk in <i>uvm_*_imp</i> may be any of the following</p><blockquote><pre>blocking_put |
| nonblocking_put |
| put |
| |
| blocking_get |
| nonblocking_get |
| get |
| |
| blocking_peek |
| nonblocking_peek |
| peek |
| |
| blocking_get_peek |
| nonblocking_get_peek |
| get_peek</pre></blockquote><p>Type parameters</p><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>T</td><td class=CDLDescription>The type of transaction to be communicated by the imp</td></tr><tr><td class=CDLEntry>IMP</td><td class=CDLDescription>The type of the component implementing the interface. That is, the class to which this imp will delegate.</td></tr></table><p>The interface methods are implemented in a component of type <i>IMP</i>, a handle to which is passed in a constructor argument. The imp port delegates all interface calls to this component.</p> |
| |
| <!--START_ND_SUMMARY index=1--> |
| <div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable> |
| <!-- index=1 --> |
| |
| <tr class="SClass"><td colspan=2 class=SEntry><a href="#uvm_*_imp#(T,IMP)" >uvm_*_imp #(T,IMP)</a></td></tr> |
| <tr class=SMain><td colspan=2 class=SWideDescription>Unidirectional implementation (imp) port classes--An imp port provides access to an implementation of the associated interface to all connected <i>ports</i> and <i>exports</i>. </td></tr> |
| <!-- index=2 --> |
| |
| <tr class="SGroup SIndent1"><td class=SEntry><a href="#uvm_*_imp#(T,IMP).Methods" >Methods</a></td><td class=SDescription></td></tr> |
| <!-- index=3 --> |
| |
| <tr class="SMethod SIndent2"><td class=SEntry><a href="#uvm_*_imp#(T,IMP).new" >new</a></td><td class=SDescription>Creates a new unidirectional imp port with the given <i>name</i> and <i>parent</i>. </td></tr></table></div></div><!--END_ND_SUMMARY--> |
| </div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=2 --> |
| <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="uvm_*_imp#(T,IMP).Methods" href="../../src/tlm1/uvm_imps.svh">Methods</a></h3></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=3 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_*_imp#(T,IMP).new" href="../../src/tlm1/uvm_imps.svh">new</a></h3><div class=CBody><p>Creates a new unidirectional imp port with the given <i>name</i> and <i>parent</i>. The <i>parent</i> must implement the interface associated with this port. Its type must be the type specified in the imp’s type-parameter, <i>IMP</i>.</p><blockquote><pre>function new (string name, IMP parent);</pre></blockquote></div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=4 --> |
| <div class="CClass"><div class=CTopic><h2 class=CTitle><a name="uvm_*_imp#(REQ,RSP,IMP,REQ_IMP,RSP_IMP)" href="../../src/tlm1/uvm_imps.svh">uvm_*_imp #(REQ, RSP, IMP, REQ_IMP, RSP_IMP)</a></h2><div class=CBody><p>Bidirectional implementation (imp) port classes--An imp port provides access to an implementation of the associated interface to all connected <i>ports</i> and <i>exports</i>. Each imp port instance <i>must</i> be connected to the component instance that implements the associated interface, typically the imp port’s parent. All other connections-- e.g. to other ports and exports-- are prohibited.</p><p>The interface represented by the asterisk is any of the following</p><blockquote><pre>blocking_transport |
| nonblocking_transport |
| transport |
| |
| blocking_master |
| nonblocking_master |
| master |
| |
| blocking_slave |
| nonblocking_slave |
| slave</pre></blockquote><p>Type parameters</p><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>REQ</td><td class=CDLDescription>Request transaction type</td></tr><tr><td class=CDLEntry>RSP</td><td class=CDLDescription>Response transaction type</td></tr><tr><td class=CDLEntry>IMP</td><td class=CDLDescription>Component type that implements the interface methods, typically the the parent of this imp port.</td></tr><tr><td class=CDLEntry>REQ_IMP</td><td class=CDLDescription>Component type that implements the request side of the interface. Defaults to IMP. For master and slave imps only.</td></tr><tr><td class=CDLEntry>RSP_IMP</td><td class=CDLDescription>Component type that implements the response side of the interface. Defaults to IMP. For master and slave imps only.</td></tr></table><p>The interface methods are implemented in a component of type <i>IMP</i>, a handle to which is passed in a constructor argument. The imp port delegates all interface calls to this component.</p><p>The master and slave imps have two modes of operation.</p><ul><li>A single component of type IMP implements the entire interface for both requests and responses.</li><li>Two sibling components of type REQ_IMP and RSP_IMP implement the request and response interfaces, respectively. In this case, the IMP parent instantiates this imp port <i>and</i> the REQ_IMP and RSP_IMP components.</li></ul><p>The second mode is needed when a component instantiates more than one imp port, as in the <a href="uvm_tlm_req_rsp-svh.html#uvm_tlm_req_rsp_channel#(REQ,RSP)" class=LClass id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">uvm_tlm_req_rsp_channel #(REQ,RSP)</a> channel.</p> |
| |
| <!--START_ND_SUMMARY index=4--> |
| <div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable> |
| <!-- index=4 --> |
| |
| <tr class="SClass"><td colspan=2 class=SEntry><a href="#uvm_*_imp#(REQ,RSP,IMP,REQ_IMP,RSP_IMP)" >uvm_*_imp #(REQ, RSP, IMP, REQ_IMP, RSP_IMP)</a></td></tr> |
| <tr class=SMain><td colspan=2 class=SWideDescription>Bidirectional implementation (imp) port classes--An imp port provides access to an implementation of the associated interface to all connected <i>ports</i> and <i>exports</i>. </td></tr> |
| <!-- index=5 --> |
| |
| <tr class="SGroup SIndent1"><td class=SEntry><a href="#uvm_*_imp#(REQ,RSP,IMP,REQ_IMP,RSP_IMP).Methods" >Methods</a></td><td class=SDescription></td></tr> |
| <!-- index=6 --> |
| |
| <tr class="SMethod SIndent2"><td class=SEntry><a href="#uvm_*_imp#(REQ,RSP,IMP,REQ_IMP,RSP_IMP).new" >new</a></td><td class=SDescription>Creates a new bidirectional imp port with the given <i>name</i> and <i>parent</i>. </td></tr></table></div></div><!--END_ND_SUMMARY--> |
| </div></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=5 --> |
| <div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="uvm_*_imp#(REQ,RSP,IMP,REQ_IMP,RSP_IMP).Methods" href="../../src/tlm1/uvm_imps.svh">Methods</a></h3></div></div> |
| |
| |
| |
| |
| <!--CONTENT index=6 --> |
| <div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="uvm_*_imp#(REQ,RSP,IMP,REQ_IMP,RSP_IMP).new" href="../../src/tlm1/uvm_imps.svh">new</a></h3><div class=CBody><p>Creates a new bidirectional imp port with the given <i>name</i> and <i>parent</i>. The <i>parent</i>, whose type is specified by <i>IMP</i> type parameter, must implement the interface associated with this port.</p><p>Transport imp constructor</p><blockquote><pre>function new(string name, IMP imp)</pre></blockquote><p>Master and slave imp constructor</p><p>The optional <i>req_imp</i> and <i>rsp_imp</i> arguments, available to master and slave imp ports, allow the requests and responses to be handled by different subcomponents. If they are specified, they must point to the underlying component that implements the request and response methods, respectively.</p><blockquote><pre>function new(string name, IMP imp, |
| REQ_IMP req_imp=imp, RSP_IMP rsp_imp=imp)</pre></blockquote></div></div></div> |
| |
| </div><!--Content--> |
| |
| |
| |
| <!--START_ND_TOOLTIPS--> |
| <div class=CToolTip id="tt1"><div class=CClass> |
| <blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype> |
| <tr><td><table border=0 cellspacing=0 cellpadding=0><tr> |
| <td class=PBeforeParameters nowrap>class uvm_tlm_req_rsp_channel #(</td> <td class=PType nowrap>type </td> |
| <td class=PParameter nowrap>REQ</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%>int,</td> |
| </tr><tr><td></td> <td class=PType nowrap>type </td> |
| <td class=PParameter nowrap>RSP</td> |
| <td class=PDefaultValuePrefix> = </td> |
| <td class=PDefaultValue width=100%>REQ</td> |
| <td class=PAfterParameters nowrap>) extends uvm_component</td></tr> |
| </table></td></tr> |
| </table></blockquote> |
| The uvm_tlm_req_rsp_channel contains a request FIFO of type <i>REQ</i> and a response FIFO of type <i>RSP</i>. </div></div><!--END_ND_TOOLTIPS--> |
| |
| <script language=JavaScript><!-- |
| if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html> |