内容发布更新时间 : 2024/12/23 13:48:35星期一 下面是文章的全部内容请认真阅读。
_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 create_supply_net VDD_1 –domain PD_1 create_supply_net VSS –domain PD_TOP create_supply_net VSS –domain PD_1 –reuse create_supply_net VSS –domain PD_2 –reuse #define the primary power/ground for power domains
set_domain_supply_net PD_TOP –primary_power_net VDD –primary_ground_net VSS set_domain_suupply_net PD_1 –primary_power_net VDD_1 –primary_ground_net VSS set_domain_supply_net PD_2 –primary_power_net VDD_2 –primary_ground_net VSS # power ports definitions
create_supply_port VDD –domain PD_TOP –direction in create_supply_port VDD_2 –domain PD_TOP –direction in
create_supply_port VSS –domain PD_TOP –direction in #connect the supply net to power port connect_supply_net VDD –ports VDD connect_supply_net VDD_2 –ports VDD_2 connect_supply_net VSS –ports VSS
3.2.3 UPF对Power Gating的描述
本设计中含有电源关断模块,需要在UPF中定义电源关断单元(Power Gating cell),描述该单元的电源输入输出,以及控制信号的连接。如下所示。
create_power_switch SW1 –domain PD_1 –output_supply_port {VDD_OUT VDD_1} \\ –input_supply_port {VDD_IN VDD} –control_port {PW_CTRL pd1_pw_en} –on_state \\ {PW_ON VDD_IN {PW_CTRL}} –ack_port {{PW_ACK pd1_pw_ack}
该条命令中VDD_1是VDD经过该单元后的电源名称,pd1_pw_en是控制信号,当该控制信号为高的时候,VDD_1接通VDD使电路处于开启状态。除了该控制信号,该单元还输出一个叫pd1_pw_ack的响应信号。
至于如何在物理上实现Power Gating cell的插入以及控制信号的连接,这个要在IC Compiler里面完成,后面的章节里面有详细的介绍。
3.2.4 UPF对Isolation的描述
因为芯片中有关断模块,从功能上为了处理模块关断后信号输出的稳定性,还需要增加关断电源模块处于关断时如何插入isolation单元的描述。如下所示,以PD_1的边界信号定义为例:
指定其所有输入信号都不插入isolation cell,输出信号默认插入箝位到0的isolation cell,对其中两个特殊信号插入箝位到1的isolation cell。并且定义了Isolation cell的控制信号,以及插入的位置是在PD_TOP domain。
set_isolation pd1_iso_in –domain PD_1 –no_isolation –applies_to inputs
set_isolation pd1_iso_low –domain PD_1 –isolation_power_net VDD –isolation_ground_net \\ VSS –clamp_value 0 –applies_to outputs
set_isolation_control pd1_iso_low –domain PD_1 –isolation_signal iso_en –isolation_sense high \\ –location parent
set_isolation pd1_iso_high –domain PD_1 –isolatioin_power_net VDD –isolation_ground_net \\