首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 单元电路介绍 > 其它电路
基于C++TCL PLI联合仿真下的芯片验证方法研究
来源:本站整理  作者:佚名  2009-11-05 15:58:57




4 软件层关键技术
    编写参考模型和记分牌属于验证过程的软件层,采用C++语言编程实现。把这两个验证组件设计成两个函数,分别为Pan_rm(char *s_indata,vector<char*>vr_outdata)和Pan_check(char*s_indata,vector<char*>vc_outdata),函数入口参数为字符指针类型的原因是TCL脚本语言处理的全部是字符类型的变量,脚本层生成的激励数据为字符类型。
    当仿真执行到Verilog代码中PLI任务的时候,PLI函数中的calltf()会调用Pan_rm函数或Pan_check函数。在发送器中,calltf()把发送端共享缓存区中的数据取出并传给。Pan_rm函数,Pan_rm函数把入口的字符类型变量转换成整型变量,然后根据需求规格做相应的处理,最后把处理结果放入共享队列;在接收器中,calltf()收集设计模块的处理结果并传给Pan_check函数,Pan_check函数取出共享队列里面对应的Pan_rm函数的处理结果并与Pan_check函数的入口数据进行比较,把比较的结果存人到接收端共享缓存区,最后打印结果到一个输出文件中以便验证人员定位问题。


5 共享缓存区
    为了实现脚本层,时序层和软件层能够使用共享缓存区,要把C++扩展的TCL命令、编写的PLI函数命令以及软件层代码写在同一个C++工程文件里,定义全局变量作为共享缓存区实现三个层次的互联,最后通过VC编译代码以动态库的形式加载到仿真器里面去。


6 结 语
    TCL脚本命令在仿真之前运行,一经执行所有的激励数据就会生成,在PLI函数的checktf()例程里面获取modelsim的TCL解释器,并用TCL初始化函数将其初始化,这样扩展的TCL命令就可以在Modelsim的解释器里使用了。

    需要注意的是,如果不在PLI函数的checktf()例程里面获取并初始化Modelsim的TCL解释器,那么PLI函数是加载在Modelsim内核的,如果要修改PLI函数里面调用的全局变量,要在扩展的TCL命令之前加上vsim_kernel,这样才可以修改全局变量。当验证组件准备好、验证环境搭建完毕后,编写自动运行脚本执行仿真过程,按照如图2所示的操作流程自动进行验证工作:运行自动脚本,启动仿真器,加载动态库,Modelsim的TCL解释器运行TCL脚本,开始仿真推进仿真时间,触发发送器的PLI函数发送数据,软件层分析数据得到结果,设计模块分析数据得到结果,触发接收器的PLI函数收集数据,软件层比较数据,打印分析结果。

上一页  [1] [2] [3]  下一页

关键词:

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)

推荐阅读

图文阅读

热门阅读

Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:124,687.50000 毫秒