首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

数字IC低功耗设计入门(二)——功耗的分析(3)

数字IC低功耗设计入门(二)——功耗的分析(3)

下面来举例说明这个命令的用法:
例一:
    create_clock CLK -period 20
    set_switching_activity  -base_clock  CLK  -toggle   0.5  -static  0.015  [all_inputs]
上述命令设置了时钟周期为20ns,然后命令使用的是-base_clock的选项,所有输入端的翻转值为0.5,静态概率为0.015,于是得到翻转率Tr=0 .5/20=0.025 GHz


例二:
    set_switching_activity -period  1000  -toggle  25  -static  0.015   [all_inputs]
上述没有创建时钟,但是使用了period选项,意思是1000个周期内翻转了25次,于是我们就可以得到所以输入的翻转率Tr=25/1000=0. 025 GHz


例三:
    set_switching_activity -toggle  0.025  -static  0.015 [all_inputs]
上述命令中,-period和 -base_clock这两个选项都没有使用,这个时候就跟工艺库里面的时间单位有关了,若库中时间单位为ns,那么我们就得到翻转率Tr=0.025 /1 = 0.025 GHz

  上面讲解了set_switching_activity ,下面我们就来讲解一下set_case_analysis。
  set_case_analysis 用来指定一个静态逻辑值,也就是设置信号为常数,不进行翻转;设计里面的一些信号需要这样子设计,例如复位信号,设置如下所示:
    set_case_analysis  1  [get_ports reset]
则设置了reset的值常为1.
=================================================================================================
  上面我们讲解了设置翻转率的方法,下面举例说明一下如何综合使用这两种翻转率。例如对于下面的设计:
              
翻转率的设置要求如下所示:
  1.正确地定义时钟;
  2.使用set_case_analysis命令设置常数控制信号reset;
  3.在传输起点设置翻转率,在输入端和黑盒子输出端设置任何已知的翻转率,其他的起点将使用默认的翻转率。
  4.让工具在设计中把翻转率传播下去
上面的没有要求具体的翻转率,因此我们可以设置我们想要的翻转率,根据上面的要求,我们编写相应的tcl脚本如下所示:
  create_clock  -p  4  [get_ports clk}
  set_case_analysis  0  reset  [get_ports  reset]
  set_power_default_toggle_rate  0.003
  set_switching_activity -tog 0.02  a
  set_switching_activity -tog 0.06  b
  set_switching_activity -tog 0.11  x
上面的脚本中,设置了周期为4(ns)的时钟,然后利用set_case_analysis命令,设置reset端口为常数;翻转值为0.003,那么对应的翻转率为0.003/4ns,这个是默认的翻转率;然后利用set_switching_activity命令指定a、b、x的翻转值,其翻转率为 翻转值/4ns。
=============================================================================================

返回列表