图13 Aways-on单元的应用场合
2.2.3 PG library的准备
除了上述这些特殊单元外,UPF流程的实现还需要用到的logical library(db库)是带PG(Power&Ground)信息的,与传统流程相比要多出下面与PG相关的信息:
? pg_pin 的名称,pg_pin 的类型 (如primary, backup 等); ? 每个信号管脚(signal pin)与pg_pin的对应关系; ? 每个输出信号管脚中power_down_function的定义; ? 每个pg-pin的电压数值。
有了上述信息,工具就可以根据UPF里面的描述自动地完成电源网络的连接,电源关断电路的验证,基于UPF里面电源状态表 的综合和优化,以及最后输出带PG信息的网表的验证等。其直接带来的好处就是使得流程更完整,更简单,更自动化。
由于UPF应用还不是很普及,Foundry及第三方IP提供商目前提供的db库基本上还没有完全更新到带PG信息的版 本,所以需要用户在使用前先转换。ICC和DC都提供了转换PG db库的命令:add_pg _pin_to_db,可以将不带PG信息的db库转换成带PG信息的db库。ICC0809以上版本还提供了add_pg _pin_to_lib命令,可以将不带PG信息的lib库转换成带PG信息的lib库,这样可以更清晰的知道PG库中具体都添加了什么信息。
3. UPF在本芯片设计实现中的应用
本款芯片的设计实现以及验证流程完全采用了如图7中所示的所有Synopsys工具,并且所有实现和验证流程都使用了基于 IEEE1801标准Unified Power Format(UPF)的完整技术,成功的完成了从RTL到GDSII的全部过程,并且芯片制造回来成功的完成了功能测试以及低功耗测试。本篇文章着重介 绍实现流程中基于UPF的应用,对于验证流程的应用我们不作介绍。在实现过程中我们主要完成了下列工作,如图14所示。
图14: 本芯片实现流程图
? PG library的准备; ? UPF文件的准备;
? 有了UPF以及PG library,先用Design Compiler对RTL 综合,综合后产生的netlist里面就包含了low-power设 计中除了电源关断单元(MTCMOS)之外的所有的特 殊cell,如:level-shifter, isolation cell等等;
? 综合完成后,作了DFT的工作,在这一步骤如果DFT设计中要引入一些特殊单元,工具会自动插入;
? DFT之后我们在IC-Compiler完成了所有的布局布线工作,包括:整体规划(floorplan),电源关断单元MTCMOS的插 入、布局以及控制信号的连接,电源网络综合和分析,布局,时钟树综合,布线以及最后一些提高良率方面的工作。 ? 布局布线完成后,我们还对timing,SI,Power,IR-DROP等进行了Sign-off分析。
? 在流程中经过每一步我们都用formality对包含了UPF的设计作了形式验证,既保证了功能的一致性,也保证了含有低功 耗信息的实现一致性。
下面我们对每一步骤进行详细介绍,其中PG library的准备在2.2章节中已经作了介绍,这里就不再说明。
3.1 本芯片中用到的low power设计意图
在我们最近的这款芯片中,采用了时钟关断(Clock-Gating),多域值电压库(Multi-threshold libraries),电源关断(MTCMOS Power Gating),低电压待机(Low-Vdd Standby)等低功耗技术。
图15和图16分别是芯片电源分区拓扑图和floorplan截图,芯片划分成3个power domain,分别为PD_1、PD_2、PD_TOP。其中PD_1是掉电区,PD_2是降压区,PD_TOP是常开区;PD_2的hierarchy 嵌套在PD_1内部,当PD_1掉电时,PD_2可以降压保持数据即可。VDD和VDD_2是芯片外部提供的两个电源,分别提供给PD_TOP和 PD_2;而VDD_1是PD_1的内部电源,由VDD经过MTCMOS产生,可以通过控制MTCMOS关断使PD_1掉电。
在进行芯片设计之前,我们要先对芯片的低功耗意图用UPF描述出来,下面的章节做详细的阐述。
图15: 芯片电源分区拓扑图
图16: 芯片floorplan截图
3.2 用UPF对本芯片设计意图的描述
在UPF中,包含了所有对low-power设计意图的描述,比如:芯片中有哪些相对独立的电源模块;每个电源模块中用到 哪些电源或地;如果有电源关断模块的话还要描述其关断的方式及控制;每一个电源的各种工作模式(工作电压或是否关断);特殊单元的规划等。下面章节将根据 本芯片中用到的low-power意图(如图15和图16所示)分别介绍如何用UPF描述这些意图。
3.2.1 UPF对Power Domain的描述
在UPF中,首先要对所有的Power domain进行定义。先设定顶层的power domain,然后描述PD_1和PD_2这两个power domain。如下所示: # power domain definitions
create_power_domain PD_TOP –include_scope create_power_domain PD_1 –elements BLOCKA create_power_domain PD_2 –elements BLOCKB
3.2.2 UPF对Power Network的描述
然后根据电源分区拓扑图,要清晰地描述各个power domain里面的电源网络(Power Network),如下所示,详细的定义了每个domain里面的电源线的名称以及和芯片原始电源输入端口的连接关系。 # supply nets definitions
create_supply_net VDD –domain PD_TOP create_supply_net VDD –domain PD_1 –reuse create_supply_net VDD_2 –domain PD_TOP create_supply_net VDD_2 –domain PD_1 –reuse create_supply_net VDD_2 –domain PD_2 –reuse