低功耗技术

1.CMOS的功耗组成

总功耗 = 动态功耗+静态功耗

动态功耗= 短路功耗(导通功耗) + 开关功耗

短路功耗:PMOS和NMOS同时导通所消耗的瞬态功耗,CMOS电路在‘0’和‘1’的转换过程中,P、N管会同时导通,产生一个由Vdd到Vss窄脉冲电流,由此引起功耗。

开关功耗:电路在开关过程中对输出节点的负载电容充放电所消耗的功耗。有两种写法:p = 1/2CLVDDVDDTr(Tr是输入信号翻转率)和P = CLVDDVDD*f(f时钟频率,一个周期反转两次)。

静态功耗:P = Is * Vdd。
Is:漏电流。Vdd:工作电压。

在CMOS电路中,静态功耗是漏电流引起的功耗。随着工艺先进,晶体管阈值电压降低,漏电流增大,静态功耗增大。
Cmos漏电流主要有:反偏PN结电流和MOS管的亚阈值电流。

2.低功耗设计方法

功耗来源有静态功耗、动态功耗。低功耗设计在晶体管级、RTL级、体系结构级、系统级各个层次上都要进行,层次越高低功耗降低越有效。
软硬件划分、多电压域、多阈值电压、门控时钟、减少电容、衬底偏压。
在这里插入图片描述

2.1 系统级

软硬件划分:经常使用的模块用硬件实现节约功耗,减少代码量,处理器的选择。

2.2 体系结构级

多电压供电:将设计划分电压域,根据每个区域的要求使用不同的供电电压。动态功耗方程中功耗与电压成正比。

多阈值电压:阈值电压不同的单元,使用高阈值电压的MOS管可以防止NMOS和PMOS都处于开启状态,降低导通功耗,降低漏电。

添加缓存:对DSP等频繁访问存储器数据的处理器,预先将数据从主存取到缓存,使计算能耗下降。

动态电压频率调节(DVFS):在需要峰值计算载荷时,处理器在正常电压和频率下操作。当负载降低,在能满足对运算能力的要求的条件下频率也降低。

2.3RTL级

门控时钟:将产生时钟的PLL关闭,或用时钟切换IP核在快慢时钟间切换,进入休眠模式。动态功耗方程中时钟翻转率F。

减少毛刺:if-else,default要写全。避免产生锁存器。信号尽量保持,这样会综合出门控时钟。

不能综合出门控时钟的写法
在这里插入图片描述
在这里插入图片描述
能综合出门控时钟的风格
在这里插入图片描述
在这里插入图片描述

2.4晶体管级

减少电容:即减少动态功耗方程中的 C 负载电容。
衬底偏压:将衬底电压偏置,提高晶体管阈值。但阈值电压的升高会影响性能,使用动态
偏置的方法,在工作模式下保持较小的偏置电压,在保持模式下加强偏置电压。

3独热码

含义:使用 N 位寄存器对 N 个状态进行编码,每次只有一个位高电平,其余为低电平。
优点:提高了转换速度,稳定性好,译码输出控制简单,适用于 FPGA。
1)解决数据离散问题。状态机中每个状态跳变的距离不同,为了让距离计算更合理,每
个距离跳变位数一样。
2)FPGA 中资源瓶颈在布线资源上,而组合逻辑消耗大量布线资源(组合逻辑通过查找
表实现,查找表之间的连接会消耗布线资源。 )使用独热码在任何时刻,N 个触发器只有一个
为高电平,其余为低电平。减少了组合逻辑的资源。
二进制、格雷码适用较多组合逻辑、较少触发器,one-hot 反之

为什么例子中我们使用的是独热码而非二进制码或格雷码呢?那就要从每种编码的特性上说起了,首先独热码因为每个状态只有1bit是不同的,所以在执行到43行时的(state == TWO)这条语句时,综合器会识别出这是一个比较器,而因为只有1比特为1,所以综合器会进行智能优化为(state[2] == 1’b1),这就相当于把之前3比特的比较器变为了1比特的比较器,大大节省了组合逻辑资源,但是付出的代价就是状态变量的位宽需要的比较多,而我们FPGA中组合逻辑资源相对较少,所以比较宝贵,而寄存器资源较多,所以很完美。而二进制编码的情况和独热码刚好相反,他因为使用了较少的状态变量,使之在减少了寄存器状态的同时无法进行比较器部分的优化,所以使用的寄存器资源较少,而使用的组合逻辑资源较多,我们还知道CPLD就是一个组合逻辑资源多而寄存器逻辑资源少的器件,因为这里我们使用的是FPGA器件,所以使用独热码进行编码。就因为这个比较部分的优化,还使得使用独热码编码的状态机可以在高速系统上运行,其原因是多比特的比较器每个比特到达比较器的时间可能会因为布局布线的走线长短而导致路径延时的不同,这样在高速系统下,就会导致采集到不稳定的状态,导致比较后的结果产生一个时钟的毛刺,使输出不稳定,而单比特的比较器就不用考虑这种问题。

下面是示意图解析:

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
用独热码编码虽然好处多多,但是如果状态数非常多的话即使是FPGA也吃不消独热码对寄存器的消耗,所以当状态数特别多的时候可以使用格雷码对状态进行编码。格雷码虽然也是和二进制编码一样使用的寄存器资源少,组合逻辑资源多,但是其相邻状态转换时只有一个状态发生翻转,这样不仅能消除状态转换时由多条信号线的传输延迟所造成的毛刺,又可以降低功耗,所以要优于二进制编码的方式,相当于是独热码和二进制编码的折中。

最后我们用一个表格来总结一下什么时候使用什么方式的编码效果最好(有时候不管你使用哪种编码方式,综合器会根据实际情况在综合时智能的给你进行编码的转换,当然这需要你设置额外的综合约束,这里我们不再详细讲解) 。

在这里插入图片描述
参考文章秋招“笔试经”第一弹:华为硬件逻辑岗

  • 2
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值