精华内容
下载资源
问答
  • upf学习之获取supply_net的状态
    2019-03-19 11:08:00

    在UPF中定义了一些supply port/net,以下方式可以获取它们的状态:

    1.定义一个module,然后声明supply_net_type 变量,例如:

      module pa_get_supply_state();

        import UPF::*

        supply_net_type VDD_DIG_pa, VDD_ANA_pa;

        always @(*) begin

           if(VDD_DIG_pa.state == UPF::OFF && VDD_ANA_pa.state == UPF::FULL_ON)begin

             ...

           end

           if(VDD_DIG_pa.state == UPF::FULL_ON && VDD_ANA_pa.state == UPF::OFF)begin

             ...

           end

        end

      endmodule

    2.在upf中连接supply_net 与supply_net_type变量:

      connect_supply_net VDD_DIG -ports u_pa_get_supply_state/VDD_DIG_pa

           connect_supply_net VDD_ANA -ports u_pa_get_supply_state/VDD_ANA_pa

    从而可以在仿真中获得supply net的state。

    转载于:https://www.cnblogs.com/lybinger/p/10557297.html

    更多相关内容
  • MCU学习笔记_UPF

    2021-11-24 13:46:41
    一、相关命令解释 1.create_power_domain 创建电源域,提供配电网络 string create_power_domain domain_name //必须是简单(无层次)的名称 [-elements cells] [-include_scope] ... [-supply {sup

    一、相关命令解释
    1.create_power_domain 创建电源域,提供配电网络

           string create_power_domain
                   domain_name     //必须是简单(无层次)的名称
                   [-elements cells]
                   [-include_scope]
                   [-scope instance_name]
                   [-supply {supply_set_handle_name [supply_set_name]}]*
                   [-available_supplies {supply_set_name_list}]
                   [-update]
    
    -include_scope
    定义域的范围以包括当前作用域,并在默认情况下包括其所有子类作用域。
    

    2.create_supply_port 在指定的电源域中创建电源端口。如果未指定电源域,则在当前作用域中创建端口

           string create_supply_port
                   supply_port_name
                   [-domain domain_name]
                   [-direction in | out]
    

    3.create_supply_net 为指定的电源域创建供电网络。在逻辑层次结构中,在与指定的电源域相同的范围内创建供电网络

    string create_supply_net
                   supply_net_name  //必须是简单(无层次)的名称
                   [-domain domain_name]
                   [-reuse]
                   [-resolve unresolved | parallel | one_hot | parallel_one_hot | resolution_function_name]
    

    4.connect_supply_net 将供应网连接到指定的供应端口和引脚

           status connect_supply_net
                   supply_net_name   //必须是简单(无层次)的名称
                   -ports list  //列表中的每一项都是供应端口或引脚的分级名称
                   [-vct vct_name]
    

    /以上四个命令集合examples

             prompt> create_power_domain PD1 -elements INST_1
             PD1
             prompt> create_supply_net VSS -domain PD1
             VSS
             prompt> create_supply_port VSS -domain PD1
             VSS
             prompt> connect_supply_net VSS -ports VSS
             1
    

    5.set_domain_supply_net 设置已存在电源域的一次电网和一次接地网

    status set_domain_supply_net 
                   domain_name
                   -primary_power_net supply_net_name
                   -primary_ground_net supply_net_name
    

    注:每一项都是必选项必须设置
    /examples

             prompt> set_domain_supply_net PD1 -primary_power_net A_VDD \
                -primary_ground_net A_VSS
    

    6.create_supply_set 创建一组可用于定义电力网络的电源。在当前逻辑层次结构中创建供应集

           string create_supply_set
                   [-function {function_name supply_net_name}]
                   [-update]
                   supply_set_name
    

    注:当使用-update参数时必须使用-function
    /examples

             prompt> create_supply_set primary_sset \
                -function {power TOP_VDD} \
                -function {ground TOP_VSS} \
                -update
    

    7.add_port_state 将状态信息添加到供应端口

    string add_port_state
                   supply_port_name
                   -state {state_name state_value}
    

    /examples

             prompt> add_port_state VN1 \
                     -state {s88 0.92} \          //单个浮点数,s88的标准电压为0.92
                     -state {active_state 0.88 0.90 0.92} \  //三个浮点数,active_state的最小、标准最大电压电压为0.88 0.90 0.92
                     -state {off_state off}  //非活动状态
    

    8.create_pst 使用特定的供电网络顺序创建电源状态表(PST)

           string create_pst
                   table_name
                   -supplies list
    

    注:以上两个选项都是必须设置的
    9.add_pst_state Defines 每个供应网的状态为一个可能的设计状态

           status add_pst_state
                   state_name
                   -pst table_name
                   -state supply_states
    

    /以上两点的examples

             create_pst pt -supplies { PN1 PN2 SOC/OTC/PN3 }
             add_pst_state s1 -pst pt -state { s08 s08 s08 }
             add_pst_state s2 -pst pt -state { s08 s08 off }
             add_pst_state s3 -pst pt -state { s08 s09 off }
    

    10.set_port_attributes 设置指定的属性及其在端口上的值

           status set_port_attributes
                   [-ports port_list]
                   [-elements element_list]    
                   [-exclude_ports port_list]
                   [-exclude_elements element_list]
                   [-applies_to inputs | outputs | both]
                   [-attribute at_name at_value]
                   [-receiver_supply supply_set_ref]
                   [-driver_supply supply_set_ref]
                   [-repeater_supply supply_set_ref]
                   [-model model_name]
                   [-feedthrough]
                   [-unconnected]    //表示指定的端口没有在内部连接   且必须和-model  and  -ports一起使用;和-feedthrough互斥
                   [-clamp_value clamp_value]
    

    11.set_design_attributes 在列出的单元上设置指定的UPF属性和值

           string set_design_attributes
                   [-elements list]
                   [-models list]
                   -attribute name_value_pair
    

    12.set_related_supply_net 将一个供应网连接到设计的端口或电池的引脚

           status set_related_supply_net
                   [supply_net_name]
                   [-object_list objects]    //指定与电源/地连接的端口列表;若不指定将考虑所有端口
                   [-reset]
                   [-ground ground_net_name]
                   [-power power_net_name]
    

    /examples

             prompt> set_related_supply_net -object_list [get_ports INPUT] \
                -power VDD_EXT -ground VSS_EXT
    

    13.set_isolation 设置UPF策略,在指定的电源域和其他电源域之间插入隔离单元

    status set_isolation
                   isolation_strategy_name    //指定新的UPF隔离名称
                   -domain power_domain   //指定为隔离单元供电的电源域
                   [-isolation_power_net isolation_power_net]   //指定为隔离单元供电的电源
                   [-isolation_ground_net isolation_ground_net] /指定为隔离单元连接的地
                   [-isolation_supply_set isolation_supply_set]  //与-isolation_power_net和 -isolation_ground_net互斥
                   [-clamp_value 0 | 1 | latch]   //启用隔离单元时,隔离单元输出0、1或latch。latch在隔离期间保持当前数值且保持不变
                   [-applies_to inputs | outputs | both]
                   [-applies_to_boundary upper | lower | both]
                   [-source source_supply_set_name]  //仅由指定供应集供电
                   [-sink sink_supply_set_name]    //仅向外扇形地连接由指定供应集供电
                   [-diff_supply_only true | false]  
                   [-elements objects]
                   [-exclude_elements objects]
                   [-no_isolation]
                   [-force_isolation]
                   [-name_prefix prefix_string]
                   [-name_suffix suffix_string]
                   [-isolation_signal isolation_signal]
                   [-isolation_sense low | high]
                   [-location self | parent | fanout]
                   [-update]
    

    14.set_isolation_control 指定隔离控制信号和要在其上插入隔离单元的域边界一侧

           status set_isolation_control  
                   isolation_strategy    //和set_isolation设置的名称一致
                   -domain power_domain
                   -isolation_signal isolation_signal  //指定启动和禁用的隔离功能信号名称
                   [-isolation_sense low | high]   //隔离信号的高低
                   [-location self | parent | fanout] //parent 将隔离单元放置在被隔离的设计的父程序中
    

    15.map_level_shifter_cell 指定属于指定策略的移电平单元只能映射到库单元的一个子集

           status map_level_shifter_cell
                   level_shifter_strategy
                   -domain power_domain
                   -lib_cells lib_cells
    

    /examples

             prompt> map_level_shifter_cell LVL_1 -domain PD1 \
                     -lib_cells {LIB_LSHIX2, LIB_LSHIX4}
    
    展开全文
  • upf学习supply_on/supply_off

    千次阅读 2019-03-06 13:42:00
    通过supply_on/supply_off可以给UPF中定义的supply_port上电和掉电。 例如在upf中定义了: create_supply_port VDD_DIG ...connect_supply_net VDD_DIG -ports VDD_DIG create_supply_port VSS_DIG create_sup...

    通过supply_on/supply_off可以给UPF中定义的supply_port上电和掉电。

    例如在upf中定义了:

    create_supply_port VDD_DIG

    create_supply_net VDD_DIG

    connect_supply_net VDD_DIG -ports VDD_DIG

    create_supply_port VSS_DIG

    create_supply_net VSS_DIG -resolve parallel

    connect_supply_net VSS_DIG -ports VSS_DIG

    create_power_domain VDD -update -supply { primary VDD_SS}

    create_supply_set VDD_SS \

                                  -function {power VDD_DIG} \

                                  -function {ground VSS_DIG} \

                                  -function {nwell VDD_DIG}

    add_power_state VDD_SS -sate MEM_NOM \

                                  {\

                                        -supply_expr { power == `{ FULL_ON, 0.848 }} \

                                        -simstate NORMAL \

                                  }

    add_power_state VDD_SS -sate MEM_RET \

                                  {\

                                        -supply_expr { power == `{ FULL_ON, 0.488 }} \

                                        -simstate NORMAL \

                                  }

    add_power_state VDD_SS -sate MEM_TURBO \

                                  {\

                                        -supply_expr { power == `{ FULL_ON, 0.904 }} \

                                        -simstate NORMAL \

                                  }

    add_power_state VDD_SS -sate off \

                                  {\

                                        -supply_expr { power == `{ OFF }} \

                                        -simstate CORRUPT \

                                  }

    在tb_top.sv中,通过supply_on/supply_off上电或掉电:

    initial begin

      if(power_on)

        supply_on("tb_top/dut/VDD_DIG",0.904);

      else

        supply_off("tb_top/dut/VDD_DIG");

    end

    需要注意的是supply_on/off作用的是在upf中定义的port,且用到的电压值也应该在upf中有定义。

    注意在tb_top中使用UPF内容时候需要import UPF::*

    上面例子中的add_power_state语句如果采用create_pst add_pst_state实现的话,可写成以下方式:

    add_port_state VDD_DIG \

                                         -state { VDD_NORMAL 0.848 } \

                                         -state { VDD_RET 0.488 } \

                                         -state { VDD_TURBO 0.904 } \

                                         -state { OFF off }

    add_port_state VSS_DIG -state { gnd 0 }

    create pst pt -supplies { VDD_DIG VSS_DIG }

    add_pst_state POWER_NORMAL -pst pt -state {VDD_NORMAL gnd}

    add_pst_state POWER_RET -pst pt -state {VDD_RET gnd}

    add_pst_state POWER_TURBO -pst pt -state {VDD_TURBO gnd}

    add_pst_state POWER_CORRUPT -pst pt -state { OFF gnd}

    转载于:https://www.cnblogs.com/lybinger/p/10482760.html

    展开全文
  • Lower power design & UPF 学习

    千次阅读 2020-03-06 21:59:00
    parallel | one_hot | parallel_one_hot | user_defined_resolution_function] connect_supply_net connect_supply_net supply_net_name -ports list [-vct vct_name] 每个supply port都有内外两个port,上层次的net...

    Lower power design & UPF

    只记录部分内容以供查阅,完整内容还是看手册

    C1 -- Lower-power design strategies

    1. Dynamic and Static Power

    20200306153243.png 20200306153617.png

    Dynamic power

    • Switch power:取决于时钟频率(每秒翻转的次数)以及开关活动性(在连续时钟周期实际反转的次数)

    • Internal power: 当输入信号处于翻转的中间状态时在p和n之间形成短路通路,形成crowbar current 。
      • 较低的阈值电压和长的翻转时间会导致更多的短路功耗。

    Static (leakage) power

    在早期的CMOS工艺中,leakage current几乎可以忽略,但随着工艺进步,阈值电压逐渐降低,leakage power越发显著,有时甚至达到动态功耗的水平。

    20200306154305.png

    泄露功耗主要有三种:

    • reverse-bias p-n junction diode leakage
      • 二极管反偏漏电在CMOS电路一直存在,主要是在NMOS管中表现为n型漏极到接地p衬底的漏电;在 PMOS中表现为n阱到p型漏极的漏电。
      • 这部分leakage相对较小
    • sub-threshold leakage
      • 亚阈值漏电是指在关闭状态下源到漏的短路电流。当阈值电压降低,开启和关闭的电压越发接近,当栅极电压接近阈值电压,亚阈值电流呈指数级上升
    • gate leakage
      • 栅极采样了较薄的绝缘层,栅极电子可能发生量子隧穿通过栅氧化层到达源或漏,导致泄露电流。

    泄露电流无法通过控制时钟解决,但可以通过降低供电电压或关断电压来改善或解决。

    2. 降低功耗的方法

    Supply Voltage Reduction

    20200306155916.png

    功耗随电源电压降低成平方关系降低。

    Clock Gating

    20200306160014.png

    时钟门控的主要挑战是找到使用它的最佳位置,并在适当的时间创建关闭和打开时钟的逻辑。

    优点:时钟门控实现起来相对简单,因为它只需要在netlist中进行更改。不需要额外的电压供电变化。

    Multiple-Vt Library Cells

    可以提供具备多种阈值的cell。

    低VT的cell有更高的速度,但亚阈值漏电更高。

    高VT的cell有较低的亚阈值电流,但速度慢

    Multivoltage Design

    20200306160720.png

    在一个芯片上提供两个或多个电源电压会带来一些复杂性和成本。需要额外的电源输入管脚提供芯片电压,而电源网络必须将每个电压电源分别分配到相应的块。

    此外,当两个不同电压域的信号有通信时,需要加level-shifter cell来转换电平:

    20200306161013.png

    Power switching (gating)

    当电路中某一部分不活动时,彻底关断其与电源的链接。

    能同时降低动态和静态功耗,但有代价:

    • power controller

    • power-switching network

    • isolation cells

      • 连在被关断的block后,提供一个常值输出防止关断后出现X态。例如下图,block关断后P_UP置为0,输出常值0

      • 20200306161637.png
    • retention registers

      • 通常被加载普通寄存器上作为影子寄存器,当power down时将之前的数据重新放到主寄存器内,通常用高VT的管子减少漏电

      • 20200306162226.png
    20200306161421.png

    通常采用高阈值的管子做开关管来降低泄露功耗。

    Dynamic Voltage and Frequency Scaling

    动态电压调整需要一个多级电源和一个逻辑块来确定给定任务的最佳电压水平。由于必须分析和调节电压水平和工作频率的范围和组合,设备的设计、实现、验证和测试可能特别具有挑战性。

    3. 标准UPF

    由一组用于指定多电压系统的命令组成。使用UPF命令,可以为芯片设计指定supply network, power switches, isolation, retention 和其他方面。

    C2 -- Library Requirements

    C3 -- Power Intent Specification

    1. UPF中的通配符

    • ?匹配任意单个字符,除了层次划分符号'/'
    • * 匹配0个或多个字符,除了'/'

    2. 电源意图概念

    • power domain : 设计中的一组元素,它们共享一组公共的电源。默认情况下,电源域中的所有逻辑元素使用相同的主电源和主地。

      • 每个domain 都有一个scope和一个extent
      • scope是这个电压域被定义的逻辑层次,而extent则是属于这个电压域的逻辑元素集合。
    • supply nets 和supply ports: 每个scope都有一组supply nets 和 ports 在特定的层次结构上。

      • supply net 是在给定的电源区域内承载电源电压或接地的导体,跨越多个电压域的net被定义为“reused".

      • supply port 是设计层次结构的两个相邻层次之间、层次结构的父块和子块之间的电源连接点。

      • supply net 通过 supply port从设计层次结构的一个层次跨越到下一个层次

    • supply set: 是一个supply nets的抽象集合,一般就是一根vdd一根gnd的net。

      • 是domain-independent的,在supply set中的power和ground可以被任意在该scope中定义的power domain使用。
    • supply set handle: 给一个power domain定义的抽象supply set。

      • 默认情况下,每个电源domain有supply set handle for domain’s primary supply set, a default isolation
        supply set, and a default retention supply set.

      • supply set handle允许您在为电源域创建任何电源集、电源网络和电源端口之前综合设计。

    • power switch: 是一个装置,打开和关闭电源的供应网络。一个开关有一个输入供应网,一个输出供应网,以及至少一个用于控制开关的输入信号,可以通过多个信号控制,也可以输出多个信号。

    • power state table: 列出本设计中所有电源域的电压值和电源开关状态的允许组合。

    • level shifter: 电平移位器将信号从第一个域的电压摆幅转换为第二个域的电压摆幅。

    • isolation cell: 在电压域关闭期间生成一个已知的逻辑值。

    • retention registers:在具有电源开关的电源域中,在关机期间必须保留数据的任何寄存器都必须实现为保留寄存器。保留寄存器有一个单独的、始终在线的供应网络,有时称为备份供电,它在域的主供电关闭时保持保留寄存器中的数据稳定。

    Example

    下面这个芯片工作在三个电源下,Top level 包含了 top-level的power domain: PD_TOP。

    • PD_TOP包含了四个supply ports: VDD1, VDD2, VDD3, and GND.
    • 除了PD_TOP,还有三个power domain: PD1, PD2, and PD3 . 分别定义在三个内层的blocks中。每个block都有若干supply ports(黑色方块),连线就是supply nets。
    • 这个例子中,PD_TOP,PD2,和PD3是常开的,工作在VDD1,VDD2和VDD3下。PD1有两个supplies,一个可开关的supply: VDD1g以及一个常开的VDD1。当VDD1g关断时,其中常开的VDD1用来维持block1中的retention register。
    • top-level中有一个power-down controller来控制VDD1g的开关。同时也生成retenrion register的save和restore信号。
    • PD1到PD2和3之间都有isolation cell.
    20200306172104.png

    访问电压域,电压端口,电源网络,

    有两种方法,一种是申明绝对层次结构,一种是让工具进去该层后访问。

    第一种:

    create_supply_net VDD1 -domain Block1/PD1
    create_supply_port PRT1 -domain Block1/PD1
    connect_supply_net Block1/VDD1 -ports {Block1/PRT1}

    第二种:

    set_scope Block1
    create_supply_net VDD1 -domain PD1
    create_supply_port PRT1 -domain PD1
    connect_supply_net VDD1 -ports {PRT1}
    set_scope ...

    如果Block2和3公用相同的电源特性,他们可以连接到同一个domain,该domain可以直接在顶层中定义为PD2,所以他们可以直接链接到top level的supply port上,而不用在PD2中定义port,此时block2和3使用了顶层的supply net:

    20200306173752.png

    电源网VDD2是在顶层PD_TOP中定义的,但在PD2中也使用了VDD2,所以在域PD2中可以重用VDD2。一个reused的supply net 可以跨越不同的domains,并且具有相同的名称。

    定义电压域

    create_power_domain PD_TOP
    create_power_domain PD1 -elements {Block1} -scope Block1
    create_power_domain PD2 -elements {Block2} -scope Block2
    create_power_domain PD3 -elements {Block3} -scope Block3

    对于第二种情况,可以这么写:

    create_power_domain PD_TOP
    create_power_domain PD1 -elements {Block1} -scope Block1
    create_power_domain PD2 -elements {Block2 Block3}

    或者:

    create_power_domain PD_TOP
    set_scope Block1
    create_power_domain PD1
    set_scope ...
    create_power_domain PD2 -elements {Block2 Block3}

    3. Synopsys 多电压域流程

    20200306194404.png

    Basic Power Network Commands

    create_power_domain

    create_power_domain domain_name
    [-elements list]
    [-supply {supply_set_handle supply_set_name}]
    [-include_scope]
    [-scope instance_name]
    [-update]

    create_supply_port

    create_supply_port port_name
    [-domain domain_name]
    [-direction in | out]  

    creat_supply_net

    create_supply_net net_name
    [-domain domain_name]
    [-reuse]
    [-resolve unresolved | parallel | one_hot | parallel_one_hot |
    user_defined_resolution_function]

    connect_supply_net

    connect_supply_net supply_net_name
    -ports list
    [-vct vct_name]  

    每个supply port都有内外两个port,上层次的net只能链接外端口。一个port一次只有一个端口能被连接。对于输入port,reading side是外部net,driving side是内部net.对于输出port则相反。不能给一个supply net连接多个driver, 或者说reuse一个net给多个drivers。(这里我的理解是一根net线只能连接一个driver port,如果从一个port需要drive多个port,需要指定不同的net)

    20200306195056.png 20200306195830.png
    create_supply_port VDD1P -domain Block1/PD1
    create_supply_net VDD1 -domain Block1/PD1
    connect_supply_net Block1/VDD1 -ports Block1/VDD1P
    connect_supply_net VDD1 -ports Block1/VDD1P

    set_domain_supply_net

    set_domain_supply_net domain_name
    -primary_power_net supply_net_name
    -primary_ground_net supply_net_name
    
    example:
    
    set_domain_supply_net Block1/PD1 \
    -primary_power_net Block1/VDD1 \
    -primary_ground_net Block1/GND

    该命令用来申明电压域的主电源网络以及主地网络。每个电压域都需要定义这些主网络。

    create_power_switch (power gating)

    create_power_switch switch_name
    -domain domain_name
    -output_supply_port {port_name supply_net_name}
    {-input_supply_port {port_name supply_net_name}}*
    {-control_port {port_name net_name}}*
    {-on_state {state_name input_supply_port {boolean_function}}}*
    [-ack_port {port_name net_name [{boolean_function}]}]*
    [-ack_delay {port_name delay}]*
    [-off_state {state_name {boolean_function}}]*
    [-on_partial_state {state_name {boolean_function}}]*
    [-error_state {state_name {boolean_function}}]*  

    map_power_switch

    map_power_switch switch_name
    -domain domain_name
    -lib_cells list  

    create_supply_set

    create_supply_set supply_set_name
    [-function {function net_name}]
    [-update]  

    包含两种functions:
    • Power
    • Ground

    associate_supply_set

    associate_supply_set supply_set_name
    -handle supply_set_name  

    当两个set被associate后,他们将被连到相同的supply net或相同的PG pins对上。

    set_equivalent

    set_equivalent -nets supply_nets | -sets supply_sets
    [-function_only]  

    指定一系列supply nets或一系列supply sets是相等的。表示他们具有相同的状态和电压,无论他们是否是电气相连的。例如:

    prompt> set_equivalent -nets {VDDa VDDb VDDc} # equivalent supply nets
    prompt> set_equivalent -sets {SS1a SS1b} # equivalent supply sets

    funtion_only 选项指定这些相同的set是电气等价的还是相互独立并行的等价,并非一定是短路的。

    Level Shifter Commands

    set_level_shifter

    set_level_shifter strategy_name
    -domain domain_name
    [-elements port_pin_list]
    [-exclude_elements exclude_list]
    [-applies_to inputs | outputs | both]
    [-applies_to_boundary upper | lower | both]
    [-threshold float]
    [-rule low_to_high | high_to_low | both]
    [-location self | parent | fanout | automatic]
    [-no_shift]
    [-force_shift]
    [-name_prefix prefix_string]
    [-name_suffix suffix_string]
    [-update]
    [-source source_supply]
    [-sink sink_supply]  
    set_level_shifter –domain domain_name –elements ... [–applies_to ...]
    set_level_shifter –domain domain_name –applies_to [inputs | outputs]
    set_level_shifter –domain domain_name [–applies_to both]

    map_level_shifter_cell

    map_level_shifter_cell strategy_name
    -domain power_domain_name
    -lib_cells list

    use_interface_cell

    use_interface_cell
    interface_implementation_name
    -domain domain_name
    -lib_cells lib_cell_list
    -strategy list_of_one_level_shifter_and_or_one_isolation
    [-port_map port_net_list]
    [-force_function]

    Isolation Commands

    set_isolation

    set_isolation isolation_strategy_name
    -domain power_domain
    [-elements objects]
    [-exclude_elements exclude_list]
    [-applies_to inputs | outputs | both]
    [-applies_to_boundary upper | lower | both]
    [-clamp_value 0 | 1 | latch]
    [-isolation_power_net isolation_power_net]
    [-isolation_ground_net isolation_ground_net]
    [-isolation_supply isolation_supply_set]
    [-source source_supply_set_name]
    [-sink sink_supply_set_name]
    [-diff_supply_only true | false]
    [-no_isolation]
    [-force_isolation]
    [-name_prefix prefix_string]
    [-name_suffix suffix_string]
    [-update]  

    set_isolation_control

    set_isolation_control isolation_strategy_name
    -domain power_domain
    -isolation_signal isolation_signal
    [-isolation_sense high | low]
    [-location self | parent | fanout]  

    map_isolation_cell

    use_interface_cell

    Retention Commands

    set_retention

    set_retention_control

    set_retention_elements

    map_retention_cell

    Power Model Commands

    Power State Table Commands

    Logic Editing Commands

    Utility Commands

    load_upf

    load_upf upf_file_name
    [-supplemental supf_file_name]
    [-scope string]
    [-noecho]
    [-simulation_only]
    [-strict_check string]  

    save_upf

    save_upf upf_file_name
    [-supplemental supf_file_name]
    [-include_supply_exceptions]
    [-full_upf]  

    Query Commands

    Simulation/Verification Extension Commands

    Supply Sets

    Golden UPF Flow

    20200306211622.png
    • 在整个流程中,黄金UPF文件保持不变,它保留了在UPF文件中使用的表单、结构、注释行和通配符命名。
    • 可以使用特定于工具的条件语句在不同的工具中执行不同的任务。这些语句在传统的UPF-prime流中丢失了。
    • power意图的更改很容易在补充的UPF文件中进行跟踪
    • 您可以选择使用Verilog netlist来存储所有PG连接信息,这使得在UPF文件中不必使用connect_supply_net命令。这可以显著地简化和减少UPF文件的总体大小。

    C4 -- UPF Script Examples

    Simple Multivoltage Design

    20200306211835.png

    Bottom-Up Power Intent Specification

    从内到外的方式,先写CPU.upf:

    create_power_domain PD
    create_supply_net VN -domain PD
    create_supply_net GN -domain PD
    set_domain_supply_net PD -primary_power_net VN -primary_ground_net GN
    create_supply_port VN
    create_supply_port GN
    connect_supply_net VN -ports {VN}
    connect_supply_net GN -ports {GN}

    之后写顶层的upf:

    load_upf CPU.upf -scope CPU_1
    load_upf CPU.upf -scope CPU_2
    # still at scope SODIUM
    create_supply_port VDD1
    create_supply_port VDD2
    create_supply_port VSS
    create_power_domain PD
    create_supply_net VN1 -domain PD
    connect_supply_net VN1 -ports {VDD1 CPU_1/VN}
    create_supply_net VN2 -domain PD
    connect_supply_net VN2 -ports {VDD2 CPU_2/VN}
    create_supply_net GN -domain PD
    connect_supply_net GN -ports {VSS CPU_1/GN CPU_2/GN}
    set_domain_supply_net PD -primary_power_net VN1 -primary_ground_net GN
    # PD, CPU_1/PD and CPU_2/PD are different power domains.

    使用save_upf命令后工具会自动将顶层导入的其他upf整合到一起。

    Top-Down Power Intent Specification

    create_power_domain PD_CPU_1 -elements {CPU_1}
    create_power_domain PD_CPU_2 -elements {CPU_2}
    create_power_domain PD_SODIUM
    create_supply_port VDD1
    create_supply_port VDD2
    create_supply_port VSS
    create_supply_net VN1 -domain PD_CPU_1
    create_supply_net VN1 -domain PD_SODIUM -reuse
    connect_supply_net VN1 -ports {VDD1}
    create_supply_net VN2 -domain PD_CPU_2
    create_supply_net VN2 -domain PD_SODIUM -reuse
    connect_supply_net VN2 -ports {VDD2}
    create_supply_net GN -domain PD_CPU_1
    create_supply_net GN -domain PD_CPU_2 -reuse
    create_supply_net GN -domain PD_SODIUM -reuse
    connect_supply_net GN -ports {VSS}
    set_domain_supply_net PD_CPU_1 \
    -primary_power_net VN1 -primary_ground_net GN
    set_domain_supply_net PD_CPU_2 \
    -primary_power_net VN2 -primary_ground_net GN
    set_domain_supply_net PD_SODIUM \
    -primary_power_net VN1 -primary_ground_net GN

    Hierarchy and the get_supply_nets Command

    20200306213359.png
    create_power_domain PDY -scope L1 -elements {L1}
    create_supply_net SN1 -domain L1/PDY
    create_supply_port L1/L2/L3/P1
    set n [get_supply_nets SN1 -domain L1/PDY -scope L1/L2]
    connect_supply_net $n -ports {L1/L2/L3/P1}
    # an alternative to connect_supply_net L1/SN1 -ports {L1/L2/L3/P1}

    get_supply_nets 可以在指定范围的指定域中查找与supply net关联的逻辑网名

    上面例子给出了跨层次连接net和port的示例。

    特定工具使用建议

    VCS NLP Low Power Simulation Flow

    Debugging Low-Power Designs Using Verdi

    The following is the syntax to compile a low power design:

    % vcs -sverilog design_file -upf upf_file -power_top design_top -kdb \ -debug_access+all compile_options

    The following is the syntax to invoke the Verdi GUI:

    % simv -verdi  

    Logic Synthesis Using Design Compiler

    • DC可以基于UPF命令和UPF指定的电源状态自动插入level shifters,isolation cells,rentention registers。

    • DC的输入文件包括RTL和用户编写的UPF,综合之后会生成一个新的UPF,新的UPF包含了一些综合过程中与电源管理单元相关的连接,如level shifters,isolation cells,rentention registers。

    To synthesize a design with UPF power intent, the top-down flow is the most straightforward. These are the general steps in the flow:

    1. Read the RTL file.
    2. Use the load_upf command to read the UPF file.
    3. Specify the timing and power constraints.
    4. Compile the design using the compile_ultra command.
    5. Insert the scan chains using the insert_dft command.
    6. Use the save_upf command to save the updated constraints into a new UPF file, which can be used as input to downstream tools.
    7. Write the synthesis netlist into a file, which can be used as input to downstream tools.

    电压域层次范例:

    20200306215125.png
    create_power_domain TOP
    create_power_domain PD1 -elements {A/D}
    create_power_domain PD2 -elements {B/E/J}
    create_power_domain PD3 -elements {B/F}
    create_power_domain PD4 -elements {B/G}

    Specifying Operating Voltages

    可以使用set_voltage命令在设计中指定供电网络的工作电压。

    例如,以下命令指定目标库、工作条件和为设计提供净电压:

    ## Target Libraries
    set target_library "HVT.db LVT.db SVT.db"
    ## Design operating condition name
    set_operating_conditions WC09
    ## Set voltages on PN1 and PN2 supply nets
    set_voltage 1.1 -object_list PN1
    set_voltage 0.7 -object_list PN2

    电源网络上设置的电压必须与UPF中定义的允许电压一致。

    set_voltage命令允许为供电网络指定最小和最大工作条件电压。如果只指定一个电压,它适用于最大工作条件。要指定最大和最小操作条件下的电压,请使用-min选项,如下面的示例所示:

    set_voltage 0.86 -min 1.06 -object_list VDD
    展开全文
  • 数字IC笔记-UPF:创建

    2021-11-04 09:45:16
    文章目录1.supply network1.network2.supply net2.supply set1.set2.supply sets in power domains 1.supply network 1.network supply network是使用详细的供应连接起来的: supply nets、supply ports、power ...
  • pg_connect

    2021-04-20 07:09:55
    用户评论:[#1]Anonymous [2015-04-24 06:41:02]Ifyougetthefollowingwarning:"Warning:pg_connect():UnabletoconnecttoPostgreSQLserver:couldnottranslatehostname"server.your.trying.to.connect.t...
  • [UPF]低功耗(Low Power Design)and UPF介紹

    万次阅读 多人点赞 2020-06-09 15:57:07
    name [-domain domain_name] [-reuse] [-resolve unresolved | parallel | one_hot | parallel_one_hot | user_defined_resolution_function] connect_supply_net connect_supply_net supply_net_name -ports list ...
  • UPF Usage

    千次阅读 2019-03-06 19:51:00
    在 multi-voltage design 中,当涉及到多个power supply 时,需要 upf 文件来...upf 中的基本概念: power domain、 supply set、 supply netsupply port、related power、isolation、level shifter、 power swi...
  • UPF基本概念学习

    千次阅读 2020-11-01 19:34:40
    create_supply_port VDD -direction in create_supply_port VSS -direction in create_supply_net Pwr -domain Video_PD create_supply_net Gnd -domain Video_PD connect_supply_net Pwr -ports (VDD) connect_...
  • 低功耗设计——基于UPF进行设计

    千次阅读 2022-01-24 11:26:16
    connect_supply_net 把电源网络连接到电源端口上。 3)电源开关 电源开关(Power Switch)是用来连通或切断供电网络的器件。一个电源开关包括一个输入供电网络,一个可以被连通或切断的输出供电网络,和至少一个输入...
  • ICC II 3 从create_ndm开始design setup

    千次阅读 2020-11-28 11:25:22
    NDM cell librarys NDM库 ICC 中使用的MW 库 而ICC II 中使用 NDM new data model;新的数据模型 介绍 NDM 库的相关内容 以及 PR之前的设置; NDM 库 ICC 使用的标准单元和宏单元 都是 NDM格式的, 被称作 CLIBs ...
  • ################################################################################# ##########################...# Example 2: UPF using domain dependent supply nets. #######################################
  • vcs+upf

    2021-02-09 17:06:21
    一、upf介绍 芯片的功耗主要由静态功耗(static leakage power)和动态功耗(dynamic power)构成。静态功耗主要是指电路处于...在数字后端阶段,可以通过多电源多电压技术来降低功耗,Multi supply Multi Voltage(MSMV
  • odbc_exec

    2021-03-25 10:03:55
    That was right, but if those stores procedures have parameters you have to supply them in the command line like this: $conn_id = odbc_connect( "odbc_test_db", "","", SQL_CUR_...
  • 1. 引言 主要代码见: ... 本文主要借助Element Finance的Aztec Connect Contract合约来说明。 1.1 关键词解释 Principal Token:表示lender存入defi中的抵押品。 Yield Toke
  • A pointer to a null-terminated string that specifies the network resource to connect to. The string can be up to MAX_PATH characters in length, and must follow the network provider's naming ...
  • cat /sys/class/power_supply/battery/current_now 查看Power:  dumpsys power WIFI : data/misc/wifi/wpa_supplicant.conf 持有wake_lock:  echo a> sys/power/wake_lock 释放wake_lock: echo a> sys/...
  • UPF

    千次阅读 2019-06-24 22:59:00
    connect_supply_net Gnd -ports (VSS) set_domain_supply_net Video_PD \ -primary_power_net Pwr \ -primary_ground_net Gnd 下图中,V_PD domain 中的supply_net复用Video_PD domain中的supply_net。需要-...
  • list) { //uevent_net_init会初始化一个uevent_sock,也只有一个 if (!netlink_has_listeners(uevent_sock, 1)) continue; /* allocate message with the maximum possible size */ len = strlen(action_string) + ...
  • kermit --- connect

    千次阅读 2012-10-08 11:10:47
    (/work/project/DLS-Auto-M_lazurquartz_3.2/packages/apps/VoiceRecognition/) C-Kermit>connect Connecting to /dev/ttyUSB0, speed 115200  Escape character: Ctrl-\ (ASCII 28, FS): enabled Type the ...
  • connect_supply_net VDD1_sw –ports VDD1_sw –domain VA2 connect_supply_net VSS –ports VSS –domain VA1 connect_supply_net VSS –ports VSS –domain VA2 4. 创建供电集合,关联到Voltage Area create_...
  • echo "net.ipv4.ip_local_port_range = 9000 65500">>/etc/sysctl.conf echo "net.core.rmem_default = 262144">>/etc/sysctl.conf echo "net.core.rmem_max = 4194304">>/etc/sysctl.conf echo ...
  • , supply a net service name that Oracle Net can resolve to a connect descriptor for a standby database. The connect descriptor contains the information necessary for connecting to the remote database....
  • 低功耗技术(三)UPF的使用

    千次阅读 2021-04-13 21:44:45
    1 -reuseCreate_supply_net VSS-domain PD_2 -reuse#connect thesupply net to power portConnect_supply_netVDD -ports VDDConnect_supply_netVDD_2 -ports VDD_2Connect_supply_netVSS -ports VSS#define the...
  • 以太坊公链私链by Marcelo Russi Mergulh... 如何使用以太坊构建汽车制造供应链系统 (How to build a car manufacturing supply chain system using Ethereum) Here at Daitan we are always looking for new techno...
  • 0.628283] Initializing cgroup subsys freezer [ 0.632723] CPU: Testing write buffer coherency: ok [ 0.639499] regulator: core version 0.5 [ 0.641990] NET: Registered protocol family 16 [ 0.651648] S3C ...
  • php开发_php环境搭建

    2019-10-04 13:33:42
    # net start MySQL41 29 # 30 # 31 # Guildlines for editing this file 32 # ---------------------------------------------------------------------- 33 # 34 # In this file, you can ...
  • # Connect to it docker run \ --net=host \ -e DATA_SOURCE_NAME="postgresql://postgres:password@localhost:5432/postgres?sslmode=disable" \ quay.io/prometheuscommunity/postgres-exporter Building and ...
  • 物联笔记-5

    2022-03-30 22:36:02
    } int nettype_tcp_connect(network_t* n) { n->socket = platform_net_socket_connect(n->host, n->port, PLATFORM_NET_PROTO_TCP); //... } int platform_net_socket_connect(const char *host, const char *...
  • 以太坊Solidity开发入门(ERC20发币篇)

    千次阅读 2021-01-17 13:53:00
    解锁部署账户 $ geth --rinkeby --rpc --rpcapi db,eth,net,web3,personal $ geth attach /Users/tmd/Library/Ethereum/rinkeby/geth.ipc > personal.unlockAccount('0xbe255696870b84c69f6e2b902177cf2a2cb57b58')...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,568
精华内容 627
热门标签
关键字:

connect_supply_net