蒙特卡洛分析_基于蒙特卡洛仿真的功耗分析方法

本文介绍了如何使用蒙特卡洛仿真进行功耗分析,通过大量随机输入模拟不同工作状态的概率,计算模块的平均功耗。忙时和闲时功耗可通过后仿得到,而忙/闲概率则通过估算模块的所需吞吐量与最大吞吐量得出。通过这种方法,可以快速有效地评估模块的功耗期望,避免了多次耗时的后仿过程。
摘要由CSDN通过智能技术生成

首先希望大家不要被逼格甚高的名字吓到。其实今天的内容很简单,就是讲一个功耗分析的思路,希望能对大家有所启发。

解释下什么是蒙特卡洛仿真。简单来讲就是通过大量的随机输入来求解某事发生的概率。以统计概率作为突破点逆向求解。举个栗子,怎么求解圆周率π呢?一种很简单的方法是投针实验:画一个半径已知的圆,再画一个外切的正方形,然后随机的丢一根针,丢无数次,统计出针落入圆中的概率P,再经过简单的运算(P=π/4),就可以近似得到π。丢针的次数越多,求得的π越精确。当然,这完全可以通过计算机程序来搞定。

再说下功耗分析。一般的功耗分析,主要通过后仿来进行。通过对netlist进行仿真,得到波形,然后将波形和netlist文件输入给后端的功耗分析工具,比如PT-PX进行功耗分析。EDA工具通过分析仿真波形中的信号跳变,结合各种cell的功耗库,给出功耗的分析值。

问题在于,一个波形只是一个case下的特例。你可以容易的得到模块最繁忙的功耗,也可以很容易的得到模块最清闲时候的功耗,毕竟这只是两个特例。但是如果我想知道该模块的功耗期望,或者说平均功耗是多少,该怎么得到?

你不可能通过大量的后仿真,比如说仿真100次,然后让工具分析100次,再对100次的功耗求平均值吧!这样需要大量的时间,因为后仿很慢很慢,而且需要仿真环境真实的模拟出模块的实际使用场景,对仿真环境也有很高的要求。

考虑到这些因素,通过大量的后仿来求平均功耗其实是不现实的。所以就有了我们这个新的理论。

根据数学基础,简化起见:

平均功耗 (功耗期望)=

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值