当前位置:首页 > 物联网 > 《物联网技术》杂志
[导读]摘 要:随工艺的演进,集成电路发展已经进入超深亚微米阶段,芯片的成本、,性能、功耗、信号完整性等问题将成 为制约SOC芯片设计的关键问题。文章基于65GP工艺的实际项目模块级物理设计,在现超深亚微米下,对芯片的低功耗、 congestion,信号完整,性等后端物理设计等关键问题进行了细致研究,并提出了一些新方法和新思想,从而提高了signoff的交 付质量,完成了tapeout要求。

引言

数字集成电路随集成度的提高需求,已经发展成为片上 系统(System On Chip,SOC),后端物理设计一直以来都是依 赖于EDA工具来实现的,在0.18 um工艺节点前,一般依靠 EDA流程,工具会帮我们解决大部分的后端设计问题,需要 人工干预的比较少,但是进入深亚微米,甚至超深亚微米阶 段,后端物理设计如果单纯地依靠EDA工具显然不能解决所 有问题,特别是当今时代电子产品竞争激烈,对芯片的性能、 功耗、成本等提出了更高的要求。如何才能做出一个有竞争力 的SOC芯片,如何适应新工艺的要求,已经成为后端物理设 计工程师需要思考的新问题,本文基于65GP (65nm General purpose plus)工艺的实际项目模块级物理设计,在现超深亚 微米下,针对低功耗、congestion、信号完整性等后端物理设 计的关键问题做细致研究,提出了一些新方法和新思想。

1低功耗设计理论研究

随着工艺特征尺寸的缩小以及复杂度的提高,IC设计面 临了很多挑战:速度越来越高,面积不断增大,噪声现象更 加严重等。其中,功耗问题尤为突出,工艺进入130 nm以下 节点后,单位面积上的功耗密度急剧上升,已经达到封装、散 热以及底层设备所能支持的极限。随着工艺进一步达到90nm 以下,漏电流呈指数级增加。在65 nm设计中,漏电流已经和 动态电流一样大,曾经可以忽略的静态功耗成为功耗的主要 部分。功耗已成为继传统二维要素(速度、面积)之后的第三 维要素。另外,目前飞速发展的手持电子设备市场,为了增强 自身产品的竞争力,也对低功耗提出了越来越高的要求;其次 散热问题、可靠性问题也要求IC的功耗越小越好;最后全球 都在倡导绿色环保科技理念,保护环境,节约能源。这些都 要求IC设计时必须采用低功耗技术,以有效应对这些挑战。

0.18 um及以上工艺,在低功耗设计手段上较为有限,主 要原因在于,静态功耗很小,基本不用关心。动态功耗方面, 主要的功耗来自于Switching Power,即与负载电容、电压以 及工作中的信号翻转频率相关。减小负载电容,就必须在设计 上下功夫,减少电路规模。减少信号翻转频率,除了降低时 钟频率外,只有在设计上考虑,能不翻转的信号就不翻转。至 于电压,由于0.18 um及以上工艺的阈值电压有一定的限制,因此,供电电压降低,势必影响工作频率。一般说来,在0.18 um 工艺下设计电路,主要有以下几种对低功耗设计的考虑。

图1给出了影响芯片功耗的因素。由图1可见,通常影响 芯片功耗的因素有电压、漏电流、工作频率、有效电容等。一 般可以通过降低工作电压、减少翻转负载以及降低电路翻转 率等来降低动态功耗;并通过减少工作电压以及减少漏电流 来降低静态功耗。当前,业界采用了各种方法来降低芯片的 动态功耗和静态功耗。传统的低功耗技术有时钟关断(Clock- Gating), 多域值电压(Multi-threshold libraries)等;较新的 技术有多电压(Multi-Voltage)、电源关断(MTCMOS Power Gating)、带状态保持功能的电源关断(Power Gating with State Retention),动态电压频率调整(Dynamic Voltage and Frequency Scaling)。

图1影响功耗的因素

2低功耗设计方法

电路优化(Gate-level Optimization)

在设计实现过程中,自动化的综合和布局布线工具可以 根据电路的时序特征,来综合优化每条路径中用到的所有标准 单元的时序、面积以及功耗。由于输出电容减小,可以减小动 态功耗;同时,由于标准单元功耗较小,根据负载将非关键路 径中的标准单元切换到具有较小驱动能力的单元MOS管和电 容变小,静态漏电流也同时减小。除了变化驱动能力之外,还 可以通过优化电路中的逻辑单元、移动单元物理位置等方法 来达到降低功耗的目的。

多域值电压库(Multi-Threshold)

图2所示是漏电流、单元速度与阈值电压三者之间的关系。 一般情况下,高域值电压的标准单元漏电流小但速度慢,低 域值电压的标准单元则速度快但漏电流大。所以,采用多域值 电压库作为设计实现的目标库,在设计中尽可能多地用高域值 电压的标准单元,仅在关键路径上为了满足时序要求采用低域 值电压的标准单元。这样就可以最大限度地减小标准单元的 漏电流,从而降低静态功耗。

图2漏电流、单元速度与阈值电压三者之间的关系

电源关断(Power-Gating)

芯片中某些模块在不工作时,可以关断其电源,在需要工 作时,再将其电源导通,这就是电源关断技术。它可以使电源 关断区域的漏电流降至接近零,极大地减小芯片的静态功耗。 现在电源关断的技术也很多,有片内关断、片外关断。顾名思 义,片外关断就是在芯片外部通过切断电源来关断芯片内部 的某些模块。片内关断又分为精细关断(fine-grain)和粗糙关 断(coarse-grain):精细关断需要特别库的支持,可以实现每 个标准单元的精细关断;而粗糙关断只需要一些门控单元就可 以实现对某些模块的电源或地的控制。图3所示是电源关断 (Power-Gating)原理图,该方法用pmos来控制电源,用nmos来控制地。

2.4 基于 UPF 的低功耗设计流程

IEEE1801 标准 Unified Power Format (UPF)是被用于 标准语句描述低功耗意图的的低功耗实现标准。图4所示是 Synopsys公司提供的完整的基于UPF的低功耗综合、物理实 现和验证流程。该流程始于寄存器传输级(RTL)描述的逻辑设计,加上一个独立的描述低功耗设计意图的UPF文件。

RTL和UPF描述分别放在独立的文件中,使它们可以单独维 护和修改。在这个示例中,UPF是用Design Compiler在综合阶段实现、描述低功耗设计意图,在IC Compiler中读入低功 耗意图的UPF文件,最终通过物理设计流程来实现。

基于UPF的设计流程与传统流程相比,需要一些库中 特殊单元的支持以及在lib时序库中添加电源地的信息。特殊 单元包括 Level-shifter、Isolation Cell、电源关断单元(Power Gating,也叫 MTCMOS)、Retention-Register 以及 Always-on 单元。下面分别阐述:对于多电压设计,需要用Level-shifter 来实现不同电压域之间信号的电平转换。根据信号电平由高到 低和由低到高的转换,Level-shifter分为两类,High to Low Level-shifters,Low to High Level-shifters。对于电源关断技术, 电源关断区域的输出信号在电源关断时处于不定态,这种不定 态会导致其负载单元出现内部电流,从而导致不期望的功耗, 所以需要在电源关断区域的输出信号上插入Isolation Cell来 实现对不定态的隔离。对于电源关断技术,需要Power-Gating Cell(也称MTCMOS)来实现电源的关断。可以选择断开电 源(VDD)或地(VSS)的连接来实现Power-Gating,这两 种 Power-Gating Cell 被形象地称为 Header-Switch 和 Footer- Switch。在电源关断模块,有可能要求register对关断前的数 据进行锁存,或者在电源打开后要求对锁存的数据进行恢复, 这就需要特殊的单元Retention-Register。它有两个电源,一 个用于模块电源未关断时的工作用电,一个用于模块电源关断 时的用电。它还有两个控制信号save和restore,用于控制是 否锁存数据或者恢复数据。在电源关断模块,还有可能需要 有些信号线或逻辑长期工作,比如MTCMOS单元的控制信号 线,Retention-register 的 save/restore 控制信号,isolation cell 的控制信号等。为了实现这种功能,这就需要另外的特殊单元 叫 always-on cell[2]。

3超深亚微米congestion解决方案研究

随着工艺尺寸降低,模块面积越来越小,而且单个模块 的逻辑量可达上亿门级别,芯片的绕线将面临巨大挑战,笔 者以65GP工艺的模块级物理设计为例来研究超深亚微米下的 congestion解决方案。

3.1 floorplan

一个好的floorplan是一个复杂物理设计成功的一半,好 的floorplan往往可以决定好的QOR (quality of result),往往 可以影响之后的IR drop和EM以及后期timing/drc/power修 复的复杂度,所以笔者在设计之初阶段把评估floorplan作为 工作的重点。在65GP工艺的模块物理设计中,笔者总结的 floorplan的经验如下:

floorlan的规划应该首先根据前端提供的数据流。笔者的 做法是在 IC Comiler 中 write_def 之后 defIn 到 EDI 中,EDI 看数据流比较直观,然后根据顶层大致定的I/O的位置开始, check哪些module的MACRO和I/O的交互比较多,首先处 理这些MACRO,然后依次查看和这个MACRO相关的其他 的module的交互,直到规划完所有的MACRO。floorplan图 如图5所示。在floorplan的过程中,要特别注意MACRO之 间的位置,MACRO不应该埋得太深,MACRO之间的间距 要尽量留够,以防止后期fix timing时没有足够的空间或者是 MACRO沟道内的noise严重。在根据数据流规划时要尽量控 制module间的跨层次连线,这样后期congestion可能会有影响。 总之,floorplan要根据多次的尝试的结果来做改进。

图 5 floorplan 图示

3.2 P&R流程下的congestion解决方案

有了一个好的floorplan,有了好的QOR的条件,接下来, 就是需要在P&R的各个流程中去严格控制并执行congestion 解决方案。根据项目中的模块级物理设计,可以从以下几个方 面来着手:

第一,在run之前,应该检查EDA工具的运行环境。一 是工具的版本,版本不同,route后的QOR会有很大的差 距。其次是要check工具的脚本环境。比如ICC中,要首先 确认绕线的最高层次,以及时钟线的绕线rule、层次,设 置正确的TOP_LAYER。比如,模块的是1p8m 5x2z,本 来是8层metal的绕线资源,但是,由于TOP_LAYER要用 于顶层的power规划,所以metal8不能用,这时候TOP_ LAYER 应该是 metal7,然后就要去 cts_setting,route_setting 中把metal8相关的信息改为metal7。由于ICC在place阶段 是使用的virtual global的绕线,这个时候可以基本决定后期 的congestion。如果在run之前没有注意,后来place之后改, 在route不一定有好的效果,一定要注意细节。再者就是检查 各种约束,包括sdc约束,uncertainty设置是否合理,drc约束, max_transion/cap 是否合理。为了使 place 后的 congestion 有 意义,必须要严格控制place之后利用率的过快增长,否则 place的congestion报告完全没有意义!

第二,在place之前可以首先设置一个option : set_congestion_options -max_ulti 0.75

这个option可以为工具提供导向,控制局部利用率,在 place阶段后用tcl脚本来了解初步的congestion情况:

set placer_enable_enhanced_router true

Route_zrt_globle -effort high -congestion_map_only true

Report_congestion -effort high

用此tcl脚本可以得出congestion的map图,map图中有 各个metal的overflow的信息。如果congestion出现在std_ cell区域,那么首先要看floorplan是否合理,如有不合理, 调整floorplan,之后如果逻辑分散,弓入了跨层次连线,则可 以把分散区域的hierachical层次加bound约束,然后可以加 适当的keepout_margin,这个值要多try几次,找到最合适的值, 还可以加hard_blockage阵列。如果congestion出现在mem, 则可以将mem附近区域加大hard_blockage,让std_cell尽量 远离mem。

第三,在place开始的各个阶段加上-congestion选项, 这样工具以congestion driven为导向,在psynopt阶段可以多 优化几次。对于模块较高的模块,可以加上-area_recovery 选项来对non_critical的path进行整合,可以优化局部cell_ dencity。

对于前三种解决方案,要根据实际结果来调整,因为 从模块规划初期到最后前端交付final的网表,可能会有比 较大的出入,时序、逻辑量都会有比较大的变化,这些时候 floorplan都可能要做细微的调整。再者,后期的约束也要根 据情况调整,congestion关乎整个后端物理设计!

4超深亚微米信号完整性方法学研究

4.1信号完整性理论研究

随工艺尺寸降低,芯片复杂度提高,时钟频率越来越 高,信号完整性(signal integrity,SI)已经同成本、功耗、 性能成为制约芯片设计的关键问题。信号完整性是指信号能 可靠地传输到目的地,并有能力抵抗周边线的电磁干扰。SI 主要影响因素有串扰(crosstalk)和信号电迁移(signal electron migration),笔者主要讨论串扰带来的影响及我们的应对策略。 串扰是两条net间由于电容耦合引起的噪声,随芯片特征尺寸 不断减小,互连线的物理间距也减小,导致互连线的耦合电 容增大,串扰状况现在深亚微米已经很严重,串扰往往会导 致芯片的信号延迟和毛刺,信号延迟对于setup/hold余量不大 的timing path后期有很大的violation风险,对于glitch可能 会引起芯片失效。笔者认为主要五个电学特性来影响noise : nets间的寄生耦合电容,aggressor/victim nets的驱动能力大小, 相对转换时间,nets间总电容,nets间总电阻。如何优化和修 复noise,也主要从以上几个电学特性着手。

4.2信号完整性应对策略 4.2.1流程控制优化noise

根据实际项目的模块级物理设计,从以下几个方面来探 讨在IC Compiler流程下优化noise。

第一,在floorplan规划初期应该将noise放在比较重要 的位置,noise同congestion、timing、power都是相互依赖、 相互影响的,所以在初期规划时要在这几个关键因素下折中 考虑。对于noise来说,高频发区域主要有两点,一个就是 congestion area, 一个就是mem沟道区域,在初期规划一定要 重视这两点。

第二,正确设置各种约束。在sdc约束中,为每个 input_port设置driving_cell,提高timing分析质量,并防止 其在 PT 中的 delta delay 偏悲观,一般不 set_input_transition 0, 会增大input_signal的侵略性。对于clock_path上的transion 约束要合理,因为clock_net频率高,翻转率也高,具有 很强的侵略性,但是这些设置又和利用率是矛盾的,所以 transition的设置要和利用率寻求tradeoff。如果利用率也允许, 那么可以适当地将uncertainty加严,使timing尽量去优化, 增大timing余量,后期由noise引起的timing fail风险将降低。

第三,在place阶段,要最大程度地解决congestion的 问题,丰富绕线资源空间。如果noise 一旦发生在congestion area,那么串扰的修复将是很困难的。

第四,在cts阶段,设置合理的transition/cap约束。ck_ cell尽量用X4-X16,不要太小,也不要太大。太小,驱动太弱; 太大,侵略性太强,而且功耗较大。时钟绕线用NDR(non_ default_routing)rule,对于频率高、翻转率高的时钟线,要单 独加shielding来防止串扰。脚本如下:

Remove_routing _rule CLK_NDR_shield

Define_routing _rule CLK_NDR_shield

-width{M1 0.18 M2 0.2 M3 0.2 M4 0.2 M5 0.2 M6 0.2 M7 0.4}

-space{Ml 0.18 M2 0.2 M3 0.2 M4 0.2 M5 0.2 M6 0.2 M7 0.4}

Icc_create_shielding VSS $net_list

第五,在route阶段也可以设置一些option来优化noise, 笔者以ICC中的route脚本为例来说明:

set_si_options -delta_delay true

-static_noise true

-timing_window false

-min_delta_delay false -static_noise_threshold_above_low 0.2 -static_noise_threshold_above_high 0.2 -route_xtalk_prevention true -route_xtalk_prevention_threshold 0.2

Route_opt -xtalk_deduction -incremental -effort high[3] 4.2.2信号完整性的修复策略

尽管在EDA流程中采用一切办法来优化noise,但是不 免在后期还是会出现一些引起timing violation或者是glitch 的noise,这些是必须要全部clean,不然芯片将有很大风险。 对于修复策略,笔者主要总结了以下几点:

第一,对于noise的修复,大多数都比较头疼,因为不 能完全地依靠EDA工具去fix,大多数需要人手动干预。对于 noise数量较多时,可以将noise nets采用double_spacing的 绕线,减少相互影响。具体首先remove_net_routing有noise 的 nets,然后设置 lw2s 的 rule,然后 route_zrt_eco -nets $net_ list。

第二,如果模块的congestion比较严重,那么第一种方 法也不会有特别明显的效果。这时候就要考虑手动干预,可 以将victim/aggressor net移动减少影响,还可以一方面upsize victim_net, 一方面 downsize aggressor_net,两者都有一定风险, upsize victim后如果处理不当,可能会成为aggressor,后者, 对timing/transion余量不大会有一定风险,所以noise fix过程 要反复迭代几次,才能达到很好的效果。比如在下面的例子 中如图6所示,两条线并行走线太长,导致noise,修复方式 是将其中一条net移开。

图 6 crosstalk fix 示意图

在后期noise修复时,要特别注意时钟树上的noise,这 时候修复往往对timing产生很大影响,时钟树上的noise和 transition/cap violation要尽早发现,尽早解决,到后期再解 决将使delay风险增大。

5结语

本文针对SOC进入超深亚微米阶段后端物理的几个挑战 性的关键问题进行了探讨,从理论研究再结合实际项目模块级 物理设计来总结了笔者对于这些问题的解决方案,提出了一些 新的方法、新的思想,对于65 nm以下工艺都可以尝试。限 于笔者水平,有些方法可能在不同模块不同条件下不一定适用, 这些限于篇幅没有一一做描述,希望各位同行能发现其中问 题,欢迎一起探讨,探索数字集成电路后端物理设计的奥秘, 迎接超深亚微米的挑战!

20211023_61742b3dab615__基于65 nmX艺的SOC物理设计中的关键技术研究

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

随着科技的不断发展,嵌入式系统在各个领域得到了广泛的应用,如智能家居、智能穿戴设备、智能医疗等。然而,随着嵌入式系统的复杂度和功耗的限制,如何实现低功耗方案设计成为了嵌入式系统设计的一个重要课题。本文将探讨如何实现嵌入式...

关键字: 嵌入式 DSP系统 低功耗

ISOFACE™数字隔离器是英飞凌产品组合中的新成员,借助英飞凌二十载隔离技术经验,提供完整的系统解决方案。

关键字: 安全隔离 低功耗 数字隔离器

(全球TMT2023年8月22日讯)逐点半导体宣布,完美世界游戏出品的《女神异闻录:夜幕魅影》集成了逐点半导体手游渲染加速引擎SDK,该SDK作为连接游戏内容与独显芯片的桥梁,可为搭载逐点半导体X7系列视觉处理器的智能...

关键字: SDK 半导体 集成 低功耗

近日,得瑞领新D6000系列入选北京市新技术新产品名单,继获评国家“专精特新”小巨人后再次跻身政府官方科技榜单,印证了其在科技创新领域的领先地位以及不断努力为客户提供优秀解决方案的决心。

关键字: D6000 北京市第十八批新技术新产品 低功耗 企业级SSD

使用5V低功耗运算放大器不会产生失真为–100dBc的正弦波。尽管如此,采用 LTC6258 的带通滤波器可与一个易于使用的低功率振荡器结合使用,以低成本、低电压和极低耗散产生正弦波。

关键字: 低功耗 运算放大器 正弦波

本文介绍用于在低功耗信号链应用中实现优化能效比的精密低功耗信号链解决方案和技术。本文将介绍功耗调节、功率循环和占空比等用于进一步降低系统功耗的技术(不仅限于选择低功耗产品,这有时并不够)。还将探讨如何使用通道时序控制器、...

关键字: 低功耗 信号链 功率优化

中国苏州和美国加州圣克拉拉2023年3月3日 /美通社/ -- 数据中心光通信模块先行者旭创科技今天宣布参加在加州圣地亚哥举行的OFC 2023展会,并将在现场演示1.6T OSFP-XD DR8+可插拔光通信模块(展位...

关键字: SFP 低功耗 光模块 OS

如今,从 PDA 和智能手机到医疗设备和测试设备,所有手持设备都触手可及,因此我们需要它们尽可能长时间地使用就不足为奇了。 然而,一个关键问题是运算放大器的速度,因为低功耗通常意味着有限的速度,例如带宽和转换率。我说“...

关键字: 去补偿放大器 低功耗

行业专家估计,考虑到出货量、汇率、税收等因素,0.5美元模组将较难在国内实现,最低大概可能做到6-7元人民币的售价。这与Dialog半导体将于2020年推出的基于DA14531的模组产品SmartBond TINY定价比...

关键字: 蓝牙 低功耗 设备

MCU将是下述内容的主要介绍对象,通过这篇文章,小编希望大家可以对MCU的相关情况以及信息有所认识和了解,详细内容如下。

关键字: MCU 低功耗 CPU
关闭
关闭