低功耗技术及其后端物理实现

我们来详细探讨一下低功耗技术及其后端物理实现。
"低功耗技术 (Low-Power Technologies)"
低功耗技术是指一系列旨在减少电子设备(从微处理器到通信系统)能量消耗的方法和设计理念。随着移动设备(智能手机、平板电脑、可穿戴设备)、物联网 (IoT) 设备、无线传感器网络以及数据中心对能效比要求的不断提高,低功耗技术变得至关重要。
"主要低功耗技术类别:"
1. "时钟管理技术 (Clock Management):" "时钟门控 (Clock Gating):" 阻止不使用逻辑单元的时钟信号传递,从而关闭其功耗。 "时钟多频 (Clock Multiplication/Division):" 根据任务需求动态调整处理器时钟频率。高负载时使用高频率,低负载时降低频率以节省功耗。 "时钟休眠 (Clock Synchronization/Stopping):" 在系统空闲或部分模块空闲时完全停止全局或局部时钟信号。
2. "电压调节技术 (Voltage Regulation):" "动态电压频率调整 (DVFS - Dynamic Voltage and Frequency Scaling):" 根据处理器负载动态调整工作电压和频率。通常,降低电压和频率可以显著降低功耗(功耗与电压的平方成正比)。 "片上动态电压调节器 (On-Chip DVSE - Dynamic Voltage Scaling for Emerging

相关内容:

最近比较繁忙,暂时没有时间写推文,所以先把之前发过的一些精华推文再发一遍

3万字-129页的低功耗技术合集精编版
高达58.2万+字的个人数字后端设计笔记

《低功耗技术及其后端物理实现--多阈值电压技术》

理论:

漏电流随着阈值电压Vt的增加而指数下降,如下图所示:

我们可以通过在不同的时序路径上使用不同阈值电压的标准单元来降低漏电流。

低阈值电压标准单元:速度快、泄漏功耗高;

高阈值电压标准单元:速度慢、泄漏功耗低。

综合和布局布线工具可以根据功耗和时序的需求自动选择不同阈值的标准单元。例如,在时序的关键路径上采用低阈值电压单元,而在非关键路径上采用高阈值电压标准单元。

后端物理实现:

1、在设置MCMM的时候设置至少有一个scenario被用来优化leakage power:

set_scenario_status -leakage_power true

2、多阈值电压库单元由threshold_voltage_group属性标识。给定的库单元可能具有低阈值电压、常规阈值电压或高阈值电压。

如果在我们使用的参考库不具有threshold_voltage_group属性,则可以使用set_attribute命令给库里面的Cell设置这些属性。例如,要将名称以FAST开头的所有Cell的threshold_voltage_group属性设置为LVt(这里只是自己定义的一个属性,可以不必和真实的阈值种类相匹配),可以用下面的命令:

icc2_shell> set_attribute -objects

-name threshold_voltage_group -value LVt

注意:

在get_lib_cells命令中引用库时,必须使用参考库的名称而不是逻辑库(.db库)的名称。要搜索所有库,需要在库名上使用星号(*)。

3、前面为库里面的Cell指定了threshold_voltage_group属性,但是工具并不能准确知道哪种属性是常规阈值,哪种是高阈值,哪种是低阈值。要标识与每个threshold_voltage_group属性值关联的阈值电压类型,可以使用下面的命令:

set_threshold_voltage_group_type

必须指定属性值并使用-type选项来指定阈值电压类型,该阈值电压类型是low_vt(低阈值电压),normal_vt(正常阈值电压)或high_vt(高阈值电压)之一。

例如,指定那些threshold_voltage_group属性值为LVt的Cell为低阈值电压Cell,可以使用以下命令:

icc2_shell> set_threshold_voltage_group_type -type low_vt LVt

两者不用非得对应,LVt只是一个自己打的标识或者库里面定义的一个标识。在设计库里面没有LVt的时候我们还可以把SVt的Cell标识成low_vt,也就是说两者没有必要一致,只是为了方便让工具识别出这种Cell在后边限制这种Cell的百分比。

注意:


set_threshold_voltage_group_type命令指定的设置未保存在Block中,必须在IC Compiler II工具的每个session中指定。

4、用下面的命令指定设计中的低阈值电压单元在设计中所占的最大比例

set_max_lvth_percentage

5、通过设置以下阈值电压百分比优化:

用set_app_options命令将以下两个应用程序选项设置成对应的值:

opt.power.leakage_type   percentage_lvt

opt.power.mode   leakage

6、做好以上设置之后工具便会在执行以下命令时做leakage power的优化:

place_opt ,  refine_opt , clock_opt

Innovus中如何控制LVT比例

Innovus中没有完全相同的功能,不过有相似的功能去限制LVT的比例不要太高,只有在优化Timing的时候再Critial path上使用LVT,具体实现方式如下:

min vt width/spacing/area - 多阈值库在布局时如何满足它们的要求

粉咨询一个问题:

设计中用了多阈值的库,在ICC2中没有发现什么placement legality问题,

是在Calibre检查DRC的时候发现了min vt width的问题,该如何Debug,如何解决?

《RedHawk IR Drop与EM分析教程(第1版)- 1.5万字,111页》
23本+系统性的、整理成册的笔记,高达58.2万字+,2025年星球将分享更多私人笔记,逐步完善整个IC设计生态(前端、中端、后端、DFT、验证等)。
未来几个月知识星球也会陆续会开放:
《Timing/DRV修复的专题笔记》 《ICC2 flow教程》 《Makefile在IC设计中的应用》 等等。
目前已上传的笔记有:

关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章