0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

常用的时序反标方法和EDA工具反标方法

sanyue7758 来源: 硅芯思见 2023-10-25 16:13 次阅读

前段时间,一个朋友聊叙到这个后仿真任务命令都咋用,随即整理了下,可以完成基本的后仿真不成问题,但是如果还要完成一些其他的幺蛾子,那就需要各位仔细研读各工具的UserGuide了。下文如果觉得有帮助,烦请“三连”,当然加鸡腿也是可以的。。。哈哈哈,开玩笑了,只要对需要的人有用即可。

后仿真时,需要使用sdf对网表记性反标,即对网表中的时序信息记性“替换”,本文将示例常用的时序反标方法和一些EDA工具反标方法。

1 采用SystemVerilog(Verilog)系统任务

SystemVerilog和Verilog中在过程块中使用系统任务$sdf_annotate实现sdf文件对于网表的反标,其使用格式如下:

$sdf_annotate(sdf_file,module_instance,config_file,log_file,mtm_spec,scale_factors,scale_type);

其中各参数的主要意义如下:

sdf_file:指定要使用的sdf文件;

module_instance:指定sdf文件要反标的设计层次,需要注意的是此时指定的是例化名而非模块名。同时该参数本身是可选择的,默认实例名为调用$sdf_annotate所在模块的实例名(注意顶层模块名与实例名相同,可参阅《【168】仿真时为什么顶层不例化》);

config_file:指定进行反标时一些详细的反标控制信息,该选项可选,一般不指定,详细看参考各EDA工具帮助手册;

log_file:指定保存反标过程中产生的log信息文件名,该选项可选,建议指定,以方便查阅反标过程中的信息;

mtm_spec:指定反标的时序类型,也是可选项,反标常用类型主要有下表几种。

关键字 说明
MAXMIN 反标时选用最大延迟值
MINIMUM 反标时选用最小延迟值
TOOL_CONTROL(默认) 默认值,由仿真工具指定
TYPICAL 反标时选用典型值

这里需要注意,该参数为字符串类型,所以在任务中指定表格中的参数时需要给对应的关键字加上双引号。

scale_factors:指定最大延迟、最小延迟和典型延迟值的缩放因子,该选项也是可选的,一般情况下也不指定。该参数可以实现对于反标值的缩放,默认值为1.01.0,当然也可以指定不同的值,实现延迟值的不同缩放比例,例如,scale_factors设置为“1.2:1.3:1.4”,此时sdf中指定的反标值为“24”,那么实际反标给网表的值为“1.2*21.4*4”,即此时的实际反标值为“2.45.6”;

scale_type:该参数也属于可选项,用于指定缩放因子具体作用的延迟值,指定该参数后,confg_file中指定的配置文件中的SCALE_TYPE将会被覆盖掉,该参数可以指定的关键字如下表所示。

关键字 说明
FROM_MAXMIN 缩放因子仅作用于最大延迟值
FROM_MINIMUM 缩放因子仅作用于最小延迟值
FROM_MTM(默认) 缩放因子作用于min/typ/max
FROM_TYPICAL 缩放因子仅作用于典型值

【示例】

ca55c9b0-730c-11ee-939d-92fbcf53809c.png

其中第二个参数top_tb是要反标模块的例化名,一般从顶层开始写起。个人比较推荐使用该方法,因为该方法不依赖于具体的EDA工具,而下述的方法依赖于具体的EDA工具,也因此,这些依赖于具体工具的命令不能复用。

2 EDA工具反标

因为反标操作是发生在析构(elaboration)阶段完成的,所以可以在工具的析构阶段增加对应的参数实现反标操作。下面将针对Synopsys的VCSMX和Cadence的NCSIM进行示例说明。

2.1 VCSMX(Synopsys)

2.1.1命令行

在析构命令中增加如下参数选项,可以实现指定层次和sdf的反标,具体格式如下:

-sdf min|typ|maxfile_sdf

注意其中min、typ和max是可选的,根据需要指定。

【示例】

ca77b584-730c-11ee-939d-92fbcf53809c.png

【反标信息】

ca82cbfe-730c-11ee-939d-92fbcf53809c.png

2.1.2 预编译方式

上面在析构命令中直接指定反标层次和sdf文件的方式存在一个问题,那就是如果我们的设计代码进行了修改,但是sdf文件并没有修改,此时如果编译完后,在析构的时候还要再进行一次sdf文件的解析反标,将会比较耗费时间,为此,一般的EDA工具都提供了另外一种反标方式,即对sdf文件进行预编译,如果sdf文件并没有修改,仅设计文件进行修改,此时就可以采用sdf预编译方式,具体操作步骤如下示例。

【示例】

ca8deb88-730c-11ee-939d-92fbcf53809c.png

【反标信息一】在系统任务$sdf_annotate中添加要使用的已经预编译的反标文件

ca97066e-730c-11ee-939d-92fbcf53809c.png

【反标信息二】在析构命令中加入已经预编译的反标文件,大家可以仔细观察下两者差异。

ca9f5878-730c-11ee-939d-92fbcf53809c.png

另外,在VCSMX中,还可以指定sdf预编译生成文件的保存路径,指定方式如下:

cab52072-730c-11ee-939d-92fbcf53809c.png

2.2 NCSIM

在NCSIM中使用较多的反标方式除了调用$sdf_annotate之外,就是采用命令文件的方式,其主要特点也是将sdf的编译与设计的编译分开,将sdf单独编译,在析构时再指定已经编译好的sdf文件,其具体操作如下示例。

【示例】

cac16d50-730c-11ee-939d-92fbcf53809c.png

反标信息同上,此处不再赘述。另外,如果使用nc的64模式进行仿真,那么在编译析构命令中加上“-64bit”即可。

当然上述EDA工具对应的各种命令还有很多对应的参数,想了解的朋友可以参考对应工具的UserGuide,示例中仅是一些基本设置项,大家可以根据需要记性调整。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 仿真
    +关注

    关注

    50

    文章

    3872

    浏览量

    132163
  • Verilog
    +关注

    关注

    28

    文章

    1326

    浏览量

    109302
  • System
    +关注

    关注

    0

    文章

    161

    浏览量

    36572
  • eda
    eda
    +关注

    关注

    71

    文章

    2539

    浏览量

    170869
  • 时序
    +关注

    关注

    5

    文章

    357

    浏览量

    36957

原文标题:常用的后仿真绝绝子---(VCSMX&NCSIM)

文章出处:【微信号:处芯积律,微信公众号:处芯积律】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    网页限制工具

    网页限制工具 
    发表于 09-29 11:28

    关于功能验证、时序验证、形式验证、时序建模的论文

    设计的验证平台,以此来提高工作效率。论文介绍了FF-DX地址计算部件的时序建模和静态时序分析方法。在静态时序分析之后,将SDF文件中的延时信息
    发表于 12-07 17:40

    关于POWERPCB元件编号ORCAD的研究

    `关于POWERPCB元件编号ORCAD的研究`
    发表于 08-20 14:38

    Cadence 16.5 Concept HDL原理图后每个元件出现CDS_PART_NAME信息

    Cadence 16.5 Concept HDL原理图后每个元件出现CDS_PART_NAME信息,整个原理图看着非常凌乱,如图所示。在原理图打包Export physical完成后,查看
    发表于 04-01 00:29

    Cadence 16.5 Concept HDL原理图打包后电源、地网络显示为红色

    Cadence 16.5 Concept HDL原理图打包后电源、地网络显示为红色,如图所示,是什么原因产生的呢?怎样消除?求大神赐教,谢谢!!!
    发表于 04-01 01:09

    linux的卷如何修改

    如何修改磁盘名称,例如U盘挂载后的名称。在windows下图形界面修改卷属性就OK,在linux下方法如下:
    发表于 07-12 08:30

    金橙子打卡labview打开发没头绪?c#封装成dll后labview调用真香!

    对接会面临很多数据类型和指针的调用问题。labview如何调用?我们的方法是直接用c#封装dll后提供labview调用。初始化与初始化函数名]返回值: 通用错误码备注:]使用条件:1确保库连接成功.2确保有库函数的地址.使用方法
    发表于 07-26 01:18

    如何将PT产生的SDF文件设计进行后仿真?

    RT,现在后端已把PR数据导出交付给了前端,我想问问,如何将PT产生的SDF文件设计进行后仿真呢?现在知道需要将SDF文件引入到testbench里,所以问题很简单如何在testbench里加
    发表于 06-23 06:50

    电机电源等多条电路的接线方法分享

    关注+星公众号,不错过精彩内容来源|EDA365微信公众号 |嵌入式专栏想知道哪些电路都是工程师日常工作经常会遇到,但是可能会做不好的吗?以下分享10+年电工常用的41例接线方法..
    发表于 06-30 06:42

    幺值的目的是什么

    ,来拨一拨这个云雾。从头开始查资料,从头开始梳理代码,就不信的搞不懂了。定标的原因是为了实现参数的幺化,那么就一点点来抽丝剥茧的理解吧。幺值的目的是什么?在查阅电路原理书籍后,找到如下的定义:幺值:
    发表于 08-27 08:27

    唤醒定时器硬件跳问题的软件解决方法

    1.提供了解决唤醒定时器硬件跳问题的软件解决方法。当RCX为LP时钟时,唤醒定时器的跳时间比预期的时间长3倍左右,因为硬件跳机制假定LP时钟频率为32KHz。添加了功能
    发表于 12-01 07:55

    Harmony系统角不显示怎么回事?

    自己开发的APP,同样的代码,调用的是华为官方文档的API,在华为手机安卓系统可以设置显示角数量;但是在鸿蒙系统就不显示角,系统的角设置是开启状态,主题是默认主题,麻烦路过的知道解决方法
    发表于 04-18 11:30

    基于多种EDA工具的FPGA设计

    基于多种EDA工具的FPGA设计 介绍了利用多种EDA工具进行FPGA设计的实现原理及方法,其中包括设计输入、综合、功能仿真、实现、
    发表于 05-14 18:38 868次阅读
    基于多种<b class='flag-5'>EDA</b><b class='flag-5'>工具</b>的FPGA设计

    多种EDA工具的FPGA设计方案

    多种EDA工具的FPGA设计方案 概述:介绍了利用多种EDA工具进行FPGA设计的实现原理及方法,其中包括设计输入、综合、功能仿真、实现、
    发表于 05-25 17:56 679次阅读
    多种<b class='flag-5'>EDA</b><b class='flag-5'>工具</b>的FPGA设计方案

    eda工具的技术来源 eda技术的设计方法

    EDA工具的技术来源主要包括描述统计学、可视化技术、探索性数据分析方法、数据挖掘技术,以及可交互性与用户界面设计。这些技术和方法的应用使得EDA
    发表于 07-21 15:09 594次阅读