低功耗设计——功耗估算
根据在功耗分析的过程中是否有输入向量的提供,功耗估算方法可以分为仿真的方法(Simulative)和非仿真的方法(Non-simulative):
- 仿真的方法是根据用户所提供的大量输入向量来对电路进行模拟,利用功耗估算工具来估算具体功耗值。采用这种方法只需要仿真的时间足够长,功耗估算的精度就可以达到很高。但是由于受限于仿真时间和内存需求(对于大规模集成电路,不能在较短时间内得到一个精度较高的功耗估算值),只能适用于较小规模的集成电路。
- 非仿真的方法首先生成一些与电路相关的信息,这些信息可以是随机的,也可以是确定的,然后通过这些信息来计算电路的功耗,如信息论法、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
低功耗设计——功耗估算相关推荐
- (数字IC)低功耗设计入门(二)——功耗的分析+Comments
前面学习了进行低功耗的目的个功耗的构成,今天就来分享一下功耗的分析.由于是面向数字IC前端设计的学习,所以这里的功耗分析是基于DC中的power compiler工具:更精确的功耗分析可以采用PT,关 ...
- (数字IC)低功耗设计入门(二)——功耗的分析
前面学习了进行低功耗的目的个功耗的构成,今天就来分享一下功耗的分析.由于是面向数字IC前端设计的学习,所以这里的功耗分析是基于DC中的power compiler工具:更精确的功耗分析可以采用PT,关 ...
- 数字SOC设计之低功耗设计入门(二)——功耗的分析
前面学习了进行低功耗的目的个功耗的构成,今天就来分享一下功耗的分析.由于是面向数字IC前端设计的学习,所以这里的功耗分析是基于DC中的power compiler工具:更精确的功耗分析可以采用PT,关 ...
- IC设计基础系列之低功耗篇2:(数字IC)低功耗设计入门(二)——功耗的分析
来自:http://www.cnblogs.com/IClearner/tag/%E4%BD%8E%E5%8A%9F%E8%80%97%E8%AE%BE%E8%AE%A1/ 前面学习了进行低功耗的目的 ...
- FPGA 的功耗概念与低功耗设计研究
文章转自(点击链接可以查看高清原文,失效请留言): 韩雪, 郭文成. FPGA的功耗概念与低功耗设计研究[J]. 单片机与嵌入式系统应用, 2010, 10(3):9-11. 深度解析FPGA的功耗 ...
- (一)低功耗设计目的与功耗的类型
一.低功耗设计的目的 1.便携性设备等需求 电子产品在我们生活中扮演了极其重要的作用,便携性的电子设备便是其中一种.便携性设备需要电池供电.需要消耗电池的能量.在同等电能提供下,低功耗设计的产品就能够 ...
- 数字SOC设计之低功耗设计入门(一)——低功耗设计目的与功耗的类型
低功耗设计这个专题整理了好久,有一个月了,有图有证据: 然而最近一直有些烦心事.郁闷事,拖延了一下,虽然现在还是有点烦,但是还是先发表了吧.下面我们就来聊聊低功耗设计吧,由于文章比较长,因此我就不一次 ...
- 数字电路基础-COMS电路静态、动态功耗,低功耗设计、PVT(Process、Voltage、Temperature工艺、电压、温度)、PPA(Power、Porformence、Area功耗、性能、
文章目录 一. CMOS电路功耗 二. CMOS电路功耗分类 2.1. 静态功耗(static power):漏电功耗 2.2. 动态功耗(dynamic power):开关功耗.短路功耗 三. 低功 ...
- (四)RTL级低功耗设计
前面介绍了系统级的低功耗设计,换句话说就是在系统级降低功耗可以考虑的方面.系统级的低功耗设计,主要是由系统级设计.具有丰富经验的人员实现,虽然还轮不到我们设计,我们了解一下还是比较好的.我们前端设计人 ...
最新文章
- 阿里再次主办大数据世界杯, KDD Cup2020正式开赛
- 微信小程序ios可以上下左右拖动的问题
- Karma和Jasmine自动化单元测试——本质上还是在要开一个浏览器来做测试
- lvs和HA的高可用性
- xampp 配置虚拟主机
- java socket中的方法_Java中关于Socket的方法与作用详解
- 从一句SQL得出的启示
- radius服务器认证系统,TekRadius(RADIUS服务器)
- 用python做查询系统_用python制作全国身份证号验证及查询系统
- Windows Server 2012/2012R2 中配置 MSDTC,令其使用特定端口
- 圈子圈套,何谓成功?
- 计算机网络路由交换技术运用,计算机网络路由交换的技术应用与发展趋势研究...
- 过滤掉Abp框架不需要记录的日志
- 一度智信:拼多多开店必备条件
- 计算机绘图c2是什么,Cad里c2表示(cad中C1(C2)这样的符号是什么意思)
- 什么叫封装?封装有什么作用?
- 站控层设备种类和对时方式
- 归纳法和演绎法在java程序中的运用
- 腾讯智维生态发展计划图扑软件正式加入,共同聚焦智能 IDC
- 【matlab 图像处理】 肤色检测
热门文章
- (转)Apache Rewrite 详解
- SetFormFullScreen()窗体全屏显示
- 数据轮播图翻页封装(左右点击)
- Win2D 入门教程 VB 中文版 - 防止内存泄漏
- Android中ExpandableListView控件基本使用
- linux_base-f10-10_7 linuxulator is not (kld)loaded
- 《当程序员的那些狗日日子》(六十一)美丽的天际
- 你真的了解Ioc与AOP 吗?(2)
- Visual Studio Code 使用 ESLint 增强代码风格检查 - gyzhao - 博客园
- vue --- 全局配置过滤函数,使用moment函数来格式化时间