紫光同创国产FPGA学习之Power Calculator

紫光同创里面的,芯片功耗计算。没看过,没用过。有兴趣瞄一下。我又不用再电池行业,对电源没啥要求。

没用经验之谈,拷贝参考书。

一、总体介绍   

(一)Pango Power Calculator总体介绍

Pango Power Calculator是用来计算用户设计产生功耗的软件,简称PPC,是集成在PDS中的一个组件。用户在完成design设计,经过综合、map、布局布线后,可以使用PPC计算出芯片的功耗。
在布局布线后,PPC可以得到真实的FPGA资源使用情况(包括各种资源的数目、绕线情况、Clock主频等),通过这些信息可以计算出较准确的功耗值。
PPC主要有三项数据输入:
1.布局布线完成之后,各项资源的使用信息,包括:各种Grid device资源的实际数目、配置信息、绕线信息、以及Clock的主频、Clock数量等。
2.Signal activities信息,有两种方式获取该信息:一种是由用户指定默认值,软件根据用户指定的默认toggle和static probability,通过遍历整个网表来估算所有资源的signal activities;另一种是读入仿真工具(如Modelsim)产生的VCD文件来得到精确的signal activities。
3.用户提供的外部工作条件,主要包括环境、电压等参数。
PPC利用以上的输入数据可以精准的计算出功耗数值,较准确的反映design的功耗和芯片温升情况。
(二)功耗介绍

我毛华望QQ849886241,深圳工程师。博客http://blog.csdn.net/my_shar

1. 功耗的基本概念
功耗是电路在单位时间内消耗的能量,国际标准单位是瓦特(w)。
能量是物理系统做功本领的量度,国际标准单位是焦耳(j)。
2. FPGA电路功耗组成和分析
1)静态功耗(Static Power)
静态功耗是指FPGA在正常运行时所有电路各种漏电(leakage)产生的功耗。随着工艺尺寸的小型化,静态功耗占芯片总功耗的比例会越来越高。
2)动态功耗
动态功耗是用户设计(design)产生的功耗,由design本身的功能及数据输入的模式决定,主要包括瞬时功耗和充放电功耗。瞬时功耗在FPGA首次通电时产生,随着供电电压的不同而改变。充放电功耗是电路在充放电过程中产生的功耗。
3)片上功耗
片上功耗是FPGA芯片内部产生的功耗,它是静态功耗和动态功耗的总和。
4)片外功耗
片外功耗是IO引脚驱动芯片外部电路产生的功耗,主要包含IO终端,LED,IO buffer等电路。
3. 功耗影响因素
1)电压(Voltage)
电压主要影响动态充放电功耗,动态功耗和电压的平方成正比。
2)负载(Load)
负载主要影响动态充放电功耗,动态功耗和负载成正比。
3)时钟频率(Frequency)
时钟频率主要影响动态充放电功耗。动态功耗和时钟频率成正比。
4)信号翻转率(Toggle rate)
一个时钟周期之内信号翻转的次数,主要影响动态充放电功耗。动态功耗计算公式为:
P = 0.5 C V^2 f d
其中d表示Toggle rate。
5)输入状态概率(Input static probability)
输入状态概率是单位时间内输入为高电平的概率,主要影响input-dependent功耗。
6)输入信号转换速率(Input signal slew rate)
输入信号转换速率主要影响动态瞬时功耗。
7)工艺偏差(Process variation)
工艺偏差影响静态功耗和动态功耗。
8)环境温度(Ambient temperature)
环境温度是芯片周围空气的温度,主要影响静态功耗。
9)节点温度(Junction temperature)
节点温度是在设备运行时,FPGA中半导体电路PN结的温度。通常在选择device之后,会选择一个温度等级。这个等级定义了一个温度范围,在此范围下保证device可以按照指定的状态运行。如果运行环境超过了温度范围,将无法保证设备的正常运行。
结点温度 = 环境温度 + 片上功耗 * 对空气的有效热阻

10)对空气的有效热阻(Effective Thermal Resistance to Air(θJA(°C/W)))
对空气的有效热阻是一个定义功耗从FPGA中的硅单元以热量的形式扩散到空气的系数。
主要包含两部分:
1.        热量从硅单元向上传到周围空气中的热阻,用 θJA表示。
2.        热量从硅单元向下传到电路板然后到达空气的热阻,用 θJB表示。

4.  PPC计算FPGA功耗的组成部分
PPC主要针对FPGA芯片在上电之后,芯片正常工作时的功耗进行分析,包含各种资源的静态和动态功耗分析。鉴于各种资源的功耗模型或者分析手段不同,PPC的功耗分析按照以下资源类别来进行:
1)逻辑资源
包括LUT,flop,gate,MUX等可编程逻辑块内部的功耗。
2)APM
乘法器,累加器,flop等APM模块内部功耗。
3)DRM
DRM内部功耗。
4)PLL
PLL内部功耗。
5)Clock network
Clock network产生的功耗,占全芯片功耗的较大比例。
6)Routing资源
Signal routing的功耗,占全芯片功耗的最大比例,而且随着工艺的小型化,这部分比例会越来越大。
7)IO
IO的功耗包括IO自身功耗,和IO驱动外部电路的功耗两个部分。
8)Hard-IP
包括SERDES、DDR2/3等。
9)其他模块
如Configuration RAM、CCS、解密模块、e-fuse等。

二、功能描述
(一)PPC功能简介

       PPC通过遍历布局布线之后的电路网表,根据相关的配置情况(环境参数、电源电压、信号翻转率等)计算出用户设计中用到的各项资源的功耗数据。每次改变相关配置后需要重新执行PPC来计算功耗数据。
在执行PPC计算功耗之前,用户可以指定VCD文件用于计算信号的toggle rate,如果没有指定VCD文件,软件将会根据用户指定的默认signal activities估算出信号的toggle rate。
功耗数据计算完成之后,软件将会产生一个后缀为.ppr的功耗报告文件,该文本文件以表格的形式记录了setting信息和summary信息。setting信息包含器件、工作环境、电源电压等参数配置情况。summary中记录了总的功耗信息、各类资源的功耗分布以及各个电源的功耗分布情况。
(二)PPC支持的芯片器件类型

扫描二维码关注公众号,回复: 4324697 查看本文章


表1   PPC支持的芯片器件类型
(三)软件运行

1)软件执行流程
PPC集成在PDS中,需通过PDS来运行PPC,PDS中提供了两种执行PPC的方式。
1. 双击Flow窗口下的Report Power,可产生文本类型的功耗报告。
在执行PPC之前用户可以配置PPC运行的相关参数,若不进行配置,PPC将使用默认参数计算功耗。
在Flow窗口中点击鼠标右键弹出菜单。


图 1  右键菜单配置选项
选择configure,在弹出对话框的左侧窗口中选择Report Power,右侧窗口跳转到PPC相应的配置界面。


图 2  PPC参数配置界面
该窗口中有两个复选框和两个Tab页面:Power Settings和VCD File Settings。
在Power Settings页面中,Specify Input Setting File为用户需要指定的配置文件,该配置文件提供了PPC计算功耗过程中需要的器件、环境、电源电压等相关参数。
在VCD File Settings页面中包含三项输入内容:
Specify Input VCD File: 用户指定的后仿真文件,该文件记录了仿真波形,通过该文件能够获取信号的翻转情况。
Specify the test bench top module:用户指定的仿真文件中顶层module名。
Specify the design top module instance:用户指定的设计design在test bench中的例化名。

图 3  VCD配置界面
在完成配置之后点击OK按钮保存配置。
双击Flow窗口下的Report Power执行PPC功耗计算流程,如下图所示:


图 4  Flow窗口界面
Report Power前面会出现一个进度条指示PPC执行功耗计算的进度情况,若在PPC执行过程中出现错误,PPC会停止执行并在Console窗口输出错误信息。PPC正常完成之后,点击PDS Report Summary界面中Report窗口下的Report Power选项,即可在PDS上打开PPC产生的文本形式的功耗报告。如下图所示:

图 5  PPC产生的文本格式的功耗报告
2. 点击PDS工具栏的Power Calculator图标,PPC会将功耗计算结果显示在界面中。
      在PDS的工具栏中点击Power Calculator图标,如图所示:


图 6  PDS工具栏的Power Calculator图标
       PPC首先加载模型文件,读取网表信息。之后弹出详细配置向导界面,如下图所示:


图 7  PPC配置图形界面
该页面中有2个按钮:Next、Run。
Next:跳转到下一个配置界面。
Run:执行PPC计算功耗。
 
       配置向导中有两个页面。
       1. 文件配置向导,如上图所示。页面中有7个选项:
       Input Setting File:用户指定的PPC参数设置文件。
       Input VCD File:用户指定的VCD仿真文件。
       Specify the test bench top module:指定测试用例顶层module名。
       Specify the design top module instance:指定design在test bench中例化的名字。
       Output Setting File:用户指定输出的设置文件名和保存路径,PPC在运行完成之后会把运行时的相关参数保存下来,若不指定则在当前工作路径下保存默认设置文件。
       Output Text Report File:用户指定输出的功耗报告文件,PPC在运行完成之后会把功耗计算结果保存在功耗报告文件中。若不指定该文件则会在当前工作路径下保存默认功耗报告文件。
       Output PPF File:用户指定的PPF文件名和路径。PPF文件可作为PPP的工程文件,记录了PPC计算功耗中所有的参数和数据。若不指定则在当前工作路径下保存默认文件。
点击Next按钮进入参数配置界面。
2、详细参数配置界面,如下图所示。

图 8  PPC详细参数配置界面

该界面中有4个Tab页面分别为Device Settings、Environment、Power Rail、Default Activity Rate。
Device Settings:器件参数,灰色表示只读,不可改变。
Environment:环境参数,包括温度、散热情况、空气热阻等。
Power Rail:电源电压参数,单位为伏特(V)。
Default Activity Rate:默认的信号翻转情况和时钟频率。
   点击Run按钮执行PPC功耗计算,会弹出一个进度条指示PPC计算功耗的进度情况。当计算完成之后进度条消失,出现PPC功耗的功耗报告窗口如下图所示:

注:
PPC所有文件所在文件夹名:只允许字母数字下划线(_)杠(-)点(.)@ 和空格( ),但空格不能出现在路径名首尾 ;
 
文件名:只允许字母数字下划线(_)杠(-)点(.)。
 
       点击Run后,PPC即开始进行功耗计算,此时会弹出一个包含进度条和输出窗口的对话框,如图9所示:

图 9  PPC功耗计算窗口
       进度条显示当前功耗计算的完成度,而下边的输出窗口用来输出打印信息,在功耗计算结束后,用户可以查看计算中是否有错误或者警告产生,点击Close按钮将关闭该对话框,点击OK按钮将进入主界面,显示如图10所示的功耗报告界面。

图 10  PPC界面的功耗报告
窗口的左边是索引窗口,索引包括Setting、Summary、Device三个选项,如下图所示:


图 11  功耗报告的索引窗口
2)Setting页面
点击Setting选项打开的页面可以看到用户在Configure界面所进行的设置,如下图所示:

图 12  Setting 界面
3)Summary页面
在Summary页面上,用户可以查看整体的功耗信息。如图所示:

图 13  Summary 界面
Power Summary页面简明的显示了芯片功耗和温度的相关情况,包括总的片上功耗,静态功耗,外部功耗,结点温度等。
Logic Device Summary页面显示了不同资源的功耗及各个资源功耗所占总功耗的比例。
Power Rail Summary面板显示了不同电源的电流值及估算出的功耗值。
这个页面中的所有数据都是不可编辑的只读数据,这些数据反映了用户设计的功耗和分布情况。
4)Device页面
Device下的选项对应芯片中各类资源的配置和功耗计算数据页面。主要包括:Clock、DRM、CLM、IO、APM、PLL和Net等。本列只显示被使用了的资源的信息,未使用的资源将不会显示。点击这些选项可以查看这些资源的使用情况和功耗数据,如下图所示为DRM的数据页面。

图 14  Device 界面

猜你喜欢

转载自blog.csdn.net/my_share/article/details/84594291