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

2022-09-27 11:37:50 浏览数 (2)

大家好,又见面了,我是你们的朋友全栈君。

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

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

一、总体介绍

(一)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支持的芯片器件类型

表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 界面

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/179765.html原文链接:https://javaforall.cn

0 人点赞