资源、速度和功耗是FPGA设计中的三大关键因素。随着工艺水平的发展和系统性能的提升,低功耗成为一些产品的目标之一。功耗也随之受到越来越多的系统工程师和FPGA工程师的关注。Xilinx新一代开发工具Vivado针对功耗方面有一套完备的方法和策略,本文将介绍如何利用Vivado进行功耗分析和优化。

功耗估计

在Vivado下,从综合后的设计到布局布线后的设计,其间产生的任何DCP文件都可用于功耗估计,如图

1所示。打开综合后的设计或布局布线后的设计,既可以在图形界面模式下,选择Report

Power,也可以直接用Tcl命令report_power获取功耗估计结果。其中,利用布局布线后的设计可获得更为精确的功耗估计结果。

在Vivado下,有两种功耗估计模式。一种是向量模式,需要提供SAIF(Switching Activity Interchange

Format)或VCD文件;一种是非向量模式,只需要提供简单的参数即可,但估计结果不够准确。SAIF文件通过仿真生成,因此需要在Simulation

Settings中进行设置,如图 2所示。这里的仿真只能是综合后的功能/时序仿真或者布局布线后的功能/时序仿真,这是由图

1的流程决定的。Xilinx建议在向量模式下选择SAIF文件,因其估计速度要比VCD快。

选择Report Power之后,弹出图

3所示的界面,填入相应的参数,如果是向量模式,在Switching窗口中选择相应的SAIF文件,如图 4所示。可以看到Report

Power能够生成XPE功耗估计所需文件。功耗估计的结果如图 5所示,可以看到采用向量模式结果的confidence

level为high,非向量模式为low。之所以有这样的结果,是因为SAIF文件提供了内部信号和对外输入输出端口信号的翻转率,如图

6中的I/O Activity和Internal Activity所示。

图 3 Report Power界面

图 4 Report Power中的SAIF文件接口

5 图5 功耗估计结果

图 6 confidence level

high和low的原因

功耗优化

在Implementation阶段,有专门针对功耗优化的流程,如图

7所示。有布局之前的power_opt_design,也有布局之后的power_opt_design。相比而言,布局之前的power_opt_design对功耗的优化更彻底、更全面。

图 7 针对功耗优化的流程

选中图

7中的is_enabled,并运行implementation,结束之后打开布局布线后的设计,在菜单中选择Tool>Report>Report

Power

Optimization,或者用Tcl命令report_power_opt,可查看power_opt_design对功耗的优化报告,如图

8所示。可以看到,Vivado通过对BRAM添加使能信号(图中的TOOL GATED)控制信号的翻转率,达到降低功耗的目的。

图 8 功耗优化报告

功耗优化的目的是最大限度地降低FPGA功耗同时最小限度地避免其对时序的影响。但有时会出现功耗优化之后(运行power_opt_design)时序恶化甚至无法收敛的情况,此时可通过Tcl命令set_power_opt来控制功耗优化的对象。例如,对alu模块中的store_ram不进行优化,可通过Tcl脚本

1实现;若只对某时钟域进行优化,可通过Tcl脚本 2实现;若只对某类型的cell优化,可通过Tcl脚本 3实现。

综上所述,为了获得较为准确的功耗估计结果,应尽可能地提供SAIF文件,同时对设计中的所有时钟给出合理地约束,此外,对于扇出较大的控制信号也要给出其翻转率。功耗优化在设计之初就应考虑,设计中应遵循好的RTL代码风格,例如尽量避免对触发器和BRAM使用异步复位或置位,适时地选择布局前的power_opt_design和布局后的power_opt_design,并根据功耗优化对设计时序的影响,通过set_power_opt管理优化对象。

参考文献

[1] Xilinx. Ug997 (V2014.2) Power Analysis and Optimization

[1] Xilinx. Ug835 (V2014.2) Vivado Design Suite Tcl Command

Reference Guide

vivado如何评估_在Vivado下进行功耗估计和优化相关推荐

  1. mysql去掉秒杀场景_秒杀场景下mysql减库存逻辑优化

    [问题背景] 某天早上做活动,流量大量增长,导致大量更新库存操作失败. 操作mysql返回的错误均为"Lost Connection to mysql server",即mysql ...

  2. vivado 仿真_提高Vivado效率一种自研工具介绍

    在之前本公众号写过两篇关于工具更新对仿真调试提高效率的文章,<[干货]推荐一款FPGA仿真调试鸟枪换炮的工具!>以及<NCVerilog+SimVision+Vivado仿真环境搭建 ...

  3. vivado 如何创建工程模式_基于Vivado的FPGA高性能开发研修班2019年8月30日上海举行...

    一.课程介绍: 从7系列FPGA开始,Xilinx提出了Vivado Design Suite设计软件,提供全新构建的SoC 增强型.以 IP 和系统为中心的下一代开发环境,以解决系统级集成和实现的生 ...

  4. Vivado工程配置petalinux实现linux下网卡驱动

    0.说明 基于Vivado工程配置petalinux实现linux下控制PL端GPIO 完成对linux网卡的驱动 实验内容: 完成一个vivado工程,导出硬件信息 创建petalinux工程,导入 ...

  5. word2vec模型评估_特征工程(下)—特征评估

    点击上方"大数据与人工智能","星标或置顶公众号" 第一时间获取好内容 作者丨stephenDC 编辑丨Zandy 这是作者的第15篇文章 本文是特征工程系列的 ...

  6. Vivado:【1】Vivado 2018.3 配置ModelSim仿真

    碎碎念: 想要之后尽量将更新频率提高一些!_(:з)∠)_ 众所周知Vivado其实自带了仿真工具Vivado Simulator,但是使用起来有些卡顿和延迟(尽管UI非常好看). 由于Vivado本 ...

  7. linux打开vivado_ubuntu启动vivado UBUNTU 16.04安装VIVADO成功启动SDK - Linux - 服务器之家...

    ubuntu启动vivado UBUNTU 16.04安装VIVADO&&成功启动SDK 发布时间:2017-04-25 来源:服务器之家 在UNBUNTU 16.04 64位 系统下 ...

  8. r语言模型评估:_情感分析评估:对自然语言处理的过去和未来的反思

    r语言模型评估: I recently received a new paper titled"Evaluation of Sentiment Analysis in Finance: Fr ...

  9. 在vivado hls软件上打开zynqnet工程,Vivado HLS Command Prompt(Vivado HLS 命令提示符)是什么

    直接在HLS中使用open project 是无法打开这个zynqnet的,在看zynqnet的使用说明的时候,有这样一段话: 如果使用中文翻译过的话,看到的是这样一段文字: 对于平时使用HLS编写I ...

最新文章

  1. 电脑开两个微信_怎么在电脑上登陆两个微信?
  2. 546. Remove Boxes 移除盒子
  3. 录入学员的身份证后控件焦点转移时根据身份证号码获得生日和性别
  4. 推荐关注这7个高质量的前端公众号
  5. 选择排序算法流程图_常用排序算法之选择排序
  6. 定义下一代存储,打造全新一代数据基础设施
  7. centos mysql 互为主从_centos7 mysql互为主从+keepalived
  8. set get java_JAVA中关于set()和get()方法的理解及使用
  9. 月薪11.5K 土木人零基础转行软件测试工程师,他都经历了什么?
  10. 其他综合-使用Xshell远程连接管理Linux实践
  11. MySQL某列增加标注_MySQL 使用CASE表达式给行做标记
  12. atmega 128 单片机 开发 例子 例程 教程 ADC PWM 呼吸灯
  13. FTP探测-挖掘鸡2014免费版
  14. 洛谷p1069 细胞分裂(noip2009普及组第三题,素数判断+筛法)
  15. 电脑蓝屏代码:nvlddmkm.sys的处理方法
  16. 懒癌治疗仪 - 写在前面
  17. 使用GloVe生成中文词向量
  18. MySQL--日期和时间
  19. 不同类型的电机的工作原理和控制方法汇总
  20. python古诗朝代_用 Python 编写中国历史知识库,此时不用中文命名变量更待何时?...

热门文章

  1. Android 8.1实现Systemui 中的NavigationBar的点击隐藏与滑动显示
  2. 计算机释放磁盘空间常用方法,教您如何在Win7计算机中释放更多磁盘空间
  3. Layout布局的使用
  4. 支付宝高效集福神器来了!!!
  5. 基于OneNet平台智慧农业大棚(esp32)
  6. AI 技术专家纷纷回归学术界,大厂刮起「科学家出走潮」?
  7. allegro转pads(使用allegro 16.3和pads9.3.1)
  8. 【大数据数仓项目集群配置 一】
  9. deegree sqldialect mysql_Hibernate SQL方言 (hibernate.dialect) 汇总
  10. present 和Dismiss