weiqi7777

IES low-power中的set_sim_control命令

0
阅读(2070)

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

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

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

命令用法如下:

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

  • -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工具,都会支持这个命令。

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

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