·上一文章:Protel 99 SE在某装备随动系统电路仿真中的应用
·下一文章:基于FPGA的改进型分组交织器的设计与实现
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函数收集数据,软件层比较数据,打印分析结果。