18.luck新利
的意见

很多口味的UPF值:这是适合你的设计?

当它可能需要呆在一个旧版本的UPF标准,加上如何避免挑战时从一个版本迁移到另一个数据库。

受欢迎程度

节能电子系统要求复杂的电源管理架构,目前困难的低功耗验证的挑战。Accellera介绍了统一格式(UPF)标准在2007年帮助工程师解决这些复杂的问题。

跟上日益增长的复杂性低功耗设计,UPF值标准本身继续进化通过五个版本的发布,最近的是在2018年,UPF值3.1。当然每个新版本增加了更多的功能,以及修正以前的版本,和UPF值3.1添加了一些新特性和改进现有功能的清晰。

然而仍有有效的原因选择或使用较早版本的标准。例如,当你遗留的IP重用设计使用一个年长的UPF的版本,所以你必须坚持。或一个IP组件是使用不同的UPF值比其他相同IP的设计标准。另一方面,如果你是建立在现有的设计,可能会有一些功能需要你搬到一个新的UPF值标准。,一些验证工具默认支持不同的标准。另外一个问题是,不同的UPF标准不一定是向后兼容的,如果你从一个到另一个标准或从不同的验证工具有不同的违约,设计可能无法工作。

由于这些和其他因素,低功耗设计师需要决定哪些是正确的UPF值标准的设计。当从早期到后来的一个标准,重要的是要理解的兼容性,差异,和挑战与从一个版本迁移到另一个对验证和影响。SoC设计师一个显而易见的问题是,这趟版本应该为整个设计如果他们使用IP设计与不同的UPF值验证版本。

为了帮助回答这些重要的问题,我们将强调的最后四个版本UPF值之间的语义差异(从UPF值2.0开始)。我们还将描述迁移的挑战时从一趟车到另一个版本,提供指导,以避免这些挑战。

语义:当“是”并不意味着“是”

与每一个新版本的UPF标准,介绍了新命令和大量的语义或概念澄清。大部分时间这些澄清不一致而不是向后兼容的。因此,正如所有的语义说明要解决的问题或差距在以前的标准,作为一个惯例遵循最新的语义是很重要的。

一个常见的挑战是当现有的设计是建立在先前的语义定义标准和设计被迁移到一个新标准导致失败。另一个常见的场景是,当一个IP使用旧语义集成到构建一个SoC使用UPF 3.1,整个系统可能无法工作。尽管upf_version可用于控制后续的语法UPF的命令,一个共同的单一语义应用到整个设计。这是因为低功耗的验证工具遵循一个共同的语义验证整个设计。

一个更严重的问题出现在一个特定概念的语义得到改变,这不是与设计者理解和意图。变得至关重要的知道所有的语义差异和变化的原因。迁移到最新标准可能需要编辑UPF值文件来解决语义差异。以下的一些概念已经改变了在多个UPF值标准版本和迁移提示。

电源状态

UPF值定义了两个不同风格的捕捉能力状态信息:电源状态表(PST)电源状态。电源状态发挥重要作用在描述意图的力量。如果没有正确定义电源状态,将会有重大的影响,因为它们是用于验证和电源管理的实现。功率状态定义定义仿真方面的各种状态系统进入。验证工具还用于检查电源管理结构;而实现工具使用它们来插入电源管理逻辑。

UPF 1.0只支持太平洋标准时间,使权力的规范国家的供应网/港口和他们可能的组合值。这是一个可能的状态组合的表格表示给定供应。表格表示让用户更容易理解电源状态依赖关系和可能性。然而,这个表格格式也有一些局限性。

UPF值2.0
克服的缺点PST表示,UPF值2.0引入了一个全新的风格表达权力的状态信息通过add_power_state命令。这允许用户定义电力供应集和电力领域。的add_power_state命令需要用户表达权力州布尔表达式通过-logic_expr-supply_expr开关。虽然这是非常强大的捕获更多的复杂关系包括分层依赖性,它有可能引起的问题如果没有正确使用。缺乏足够的限制和指导方针的LRM意味着工具不能使用不当。层次组合能力内建了命令本身和承诺减少状态爆炸。然而,缺乏方法论和语义意味着用户在采用一直缓慢add_power_state代表权力。

UPF值2.0不定义适当的语义状态是如何处理当供应集与其他供应集相关联或处理。UPF值2.0不供应限制权力的转移状态设置关联。所以电源状态定义在一个电力领域可能错误地影响一些其他权力领域,与相同的供应集相关联。

UPF值2.1
UPF值2.1澄清很多语义,使更多的采用add_power_state命令。标准标记pst遗产——这意味着该命令,尽管目前的标准,现在只为了向后兼容,不建议,以供将来使用。LRM还澄清说,供应组处理本地供应集。电源状态没有得到转移。州添加到电源供应设置句柄是一个属性集处理,而不是其相关供应集,它还增加了供应,,的推进add_power_state命令和另一个simstate,“CORRUPT_STATE_ON_ACTIVITY”。一定数量的限制也被强加在add_power_state命令来避免状态爆炸,定义电源状态表达式的无限可能性,为了促进更好的权力意图建模方法。

UPF值2.1未能提供清晰的定义之间的关系权力的各种IP以及整个系统的行为。语义也缺少任何信息系统级建模和多大的权力是一个子系统或整个系统时将消耗在各自的国家。进一步仿真行为基于功率状态定义依赖于多个功率状态的松散的概念思想活跃在同一时间和最腐败的simstate simstate驾驶仿真的活跃。

趟车3.0/3.1
UPF值3.0引入了新的命令create_power_state_group创建一组相关的权力。电源状态组电源状态定义为用于收集相关add_power_state。法定权力的权力状态组定义合法的权力组合状态的其他对象范围或后代子树。这可以用来定义整个系统的电源状态依赖于电力状态定义的IP。它还允许验证工具推导出权力关系域和静态分析。

UPF值3.0进行定义和限制权力,提供清晰的语义。这使得写作能力状态表达式以更明确的方式,解决了这个问题相关的权力状态过于灵活。除了许多其他概念引入新标准,UPF值3.0引入了三个新的对象的状态可以应用;专门组、模型和实例。它还介绍了选择[-power_expr {power_expression}]促进电力消耗的计算在那个特定的IP时功率状态。

然而,可能有向后兼容性问题在迁移到最新的语义对权力的状态。用户可能需要修改的权力状态定义如果不遵守这些限制。的一些复杂性可以避免权力如果国家已经明确,没有任何重叠的基本状态之间。

港口和基于路径的语义

每当源逻辑,逻辑在一个国家,需要隔离。UPF值提供了一个set_isolation命令来指定如何以及隔离细胞被插入的地方。如果隔离不能正常插入在正确的路径,然后它会导致功能失效。如果隔离放置在一个位置,它不是必需的,这是一个多余的细胞和废物区域和力量。

UPF值3.0
UPF值3.0添加了选项水槽set_isolation命令。这些选项允许用户避免指定完整的端口列表。隔离是应用于所有符合标准的匹配端口。UPF值3.0位置选项指定隔离细胞被放置的地方。

考虑到场景的示意图所示。

趟车命令,set_isolation iso3域红色位置的父母指定的路径,需要应用隔离和域的细胞需要插入。然而语义不清楚哪个港口细胞将插入。因此一些验证工具可以放置iso3细胞在highconn着干活的港口;这导致从着干活in4也间接伤害的路径被孤立,这不是必需的。

UPF值3.1
首先,UPF值3.1澄清隔离策略应用在每个路径的基础上在设计。它介绍了的概念净分裂,净可以分裂附带损害降到最低。如果位置扇出,指定目标插入端口位置域边界上的港口是离接收逻辑。如果位置扇出没有指定,那么目标插入端口的端口位置域(自我域)或对应于(父或子域)的港口战略适用。在多个路径不同的接收物资的情况下,应该小心当指定位置的领域,作为一个孤立细胞推断一个路径可能会影响另一个路径。这将是一个错误,如果隔离权力意图的实现离不开复制港口。

这是更多的语义说明,大多数时候,这应该不会引起任何功能迁移到UPF值3.1时失败。在某些情况下,用户可能需要更新或写额外的set_isolation命令来插入细胞的路径被孤立。

UPF值属性

UPF值支持对象的某些属性的规范设计。这些属性提供信息支持或影响相关UPF值命令的意思。这样的属性与HDL也可以定义属性规范在设计代码或自由属性规范自由模型。因为有多个来源相同的属性信息可以从何而来,需要一套明确的限制和优先事项,以避免冲突。

UPF值2.1
UPF值2.1标准没有提供一个机制来设置优先规则,以避免冲突。

UPF值3.0
UPF值3.0验证属性的优先通过定义HDL和自由属性是如何解释的。HDL代码中指定的属性或自由模型被视为如果他们隐式指定使用UPF值命令set_port_attributes模型端口(端口属性)或UPF值命令set_design_attributes模型(设计属性)。

UPF值3.0标准还介绍了特征属性的概念,这代表一个模块或单元的特点,普遍适用于所有实例的模块或单元。设计师可以依靠验证工具误差的情况下不满足这个约束信息。一些预定义的属性总是特征属性。此外,任何属性显式或隐式地指定set_port_attributes模型set_design_attributes模型是一个特征属性。可以覆盖Non-characteristic属性,指定的属性优先级规则规范。特征属性不能被覆盖。

UPF值3.1
新UPF值3.1标准删除任何模棱两可的定义以及属性的限制。特征属性被替换为更清晰定义为模型具体哪些属性,具体的实例,可以应用在模型和实例的水平。约束信息也明确定义的错误。对于只能基于模型指定的属性,将会有一个错误,如果他们是基于实例的指定,反之亦然。

属性规范在某些情况下可能会导致一个错误当设计迁移到新标准。这表明潜在问题的设计、信息的冲突来自自由和UPF值。这将需要编辑UPF值文件,并确保正确的信息在power-intent中指定。

结论

没有单一的答案”,我的设计是正确的标准吗?“然而有一个清晰的理解语法和语义变化UPF释放,设计师将有一个更好的判断各自的UPF值版本的设计。

这些指南将派上用场,当你不确定这趟车的味道你想在任何给定的设计:

  • 使用UPF值命令upf_version进一步指定命令的语法使用UPF值文件。指定这个命令每一个UPF值是有意义的文件,如果文件有不同的语法从父母UPF值文件的加载。
  • 检查默认UPF值标准支持的验证工具对语义。许多低功耗验证工具默认标准,并提供工具选项或属性来控制一个特定的功能。
  • 除非绝对必要始终遵循最新的语义。
  • 如果开始一个新的设计,遵循相同的UPF值为所有设计和UPF文件版本。通常不能控制语义为特定设计的一部分,然而,它适用于整个设计。


留下一个回复


(注意:这个名字会显示公开)

Baidu