基于IEEE1801(UPF)的低功耗设计流程 - 图文(4)

2020-05-09 14:29

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 \\

VSS –elements {BLOCKA/pin1 BLOCKA/pin2} –clamp_value 1

set_isolation_control pd1_iso_high –domain PD_1 –isolation_signal iso_en –isolation_sense \\ high –location parent

3.2.5 UPF对Power State的描述

在UPF里面,还有一个非常重要的部分,那就是描述电源状态表(Power State Table),简称PST,也就是说要描述各个电源有哪些工作模式。有了这个表格,工具就可以判断是否需要在各个电源模块之间插入特殊的单元。

本芯片共有三种工作模式,pst_pd1_ON是正常模式,三个domain都是1.2V供电;pst_pd1_OFF是 掉电模式,PD_1掉电,其他两个domain是1.2V供电;

pst_pd2_LOW是掉电降压模式,PD_1掉电,PD_2降压到0.8V供电,仅保 持数据。

add_port_state VDD –state {NOR_VOL 1.2} add_port_state VDD_1 –state {NOR_VOL 1.2} add_port_state VDD_1 –state {OFF_VOL off} add_port_statte VDD_2 –state {NOR_VOL 1.2} add_port_state VDD_2 –state {LOW_VOL 0.8}

create_ps top_pst –supplies [list VDD VDD_1 VDD_2]

add_pst_state pst_pd1_ON –pst top_pst –state {NOR_VOL NOR_VOL NOR_VOL} add_pst_state pst_pd1_OFF –pst top_pst –state {NOR_VOL OFF_VOL NOR_VOL}

add_pst_state pst_pd2_LOW –pst top_pst –state {NOR_VOL OFF_VOL LOW_VOL}

完整的UPF请参考附件7.1。

3.3 UPF在Design Compiler中的应用

根据图14中的流程介绍,UPF准备好就可以进行综合和DFT的工作了。在这一步,Isolation cell、level shifters、Retention Registers等特殊单元都要正确的实现插入,而且也要插入clock gating来优化动态功耗以及用多个阈值电压的库来优化静态功耗。

如图17所示,在DC中,首先把所有不同阈值电压的标准单元库都设置到target_library以及 link_library里面去,工具在综合优化的时候,就可以根据路径上timing的是否关键来尽量平衡标准单元速度与静态功耗的关系,关键路径上, 尽量选择低阈值电压/速度快的单元,但在非关键路径上,就尽量选择高阈值电压/静态功耗小的单元。

在读入RTL后,需要用load_upf的命令读入 UPF文件,然后在compile时,工具会根据UPF的设置,自动插入Isolation cell、level shifters、Retention Registers等特殊单元(在我们这个设计中,仅需插入Isolation cells),并正确连接这些特殊单元的控制信号。

另外,为了优化动态功耗,我们在综合阶段让DC自动插入了Clock Gating。设置也很简单,只要在 compile_ultra命令后面加上clock_gating的选项就可以了。

图17: UPF flow in Design Compiler

综合完成后,除MTCMOS没有插入外,其他特殊单元都已经按UPF描述的设计意图插入并连接。

综合后我们还要插入DFT相关结构,再做一个增进式的优化。在这两个过程中,如果DFT引入的电路根据UPF的要求需要插 入特殊单元的话,工具会自动判断并在insert_dft或者compile命令执行的时候自动插入。比如,DFT插入的扫描链从电源关断模块连接到了其 它非关断模块,这个时候根据UPF里面的规定,从关断区到非关断区要经过isolation cell的过渡,工具会自动判断到这一点,在需要的地方插入这些单元。

在综合和DFT的各个阶段,可以利用DC提供的命令check_mv_design对低功耗设计进行规则检查,确保没有违 反UPF里面定义的相关规则。

最后,DC输出网表和UPF。也可以直接输出DDC或者直接写入到Milkyway数据库里面去,这两种方式都包含了网表 和UPF信息,可以直接作为物理实现工具ICC的输入。

在综合前后我们都用Formality对输入和输出的RTL或netlist进行了带UPF的比对,以确保每一步骤电路在 形式上没有发生改变。

3.4 UPF在IC Compiler中的应用

图18: UPF flow in IC Compiler

IC Compiler的UPF流程如图18所示,可以直接用DC输出的mw库或ddc文件,里面已经包含了UPF信息。我们采用的是读入网表加UPF的方式。 首先我们需要在读入verilog网表以后,把UPF文件导入到ICC中: load_upf $ICC_IN_UPF_FILE

读入netlist以及upf后就可以作整体规划(floorplan)了,在这个阶段主要有下面的工作:

? 在floorplan之前,要正确设置芯片的工作条件(operating_condition)以及用set_voltage命令对所有的电源和地设置 正确的工作电压值。工具会根据这些设置来选择正确的单元进行时序计算。

? 读入UPF之后,ICC已经知道设计中有哪些power domain以及每个power domain里面有哪些电源、地。但这个时候ICC还没有把各个power domain里面所有cell中电源、地的端口与UPF里面定义的电源、地连接起来。需要运行下面的命令,所有power net会根据UPF中的描述自动创建,所有cells的电源也会根据UPF中的描述自动连接:

derive_pg_connection –create_net


基于IEEE1801(UPF)的低功耗设计流程 - 图文(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:石狮市凤里街道办事处关于建立凤里街道办事处物业管理联席会议制

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: