hspice仿真的困惑
最近在使用hspice仿真测试电路功耗的过程中有个困惑,如下图
其中inv1 或inv2两个反相器就是用子电路描述的。
先算出电容和反相器的平均功耗
.measure tran p_cload avg p(cload) from=xxxns to=yyyns
.measure tran p_inv1 avg p(inv1) from=xxxns to=yyyns
.measure tran p_inv2 avg p(inv2) from=xxxns to=yyyns
再算出激励的平均功耗
.measure tran p_vdd avg p(vdd) from=xxxns to=yyyns
.measure tran p_clk avg p(clk) from=xxxns to=yyyns
发现
p_cload + p_inv1 +p_inv2 不等于 p_vdd + p_clk
想知道p(inv1) 或p(inv2)是怎么算的?
p(inv2)是否包括了输出负载cload的功耗,是否包括输入端电容的功耗?
请高手指点。
这个得先把基本功耗概念搞清楚。
功耗=积分(v(t)*i(t)*dt)
电荷从电源走到地才形成功耗
对单个倒向器来说,负载电容并无功耗,但电容有充电和放电,所以扮演了电荷从电源到地的中转角色。电源电压越高,电容越大,每次搬运电荷越多,频率越高,搬运速度越快,也就是所谓的fCVdd^2
p_cload + p_inv1 +p_inv2 等于 p_vdd
楼上正解,理想元不计入功耗
.meas tran val RMS power
那请问以上命令中真有效值功耗RMS又是指的什么呢?
好像也不对,这是仿真数据:
avgpowerinv1=1.836497ufrom=0.to= 256.000000n
avgpowerinv2=5.199440ufrom=0.to= 256.000000n
avgpowercload= -14.544698nfrom=0.to= 256.000000n
avgpowerclk_src=-220.918379nfrom=0.to= 256.000000n
avgpowervvdd=-6.824920ufrom=0.to= 256.000000n
avgpowerinv1 +avgpowerinv2 + avgpowercload 不等-avgpowervvdd
avgpowercload是负值。
我觉得..正如2楼说的...电容元件理想的话充放电是可以不计入功耗的...所以应该是inv1+inv2 = vdd+vclk...但是这还要取决于仿真的周期数...如果周期数不是整数的话是否要考虑到其中半个周期对电容充电所损耗的功耗?
p(vdd) + p(vclk) 与 p(inv1) + p(inv2)确实相差不大,
就是电容充电的时候存储一部分电荷同时反相器消耗一部分
然后电容放电好像是被反相器吸收了,使反相器产生功耗。
应该是这样的吧?
嗯。应该是这样的。我的理解是。一个周期内,正半周期反向器对电容充电,做功为W,那负半周期内电容放电,可以看成反向器做-W的功。所以电容的功耗可以看成0。但是如果不是一个周期。那就没法抵消。所以可以看成占有一定的功耗。
负值是因为电流流出流入的问题。