首页
|
新闻
|
新品
|
文库
|
方案
|
视频
|
下载
|
商城
|
开发板
|
数据中心
|
座谈新版
|
培训
|
工具
|
博客
|
论坛
|
百科
|
GEC
|
活动
|
主题月
|
电子展
注册
登录
论坛
博客
搜索
帮助
导航
默认风格
uchome
discuz6
GreenM
»
数字电路
» 数字IC低功耗设计入门(二)——功耗的分析(7)
返回列表
回复
发帖
发新话题
发布投票
发布悬赏
发布辩论
发布活动
发布视频
发布商品
数字IC低功耗设计入门(二)——功耗的分析(7)
发短消息
加为好友
look_w
当前离线
UID
1066743
帖子
8283
精华
0
积分
4142
阅读权限
90
在线时间
233 小时
注册时间
2017-6-23
最后登录
2019-5-18
论坛元老
UID
1066743
1
#
打印
字体大小:
t
T
look_w
发表于 2017-11-7 16:03
|
只看该作者
数字IC低功耗设计入门(二)——功耗的分析(7)
(5)VCD转SAIF分析法
前介绍了使用SAIF文件分析功耗的方法,这个方法都是通过VCS仿真得到相应的SAIF
文件,然后进行功耗分析。下面我们介绍使用VCD文件转换成SAIF文件的方法,然后进行功耗分析。
①VCD文件的产生
首先,我们在进行仿真的时候,需要通过在testbench中加入相关的系统函数,产生相应的VCD文件(和SDF文件),流程示意图如下所示:
相应的一个示例testbench如下所示:
module testbench;
······
initial
$sdf_annotate("my.sdf",dut)
initial begin
$dumpfile("vcd.dump");
$dumpvars;
······
endmodule
然后使用下面命令进行仿真:
vcs -R dut.v testbench.v +delay_mode_path
完成仿真之后,就可以得到VCD文件了。
②VCD文件转换成SAIF文件
仿真时产生的VCD文件也包含了设计中节点和连线的开关行为。在Power Compiler中,可以使用程序vcd2saif可以把VCD文件转化为SAIF文件,如下图所示:
vcd2saif是在UNIX命令行使用的一个程序。vcd2saif程序也可以把VPD文件(二进制格式的VCD文件)转化为SAIF格式的文件。如果设计很大,仿真的时间长,vcd2saif程序可以用管道传递的方式把VCD转化为SAIF文件。这时vcd文件不存放在文件里,vcd通过先入先出(First-In First-()nt,简称FIFO把数据传给vcd2saif程序,然后产生SAIF文件。转换的SAIF文件里没有SDPD的信息。如下图所示:
有了SAIF文件之后,我们就可以像前面那样使用SAIF文件进行功耗分析了,至于是版图前的功耗分析还是版图后的功耗分析,取决于功耗分析时有没有与版图中有关的信息,比如是SPEF文件。因此流程为:
VCS产生VCD文件——》power compiler 将VCD文件转换为SAIF文件——》power compiler 进行分析功耗
最后,我们来说一下这里使用vcd2saif程序的好处,主要有下面三点:
1. VCD产生的速度快;
2. VCD是IEEE的标准并且适用于进行后仿真;
3. 转换的过程快。
=============================================================================================
我们已经介绍四种为设计产生开关行为的方法,分别是直接设置翻转率、RTL backward SAIF文件、gate back SAIF文件和VCD转SAIF文件;这些方法可以混合使用,其优先次序如下所示:
用read_ saif命令标记的开关行为优先级最高;用set_switching_activity命令设置的开
关行为优先级次之;优先级最低的是用默认的变量
power_default_toggle_rate
指定的翻
转率。
开关行为可以被清除,使用“
reset_switching_activity
”命令可以清除所有被标记的翻
转率和通过传输得到的翻转率。用
report_saif
可以显示读入saif文件后设计中的开关行为
信息。一个完整的SAIF文件,"user annotated”应该是100%。如果SAIF不完整,那么默
认的翻转率将附加到输入端和黑盒子的输出端。翻转率通过零延迟仿真传输下去,这样就
可以计算出设计的功耗。
使用report_saif命令的一个例子如下:
与开关行为有关的命令有:
merge_saif #合并SAIF文件
read_sai f #读backward SAIF文件
report_saif #报告开关行为的信息
rtl2saif #产生RTL forward SAIF文件
write_ saif #写出一个backward SAIF文件
lib2saif #产生library forward SAIF文件
propagate_switching_activity #传输功耗清除
reset_switching_activity #清除开关行为和/或翻转率
set_switching_activity #在指定的物体上设置开关行为
(6)功耗分析报告
我们是通过分析功耗报告(report_power命令产生)来查看设计功耗的,一个功耗报告的示例部分内容如下所示:
Cell Internal Power=883.0439 mW(66%)
Net Switching Power=453.0173 mW(34%)
Total Dynamic Power=1 .3361 W(100%)
Cell Leakage Power = 391.5133 nW
其中第一项为内部短路功耗,第二项为开关功耗,合起来为动态功耗;最后一项为静态功耗,也就是泄漏功耗。如果要报告设计中每个模块和单元的功耗,在report_power命令后加选项 -hier,例如: report_power -hier,产生的报告如下所示:
基于EDA工具——power compiler 的功耗分析就记到这里。
收藏
分享
评分
回复
引用
订阅
TOP
返回列表
电商论坛
Pine A64
资料下载
方案分享
FAQ
行业应用
消费电子
便携式设备
医疗电子
汽车电子
工业控制
热门技术
智能可穿戴
3D打印
智能家居
综合设计
示波器技术
存储器
电子制造
计算机和外设
软件开发
分立器件
传感器技术
无源元件
资料共享
PCB综合技术
综合技术交流
EDA
MCU 单片机技术
ST MCU
Freescale MCU
NXP MCU
新唐 MCU
MIPS
X86
ARM
PowerPC
DSP技术
嵌入式技术
FPGA/CPLD可编程逻辑
模拟电路
数字电路
富士通半导体FRAM 铁电存储器“免费样片”使用心得
电源与功率管理
LED技术
测试测量
通信技术
3G
无线技术
微波在线
综合交流区
职场驿站
活动专区
在线座谈交流区
紧缺人才培训课程交流区
意见和建议