更好的方法来表示低功耗对象中创建UPF值的快速和可靠的低功率覆盖基础设施。
控制权力有其代价。添加元素及其相互作用使验证的低功耗设计更加困难和工程师的工作绝大多数是复杂和繁琐。
早期版本的统一格式(UPF)提供了一些救援力量,但缺乏规定为低功率覆盖一个标准化的方法。特别的方法是容易出错,非常耗费时间。
迫切需要的是一个可靠和简单的验证方法,很容易构建,易于理解,易于修改和扩展到更大的设计相匹配。幸运的是,UPF 3.0引入了低功耗信息模型,可以解决复杂的低功耗验证挑战是有用的。
低功率覆盖方法基于最近推出了UPF 3.0低功耗信息模型HDL包帮助验证工程师实现低功耗覆盖率关闭是很有效的。
寻找难以捉摸的UPF值对象
捕捉UPF值对象的覆盖率信息和权力的国家是具有挑战性的原因有几个。权力都写在一个抽象的方式UPF值,没有预定义的覆盖率度量捕捉电力状态及其转换,虽然统一报道互操作性标准定义了各种标准指标相关报道项目,它不提供任何度量获取权力的意图。
工具生成的覆盖率指标被广泛用于低功耗验证。然而他们可能不是很有用,也详尽的设计,主要是因为一个设计可以有一个非常具体的要求不是由工具生成的覆盖,低功耗技术仍在不断发展之中;因此,一套新的协议时不时出现,这可能需要一套不同的覆盖特性没有工具厂商提供的。
工程师可能会选择使用SystemVerilog覆盖特性编写自定义覆盖项目。这些物品可以组合在一个检查模块,和这个检查模块可以被实例化到一个设计利用UPF命令,“bind_checker”。然而,这样的检查程序模块的实例化的方法不是微不足道的。低功耗断言和覆盖项目需要访问对象。然而,早期阶段的验证,这些权力对象UPF值文件中只存在和不存在的设计。因此不能简单的将这些UPF值对象传递给一个检查程序实例。没有明确的方法来描述coverpoints和垃圾箱获取权力的范围使用处理获得的状态及其转换。财产清查需要访问的一些设计和功率信号跨越多个领域。这样一个任务是非常容易出错和浪费时间。最后,正如这些检查的范围和输入实例定义在UPF值,UPF值的任何改变或设计可能会打破这些检查,要求他们重写。
使用covergroups建模风格和UPF值信息模型的查询命令巧妙地解决这些挑战。
UPF值3.0信息模型
UPF值3.0引入了低功耗信息模型来表示低功耗UPF值创建的对象。这些包括权力领域,权力,和供应集。UPF值3.0还提供了详细的列出了这些对象的各种属性。这些属性可以是简单的信息(例如,对象的名称和文件/行信息)或相对复杂的信息(例如,权力的权力状态域)。一些对象也具有与其相关联的动态属性(例如,current_state权力域或供应网络的当前的电压值)。UPF值3.0信息模型还提供了一个API接口访问对象及其属性。
两个关键信息模型的概念——本机HDL表征和高密度脂蛋白包函数可以用来开发一个低功率覆盖在建设和指导方法,可以随机方法针对特定的低功耗场景。
UPF值3.0定义了本地HDL表示对象的动态属性。本机结构/记录类型在高密度脂蛋白HDL表示包含两个字段:一个值对应于对象的动态特性,以及处理的UPF值对象允许访问或引用其他对象的属性。
图2:UPF值3.0信息模型是r象征着由一个包含两个字段结构/记录高密度脂蛋白:一个值字段和一个处理/参考UPF值对象。
UPF值3.0提供了大量的高密度脂蛋白包函数低功率用于访问的对象及其属性。这些是大致分为五类。
利用函数和构造
这种方法使用了UPF值3.0包函数来实现快速和有效的低功耗覆盖率。UPF值3.0 HDL功能可以结合SystemVerilog覆盖构造设计一个高效和random-directed低功率覆盖方法。这样一个低功率覆盖方法的目的是使您能够编写快速和可靠的低功率覆盖基础设施。
方法涉及到在高密度脂蛋白低功耗的处理对象,使用信息模型和查询该对象的属性。这些属性被传递到覆盖模块端口映射。覆盖模块包含covergroups和coverbins代表的低功耗策略域的覆盖率数据,或动态信息,如当前功率状态的领域,从testbench可以查询。提出了方法论的三个步骤是:
upfHandleT pd = upf_get_handle_by_name(/结核病/ dut / pd) upfHandleT pd_state_list = upf_query_object_properties (pd, UPF_PD_STATES) upfHandleT pd_state = upf_iter_get_next (pd_state_list);
upfPdSsObjT pd_hdl;upf_create_object_mirror(“/结核病/ dut / pd”、“pd”);upfPowerStateObjT pwr_state = pd.current_state;upfHandleT pd_name = upf_query_object_properties (pd。处理,UPF_NAME);upfHandleT state_name = upf_query_object_properties (pwr_state.handle UPF_NAME);(电子邮件保护)(pd)显示美元(“权力域% s,是执政的州:% s, upf_get_value_str (pd_name) upf_get_value_str (state_name));
模块covIsoModule (int dynamicValue,字符串objName)注册cov_clk = 0;covergroup LOW_POWER_STATE_COVERAGE (posedge @cov_clk) ACTIVE_LEVEL: coverpoint等值{垃圾箱活跃= 1;}ACTIVE_LOW: coverpoint等值{垃圾箱活跃= 0;}endgroup…endmodule
描述验证方法有助于实现早期低功率覆盖关闭。也可以使用这种方法做指导场景测试。例如,您可以编写一个定制的断言或者财产,以检查是否两个域应该在互斥的状态利用UPF值3.0信息模型的直接读访问功能。因为依赖UPF值构造方法,它是一致的和可用的不同供应商的工具。即使没有复杂的UPF值结构和语义的详细知识,验证工程师可以写各种指示验证场景实现低功耗覆盖关闭。
低功率的增加复杂性验证,特别的方法不太可能成功,将导致不完整的验证。这种方法将帮助您实现验证关闭在更少的时间和少很多麻烦。
对学习更感兴趣吗?读白皮书随机定向低功率覆盖方法为更多的细节在低功耗验证挑战,UPF值3.0低功耗信息模型,这种方法的好处和优势在传统的低功耗验证方法。该报还股票相关的案例研究和实例解决低功耗验证问题。
你能请让我知道在哪里找到的LRM UPF值3.0。
我没能在网上找到
ieee1801 - 2018标准可用:https://standards.ieee.org/products-services/ieee-get-program.html
按照说明获取最新的免费副本IEEE1801 - 2018标准(例如UPF值3.1)。这个版本取代所有以前版本的标准。