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之家】欢迎添加关注!文章转载请注明出处。

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

    关注

    454

    文章

    50676

    浏览量

    423003
  • 寄存器
    +关注

    关注

    31

    文章

    5334

    浏览量

    120208
  • RTL
    RTL
    +关注

    关注

    1

    文章

    385

    浏览量

    59752

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

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

收藏 人收藏

    评论

    相关推荐

    MATLAB如何做到去列平均值

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

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

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

    新手求助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 1297次阅读

    Bus/总线布线时如何做到等长

    Bus/总线布线时如何做到等长 Bus走线模式是13.6版本可以实现的模式,现在14.x以及15.0都已
    发表于 09-28 12:45 1682次阅读

    RTL功耗优化

    我们针对 PC 图形、视觉计算和应用处理器的高性能、低功耗设计方法RTL 功耗优化是非常关键的一步。NVIDIA Corporatio
    发表于 09-11 11:40 9次下载
    <b class='flag-5'>RTL</b><b class='flag-5'>功耗</b>优化

    RTL8188FTV超低功耗USB无线智能wifi模块

    RTL8188FTV超低功耗USB无线智能wifi模块
    发表于 10-14 16:08 0次下载

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

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

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

    做芯片第一应该关注的是芯片的PPA(Performance, Power, Area),本篇浅显的部分讨论,第二个 P,Power功耗RTL设计
    的头像 发表于 08-26 10:29 4076次阅读

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

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

    UWB技术是如何做到室内精准定位的?

    UWB技术是如何做到室内精准定位的?        作为当下室内定位技术的新贵,UWB定位技术现今在室内定位领域的发展是很有前景的,得益于UWB技术具有穿透力抢、低功耗、抗干扰能力强、安全性高、系统
    发表于 10-18 09:22 945次阅读

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

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

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

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

    工程行业如何做到低碳甚至零碳

    低碳的生活方式越来越多地融入我们的日常习惯当中。但是工程行业如何做到低碳甚至零碳呢?
    的头像 发表于 10-14 10:31 400次阅读