影响网站pr的因素有哪些,软件详细设计文档模板,html网页设计代码作业网站,宣讲家网站美丽乡村建设附录B#xff1a;UPF命令语法
本章介绍了文本中引用的所选UPF命令的语法。
节选自“统一电源格式#xff08;UPF#xff09;标准#xff0c;1.0版”#xff0c;经该Accellera许可复制。版权所有#xff1a;(c)2006-2007。Accellera不声明或代表摘录材料的准确性或内容UPF命令语法
本章介绍了文本中引用的所选UPF命令的语法。
节选自“统一电源格式UPF标准1.0版”经该Accellera许可复制。版权所有(c)2006-2007。Accellera不声明或代表摘录材料的准确性或内容并明确否认任何明示或默示保证。提供了附件标准的摘录“AS IS”。
完整的标准文档可以在www.accellera.org下找到。
译者翻译的过程中发现该书在copy IEEE1801的部分UPF命令时出现了一些复制粘贴的混乱如果对UPF有兴趣建议去IEEE官网下载官方Standard
B.1 add_pst_state
用途为一种可能的设计状态定义每个供电网络的状态语法add_pst_state state_name -pst table_name -state supply_states表达式 state_name 电源状态。 -pst table_name 此状态所应用的电源状态表PST。 -state supply_states 供电网络的状态名列表依照 create_pst 命令中-supplies列写的顺序进行列写。 返回值成功返回1失败返回0。
add_pst_state命令为一种可能的设计状态定义每个供电网络的状态。
如果supply_state_names的数量与PST中的供电网络数量不同则会报错。
语法示例
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 }
B.2 connect_supply_net
用途给供电端口或引脚连接一条供电线语法connect_supply_net net_name [-ports list] [-pins list] [-cells list |-domain domain_name] [-rail_connection rail_type | -pg_type pg_type]* [-vct vct_name]表达式 net_name 供电线状态 -ports list 连接的端口列表 -pins list 连接单元的引脚列表 -cells list 使用-rail_connection或者-pg_type命令的单元的列表 -domain domain_name -rail_connection或者-pg_type命令所需使用的域 -rail_connection rail_type 轨道类型对于较老的工艺库 -pg_type pg_type 电源/地 引脚类型 -vct vct_name VCT定义如何将值从UPF映射到HDL模型或从HDL模型映射到UPF 返回值如果成功返回供应网络的完全限定名称如果不成功返回0。 任何端口、引脚、单元、供电网络或域都是相对于当前UPF范围引用的。
connect_supply_net 命令提供显式连接到任何端口和覆盖优先级高于自动连接语义无显式声明时则会使用自动连接。在-rail_connection 或者-pg_type选项声明时可能需要-domain或者-cells。
用法 -ports 连接到电源端口; -pins 连接到库单元上的引脚 -cells 连接到特定单元上适当类型电源或接地的所有引脚; -rail_connection 连接到有此轨道类型的引脚仅在-cells 和 -domain选项被声明时使用。 -pg_type 只连接到有这种电源/地类型的引脚库模型中定义的引脚类型用于决定这种连接仅在-cells 和 -domain选项被声明时使用。 -vct 以指示端口所连接的每个HDL端口如果供电网络状态正在传播到HDL端口中则应转换供电网络状态或者如果HDL端口值正在传播到供电网络中则应对其进行转换。对于电源网络到UPF中定义的引脚或电源端口的任何连接则会忽略-vct 。 下面这些也适用 -ports 和 -pins 选项和 -cells-domain-rail_connection-pg_type选项相互排斥 -rail_connection 和 -pg_type选项相互排斥 供电网只能连接到与该供电网域电压域相同范围内的端口、引脚或单元。 如果以前没有创建net_name则会报错在这种情况下应返回0。 如果此命令中指定的任何设计元素不存在则为错误。 如果在VCT中指定的值转换与HDL端口的类型不匹配则为错误。 语法示例
connect_supply_net v09 -ports {VDD U18/v9 U21/v9}connect_supply_net pd1_vdd-ports pll_inst/vdd-vct upf2vlog_vdd
B.3 create_power_domain
用途为一组设计元素定义配电网语法create_power_domain domain_name [-elements list] [-include_scope] [-scope instance_name]表达式 domain_name 新的电压域是一个简单的非层级化的 non-hierarchical名称。 -elements list 使用电压域中设计单元的列表 -include_scope 将域的范围包含在电压域内 -scope instance_name 在此逻辑层次结构范围内创建电源域。 返回值返回已创建的域来自当前作用域的完全限定名称如果未创建电源域则返回空字符串。
create_power_domain命令通常为电压域内的设计单元列表定义了电源供电分布网络。一个power_domain就是一个或多个设计单元的逻辑群。一个电源域有一个主电源power网和一个主地ground网。一个电源域可能还有其他额外的供电网络供电端口开关等。
仅当指定了主电源和接地电源网络时电源域才起作用。
–elements (或者 add_domain_elements 命令)声明包含电压域内的设计单元完整集即那些实例及其所有子实例除非另有规定。 list 是根据当前范围指定的它不受 -scope 语句的影响。 如果 -include_scope 也声明了那么域的范围包含在域的界限之内。 当 -elements 和 -include_scope 都不声明电压域由当前范围以及另一条 create_power_domain 命令未声明的任何子模块或者单元组成。 -scope声明了范围也即实例化的模块将在这里创建域。scope指的是此条命令的当前范围它定义了逻辑设计内域的界限。如果 -scope 没有声明电压域将在当前范围内创建。 语法示例
create_power_domain PD1 -elements {top/U1}set_scope /top/U1
create_power_domain PD2
B.4 create_power_switch
用途定义电压域的开关语法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}}}* [-on_partial_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}}]* [-error_state {state_name {boolean_function}}]*表达式 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}} 命名的开关开启状态 input_supply_port为已经定义的输入供电端口以及对应的布尔函数 -on_partial_state {state_name input_supply_port {boolean_function}}命名的开关部分打开状态input_supply_port为已经定义的输入供电端口以及对应的布尔函数 -ack_port {port_name net_name [{boolean_function}]} 开关的确认端口以及与之连接的逻辑线以及对应的布尔逻辑表达式如果将空字符串用作-ack_port的net_name则会定义端口及其布尔表达式但端口本身未连接。 -ack_delay {port_name delay} 给定ack_port的确认延迟 -off_state {state_name {boolean_function}} 命名的开关关闭状态以及与之对应的布尔表达式。 -error_state {state_name {boolean_expression}} 命名的开关出错状态以及与之对应的布尔表达式。 返回值如果成功则返回所创建开关的全路径名称否则返回空字符串。
create_power_switch 命令定义了电源域中的电源开关的实例。该开关是在电源域的范围内创建的。这个开关不是开启就是关闭。
如果控制端口上的值等于“开启”状态的表达式则开关打开这将驱动输出端口进入“打开”状态。如果在输入电源端口上有电压值则该值将在输出电源端口上被驱动。
如果开关未打开则关闭“关闭”状态驱动到输出端口。一些“关闭”状态可以被识别为错误状态。这些错误状态的仿真语义依赖于工具。
如果为-ack_port指定了一个布尔表达式则控制端口转变比如有关闭或者打开开关的控制请求后等待若干个所声明的延迟时间单位后boolean_function的结果的驱动至-ack_port的端口名称port_name。否则开关关闭后在port_name延迟若干个时间单位后驱动逻辑1开关打开后在port_name延迟若干个时间单位后驱动逻辑0。延迟默认为0可指定为非单位自然整数或Verilog时间单位。如果指定为自然整数则时间单位应与仿真的时间精度相同。
任何-ack_port、-on_state、 -error_state的布尔表达式都应为SystemVerilog的布尔表达式。
以下内容也适用。 如果指定的控制端口不存在则为错误。控制端口的现有连接性不可被修改。 所有不被三个状态开、关和错误(on, off, and error)覆盖的状态都是匿名错误状态。 每个状态的名称都应为唯一的名称。 任何相互冲突的状态定义都是错误的。 没有任何综合synthesis语义与任何布尔函数相关联除了被映射的开关必须提供该功能。 语法示例
create_power_switch sw1
-domain PD_SODIUM
-output_supply_port {vout VN3}
-input_supply_port {vin1 VN1}
-input_supply_port {vin2 VN2}
-control_port {ctrl_small ON1}
-control_port {ctrl_large ON2}
-control_port {ss SUPPLY_SELECT}
-on_state {partial_s1 vin1 {ctrl_small !ctrl_large ss}}
-on_state {full_s1 vin1 {ctrl_small ctrl_large ss}}
-on_state {partial_s2 vin2 {ctrl_small !ctrl_large !ss}}
-on_state {full_s2 vin2 {ctrl_small ctrl_large !ss}}
-error_state {no_small {!ctrl_small ctrl_large}}
B.5 create_pst
用途创建一个具有特定供电网络顺序的电源状态表语法create_pst table_name -supplies list表达式 table_name 电源状态表名称 -supplies list 包含在设计中电源状态的供电网络和端口列表 返回值如果创建成功返回电源状态表名称否则返回空字符串。
create_pst 命令创建了一个PST具有特定供电网络顺序。
电源状态表用于实现布局布线——特别是综合、分析和优化。定义了状态的合法组合也即那些状态的组合在设计运行期间同时存在。
电源状态表没有仿真语义。这个是依赖于工具的如果非法的未声明的状态组合发生仿真工具可能会报告一个错误。
如果声明的供电网络没有创建则会出错。
语法示例
create_pst MyPowerStateTable -supplies {PN1 PN2 SOC/OTC/PN3}
B.6 create_supply_net
用途创建一个电源或者接地供电线语法create_supply_net net_name -domain domain_name [-reuse] [-resolve unresolved | one_hot | parallel]表达式 net_name 供电线名称 -domain domain_name 创建的供电线所在的电压域 -reuse 将net_name扩展为一个包含domain_name的供电线。不创建新的网络。 -resolve unresolved | one_hot | parallel 一种解析机制根据每个单独开关提供的状态和电压值来确定供电网的状态和电压。默认值未解析unresolved。 返回值返回已创建供电线来自当前作用域的完全限定名称如果未创建则返回空字符串。
create_supply_net 命令创建一条供电线。为电压域定义的供电线创建所在的逻辑层级和domain_name所在的范围相同。根据需要通过逻辑层次结构通过隐式创建的端口和网络进行传播。
以下内容也适用。 如果domain_name没有指示一个之前创建的电压域则会报错。 当声明-reused时如果net_name不存在则会报错 当声明-resolve unresolved时此供电线只允许单个驱动器。 语法示例
create_supply_net v09 -domain PD1
B.7 create_supply_port
用途在电压域创建一个端口语法create_supply_port port_name [-domain domain_name] [-direction in |out]表达式 port_name 供电端口名称。允许使用层级化名称除非同时指定了-domain。 -domain domain_name 此端口定义供电网连接点的域。 -direction in |out 端口的方向默认为输入 in。 返回值返回已创建的端口来自当前作用域的完全限定名称如果未创建则返回空字符串。 create_supply_port 命令在-domain声明时在电压域范围内定义供电端口如果没有声明-domain则在当前域的范围内创建供电端口。
-direction定义状态信息在连接到端口时如何通过供电网络传播。如果端口是输入端口则连接到端口的外部供应网络的状态信息应传播到域中。同样对于输出端口连接到该端口的内部供应网络的状态信息应在域外传播。
如果port_name创建了一个与逻辑层级相冲突的名称或者声明了一个之前创建过的端口则会报错。
如果domain_name不能指示一个已创建的电压域则会报错。
语法示例
create_supply_port VN1 -domain PD1 reg/wire, Bit, Logic
B.8 set_domain_supply_net
用途为电压域设置默认的电源线和地线语法set_domain_supply_net domain_name -primary_power_net supply_net_name -primary_ground_net supply_net_name表达式 domain_name 默认供电线所在的电压域 -primary_power_net supply_net_name 主电源供电线 -primary_ground_net supply_net_name 主地线 返回值设置成功返回1否则返回0.
set_domain_supply_net 命令将默认的电源线/地线与电压域的逻辑单元相联系。
primary power 和 ground nets为连接到电压域内逻辑单元或推断单元的默认主电源线和地线。执行电源线和地线用于电压域内的所有单元。在门级这意味着所有的所有推断的门的所有电源/地引脚连接到主电源线/地线。否则除非用 connect_supply_net, set_retention, set_isolation等命令进行声明。
如果domain_name不能指示一个已创建的电压域则会报错。
如果domain_name已经包含了一个主要的电源/地供应线。
语法示例
set_domain_supply_net PD1 -primary_power_net PG1 -primary_ground_net PG0 B.9 set_isolation
用途用声明的策略设置电压域中单元的隔离。语法set_isolation isolation_name -domain domain_name -isolation_power_net net_name | -isolation_ground_net net_name | -isolation_power_net net_name -isolation_ground_net net_name | -no_isolation [-elements list] [-clamp_value 0 | 1 | latch | Z] [-applies_to inputs | outputs | both]表达式 isolation_name 隔离策略名称 -domain domain_name 应用此策略的电压域 -isolation_power_net net_name | -isolation_ground_net net_name | -isolation_power_net net_name -isolation_ground_net net_name | -no_isolation 用于设置由此策略推断的隔离逻辑的供电线。不隔离单元列表中声明的端口引脚或者设计单元。 -elements list 此策略使用的设计单元列表输入端口/引脚输出端口/引脚以及线网。 -clamp_value 0 | 1 | latch | Z 设置输入或者输出被钳夹的逻辑值。默认为 0. -applies_to inputs | outputs | both 电压域的输入或者输出端口隔离或者都隔离。默认为输出outputs。 返回值成功返回 1 失败返回0。
set_isolation 用声明的策略设置电压域中单元的隔离。隔离使能信号为公共信号钳夹值以及位置。
–isolation_supply_nets 可以声明单一的电源线单一的地线或者二者都声明。如果只声明隔离单元的电源线那么主地线作为隔离地线。如果只声明隔离单元的地线那么主电源线作为隔离电源。
-isolation_power_net 和 -isolation_ground_net两个至少有一个需要声明除非-no_isolation已经声明。如果只声明-isolation_power_net那么主地线则作为隔离的地线供应。如果只声明-isolation_ground_net那么主电源线则作为隔离的电源线供应。如果两个都声明了那么所声明的供电线作为隔离的电源和地供应线。
隔离电源和接地网自动连接到隐含的隔离过程当-clamp_value为latch时自动连接到完整规范第5节中所述的隔离寄存器或如果隔离单元与map_isolation_cell命令明确映射则自动连接到隔离单元的电源和接地引脚。隐式隔离过程和隔离寄存器的关闭和开启语义如果存在则如完整规范的第5节所述。
如果一个域有多个隔离策略对于每个策略-elements用来指定要隔离的单元。如果声明了 -elements则元素应在domain_name中。如果-elements直接按名称指定端口间接指定端口实例或该实例的更深一层实例则隔离策略应应用于该端口无论该端口模式是否与-applies_to选项指定的端口匹配。当没有指定-elements时这相当于使用定义的电压域单元列表。
-clamp_value的值可以为 逻辑0 逻辑1 latch锁存当隔离信号有效时非隔离端口的值 逻辑Z 以下内容也适用。 这个命令不可用于inout端口。 如果声明 -no_isolation 那么-elements 显式或者隐式声明的所有端口以及与-applies_to模式相匹配的声明都不将会被隔离。 如果使用-domain、-elements或-applies_to以外的任何其他参数指定-no_isolation则是一个错误。 如果声明多条电源线/地线则会报错。 如果多个不同的隔离策略对相同的设计单元、引脚、端口、线网等作用时会报错。 语法示例
set_isolation outputs_only-domain PD1-isolation_power_net VDDbackup-clamp_value 1-applies_to outputs B.10 set_isolation_control
用途为已经定义的隔离策略声明控制信号。语法set_isolation_control isolation_name -domain domain_name -isolation_signal signal_name [-isolation_sense high | low] [-location self | parent | sibling | fanout | automatic]表达式 isolation_name 隔离策略名称 -domain domain_name 应用此策略的电压域 -isolation_signal signal_name 隔离控制信号即在控制下导致声明的单元被驱动值钳夹电平值。 -location self | parent| sibling | fanout |automatic 隔离单元在逻辑层级中放置的位置。默认为自动automatic。 返回值成功返回 1 失败返回0。
set_isolation_control命令允许与set_isolation命令分离地指定隔离控制信号和感知用于那些隔离策略已知但控制信号直到以后才知道的情况。
除了set_isolation_control命令是在当前范围内执行的以及–location选项的添加之外这里的语义相当于指定了隔离控制信号并使用set_isolation命令进行感知。
–location定义隔离单元在逻辑层次结构中的位置。 self 将隔离单元放置在被隔离的模型/单元内。 parent 隔离单元被放置在被隔离的父模型/单元内。 sibling 创建一个新的兄类将隔离单元放置到其中。 fanout 隔离发生在被隔离端口的所有扇出位置汇点。 automatic 实现工具可以自由选择适当的位置默认值。 语法示例
set_isolation outputs_only
-domain PD1
-isolation_power_net VDDbackup
-clamp_value 1
-applies_to outputsset_isolation_control outputs_only
-domain PD1
-isolation_signal cpu_iso
-isolation_sense low
-location parent
B.11 set_level_shifter
用途声明电平转换器策略语法set_level_shifter level_shifter_name -domain domain_name [-elements list] [-applies_to inputs | outputs | both] [-threshold value] [-rule low_to_high | high_to_low | both] [-location self | parent | sibling | fanout | automatic] [-no_shift]表达式 level_shifter_name 电平转换器策略名称仅在报告reporting时使用 -domain domain_name 应用此策略的电压域 -elements list 此策略使用的设计单元列表输入端口/引脚输出端口/引脚以及线网。 -applies_to inputs |outputs | both 设置电压域的输入或者输出端口或双端口电平转换。默认为both。 -threshold value 设置电压阈值单位伏特用于决定何时需要电平转换器。默认为0。 -rule low_to_high |high_to_low | both 电平转换器类型。默认为both。 -location self | parent| sibling | fanout |automatic 电平转换器在逻辑层级中的放置位置。默认为 automatic。 -no_shift 可以用–elements选项进行声明防止在声明的端口/引脚/线网插入电平转换器。 返回值成功返回 1 失败返回0。
set_level_shifter命令可用于设置实现过程中的电平转换策略。电平转换器被放置在具有在不同电压下操作的源头和交汇的信号上因为它们的相关设计元件被连接到不同的供电网络。如果没有在特定功率域上指定电平转换器策略则默认电平转换器策略由功率域中的所有单元组成并使用默认策略设置。
如果指定了–elements则这些元素应位于domain_name中。如果–elements用于指定端口或引脚则无论-threshold 或 -rule如何声明都会在该端口上插入电平转换器。-threshold声明定义了在插入电平移位器之前驱动器和接收器之间的电压差需要有多大。通常这个阈值是从单元库中确定的使用此选项可以覆盖库中的值。
–rule可以是low_to_high、high_to_low也可以同时为两者。如果指定了low_to_high则当电压差超过–threshold指定的电压差时从较低电压到较高电压的信号将得到电平转换器。如果指定high_to_low则当电压差超过–threshold指定的电压差时从较高电压到较低电压的信号将得到电平转换器。如果同时指定了这两个规则则相当于在策略中同时使用两个规则。
–location定义电平转换器在逻辑层次结构中的位置。在声明的位置上所有必要的供电必须可以获取到。 self 将电平转换器放置在被转换的模型/单元内。 parent 电平转换器被放置在被转换的父模型/单元内。 sibling 创建一个新的兄类将电平转换器放置到其中。 fanout 转换发生在被转换端口的所有扇出位置汇点。 automatic 实现工具可以自由选择适当的位置。 以下内容也适用。 这个命令不可用于inout端口。 如果声明的位置不在以设计根目录开始的位置会报错。 语法示例
set_level_shifter shift_up
-domain PowerDomainZ
-applies_to outputs
-threshold 0.02
-rule both
B.12 set_retention
用途指定域中哪些寄存器需要作为保留寄存器并设置保留功能的保存和恢复信号。语法set_retention retention_name -domain domain_name -retention_power_net net_name | -retention_ground_net net_name | -retention_power_net net_name -retention_ground_net net_name [-elements list]表达式 retention_name 保留策略的名称。 -domain domain_name 应用此策略的电压域 -retention_power_net net_name | -retention_ground_net net_name | -retention_power_net net_name -retention_ground_net net_name用于设置由此策略推断的电平转换器的供电线。 -elements list 电压域中的对象列表应用此策略的设计单元命名的过程或者时序寄存器reg以及信号名。 返回值成功返回 1 失败返回0。
set_retention命令指定域中哪些寄存器需要作为保留寄存器并标识保留功能的保存和恢复信号。只有元素列表中隐含的寄存器才应具有保留能力。如果指定了设计单元则设计单元内的所有寄存器都会获取指定的保留策略。如果指定了过程则该过程推断的所有寄存器都会获取指定的保留策略。如果指定了reg、信号或变量并且该对象是时序单元则隐含寄存器获取指定的保留策略。任何指定的reg、信号或变量如果不能推断出时序单元则不得通过该命令进行更改。
应至少指定-reretion_power_net或-reretion_ground_net中的一个。如果仅指定了 -retention_power_net则应使用主接地线作为保留接地供应。如果只指定了 -reretention_rground_net则应使用主电网作为保留电源。如果同时指定了这两个选项则这些选项指定要用作保留电源和接地网的供电网。
当保留单元用map_retention_cell命令显式映射时保留电源和接地线自动连接到隐式保存和恢复过程以及影子寄存器或者连接到保留单元的电源和接地点引脚。隐式保存和恢复过程以及影子寄存器的关闭和打开语义如完整规范的第5节所述。
如果指定了-save_signal则应指定-restore_signal。如果未指定-save_signal则不应指定 -restore_signal。如果未指定保存和恢复信号则应在set_retension_control命令中指定。
如果指定了–elements则这些单元应位于domain_name中。如果未指定–elements则相当于使用定义电源域的elements列表。
以下内容也适用。 如果domain_name不能指示一个已创建的电压域则会报错。 如果声明多条电源线/地线则会报错。 语法示例
set_retention my_retention
-domain PDA
-retention_power_net volt_high
B.13 set_retention_control
用途为已定义的保留策略声明控制信号和断言。语法set_retention_control retention_name -domain domain_name -save_signal {{net_name high | low | posedge | negedge}} -restore_signal {{net_name high | low | posedge | negedge}} [-assert_r_mutex {{net_name high | low | posedge | negedge}}]* [-assert_s_mutex {{net_name high | low | posedge | negedge}}]* [-assert_rs_mutex {{net_name high | low | posedge | negedge}}]*表达式 retention_name 保留策略的名称。 -domain domain_name 应用此策略的电压域 -save_signal save_net SAVE控制信号将寄存器的数值保存到影子寄存器中。 -restore_signal restore_net RESTORE控制信号将影子寄存器的数值恢复到寄存器中。 -assert_r_mutex {{net_name high | low | posedge | negedge}} 恢复信号断言 -assert_s_mutex {{net_name high | low | posedge | negedge}}保存信号断言 -assert_rs_mutex {{net_name high | low| posedge | negedge}}保存和恢复信号断言 返回值成功返回 1 失败返回0。
set_retension_control命令允许与set_retenten命令分离地指定保持控制信号和感测用于那些保持策略是已知的但是直到稍后才知道控制信号的情况。由于断言与保存和恢复信号有关因此也可以使用此命令指定断言。
除了在当前范围内执行set_retension_control命令外这里的语义相当于用set_retension命令指定了保留控制信号、感知和断言。
set_retension命令也可以用于指定任何断言选项。每个选项都会创建一个或多个断言当指示的RTL信号同时处于活动状态时验证工具可以触发这些断言。如果-assert_rs_mutex没有指定信号列表这表明保存和恢复信号本身是互斥的。
以下内容也适用。 保存信号应当是一个设计中已存在的逻辑线端口或者引脚。 恢复信号应当是一个设计中已存在的逻辑线端口或者引脚。 语法示例
set_retention my_retention_strategy
-domain PDAset_retention_control my_retention_strategy
-domain PDA
-save_signal {power_controller_inst/save_1 high}
-restore_signal {power_controller_inst/restore_1 low}
-assert_rs_mutex {clock_a posedge}
B.14 set_scope
用途声明当前UPF的作用范围语法set_scope instance表达式instance 完成命令后成为当前作用域的实例。返回值如果成功则返回执行命令前的当前作用域作为相对于当前设计顶部的完整路径字符串如果失败例如如果实例instance不存在则返回空字符串。
如果 set_scope命令调用时没有指定instance或者UFP的作用范围没有设置则认为设置的作用范围是最顶层设计。
如果instance是 . 这个作用范围依然是当前实例。如果instance是 .. 则作用范围按照实例的层级上移一个级别。如果instance以 / 开始作用范围则回归到 / 后面的路径相对于顶层而言范围中。
语法示例
set_scope foo/bar
set_scope .. 附录B翻译完了但是UPF指令绝不止这些要想更多了解建议阅读IEEE的官方StandardsIEEE 1801