根据在功耗分析的过程中是否有输入向量的提供,功耗估算方法可以分为仿真的方法(Simulative)和非仿真的方法(Non-simulative):

  1. 仿真的方法是根据用户所提供的大量输入向量来对电路进行模拟,利用功耗估算工具来估算具体功耗值。采用这种方法只需要仿真的时间足够长,功耗估算的精度就可以达到很高。但是由于受限于仿真时间和内存需求(对于大规模集成电路,不能在较短时间内得到一个精度较高的功耗估算值),只能适用于较小规模的集成电路。
  2. 非仿真的方法首先生成一些与电路相关的信息,这些信息可以是随机的,也可以是确定的,然后通过这些信息来计算电路的功耗,如信息论法、ATPG法、基于统计的方法等。非仿真的方法可以提高功耗估算的速度,但是功耗估算的准确度却没有仿真的方法高。

Synopsys公司的工具Power Compiler嵌入在Design Compiler之中,是一种可同时优化面积、功耗和时序的综合工具。它主要有以下两种功能:一是可以自动优化电路的功耗,使其最小化;二是在电路综合前预估功耗,使设计者可以更好地完成功耗分布的规划,在较短的时间内完成电路的低功耗设计。

用Power Compiler实现门级功耗估计的过程如下:

一 、获取SAIF(Switching Activity Interchange Format)文件;

使用工具Power Compiler进行功耗估算的时候会用到SAIF和VCD(Value Change Dump)这两种格式文件,它们都是用来记录设计中每个节点的翻转信息。SAIF文件只是保存了每个节点发生翻转的次数,而VCD文件详细地保存了每个节点发生翻转的时间。由于VCD格式文件记录了时间信息,所以它比SAIF格式文件大很多。

功耗估算的准确性主要取决于各节点的翻转信息是否可靠。使用工具Power Compiler估算功耗时通常会读入SAIF文件,以此获取各节点的翻转信息。在仿真工具中,设计者利用仿真程序或信号向量使设计中每个器件都发生跳变,把总跳变次数记录在SAIF文件中。SAIF格式文件可以通过以下两种方法产生:

1、通过仿真产生SAIF文件

1)RTL仿真

如图所示为RTL仿真产生SAIF格式文件的流程图,只需在testbench里加$set_toggle_region, $toggle_start, $toggle_stop, $toggle_report这几个命令后再运行仿真程序即可。

一个简单的示例如下:

initial begin $set_toggle_region(design_test.design_top); $toggle_start(); ….. //省略testbench中的测试语句 $toggle_stop(); $toggle_report("design.saif",1.0e-12,"design_test"); $finish;
end

2)门级仿真

下图为门级仿真产生SAIF格式文件的流程图。首先在Design Compiler里读入设计文件,通过命令lib2saif生成正向SAIF文件如forward.saif。然后通过VCS仿真生成反标的SAIF文件。在仿真之前,testbench里面除了需要加入RTL仿真生成SAIF格式文件时所需要的命令外,还必须在$set_toggle_region前加入命令$read_lib_saif(forward.saif)。

2、其他文件转换

1)用命令vcd2saif 把VCD格式文件转换成SAIF格式文件。

2)用命令fsdb2saif 把FSDB格式文件转换成SAIF格式文件。

二、Power Compiler读入SAIF格式文件进行功耗估计

生成了SAIF格式文件之后,就可以使用Power Compiler工具进行功耗估算了。具体步骤及主要脚本如下所示:

//=========在Design Compiler中读入设计文件=============
analyze -format verilog -library WORK /home/fxia/design/src/timescale.v analyze -format verilog -library WORK /home/fxia/design/src/design_defines.v …… //省略其他的设计文件 analyze -format verilog -library WORK /home/fxia/design/src/design_top.v elaborate design_top -library WORK -architecture verilog set current_design design_top link//=========定义时钟及各种约束=============......//=========读入前面产生的SAIF格式文件=============read_saif -input design.saif -inst design_test/design_top//=========生成设计的功耗报告=============report_power -analysis_effort high -verbose > $report/design_add_sig.power_rpt

低功耗设计——功耗估算相关推荐

  1. (数字IC)低功耗设计入门(二)——功耗的分析+Comments

    前面学习了进行低功耗的目的个功耗的构成,今天就来分享一下功耗的分析.由于是面向数字IC前端设计的学习,所以这里的功耗分析是基于DC中的power compiler工具:更精确的功耗分析可以采用PT,关 ...

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

    前面学习了进行低功耗的目的个功耗的构成,今天就来分享一下功耗的分析.由于是面向数字IC前端设计的学习,所以这里的功耗分析是基于DC中的power compiler工具:更精确的功耗分析可以采用PT,关 ...

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

    前面学习了进行低功耗的目的个功耗的构成,今天就来分享一下功耗的分析.由于是面向数字IC前端设计的学习,所以这里的功耗分析是基于DC中的power compiler工具:更精确的功耗分析可以采用PT,关 ...

  4. IC设计基础系列之低功耗篇2:(数字IC)低功耗设计入门(二)——功耗的分析

    来自:http://www.cnblogs.com/IClearner/tag/%E4%BD%8E%E5%8A%9F%E8%80%97%E8%AE%BE%E8%AE%A1/ 前面学习了进行低功耗的目的 ...

  5. FPGA 的功耗概念与低功耗设计研究

    文章转自(点击链接可以查看高清原文,失效请留言): 韩雪, 郭文成. FPGA的功耗概念与低功耗设计研究[J]. 单片机与嵌入式系统应用, 2010, 10(3):9-11. 深度解析FPGA的功耗 ...

  6. (一)低功耗设计目的与功耗的类型

    一.低功耗设计的目的 1.便携性设备等需求 电子产品在我们生活中扮演了极其重要的作用,便携性的电子设备便是其中一种.便携性设备需要电池供电.需要消耗电池的能量.在同等电能提供下,低功耗设计的产品就能够 ...

  7. 数字SOC设计之低功耗设计入门(一)——低功耗设计目的与功耗的类型

    低功耗设计这个专题整理了好久,有一个月了,有图有证据: 然而最近一直有些烦心事.郁闷事,拖延了一下,虽然现在还是有点烦,但是还是先发表了吧.下面我们就来聊聊低功耗设计吧,由于文章比较长,因此我就不一次 ...

  8. 数字电路基础-COMS电路静态、动态功耗,低功耗设计、PVT(Process、Voltage、Temperature工艺、电压、温度)、PPA(Power、Porformence、Area功耗、性能、

    文章目录 一. CMOS电路功耗 二. CMOS电路功耗分类 2.1. 静态功耗(static power):漏电功耗 2.2. 动态功耗(dynamic power):开关功耗.短路功耗 三. 低功 ...

  9. (四)RTL级低功耗设计

    前面介绍了系统级的低功耗设计,换句话说就是在系统级降低功耗可以考虑的方面.系统级的低功耗设计,主要是由系统级设计.具有丰富经验的人员实现,虽然还轮不到我们设计,我们了解一下还是比较好的.我们前端设计人 ...

最新文章

  1. 阿里再次主办大数据世界杯, KDD Cup2020正式开赛
  2. 微信小程序ios可以上下左右拖动的问题
  3. Karma和Jasmine自动化单元测试——本质上还是在要开一个浏览器来做测试
  4. lvs和HA的高可用性
  5. xampp 配置虚拟主机
  6. java socket中的方法_Java中关于Socket的方法与作用详解
  7. 从一句SQL得出的启示
  8. radius服务器认证系统,TekRadius(RADIUS服务器)
  9. 用python做查询系统_用python制作全国身份证号验证及查询系统
  10. Windows Server 2012/2012R2 中配置 MSDTC,令其使用特定端口
  11. 圈子圈套,何谓成功?
  12. 计算机网络路由交换技术运用,计算机网络路由交换的技术应用与发展趋势研究...
  13. 过滤掉Abp框架不需要记录的日志
  14. 一度智信:拼多多开店必备条件
  15. 计算机绘图c2是什么,Cad里c2表示(cad中C1(C2)这样的符号是什么意思)
  16. 什么叫封装?封装有什么作用?
  17. 站控层设备种类和对时方式
  18. 归纳法和演绎法在java程序中的运用
  19. 腾讯智维生态发展计划图扑软件正式加入,共同聚焦智能 IDC
  20. 【matlab 图像处理】 肤色检测

热门文章

  1. (转)Apache Rewrite 详解
  2. SetFormFullScreen()窗体全屏显示
  3. 数据轮播图翻页封装(左右点击)
  4. Win2D 入门教程 VB 中文版 - 防止内存泄漏
  5. Android中ExpandableListView控件基本使用
  6. linux_base-f10-10_7 linuxulator is not (kld)loaded
  7. 《当程序员的那些狗日日子》(六十一)美丽的天际
  8. 你真的了解Ioc与AOP 吗?(2)
  9. Visual Studio Code 使用 ESLint 增强代码风格检查 - gyzhao - 博客园
  10. vue --- 全局配置过滤函数,使用moment函数来格式化时间