CN101038601A - 在vlsi电路与系统设计中高层次估计功耗的方法 - Google Patents

在vlsi电路与系统设计中高层次估计功耗的方法 Download PDF

Info

Publication number
CN101038601A
CN101038601A CNA2007100396545A CN200710039654A CN101038601A CN 101038601 A CN101038601 A CN 101038601A CN A2007100396545 A CNA2007100396545 A CN A2007100396545A CN 200710039654 A CN200710039654 A CN 200710039654A CN 101038601 A CN101038601 A CN 101038601A
Authority
CN
China
Prior art keywords
entropy
formula
power consumption
circuit
signal
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CNA2007100396545A
Other languages
English (en)
Inventor
吴一品
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fudan University
Original Assignee
Fudan University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fudan University filed Critical Fudan University
Priority to CNA2007100396545A priority Critical patent/CN101038601A/zh
Publication of CN101038601A publication Critical patent/CN101038601A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

本发明属于集成电路设计技术领域,具体涉及一种在VLSI电路与系统设计中的功耗估计方法。本发明提出一种改进熵的定义,使其能估计信号在时间上相关性时的翻转率,并提出由条件翻转因子表达的时间相关信号翻转率D以及由输入信号的条件翻转因子求得输出信号条件翻转因子的方法,根据计算获得的信号条件翻转因子与改进熵的线性关系,得到电路的平均功耗。本发明方法能够在VLSI电路和系统设计中,信号在时间上相关性时的估计功耗,克服了原有方法的局限性。

Description

在VLSI电路与系统设计中高层次估计功耗的方法
技术领域
本发明属集成电路设计技术领域,具体涉及一种在VLSI电路与系统设计中的功耗估计方法。
背景技术
随着集成电路工艺的发展,电路的集成度和复杂度不断提高,使得功耗成为VLSI电路与系统设计首要考虑的因数之一。为了避免重复设计,高层次的功耗估计也越来越迫切[1]。在超大规模电路的高层次上,门级翻转的估计方法将因其时间和空间上的复杂度而无法使用,同时在电路综合之前作的系统级功耗估计对精确度的要求相对宽松,所以我们需要研究新的算法来提高翻转率的估计速度。用熵建立的模型来估计功耗就是一种在高层次估计功耗的方法。
在shannon信息论中用熵的概念来衡量数字信号的复杂度,数字电路实现了将输入信号转换为输出信号的过程。M.Nemni和F.N.Najm提出了基于熵的布尔逻辑电路高层次功耗分析估计方法,仅利用一个模块的输入和输出节点的翻转信息,就能估计整个模块的功耗。这种方法计算速度快,精确度较高,适合在高层次系统级功耗估计。
在数字电路中功耗Pavg的主要来源是节点对电容的充放电,从文献[2]可以得到(1)式,
                         Pavg∝Davg                    (1)
其中
D avg = 1 N Σ i = 1 N D ( x i ) - - - ( 2 )
N表示电路节点总数(包括电路内部全部节点),D(xi)表示第i个节点的翻转率,Davg表示电路的平均翻转率。
传统熵算法将电路中的某一节点xi的熵定义为[2]:
             H(xi)=-pilogpi-(1-pi)log(1-pi)        (3)
其中pi表示节点xi上的信号为1的概率。文献[2]表明H(xi)非常接近曲线4pi(1-pi),所以也可以把熵近似为
                  H(xi)=4pi(1-pi)                     (4)
假设信号在时间上没有相关性,则
                  D(xi)=2pi(1-pi)                     (5)
由(4)(5)我们得到熵和翻转率的关系
                   H(xi)≈2D(xi)                     (6)
由(2)(6)有熵和功耗的关系
                    Pavg∝Havg                         (7)
其中
H avg = 1 N Σ i = 1 N H ( x i ) - - - ( 8 )
Pavg表示每个节点的平均功耗,Havg表示电路中所有节点平均熵,N表示电路节点总数,第i个节点和第i个熵H(xi)相对应。由[2],(8)式可以近似为
H avg = 2 2 ( n + m ) ( H i + 2 H o ) - - - ( 9 )
其中m和n分别表示电路输出和输入的端口数,Hi和Ho分别表示输入熵的总和和输出熵的总和,记为
H i = Σ i = 1 n H ( x i ) , H o = Σ j = 1 m H ( y j ) .
可以看出,传统的熵只需计算输入和输出节点的熵,利用(9)式就可求出包括内部节点在内的电路全部节点平均熵(由此可推出电路全部节点的总翻转率)。和经典概率方法相比,极大地降低了算法的时间和空间复杂度,适合在高层次估计功耗。但这样定义的熵只有信号在时间上没有相关性时才和翻转率有线性关系,因此有很大的局限性。
发明内容
本发明的目的在于对VLSI电路与系统设计中,信号在时间上有相关性时的功耗估计方法。
本发明先提出改进熵,使其能估计信号在时间上相关性时的翻转率,譬如语音和图像信号。首先推导由条件翻转因子表达的时间相关信号的翻转率D以及由输入信号的条件翻转因子求输出信号条件翻转因子的方法,然后给出改进熵的定义,最后证明改进熵和翻转率D之间的关系。
2.1条件翻转因子和翻转率
对某一信号xi,已知p01表示在已知上一个时钟周期为0时,这个时钟周期为1的概率,而p10表示已知上一个时钟周期为1时,这个时钟周期为0的概率,用t表示这个时钟周期,t-T表示上一个时钟周期,p01和p10定义成P(xi(t)=1|xi(t-T)=0)和P(xi(t)=0|xi(t-T)=1),简单记为P(xi(t)| xi(t-T))和P( xi(t)|xi(t-T))。
假设xi是Markov链平稳分布[3,4],其状态转移图如图1所示。
从[4]得:
p ( x i = 0 ) p ( x i = 1 ) = p 00 p 10 p 01 p 11 p ( x i = 0 ) p ( x i = 1 ) - - - ( 10 )
由概率的定义:
p(xi=1)+p(xi=0)=1                       (11)
p00=1-p01                                    (12)
p11=1-p10                                    (13)
从(10)(11)(12)(13)得到pi的表达式
p i = P ( x i = 1 ) = P ( x i ( t - T ) ) = P ( x i ( t ) ) = p i 01 p i 01 + p i 10 - - - ( 14 )
由条件概率公式得到(15)、(16)两式:
P( xi(t-T)xi(t))=p01p(xi=0)               (15)
P(xi(t-T) xi(t))=p10p(xi=1)               (16)
所以得到D的表示式如
D i = P ( x ‾ i ( t - T ) x i ( t ) ) + P ( x i ( t - T ) x ‾ i ( t ) ) = 2 p i 01 p i 10 p i 01 + p i 10 - - - ( 17 )
对于一个n输入的布尔逻辑y=f(x1,x2,…xn),如果知道每个输入的p10和p01,就可以根据(15)(18)求出每个输入的P和D。然后根据[5]中的BDDs方法重复使用(18)式n次即可求出输出的P:
P ( y = 1 ) = P ( x i = 1 ) × P ( f x i = 1 ) + P ( x i = 0 ) × P ( f x i = 0 ) - - - ( 18 )
根据[6]中方法用(19)式就可以求出输出的D:
D(y)=2(P(y)-P(y(t)y(t-T)))                      (19)
最后再根据(14)(17)两式求出的输出的p10和p01:
p y 10 = D ( y ) 2 P ( y = 1 ) - - - ( 20 )
p y 01 = D ( y ) 2 ( 1 - P ( y = 1 ) ) - - - ( 21 )
这样就能够从已知的每个输入的p10和p01求出每个输出的p10和p01。
2.2改进熵的定义
我们定义改进熵:
Hc=(-plogp-(1-p)log(1-p))×(p01+p10)             (22)
其中p是信号等于1的概率,根据(14)式可知,
p = p 01 p 01 + p 10 - - - ( 23 )
2.3改进熵的证明
从定义(22)式可以看出改进熵和传统熵的关系为
               Hc=H×(p01+p10)                       (24)
由(4)(15)两式得:
H ≈ 4 p ( 1 - p ) = 4 p 01 p 10 ( p 01 + p 10 ) 2 - - - ( 25 )
所以改进熵可以由(24)(25)用p01和p10表示:
H c = 4 p 01 p 10 p 01 + p 10 - - - ( 26 )
比较(17)(26)两式,最终可以得到改进熵和考虑时间相关性的翻转率也呈线性关系:
                          Hc=2D                      (27)
当信号在时间上相互不关联时,即当
     p01=p(xi=1|xi=0)=p(xi=1)                  (28)
     p10=p(xi=0|xi=1)=p(xi=0)                  (29)
时,可以得到:
         p01+p10=p(xi=1)+p(xi=0)=1                (30)
D = 2 p 01 p 10 p 10 + p 10 = 2 p ( 1 - p ) - - - ( 31 )
                  H=Hc                               (32)
可以看到D蜕化成(5)式,改进熵也蜕化成为传统熵。由此可见,传统熵只是改进熵的一种特例而已,而改进熵能够估计信号在时间上相互关联时的翻转率,有比传统熵更广泛的应用性。
在高层次上估计信号在时间上相关的功耗的计算步骤归纳如下:
1.统计测出各个输入信号xi周期为1的概率P和翻转率D。
2.通过(18)、(19)式算出各个输出信号周期为1的概率P和翻转率D。
3.由(20)式、(21)式算出各个输出信号的p01和p10。
4.由(22)就可以算出各个输入和输出信号的改进熵Hc
5.通过(9)式就得到了整个电路平均的改进熵。
6.有(1)式和(6)式中的关系就得到电路的平均功耗。
附图说明
图1为状态转移图。
图2为当pin=0.5时输入的翻转率和改进熵的关系。
图3为当Din=0.5时,输入信号为1概率和改进熵的关系。
图4为改进熵和实际的翻转率的关系。
图5为各个电路的绝对误差值。
具体实施方式
我们采用改进熵的定义如(22)式,仍然利用电路模型的结果(9)式,估计信号在时间上有相关性时的翻转率。以ISCAS85 Benchmark中10个电路为实验样本电路。从(20)和(21)两式可以看出,对于任意一组输入概率Pin1,Pin2,...和输入翻转率Din1,Din2,...有唯一的一组(p01,p10)1,(p01,p10)2,...和其相对应。
我们假设Pin(=Pin1=Pin2=...)=0.5时,各个电路输入翻转率Din(=Din1=Din2=...)从0.1开始均匀的,每隔0.1变化到0.9的曲线如图2所示。我们首先通过(18)、(19)两式得到各个输出信号为1的概率和翻转率D。然后得到各个输出信号的p01和p10,继而算出各个输入和输出信号的改进熵Hc。然后通过(9)式我们就可以得到图2。从图中说明,即便Pin固定不便,改进熵仍然会变化。
图3可以依照图2通过同样的方法得到,其显示的是当Din=0.5时,各个电路的改进熵随着Pin变化的曲线图(其中Pin值只能取0.25到0.75之间,因为受到D/2≤p≤1-D/2限制[8])。图3更清楚地表明当输入翻转率Din固定时,改进熵随输入概率Pin的变化很小。图2、图3说明,改进熵主要由输入翻转率Din决定,不再和传统熵一样由输入概率Pin决定。
为验证改进熵求出的平均翻转率和实际节点平均翻转率有一致关系,我们为benchmark中10个电路各用50组不同的Pin和Din做了测试,我们依照上述的方法得到估计值,然后重复的利用(18)和(19)两式分别计算电路内部的各个节点和输出节点,继而得到整个电路的平均翻转率的真实值,结果如图4所示。横轴表示通过改进熵求得的平均翻转率,竖轴表示用经典方法求出的的平均翻转率。从图4中可以看出它们之间具有很好的一致性,说明改进熵能有效的估计整个电路的翻转率。
最后分析图4中数据的绝对误差。分别求出benchmark中10个电路50组数据由改进熵得到的翻转率和电路的实际翻转率的绝对误差,进而得到10个电路50个绝对误差的平均值,得到图5。可以看到它们的绝对误差都在0.1以下,这对高层次估计来说是完全可以接受的。
熵的方法可以以极低的时间度和极高的准确度估算电路节点的总翻转率,因而特别适用于大规模电路的高层次功耗估计。但传统熵不能处理输入信号具有时间相关性的情况。本文针对这个问题,引入条件翻转因子,提出了改进熵。理论和实验结果证明了我们提出的改进熵算法的有效性,它比传统熵具有更宽广的适用范围。
参考文献
[1]F N Najm.A survey of power estimation techniques in VLSI circuits[J].IEEE Trans,onVLSI Systems,1994,2(4):446-455
[2]M.Nemani and F.N.Najhm,Toward a high-level power estimation capability[J].IEEETrans.Computer-Aided Design Integr.Syst.,1996.15(6):588-598
[3]T.M.Cover and J.A.Thomas,Elements of information theory[M].New York:Wiley,1991.
[4]P H Schneider,U Schlichtmann,B Wurth.Fast power estimation of large circuits[J].Design & Test of Computers IEEE,1996.13(1):70-78
[5]S Minato,N Ishiura,S yajima.Shared binary decision diagram with attributed edges forefficient Boolean function manipulation[A].27th Design Automation Conference[C].Orlando,Florida:June,199052-57
[6]T L Chou,K Roy,and S Prasad.Estimation of circuit considering signal correlations andsimultaneous switching[A].ACM/IEEE Int-ernational Conference on Computer-AidedDesign[C].San Jose:November 1994300-303
[7]K Roy,S Prasad.Low-Power CMOS VLSI circuit design[M].Wiley,2000
[8]S.Gupta and F.N.Najm.Power modeling for high-level power estimation[J].IEEE Trans.VLSI Syst.,2000.8(1):19-28

Claims (1)

1、一种在VLSI电路与系统设计中高层次估计功耗的方法,其特征在于具体步骤如下:
(1)统计测出各个输入信号xi的周期为1的概率P和翻转率D:
已知p01表示在已知上一个时钟周期为0时,这个时钟周期为1的概率,p10表示已知上一个时钟周期为1时,这个时钟周期为0的概率,用t表示这个时钟周期,t-T表示上一个时钟周期,p01和p10定义成P(xi(t)=1|xi(t-T)=0)和P(xi(t)=0|xi(t-T)=1),简单记为P(xi(t)| xi(t-T))和P( xi(t)|xi(t-T));
(2)由(18)式、(19)式计算出各个输出信号周期为1的概率P和翻转率D:
P ( y = 1 ) = P ( x i = 1 ) × P ( f x i = 1 ) + P ( x i = 0 ) × P ( f x i = 0 ) - - - ( 18 )
D(y)=2(P(y)-P(y(t)y(t-T)))                                   (19)
这里y=f(x1,x2,…xn)为n输入的布尔逻辑;
(3)由(20)式、(21)式计算出各个输出信号的p10和p01:
p y 10 = D ( y ) 2 P ( y = 1 ) - - - ( 20 )
p y 01 = D ( y ) 2 ( 1 - P ( y = 1 ) ) - - - ( 21 )
(4)由(22)式计算出各个输入和输出信号的改进熵Hc:
Hc=(-p log p-(1-p)log(1-p))×(p01+p10)                       (22)
(5)由(9)式获得整个电路平均的改进熵Havg
H avg = 2 3 ( n + m ) ( H i + 2 H o ) - - - ( 9 )
其中m和n分别表示电路输出和输入的端口数,Hi和Ho分别表示输入熵的总和和输出熵的总和,记为
H i = Σ i = 1 n H ( x i ) , H o = Σ j = 1 m H ( y j ) ;
(6)然后由(1)式和(6)式的关系,得到电路的平均功耗:
Pavg∝Davg                                                    (1)
其中
D avg = 1 N Σ i = 1 N D ( x i ) - - - ( 2 )
N表示电路节点总数,D(xi)表示第i个节点的翻转率,Davg表示电路的平均翻转率;
H(xi)≈2D(xi)                                                 (6)。
CNA2007100396545A 2007-04-19 2007-04-19 在vlsi电路与系统设计中高层次估计功耗的方法 Pending CN101038601A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNA2007100396545A CN101038601A (zh) 2007-04-19 2007-04-19 在vlsi电路与系统设计中高层次估计功耗的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNA2007100396545A CN101038601A (zh) 2007-04-19 2007-04-19 在vlsi电路与系统设计中高层次估计功耗的方法

Publications (1)

Publication Number Publication Date
CN101038601A true CN101038601A (zh) 2007-09-19

Family

ID=38889499

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA2007100396545A Pending CN101038601A (zh) 2007-04-19 2007-04-19 在vlsi电路与系统设计中高层次估计功耗的方法

Country Status (1)

Country Link
CN (1) CN101038601A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117454813A (zh) * 2023-12-22 2024-01-26 杭州行芯科技有限公司 电路的翻转概率信息计算方法、装置和计算机设备

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117454813A (zh) * 2023-12-22 2024-01-26 杭州行芯科技有限公司 电路的翻转概率信息计算方法、装置和计算机设备

Similar Documents

Publication Publication Date Title
Moons et al. Energy-efficiency and accuracy of stochastic computing circuits in emerging technologies
CN1193294C (zh) 一种多通道多位并行计算crc码的方法
CN1279698C (zh) 运用Turbo码中的质量标记标准的迭代停止准则
CN101079642A (zh) 误差校正码的译码方法及其程序和设备
CN1976227A (zh) 脉冲宽度调制装置
CN1254921C (zh) 改进的哈夫曼译码方法和装置
US20200026809A1 (en) Sand mold digital flexible extrusion near-net forming optimization method based on search algorithm
CN102663190B (zh) Pptl符号模型检测方法
CN101038601A (zh) 在vlsi电路与系统设计中高层次估计功耗的方法
RU2010109431A (ru) Способ передачи данных
CN1161884C (zh) 通信系统中用于迭代解码器的量化方法
CN1975787A (zh) 一种基于高阶三角形插值曲面细分的几何数据细分方法
CN117290549A (zh) 数据处理方法及编码电路
Vukobratovic et al. Transactions papers evaluation and design of irregular LDPC codes using ACE spectrum
CN101819513B (zh) 一种由补码求原码绝对值的方法
CN1192486C (zh) 一种缩短循环码纠错译码算法的集成电路实现方法及电路
CN1968490A (zh) 实现小区负载预测的方法
CN1975661A (zh) 一种集成电路中的数据运算方法及装置
CN1323102A (zh) 用于特博码的解码器及其解码方法
Lauter et al. An Efficient Rounding Boundary Test for {\rm pow}(x, y) in Double Precision
Xu et al. Low-Complexity Sign Detection Algorithm for RNS {2 n-1, 2 n, 2 n+ 1}
CN1543600A (zh) 幂乘电路
CN1561005A (zh) 快速纠双错bch码译码器
CN1739157A (zh) 生成位时钟的设备以及生成该位时钟的方法
CN111740747A (zh) 一种低秩循环矩阵的构造方法及其关联的多元ldpc码

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication