卢骏 · 2020年06月07日

IES low-power中的set_sim_control命令

在使用IES工具,进行low-power仿真时,会遇到仿真非0时刻上电的模块,initial语句没有执行,造成内部的一些信号为x态,影响仿真结果的情况。对于这种问题,可以在upf文件中,加入set_sim_control命令,来控制。

initial语句,是在仿真的0时刻开始执行。如果模块是在仿真非0时刻上电,那么上电之后,initial语句,是不会执行的。

此时,可以使用set_sim_control命令,来对这个模块施加仿真控制。要注意,set_sim_control不是UPF标准中的命令,而是cadence IES工具,自己定义的命令。

命令用法如下:
1.png

下面对这个命令的选项,进行说明

◾-target:指定目标

◾-action:指定仿真的行为

◾power_up_replay: 上电之后,重新执行 initial语句
◾disable_corruption:不允许掉电
◾disable_isolation:  不允许isolation
◾disable_retention:   不允许retention

◾-domain: 指定power domain,施加-action指定的行为

◾-instances:指定 instances,施加-action指定的行为

◾-modules: 指定modules,施加-action指定的行为,可以使用匹配符*,但是不能用来开头。当使用匹配符,需要在编译阶段,加-lps_modules_wildcard选项

◾-lib_cells: 指定cells,施加-action指定的行为

以下是几个例子:

 set_sim_control –target {L*} –exclude {L1*} –action    power_up_replay 


对于所有组件的initial代码块,label为L开头,但是不以L1开头的initial代码块,在上电之后,重新执行initial语句。

set_sim_control –domains {PD1 PD2} –action power_up_replay 

对于处于PD1和PD2这两个power domain的模块,在上电之后,都要重新执行initial语句。

set_sim_control –instaces {A.B.C} –action power_up_replay 

对于A模块下的B模块下的C模块,在上电之后,重新执行initial语句

set_sim_control –modules {M1 M2} –action power_up_replay 

对于M1模块和M2模块,在上电之后,重新执行initial语句

set_sim_control –modules {RAM*} –action power_up_replay 

对于RAM开头的module,在上电之后,均要重新执行initial语句。如果使用了匹配符,在编译的时候,要加上-lps_modules_wildcard选项。

该命令,有很多作用,但是常用的就是 –action power_up_replay以及-action disable_corruption。

◾power_up_replay:主要是控制initial代码块在上电重新执行

◾disable_corruption:主要控制模块,即使在电源断掉情况下,也不要断电。主要用在checker,或者watchdog上。

set_sim_control命令,是cadence工具支持的low-power相关的命令,但是不是所有的cadence工具,都会支持这个命令。

该命令以及相应的选项,支持的工具,如下图:
2.png

可以看出,对于-domains选项,IES2工具,是不支持的。

更多相关阅读

UVM使用双顶层的用法
cadence indago征程(五)最强cpu debug工具-eswd
cadence indago征程(六) eswd工具配置与仿真

原文首发于骏的世界博客
作者:卢骏
更多IC设计相关的文章请关注IC设计极术专栏,每日更新。

推荐阅读
关注数
20200
内容数
1307
主要交流IC以及SoC设计流程相关的技术和知识
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息