中文 英语
18.luck新利
的意见

低功耗设计的功率感知意图和结构验证

第1部分:PA静态验证的基础和用于验证的解决方案特性。

受欢迎程度

与电源相关的静态验证,通常被称为PA-Static检查,是对通过电源意图或采用某些降低功耗技术的设计执行的统一电源格式.这个词静态源于验证工具和方法,这些工具和方法应用了一组预定义的功率感知(PA)或多电压(MV)规则,基于功率需求,静态地基于设计结构。更准确地说,规则集与UPF规范一起应用于设计的物理结构、体系结构和微体系结构,但不需要任何外部刺激或测试平台。

在这个由四部分组成的系列文章的第一部分中,我们将描述PA-Static验证的基础以及用于验证的解决方案特性。

PA静态验证基础
PA-Static验证的主要目标是发现在架构和微架构方面影响物理设计的功耗意识结构问题。在PA设计中发生的结构变化主要是由于特殊电源管理和MV单元的物理插入;例如电源开关(PSW)、隔离(ISO)、电平转换器(LS)、使能电平转换器ELS、中继器(RPT)和保留触发器(RFF)。这些电源管理MV单元对于电源关闭是必不可少的。这些细胞的一般功能最好总结如下:

表1 -电源管理和中压单元的一般功能

  • 防止不准确的数据在Off和On电源域之间传播
  • 提供高到低或低到高电压功率域之间的精确逻辑分辨率
  • 允许控制,时钟和复位信号通过断电域馈电
  • 允许在关机或断电期间保留数据和状态
  • 提供主电源、接地、偏置、相关电源和备用电源连接

然而,这些通过MV细胞介导的特征和功能是在不同的设计抽象层次上获得的。此外,这些单元是通过UPF策略和Liberty库定义的。

PA- static检查工具用于静态验证设计的基本技术包括确定MV或PA规则与幂意图或UPF规范和Liberty库的合规性。最终,该工具执行所有其他可能的语法、语义和结构检查。显然,所有这些都基于内部集成或预先设计的PA规则。还有一些规定可以根据需求添加自定义规则,通过工具的外部接口通过Tcl过程。PA规则与UPF和Liberty库一起,在PA验证和实现环境中验证或验证从RTL到PG-netlist的设计是必不可少的。

对于不同级别的设计抽象,基本的PA-Static检查可以通过以下类别进行最好的总结:

表2 -不同设计抽象级别的基本pa静态检查
在RTL:

  1. 电源意图语法和UPF一致性检查——针对设计元素、数据和控制信号或端口进行设计和UPF一致性检查。
  2. 电源架构检查——针对UPF中的电源状态或电源状态表定义进行ISO、LS、ELS、RFF策略检查。

在GL-netlist:

  1. 微架构检查-控制信号、时钟、复位等的功率域的相对开机或始终开机顺序,确保这些功率域来自相对开机或始终开机的功率域,通过断电域时存在rpt或馈通缓冲区。这些检查是根据设计和UPF执行的。

PG-netlist和GL-netlist:

  1. 物理结构检查-针对UPF,规范,Liberty库和MV或宏单元插入或实例化设计实现PSW, ISO, ELS, LS, RPT, RFF。

在PG-netlist:

  1. PG-pin连接检查-用于电源接地,偏置和备份电源引脚,以及针对Liberty库,设计和UPF识别开放的供电网络和引脚。

从上面的分类中可以明显看出,PA-Static检查可以在RTL中就开始,用于基于UPF规范的一致性和体系结构检查,并扩展到GL-netlist,用于微体系结构和物理结构检查。

PG-pin连通性检查只能在PG-netlist级别进行。虽然有些物理结构检查只能在PG-netlist级别上完成,但是PSW、RPT等通常在Place & Route (P&R)过程中实现,并且这些策略只能在从P&R中提取的PG-netlist中物理上进行静态检查。

验证功能
PA-Static验证对于DVIF的所有阶段以及PA-SIM都是强制性的,这一点已经很明显了。然而,PA-Static验证为GL-netlist和PG-netlist级别的设计提供了更重要的见解。这是因为特殊的电源管理MV和宏单元在设计中仅在这些网表级别上可用,并提供其PG连接的详细信息。pa -静态验证该工具的输入要求如下:

表3 - PA-Static验证的输入要求

  • PA设计正在验证中
  • UPF具有正确定义的UPF策略、功率状态或功率状态表
  • PG-pin自由库用于MV, Macro和所有其他单元格(特别是在GL-netlist中或之后)

这里还需要提到的是,PA- static检查器可选地需要MV和宏单元的PA Sim-Model库,仅用于编译目的,当这些单元在设计中实例化时。中的代码片段解释了此类模型库的需求示例1

示例1- PA-静态工具需求的PA模拟模型库编译目的

// RTL设计包含LS单元实例化如下:模块内存(输入mem_shift,输出mem_state);…第68行LS_HL mem_ls_lh3 (.I(mem_shift), .Z(mem_state));endmodule
//在编译过程中,需要包含(.v)文件中定义的LS_LH模块,' celldefine module LS_HL (input I, output Z);buf (Z, I);指定(I => Z) = (0,0);Endspecify endmodule的endcelldefine

否则,仿真分析过程将产生如下所示的Error示例2:

例2 -设计编译过程中的PA-SIM分析错误

**错误:memory.v(68):模块“LS_HL”没有定义。

这里在设计中实例化了LS LH_HL。同时给出了相应的模型库和LS单元Liberty库的代码片段。

PA-Static检查器工具在执行静态验证之前实际分析输入信息。应用于验证设计的MV或PA规则基于以下信息,这些信息在工具中从UPF、Liberty库和设计本身中提取和分析,特别是当设计在合成后处于GL-netlist中时。

PA-Static工具提取和内部分析的信息总结如下:

表4 - PA-Static工具分析的信息摘要

  • 权力领域,
  • 权力域边界,
  • 幂域交叉,
  • 权力,
  • ISO、LS、ELS、RFF、PSW、RTP等。UPF的策略,
  • 具有属性,
  • pin级属性(仅限PG-pin)

回忆的create_power_domain元素{}该工具根据UPF定义和设计中的HDL分层实例处理和创建权力域。指定和限制设计或元素的某些部分的权力域的基本概念在建立域间和域内通信的连接性方面发挥着重要作用。

权力域的形成内在地定义了它的域边界和域界面create_power_domainUPF命令和选项组合。具体来说,通过域边界和域接口建立电源、电源策略、逻辑端口和网络连接以及子域层次连接。因此,功率域边界是UPF方法的基础,所有的UPF策略和源-汇通信模型都是在此基础上建立的。

功率域交叉是更多的PA或MV术语,与PA- static工具相关,实际上识别了通过HDL信号线、网络和端口通信的两个或多个相关功率域。权力域边界及其交叉实际上在工具中制定了源-接收器通信模型,不仅考虑了HDL连接和层次连接(HighConn和LowConn),而且还协调了UPF、设计和Liberty中定义的其他重要因素。这些因素是供电集或供电网的状态,功率域的状态,对应的供电端口和网名,以及功率域的供电集或供电网的组合,形成了源汇通信模型或整个设计的不同运行模式。

供电集、供电网、功率域的状态及其组合构成了系统的运行模式add_power_state和pst,通常用add_power_state add_port_state,而且add_pst_state语义在UPF。下面的示例展示了通过功率状态和功率域交叉促进形成工作模式的相关组件,这些功率域交叉最终加强了源-汇通信模型。

例3 - UPF功率域PST中的功率状态

set_scopecpu_topcreate_power_domainPD_topcreate_power_domainPD_sub1 -元素{/ udecode_topp}…set_domain_supply_netPD_ top \ -primary_power_netVDD \ -primary_ground_netVSS……set_domain_supply_netPD_ sub1 \ -primary_power_netVdd1 \ -primary_ground_netVSSCreate_pst soc_pt -supplies{VDD VSS vdd1}add_pst_state ON -pstsoc_pt- - - - - -状态{on on on}add_pst_state OFF -pstsoc_pt- - - - - -状态{on on off}

例4 - Power Domain的add_power_states中的UPF Power States

add_power_statePD_top.primary-状态{TOP_ON -logic_expr{pwr_ctrl ==1} {-supply_expr{(权力= =FULL_ON, 1.0) && (地面= =FULL_ON)} -simstate正常的add_power_statePD_sub1.primary-状态{SUB1_ON - logic_expr {pwr_ctrl ==1} {-supply_expr{(权力= =FULL_ON, 1.0) && (地面= =FULL_ON 0)} -simstate正常的add_power_statePD_sub1.primary-状态{SUB1_OFF - logic_expr {pwr_ctrl ==0} {-supply_expr{(权力= =FULL_ON 0) && (地面= =FULL_ON 0)} -simstate腐败的

示例3而且4它们分别基于UPF 1.0和UPF 2.1 LRM规范,相互替代,代表不同版本的UPF中相同的信息。这些例子解释了PD_sub1和PD_top在层次树中包含父实例和子实例;因此存在HDL的层次连接。同样,电源状态和工作模式显示PD_sub1同时具有ON和OFF模式,而PD_top只有ON模式。因此,在工具内的PD_sub1和PD_top之间生成跨功率域信息。此外,还记得UPF策略(如ISO、LS、RFF、PSW等)在UPF中明确定义,并与特定的源-接收器通信模型相关,如所示示例5

示例5- ISO策略的UPF片段和相应的权力域

set_isolationSub1_iso -PD_sub1 \ -isolation_power_netVdd1 \ -isolation_ground_VSS \ -元素{mid_1 / mt_1 camera_instance} -clamp_value0 \ -applies_to输出set_isolation_controlSub1_iso -PD_sub1 \ -isolation_signal{/tb/is_camera_sleep_or_off_tb} \ -isolation_sense\ -位置的父母

在本例中,ISO策略应用于包含源的PD_sub1功率域的边界。显然,从域边界传播到任何目的地的所有信号都隐式地成为接收器;然而,源汇模型的形成也与中定义的功率状态相协调例子3.而且4

最后两项列表4在PA-Static验证中,单元级和引脚级属性是非常重要的信息。因为,单元格级属性实际上对单元格进行了分类,不管它是ISO、LS还是RFF等等。因此,它站在一个特殊的电源管理MV电池和任何常规标准电池之间的区别。

与PA-SIM不同,PA-Static只需要PG-pin信息,如下所示。

列表5 -自由图书馆的PG Pin-Level属性

Pg_pin, pg_type, related_power, related_ground, bias_pin, related_bias, std_cell_main_rail。

要注意的是,另一个属性,“power_down_function”是PA-SIM独有的,PA-Static验证不需要。

因此,一旦在工具中提取和分析了所有这些不同类别的信息,就可以开始PA-Static验证或检查了。很明显,不同的设计抽象层次的静态验证或检查标准是不同的;因此,该工具可以早在RTL中仅使用中显示的七个分析信息中的前五个进行验证列表4,(即权力域、权力域边界、权力域交叉和权力状态)。最后两个属性,即cell和pin级属性,对于GL-netlist和PG-netlist级别的设计是必需的。

然而,在更高层次的设计抽象(如RTL)上进行的静态检查必须在较低层次上完全重复;GL-netlist和PG-netlist级别的检查,以及他们自己的专门检查;确保并在整个验证过程中获得一致的PA-Static验证结果。然而,在RTL上进行更适合GL或PG-netlist的检查肯定不会提供目标结果。这是因为RTL上的PA-Static检查仅限于功率意图语法和UPF一致性检查以及ISO、LS、ELS和RFF策略定义的功率架构检查,如中所述列表2

一般情况下,PA- static工具会根据内置的MV或PA规则对收集、提取和分析的信息执行验证。该工具用于将内置MV或PA规则与UPF规范、物理设计、库属性和分析信息匹配的方法基于以下方面:

表6 - pa -静态规则vs UPF规范分析方法

  • 趟车战略: PA规则意味着检查UPF策略定义是否正确、不正确、缺失或冗余。
  • 电源管理专用MV单元: PA规则意味着检查特殊MV单元是否正确、不正确、缺失或冗余。

或者,还可以以以下方式执行上述两者的交叉比较检查。

  • 趟车策略与MV单元交叉比较: UPF策略是否存在但单元格缺失,或反之。

这里是正确的、不正确的、缺失的和多余的单元格趟车战略MV细胞方面不仅用于MV单元格的语法和语义定义以及MV单元格类型检查,而且还负责检查策略应用或实际插入单元格的位置——包括域边界接口、端口、网络和分层实例路径。

但是,该工具有时可能不会对某些情况执行检查,特别是在任何源-接收器功率域通信模型之间的功率状态或PST状态缺失的情况下。因此,这种情况通常被称为没有得到分析

此外,PA-Static检查器还需要对这些UPF策略的控制和确认信号进行检查,如ISO、ELS、RFF、PSW等,特别是要确保控制信号不是来自相对OFF的电源域,而不是来自策略应用的位置或单元实际所在的位置。此外,还需要对控制信号进行以下方面的确认:

表7 - UPF策略控制信号的pa -静态检查要求

  • 不得越过任何相对OFF的电源域,
  • 必须不是源自或驱动从任何相对关闭的电源领域,
  • 不能传播未知值,
  • 拥有正确的极性,并且
  • 可及。

同时,还需要对策略进行检查,以确保:

  • 策略没有应用,MV单元没有物理插入到另一个MV单元的控制信号路径上,或者
  • 对任何控制信号路径的设计,如扫描控制。

进一步,需要保证MV cell没有被插入:

  • 在源-接收器通信路径上的任何组合逻辑上或之前,设计时钟,设计复位,上拉和下拉网络,以及在RTL上具有常数值的网络或端口上,这些网络或端口在稍后的综合中可能成为上拉或下拉逻辑。

这里还值得一提的是,PA-Static在RTL检查MV单元的物理存在、它们的类型(AND, OR, NOR, latch)或它们的位置将生成错误的错误结果。

这是因为只有在合成之后或者手动实例化为Mixed-RTL时,这样的单元格才可用。尽管PA-Static检查器根据UPF定义和工具内部分析功能提供了适当的选项,用于在RTL上虚拟推断单元,但忽略或关闭此类设计检查或推断选项并专注于RTL的分类检查是值得的,如中所列列表2

在本文中,第1部分在四部分系列中,我们研究了PA静态验证的基础和验证特性。在第2部分,我们将讨论静态验证库的特性,并描述最佳的静态验证实践。



2的评论

Navathej 说:

你能解释一下upf中add_power_state和add_port_state的区别吗?举个例子。
提前谢谢你

反垄断法对棒球有什么作用? 说:

伟大的文章。

留下回复


(注:此名称将公开显示)

Baidu