低功耗设计——功耗估算

        根据在功耗分析的过程中是否有输入向量的提供,功耗估算方法可以分为仿真的方法(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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/253481.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Deep Learning(深度学习)学习笔记整理系列三

Deep Learning(深度学习)学习笔记整理系列 声明: 1)该Deep Learning的学习系列是整理自网上很大牛和机器学习专家所无私奉献的资料的。具体引用的资料请看参考文献。具体的版本声明也参考原文献。 2)本文仅供学术交流&…

Conformal ECO 流程介绍

之前听说过一句话,没有修过ECO的人生是不完整的。最近就给我整得再次完整了。。。。。。 最近赶项目,RTL freeze之后,后仿发现出了bug(还好拦下来了,不然头更大),于是做了一次function ECO&…

Zabbix discoverer processes more than 75% busy

原文发表于cu:2016-06-22 Zabbix discoverer processes more than 75% busy原因及处理。 一.现象 配置了discovery任务后,zabbix dashboard 告警如下: Zabbix discoverer processes more than 75% busy 二.原因 1. 配置…

图像紫边消除(depurple)

图像紫边广泛存在于目前的手机摄像头、数码相机、监控摄像头等数字成像系统所得图像中,当我们使用这些设备在逆光、大光圈等条件下拍摄时,所得图像的局部区域,特别是高反差区域(亮暗对比反差很大的图像区域,比如天空、灯管与物体相接的边缘)会比较容易观察到紫边,解决图…

Swift 性能相关

起初的疑问源自于「在 Swift 中的, Struct:Protocol 比 抽象类 好在哪里?」。但是找来找去都是 Swift 性能相关的东西。整理了点笔记,供大家可以参考一下。 一些疑问 在正题开始之前,不知道你是否有如下的疑问: 为什么说 Swift 相…

HTTPS 路径配置

1: 首先安装 fiddlercertmaker.exe 文件2:Tools -> HTTPS 3: Connections 勾中Allow remote computer to connect转载于:https://www.cnblogs.com/eason-d/p/7492177.html

CMOS图像传感器——相位对焦

之前介绍了许多自动对焦的方案 自动对焦方法学习_沧海一升的博客-CSDN博客自动对焦的各类方法学习介绍https://blog.csdn.net/qq_21842097/article/details/121373263 在里面提到了遮蔽像素相位检测法,原理上算是相位检测法(Phase Detection Auto Focus,PDAF)的一种。…

Spring Cloud Config 和Spring Cloud Bus实现配置中心

2019独角兽企业重金招聘Python工程师标准>>> Spring Cloud是很多组件的集合,Spring将常用的技术框架进行包装和整合,如mybatis zookeeper rabbitmq redis等等,还有一些科技公司贡献出来的一些经过生产环境验证的组件如奈飞公司贡献…

CMOS图像传感器——闪烁(flicker)现象

一、概述 闪烁(Flicker),通常发生在室内场景,曝光时间设置如果不是光源能量周期的整数倍,则图像不同位置处积累的信号强度不同,并呈周期性变化,这是单帧图像的情况。在视频序列上,如果满足一定条件,视频会出现条纹模式在垂直方向上缓慢移动。 二、形成原因 1、光源 …

CMOS图像传感器——图像传感器噪声

图像传感器噪声取决于图像传感器的制作工艺、内部结构及内部补偿技术等原因,噪声反应了图像传感器的内部特性。CMOS图像传感器基本原理见: CMOS图像传感——概述_沧海一升的博客-CSDN博客_cmos图像传感器CMOS图像传感器基本介绍https://blog.csdn.net/qq_21842097/article/d…

TI Davinci DM6441嵌入式Linux移植攻略——UBL移植篇

目录(?)[] 一DM6441的Boot过程简介二DM6441的UBL移植 CCS文件夹Common文件夹GNU文件夹 移植DDR2移植Nand Flash其它 声明:本文参考网友zjb_integrated的文章《TI Davinci DM6446开发攻略——UBL移植》和《DAVINCI DM365-DM368开发攻略——U-BOOT-2010.12及UBL的移…

python接口自动化测试(二)-requests.get()

环境搭建好后,接下来我们先来了解一下requests的一些简单使用,主要包括: requests常用请求方法使用,包括:get,postrequests库中的Session、Cookie的使用其它高级部分:认证、代理、证书验证、超时…

数字图像处理——图像锐化

图像增强是图像处理的一个重要环节,早期的图像处理就是从图像增强开始的,人们研究对质量低的图像进行处理以获得改善质量后的图像。现今的图像增强还为后续的图像处理,如图像信息提取、图像识别等,提供更高识别度的图像。 从图像处理技术来看,图像的摄取、编码、传输和处理…

DAVINCI DM365-DM368开发攻略——U-BOOT-2010.12及UBL的移植

从盛夏走到深秋,我们继续DAVINCI DM365-DM368的开发。说来惭愧,人家51CTO热情支持本博客,而本人却一直没有像其他博客之星一样频繁更新博客,心里确实说不过去。管理公司确实很累,有更急的客户的项目要做,我…

SerDes接口——架构与电路

随着通信技术的飞速发展,高速串行互连以其结构简单,不需要传输同步时钟,相比并行传输有更高数据传输效率的优点,成为现代通信和数据传输的重要组成部分。随着对数据传输速率要求的不断提高,SERDES应运而生。它是一种时…

Springboot分模块开发详解(2):建立子工程

1.创建base-entity 选中base工程&#xff0c;右键创建一个新的maven工程 自动选择了base这个目录存放子工程 创建后&#xff0c;pom.xml修改成如下内容&#xff1a; <?xml version"1.0"?> <projectxsi:schemaLocation"http://maven.apache.org/POM/4…

图像去雾算法学习

现有的图像采集设备对外界环境的干扰非常敏感,在雾霾环境中,获取的户外图像往往退化严重,主要表现为场景特征信息模糊、对比度低、色彩失真,不利于计算机视觉系统对图像真实特征的提取,从而影响其后续的分析、理解、识别等一系列处理,很大程度上降低了视觉系统的实际应用…

训练与解码

BW算法是对某一个HMM(一个音素)进行训练&#xff0c;需要该HMM对应的观察向量(一段音频)&#xff0c;如何让一段文本中的某个音素找到对应一整段音频中的一小段音频&#xff1f;需要用到对齐来找到所有的[音素-音频]的配对。 训练时也需要解码 1&#xff0c;设训练的一句话有n…

CMOS 图像传感器——Color Filter Array

在介绍CMOS图像传感器的工作原理时候说道,像点(Sensor感光的基本单元叫做“像点”)吸收入射光后会有一定概率激发出电子,这个过程叫做光电转换。光子激发出电子会被像点下方的电场捕获并存储起来备用。像点的作用可以类比成一个盛水的小桶,它可以在一定范围内记录其捕获的…

我的一点企业做云经验

最近&#xff0c;经常有朋友问我在企业做云的经验&#xff0c;也有人问我OpenStack二次开发项目经验。正好这方面也有点经历&#xff0c;那现在就把我过往有关经历整理整理&#xff0c;总结出几条心得体会&#xff0c;分享给大家。 技术&#xff1a;我们OpenStack二次开发做了什…