Modelsim添加sdf 数字后端modelsim后仿真
数字后端布局布线之后生成.v网表文件,可用Modelsim进行功能仿真;
首先综合用到的cell_lib库和IO_lib库,需要找生产厂商要对应库的.v文件添加到工程目录;
添加.v网表文件,和testbench.v,全部编译;
此时可进行仿真,并且仿真能够加载cell的延迟,较dc综合的结果更接近真实情况;
但是连线延迟没有加上,需要后端工程师抓取sdf文件(更为准确的是根据后端工程师提供的.v和SPEF文件做PT时序分析,自动生成SS和FF两类sdf)按下面的方法添加
Modelsim仿真前,点击Simulation->Start Simulation,点击SDF功能框;
点击Add,出现添加文件框;
SDF File选择要添加的sdf文件,可以使用Browse...快速添加
Apply to Region是选择sdf作用内容的,一定要填写,格式如下,根据自己的工程修改
/tb/top ——tb是testbench的名称,top是testbench中.v网表的例化名
Ok确定之后,选择仿真testbench文件
此时可能出现如下问题,表示sdf的内容并没有被加载上,
Warning: Out of 55980 SDF statements, 55980 had null values
根据网友经验,将SDF框左下角的两个选项勾上,再次仿真错误提示消失;
不过此时查看仿真结果,延时信息还是没有加载上,因为有的sdf文件有min/max而缺少typ的延时信息;
解决办法是,添加sdf文件时,将Delay类型由默认的typ改为min或者max;
再次进行仿真,结果显示,线延迟加载上了。此时仿真接近真实情况。
后话:
1、modelsim的操作都可以采用命令的方式实现;第一次不清楚命令时可以采用图像化的方法,操作框内会出现对应的命令,将命令记下,下次直接修改命令操作会快捷很多;
2、判断sdf线延时是否加载上的方法:可以查看sdf中的一个线延时,在仿真时将线的两端加入仿真,根据仿真结果判断是否有延迟。