建材秒知道
登录
建材号 > 设计 > 正文

如何设计低功耗SOC

深情的灰狼
自觉的高山
2022-12-31 04:07:58

如何设计低功耗SOC

最佳答案
现代的便当
认真的水蜜桃
2025-08-24 15:17:09

姓名:任佩怡     学号:19020100348     学院:电子工程学院

转自:https://zhuanlan.zhihu.com/p/158410142

【嵌牛导读】毕竟现在是AI芯片圈钱的时代,而由于云端的AI芯片对融资能力要求感人,所以大家都喜欢用边缘端AI芯片讲故事。边缘端功耗问题就是绕不开的东西。所以低功耗设计方法学就很重要。

【嵌牛鼻子】低功耗SOC

【嵌牛提问】如何设计低功耗SOC

【嵌牛正文】

专业的细节如果需要知道推荐一本书《Low Power Methodology Manual》,本文的图也是从这本书里来的。此处偏架构和前端的角度来讲。实际上这个东西需要前后端紧密配合。

动态功耗:由于逻辑翻转导致的功耗。静态功耗:由于漏电流导致的功耗。

那我们开始,既然你点进来了,那我就默认你知道动态功耗和静态功耗的概念?lol

0. 常见的低功耗技术

常见的技术可以总结为7种。其中前4种需要设计者重点关注,后面三种其实都集成到工具里了,不专门做这方面研究的知道个原理即可。

1.power gating, 关电压。手动设计,需要重点关注。

2.多点源域设计。手动设计,需要重点关注。

3.Frequency and Voltage scaling design。手动设计,需要重点关注。

4.应用层面优化。手动设计。玄学。可以关注。

5.Clock gating。知道原理即可,工具自动优化。

6.逻辑门动态功耗优化。知道原理即可,工具自动优化。

7.晶体管阈值优化。知道原理即可,工具链自动优化。

1. Power Gating

比较简单粗暴,关掉某一块不用的电源。这样动态功耗和静态功耗都被干掉了。这部分东西比较主流。细节可以看 桔里猫:如何设计低功耗SOC(二,Power Gating) 。

2. 多电源域设计

设计多个电源域。不同的电源域用不同的电压。比如速度慢的用低电压,速度快的用高电压。细节可以看这个 桔里猫:如何设计低功耗SOC(三,多电源域) 。

3.Frequency and Voltage scaling design

通过降电压和频率来节省能量。这一条也比较关键。各种ISSCC文章水指标的秘籍。。。发文章和时机使用都非常有效。楼主曾经用65nm工艺下流片的测试结果发现只要频率足够低,供电电压能降到0.5-0.6之间。节省的功耗还是巨大的。细节看这个。 桔里猫:如何设计低功耗SOC(四,降电压频率)

4. 从应用层面降低功耗

顾名思义。。。从应用层面优化功耗。比如楼主在某一年国际会议上遇到一个MIT的小姐姐。。她们做了一个神奇的工作,主要研究如何训练神经网络模型,让计算的时候翻转率变小从而节省功耗。不过这种东西可能更适合小公司,因为对于大公司来讲芯片做出来怎么用对于芯片设计者来讲基本上是不归你管的。。。不让你做防呆设计就不错了你还指望人家听你的给你搞这个。lol

=======================================================

上面方法是架构和前端需要重点关注的技术。后面这些前端已经要碰不到了。

5. Clock Gating

直接把时钟停了,这样可以干掉动态功耗。实际上在数字芯片里时钟网络本来就占用了很大功耗。有可能超过50%。其原理是这样的。

比如有个EN信号。这个EN信号有效寄存器值才变,那不如直接用这个en把时钟屏蔽了。寄存器多的时候节省还是挺明显的。但需要注意的是,clock gating虽然是很直接的办法, 但是一般来说你不要头铁自己去RTL层面写这个clock gating . 工具都会给你优化好。你自己头铁写个clock gating上去非常有可能产生个毛刺啥的影响正确性。

6.逻辑门动态功耗优化

综合工具除了能帮你搞clock gating, 还能帮你搞逻辑门优化的骚操作。。。比如下面这样。

对于上面这种,对于一个门有可能各个Pin的功耗其实不一样的。把变化率低的信号mapping到低功耗的pin上就有好处。。。这种方法,唉。确定不是蚊子肉?

7.使用不同阈值VT的晶体管

这个应该好理解。。VT大了晶体管不容易翻转,所以delay大。但是漏电流就小。反之相反。所以需要快速翻转的用LVT,不需要速度的用HVT。这个东西也是有综合工具帮你搞定的。

总结

低功耗设计还是非常重要的,为了让你的SOC有竞争力,低功耗流程来一套先。对于设计者来讲,还是要关注大头。。。比如power gating, multi voltage. 扣细节感觉收益不大。。。比如第6点,这种鸡肋技术Orz。

最新回答
暴躁的曲奇
酷炫的小白菜
2025-08-24 15:17:09

系统级芯片。

一般说来,SoC(SystemonChip)称为系统级芯片,也称片上系统,意指它是一个产品,是一个有专用目标的集成电路,其中包含完整系统并有嵌入软件的全部内容。同时它又是一种技术,用以实现从确定系统功能开始,到软/硬件划分,并完成设计的整个过程。

潇洒的硬币
冷静的小丸子
2025-08-24 15:17:09
联系:都是集成电路设计,特别是soc一般是数字逻辑设计,而模数混合包括数集的设计。且在现代集成电路设计中,都有大量IP核可以参考。

区别:soc偏向于一个整体,面向的是系统,一般用硬件语言描述即可,且一般不涉及模拟部分。而模数混合更加偏向底层,需要详细做电路的设计,而且不仅是用硬件描述语言做描述,仿真方法与soc也不尽相同。

简单的世界
糊涂的保温杯
2025-08-24 15:17:09
SOC就是一个小系统,如果说CPU(MCU)是大脑,那么SOC就是包括大脑、心脏、眼睛和手的系统。国内外学术界一般倾向将SOC定义为 :在单一硅片上集成数字和模拟混合电路、信号采集和转换(A/D、D/A)、存储器、MPU、MCU、DSP、I/O等多种功能的模块,甚至包括相应的嵌入式软件(包含嵌入式操作系统、嵌入式网络协议栈和嵌入式应用软件等)实现系统的功能,这样就可以将原来需要几个、几十个乃至几百个IC电路组成的印制电路板全部集成在一个芯片上,因此,它又称为片上系统

http://bbs.51soc.com/read.php?tid=465

文静的手链
魁梧的钢铁侠
2025-08-24 15:17:09
SoC设计:20世纪90年代中期,因使用ASIC实现芯片组受到启发,萌生应该将完整计算机所有不同的功能块一次直接集成于一颗硅片上的想法。这种芯片,初始起名叫System on a Chip(SoC),直译的中文名是系统级芯片。

如何界定SoC,认识并未统一。但可以归纳如下:

①SoC应由可设计重用的IP核组成,IP核是具有复杂系统功能的能够独立出售的VLSI块;

②IP核应采用深亚微米以上工艺技术;

③SoC中可以有多个MPU、DSP、MCU或其复合的IP核。

这各设计常常使用CPLD或FPGA完成。是相对于集成电路设计更高一层次的设计。

http://baike.baidu.com/view/1371112.htm

集成电路设计:指所有器件的芯片级设计,即包括数字IC和模拟IC。这种设计往往要从最基本的PN结开始。相对Soc要复杂,周期更长。

怕黑的小鸽子
粗暴的钥匙
2025-08-24 15:17:09
对soc的理解有偏差,区别大了,嵌入式系统是指一个系统,soc是指片上系统,总的概念来讲soc是嵌入式系统的一个特例,通常由单芯片完成,例如可以通过对FPGA编程实现一般的嵌入式系统表示为一个包括软件和硬件的规模较大的系统,需要考虑的东西例如操作系统、软件、布线等更加复杂。

苹果狗
无辜的山水
2025-08-24 15:17:09
对soc的理解有偏差,区别大了,嵌入式系统是指一个系统,soc是指片上系统,总的概念来讲soc是嵌入式系统的一个特例,通常由单芯片完成,例如可以通过对FPGA编程实现;一般的嵌入式系统表示为一个包括软件和硬件的规模较大的系统,需要考虑的东西例如操作系统、软件、布线等更加复杂。

能干的小蝴蝶
土豪的嚓茶
2025-08-24 15:17:09
在做完功能验证的前提下,那么就可以通过工具收集覆盖率了。一条条过未覆盖的地方,会发现一些没有考虑的地方需要覆盖,补上corner case。还有就是觉得等效的做exclude,还有冗余设计的去掉,基本就能达到目标了。还有些点不太好覆盖的,比如输入条件苛刻的,只能多看代码再三确认了。