0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

在RTL设计中如何做到低功耗设计

FPGA之家 来源:硅农 作者:硅农 2022-04-13 08:12 次阅读

芯片第一应该关注的是芯片的PPA(Performance, Power, Area),本篇浅显的部分讨论,第二个 P,Power功耗,在RTL设计中如何做到低功耗设计,对于移动设备续航的十分重要,不要让你的芯片徒增功耗。

数据通路寄存器打拍

数据寄存器打拍带上vld,不加复位逻辑,这样会省去寄存器复位电路的布线面积,而且工具还会给寄存器自动插时钟门控,还达到了降低功耗的效果。至于寄存器不复位,一些刚学习的朋友可能会感觉有些刷新认知,寄存器怎么能不复位,不复位不就是x态了,系统不就紊乱了。是的,寄存器不复位是会产生x态,不过这里说的是数据通路,控制通路的所有信号都是必须带复位逻辑。数据通路因为这里是带着vld进行打拍,只需要保证在你使用的时候,它不是x态就行了。控制通路的信号控制系统的运行,出现x态,必然挂死。而数据通路只要保证在vld的有效,也就是我踩这个数据的时候它是正确的就行了,不管它是x态还是其他无效的数据。当然如果数据有作为判断逻辑用于控制,那这个数据一定要进行复位。代码示例,时序逻辑可以省略else,寄存器默认保持,组合逻辑必须写else。vld是一个脉冲将这个数据踹一脚直接踹进这个寄存器存储,在下一脚来临之前,这个寄存器都将保持这个数据。

	always @(posedge clk)begin if(data_vld) dout[63:0] <= din;end 
	

手动插入时钟门控

手动插入时钟门控,根据控制场景的不同自动关掉部分模块的时钟,留有软件的控制通道,由软件关闭。可以有效的减少动态功耗。举例,比如一块运算电路配置全开的时候需要四个相同的计算模块同时工作,最少的情况只需要一个模块工作,这时根据配置的不同可以将其他三个模块的时钟关掉,减少动态功耗。

整个Top模块掉电

整个二级Top模块掉电休眠,掉电后将所有需要保存的数据写到memory中,等下一次模块唤醒上电启动时再重新写回到硬件中。ASIC中的RAM可以自己生成是否需要掉电保存数据的功能,不需要的专门存储的RAM也一起掉电。需要使用和保存的数据寄存器较少,可以从模块伸出接口到顶层,让软件读走,等下一次模块唤醒上电启动时再通过软件配置寄存器配置回模块。这就是低功耗模式。

静态功耗和动态功耗

静态功耗只要电路供电就有,除非掉电休眠,否则无法避免,动态功耗只要存在高低电平切换就有。在rtl设计时,良好的代码风格也可以降低动态功耗,乘法器、加法器等运算单元,通过减少组合逻辑的翻转,从而达到降低动态功耗的效果。
在RTL设计中如何做到低功耗设计
输入到输出,组合逻辑的a、b端值不变,没有电平翻转,所以不会有动态功耗,只存在静态功耗。在设计中考虑组合逻辑无效翻转问题,某段时间这部分数据无效,通过使能信号选择这部分逻辑保持,得到避免动态功耗的效果。

原文标题:Verilog如何实现低功耗设计?

文章出处:【微信公众号:FPGA之家】欢迎添加关注!文章转载请注明出处。

审核编辑:汤梓红
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 芯片
    +关注

    关注

    446

    文章

    47705

    浏览量

    408883
  • 寄存器
    +关注

    关注

    30

    文章

    5021

    浏览量

    117631
  • RTL
    RTL
    +关注

    关注

    1

    文章

    377

    浏览量

    59043

原文标题:Verilog如何实现低功耗设计?

文章出处:【微信号:zhuyandz,微信公众号:FPGA之家】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    如何做到一个好的照明设计

    如何做到一个好的照明设计,本文中作者从一个较高的角度为读者详细讲解了设计过程的整个构思。
    发表于 09-13 13:58 1057次阅读

    labview 的Gauge控件如何做到360度的刻度?

    labview的Gauge控件如何做到360度的刻度?就是刻度是一个整圆周。
    发表于 06-17 17:42

    MATLAB如何做到去列平均值

    MATLAB如何做到去列平均值
    发表于 04-02 10:00

    图像处理如何做到一幅图片中分成多个区域进行图像处理?

    图像处理如何做到一幅图片中分成多个区域进行图像处理
    发表于 07-08 17:12

    如何做到进入低功耗PM2模式和定时器中断唤醒交替循环?

    请问2540做从机,协议栈如何做到进入低功耗PM2模式和定时器中断唤醒交替循环的过程?并且唤醒后能够使用串口功能。
    发表于 10-15 10:06

    请问低功耗IDLE模式的唤醒如何做到几个毫秒唤醒一次继而再次进入该模式?

    资料中说:IDLE模式下,将CPU 置于低功耗模式。可有选择性地关闭外设时钟并且只有那些IDLE 期间需要运行的外设保持运行状态。来自激活外设或者安全装置定时器的已启用的中断将把处理器从IDLE
    发表于 05-12 09:13

    芯片设计低功耗技术介绍

    开关电容较低。  ■ 寄存器传输级(RTL低功耗技术  当毛刺(glitch)通过一个组合逻辑块传播时,它们会成倍增加,并占据20%到70%的信号转换。布尔设计,增加驱动和门级吸
    发表于 07-07 11:40

    新手求助UPF低功耗设计能否RTL仿真中实现呢?

    RTL设计完毕之后,如何来验证设计的正确性?UPF低功耗设计能否RTL仿真中实现呢?
    发表于 06-18 08:21

    请问STM8L低功耗如何做串口接收2s一次的数据?

    STM8L现在用他接收外部2s一次的串口数据,如何做到低功耗接收
    发表于 11-06 06:05

    从ESL到RTL低功耗设计再下一城

    从ESL到RTL低功耗设计再下一城 对于低功耗半导体设计来说,没有唯一的解决方案,它需要芯片设计工程师以及EDA供应商的协作努力,并越来越多地把重
    发表于 09-19 10:08 1216次阅读

    最美布线, 别人是如何做到

    最美布线,别人是如何做到
    的头像 发表于 02-28 16:47 2071次阅读

    芯片RTL设计中如何做到低功耗设计

    做芯片第一应该关注的是芯片的PPA(Performance, Power, Area),本篇浅显的部分讨论,第二个 P,Power功耗,在RTL设计中如何做到低功耗设计,对于移动设备续
    的头像 发表于 08-26 10:29 3612次阅读

    RTL设计中如何做到低功耗设计

    整个二级Top模块掉电休眠,掉电后将所有需要保存的数据写到memory中,等下一次模块唤醒上电启动时再重新写回到硬件中。ASIC中的RAM可以自己生成是否需要掉电保存数据的功能,不需要的专门存储的RAM也一起掉电。
    的头像 发表于 08-15 16:25 1027次阅读

    低功耗蓝牙模块的工作原理是怎样的

    蓝牙模块分为经典蓝牙和低功耗蓝牙,那么在如此低功耗的情况下,是如何做到稳定工作的呢,低功耗蓝牙模块有四种工作模式:分别是主设备模式、从设备模式、广播模式、Mesh组网模式。
    的头像 发表于 12-26 14:19 1060次阅读

    RF模组sleep状态下如何做到低功耗

    的。那么如何解决呢?本文将对RF模组在Sleep状态下如何做到低功耗进行说明。RF模组sleep时RF模组的IO状态先要获知RF模组Sleep时,RF模组的IO
    的头像 发表于 01-06 08:13 167次阅读
    RF模组sleep状态下<b class='flag-5'>如何做到</b>最<b class='flag-5'>低功耗</b>?