📄 00887.html
字号:
<span style="color: #0000FF">typedef struct</span> t_vpi_source_info <span style="color: #800080">{</span>
PLI_BYTE8 <span style="color: #800080">*</span>fileName<span style="color: #800080">;</span>
PLI_INT32 startLine<span style="color: #800080">;</span>
PLI_INT32 startColumn<span style="color: #800080">;</span>
PLI_INT32 endLine<span style="color: #800080">;</span>
PLI_INT32 endColumn<span style="color: #800080">;</span>
<span style="color: #800080">}</span> s_vpi_source_info<span style="color: #800080">, *</span>p_vpi_source_info<span style="color: #800080">;</span>
<span style="color: #0000FF">typedef struct</span> t_vpi_assertion_info <span style="color: #800080">{</span>
PLI_BYTE8 <span style="color: #800080">*</span>assertName<span style="color: #800080">;</span> <span style="color: #008000">/* name of assertion */</span>
vpiHandle instance<span style="color: #800080">;</span> <span style="color: #008000">/* instance containing assertion */</span>
PLI_BYTE8 defname<span style="color: #800080">;</span> <span style="color: #008000">/* name of module/interface containing the assertion */</span>
vpiHandle clock<span style="color: #800080">;</span> <span style="color: #008000">/* clocking expression */</span>
PLI_INT32 assertionType<span style="color: #800080">;</span> <span style="color: #008000">/* vpiSequenceType, vpiAssertType,</span>
<span style="color: #008000"> vpiCoverType, vpiPropertyType,</span>
<span style="color: #008000"> vpiImmediateAssertType */</span>
s_vpi_source_info sourceInfo<span style="color: #800080">;</span>
<span style="color: #800080">}</span> s_vpi_assertion_info<span style="color: #800080">,</span> <span style="color: #800080">*</span>p_vpi_assertion_info<span style="color: #800080">;</span>
<span style="color: #0000FF">typedef struct</span> t_vpi_assertion_step_info <span style="color: #800080">{</span>
PLI_INT32 matched_expression_count<span style="color: #800080">;</span>
vpiHandle <span style="color: #800080">*</span>matched_exprs<span style="color: #800080">;</span> <span style="color: #008000">/* array of expressions */</span>
p_vpi_source_info <span style="color: #800080">*</span>exprs_source_info<span style="color: #800080">;</span> <span style="color: #008000">/* array of source info */</span>
PLI_INT32 stateFrom<span style="color: #800080">,</span> stateTo<span style="color: #800080">;</span> <span style="color: #008000">/* identify transition */</span>
<span style="color: #800080">}</span> s_vpi_assertion_step_info<span style="color: #800080">, *</span>p_vpi_assertion_step_info<span style="color: #800080">;</span>
<span style="color: #0000FF">typedef struct</span> t_vpi_attempt_info <span style="color: #800080">{</span>
<span style="color: #0000FF">union</span> <span style="color: #800080">{</span>
vpiHandle failExpr<span style="color: #800080">;</span>
p_vpi_assertion_step_info step<span style="color: #800080">;</span>
<span style="color: #800080">}</span> detail<span style="color: #800080">;</span>
s_vpi_time attemptStartTime<span style="color: #800080">;</span> <span style="color: #008000">/* Time attempt triggered */</span>
<span style="color: #800080">}</span> s_vpi_attempt_info<span style="color: #800080">, *</span>p_vpi_attempt_info<span style="color: #800080">;</span>
<span style="color: #008000">/* typedef for vpi_register_assertion_cb callback function */</span>
<span style="color: #0000FF">typedef</span> PLI_INT32 <span style="color: #800080">(</span>vpi_assertion_callback_func<span style="color: #800080">)(</span>
PLI_INT32 reason<span style="color: #800080">,</span> <span style="color: #008000">/* callback reason */</span>
p_vpi_time cb_time<span style="color: #800080">,</span> <span style="color: #008000">/* callback time */</span>
vpiHandle assertion<span style="color: #800080">,</span> <span style="color: #008000">/* handle to assertion */</span>
p_vpi_attempt_info info<span style="color: #800080">,</span> <span style="color: #008000">/* attempt related information */</span>
PLI_BYTE8 <span style="color: #800080">*</span>user_data <span style="color: #008000">/* user data entered upon registration */</span>
<span style="color: #800080">);</span>
<span style="color: #008000">/* assertion specific VPI functions */</span>
PLI_INT32 vpi_get_assertion_info <span style="color: #800080">(</span>assert_handle<span style="color: #800080">,</span> p_vpi_assertion_info<span style="color: #800080">);</span>
vpiHandle vpi_register_assertion_cb<span style="color: #800080">(</span>
vpiHandle assertion<span style="color: #800080">,</span> <span style="color: #008000">/* handle to assertion */</span>
PLI_INT32 reason<span style="color: #800080">,</span> <span style="color: #008000">/* reason for which callbacks needed */</span>
vpi_assertion_callback_func <span style="color: #800080">*</span>cb_rtn<span style="color: #800080">,</span>
PLI_BYTE8 <span style="color: #800080">*</span>user_data <span style="color: #008000">/* user data to be supplied to cb */</span>
<span style="color: #800080">);</span>
<span style="color: #008000">/***************************************************************************/</span>
<span style="color: #008000">/***************************************************************************/</span>
<span style="color: #008000">/*************** Reader VPI ***********************/</span>
<span style="color: #008000">/* reader VPI has been assigned the numeric range 800-899 */</span>
<span style="color: #008000">/********** Reader types ***********/</span>
<span style="color: #0000FF">#define</span> vpiTrvsObj 800 <span style="color: #008000">/* Data traverse object */</span>
<span style="color: #0000FF">#define</span> vpiCollection 810 <span style="color: #008000">/* Collection of VPI handle */</span>
<span style="color: #0000FF">#define</span> vpiObjCollection 811 <span style="color: #008000">/* Collection of traversable design objs */</span>
<span style="color: #0000FF">#define</span> vpiTrvsCollection 812 <span style="color: #008000">/* Collection of vpiTrvsObjs */</span>
<span style="color: #008000">/********* Reader methods *********/</span>
<span style="color: #008000">/* Check */</span>
<span style="color: #0000FF">#define</span> vpiIsLoaded 820 <span style="color: #008000">/* Object data is loaded check */</span>
<span style="color: #0000FF">#define</span> vpiHasDataVC 821 <span style="color: #008000">/* Traverse object has at least one VC</span>
<span style="color: #008000">* at some point in time in the</span>
<span style="color: #008000"> * database check */</span>
<span style="color: #0000FF">#define</span> vpiHasVC 822 <span style="color: #008000">/* Has VC at specific time check */</span>
<span style="color: #0000FF">#define</span> vpiHasNoValue 823 <span style="color: #008000">/* Has no value at specific time check */</span>
<span style="color: #0000FF">#define</span> vpiBelong 824 <span style="color: #008000">/* Belongs to extension check */</span>
<span style="color: #008000">/* Access */</span>
<span style="color: #0000FF">#define</span> vpiAccessLimitedInteractive 830 <span style="color: #008000">/* Interactive access */</span>
<span style="color: #0000FF">#define</span> vpiAccessInteractive 831 <span style="color: #008000">/* interactive with history access */</span>
<span style="color: #0000FF">#define</span> vpiAccessPostProcess 832 <span style="color: #008000">/* Database access */</span>
<span style="color: #008000">/* Member of a collection */</span>
<span style="color: #0000FF">#define</span> vpiMember 840 <span style="color: #008000">/* Member of a collection */</span>
<span style="color: #008000">/* Iteration on instances for loaded */</span>
<span style="color: #0000FF">#define</span> vpiDataLoaded 850 <span style="color: #008000">/* Use in vpi_iterate() */</span>
/* Control Traverse/Check Time */
<span style="color: #0000FF">#define</span> vpiMinTime 860 <span style="color: #008000">/* Min time */</span>
<span style="color: #0000FF">#define</span> vpiMaxTime 864 <span style="color: #008000">/* Max time */</span>
<span style="color: #0000FF">#define</span> vpiPrevVC 868 <span style="color: #008000">/* Previous Value Change (VC) */</span>
<span style="color: #0000FF">#define</span> vpiNextVC 870 <span style="color: #008000">/* Next Value Change (VC) */</span>
<span style="color: #0000FF">#define</span> vpiTime 874 <span style="color: #008000">/* Time jump */</span>
<span style="color: #008000">/********** routines **********/</span>
<span style="color: #008000">/* general form of the vpi extension loading function is:</span>
<span style="color: #008000">* PLI_INT32 vpi_load_extension PROTO_PARAMS((PLI_BYTE8 *extension_name, ...))</span>
<span style="color: #008000">*/</span>
<span style="color: #008000">/********** Reader routines **********/</span>
<span style="color: #008000">/* load extension form for the reader extension */</span>
PLI_INT32 vpi_load_extension PROTO_PARAMS((PLI_BYTE8 *extension_name,
PLI_BYTE8 *name,
vpiType mode, ...))
PLI_INT32 vpi_close PROTO_PARAMS((PLI_INT32 tool,
vpiType prop,
PLI_BYTE8* name));
PLI_INT32 vpi_load_init PROTO_PARAMS((vpiHandle objCollection,
vpiHandle scope,
PLI_INT32 level));
PLI_INT32 vpi_load PROTO_PARAMS((vpiHandle h));
PLI_INT32 vpi_unload PROTO_PARAMS((vpiHandle h));
vpiHandle vpi_create PROTO_PARAMS((vpiType prop,
vpiHandle h,
vpiHandle obj));
vpiHandle vpi_goto PROTO_PARAMS((vpiType prop,
vpiHandle obj,
p_vpi_time time_p,
PLI_INT32 *ret_code));
vpiHandle vpi_filter PROTO_PARAMS((vpiHandle h,
PLI_INT32 ft,
PLI_INT32 flag));
<span style="color: #0000FF">#ifdef</span> __cplusplus
}
<span style="color: #0000FF">#endif</span>
<span style="color: #0000FF">#endif</span></pre></div></div>
</div>
</div>
</div>
<!-- End Page Content -->
<!-- Begin Page Footer -->
<hr width="98%" align="center" size="1" color="#CCCCCC" />
<table align="center" cellpadding="0" cellspacing="0" border="0">
<tbody>
<tr height="10">
<td></td>
</tr>
<tr align="center">
<td>
<script type="text/javascript"><!--
google_ad_client = "pub-5266859600380184";
google_ad_width = 468;
google_ad_height = 60;
google_ad_format = "468x60_as";
google_ad_type = "text_image";
google_ad_channel ="";
google_page_url = document.location;
//--></script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
</td>
</tr>
<tr height="15">
<td></td>
</tr>
<tr align="center">
<td>
<font size=2>除非特别声明,原文版权归作者所有,如有转摘请注明原作者以及译者(<a href="http://www.fpgatech.net/" target="_blank">FPGA技术网</a>)信息。<br />
如果您对本主题有何建议或意见,请登陆<a href="http://www.fpgatech.net/forum/forumdisplay.php?fid=18" target="_blank">FPGA开发者家园</a>提交,您的参与是我们前进的动力。</font>
<script language="javascript" type="text/javascript" src="http://js.users.51.la/195685.js"></script>
<noscript><a href="http://www.51.la/?195685" target="_blank"><img alt="我要啦免费统计" src="http://img.users.51.la/195685.asp" style="border:none" /></a></noscript>
</td>
</tr>
</tbody>
</table>
<!-- End Page Footer -->
</div>
</div>
<!-- End Client Area -->
</body></html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -