Mentor-dft 学习笔记 day43-Power-Aware DRC and ATPG

news2025/1/16 14:57:16
Power-Aware DRC and ATPG
本章介绍用于ATPG工具的 power-aware DRC和ATPG流程。
Power-Aware Overview
电子行业在设计连续体的主要方面采用了低功耗特性。EDA供应商和主要半导体公司定义了常用的电力数据标准格式来描述电力需求:UPF和CPF。
Tessent Shell supports the following versions of the UPF and CPF formats:
IEEE 1801 standard / UPF 2.0
Common Power Format (CPF) 1.0 and 1.1
可以将此电源数据直接加载到工具中以收集电源信息。加载后,工具执行必要的DRC,以确保DFT逻辑相对于设计的功率域正确插入,如果设计通过了规则检查,则使用给定的功率模式配置执行ATPG

该工具的低功耗功能为您提供了执行以下操作的方法:

•提供DRC以跟踪活动电源模式,并确保扫描操作在当前电源配置下工作。

•提供对传统故障模型进行测试的能力,同时了解电源模式配置。

Assumptions and Limitations

电源感知功能有一些假设和限制。

•电路层次结构保存在CPF或UPF文件中,与网表相同。注意,对于模块化EDT设计,需要保留包含EDT逻辑的模块层次结构,否则工具可能无法将EDT块与电源域关联。因此,与EDT逻辑相关的一些功率DRC规则可能无法执行。

•功率感知DRC规则和报告基于负载功率数据(UPF或CPF)。DRC规则不包括跨越不同电源模式的测试。

Multiple Power Mode Test Flow
对于具有多个测试模式的设计,每个电源模式的扫描链配置可能不同。 应该使用以下步骤分别为每个电源模式执行DRC和ATPG:

1.使用test_setup程序配置要测试的电源模式。

2.加载CPF文件。该工具自动识别系统当前配置的电源模式,并将其报告给用户。

Pattern Generation
ATPG 仅为当前功率模式生成pattern。如果有不同的电源pattern启用相同的电源域(仅在不同的电压配置中),则可以通过加载pattern文件并执行故障分级来重用pattern集。pattern集的重用自行决定。 尽管pattern重复使用,仍应为要测试的每个电源模式编写一个test_setup过程,并对每个电源模式执行DRC检查,以确保扫描链在电源模式下正常运行。此外,应存储一个新的pattern集,以反映相应功率模式的更新的test_setup。最后,在ATPG之后编写pattern时,工具还应将当前电源模式信息(作为注释)保存到pattern文件中,以供用户参考。
Power-Aware ATPG for Traditional Fault Models
在传统故障模型测试阶段,在捕获周期开始时,通过测试程序将电路配置为静态功率模式,并在整个捕获周期内保持相同的功率模式。ATPG引擎明确地阻止功率控制逻辑改变有功功率模式。

在ATPG之前执行低功率DRC以检查活动功率模式是否可以被干扰,并且ATPG使用分析结果来确定是否需要任何额外的ATPG努力来保持静态功率模式。这类似于用于总线争用检查的E10规则,ATPG使用该规则来启用额外的调整以防止总线争用。如果电路包含为所有电源域供电的电源模式(称为all_on状态),则可以将此状态用于传统故障模型。ALL_ON状态允许在一次测试集运行中测试电路的逻辑故障。此外,此状态还允许工具在此运行中对整个电路执行DRC。

Power Partitioning
如果电路需要在给定时间内使用部分电源域进行分区,则必须执行多次ATPG运行;具体来说,每次运行时都会使用其过程文件和扫描配置。必须确保每个电源域至少包含一次运行。 此外,芯片级测试覆盖率可以从每个单独的运行中手动计算。 在多功率分区流的情况下,总是在功率域上,故障可能会被多次定位。要减少在常开域中为相同故障创建pattern,可以使用以下命令:
add_faults –power_domains always_on -delete
如果其他运行已针对always_on域中的故障,则这将显式删除这些故障。 避免创建重复pattern的另一种方法是加载以前生成的故障列表(使用read_faults–merge),这样以前运行时检测到的故障就不会再次成为目标。
CPF and UPF Parser
下表列出了与功率感知DRC和ATPG过程相关的功率数据命令。 其他CPF和UPF命令由该工具解析,但被丢弃。

 

 

Power-Aware ATPG Procedure
使用功率感知ATPGflow时,应将逻辑故障测试与低功率功能测试分开。在测试逻辑故障时,应用了传统的故障模型,不需要电源开关逻辑。 UPF或CPF格式的功率数据应应用于工具,以便检查低功率规则(参见“功率感知规则(V规则)”),并根据有功功率模式模拟电路。

使用read_upf或read_cpf命令将电源数据加载到工具中。默认情况下,该工具使用report_gates命令报告功率数据,该命令显示gate的通电(PON)和断电(POFF)状态。

report_gates /lp_case_si_rst_sms/ati_rst_sync/sync_r/U3/Udff
// /lp_case_si_rst_sms/ati_rst_sync/sync_r sync3msfqxss1ul
// SDI I(PON) /vl_sms_lp_case_si_sms_proc_sms_1_stp/
U_lp_case_si_sms_proc_bist/uu5/Z
// D I(PON) /lp_case_si_rst_sms/ati_rst_sync/sync_buf/Z
// SEN I(PON) /se
// CLK I(PON) /lp_case_si_rst_sms/ati_rst_sync/uu1/Z
// Q O(PON) /lp_case_si_rst_sms/ati_rst_sync/uu2/A /
lp_case_si_rst_sms/and_r/B
// in power domain PD_P2
In DFTVisualizer, the PON will be displayed as shown in Figure 13-1 .
Procedure
1.通常,您可以直接从命令行或在dofile中编写脚本,使用功率感知ATPG流执行以下步骤:
2.调用Tessent Shell,将上下文设置为“pattern扫描”,并在低功耗设计中读取。
SETUP> read_verilog low-power_design.v
3. Add scan chains and other configuration information as appropriate.
4. Load the power data using the read_cpf or read_upf command. For example:
SETUP> read_upf test.upf
5. Set the mode to analysis. For example:
SETUP> set_system_mode analysis
At this point, the tool performs the DRC checks. See “ Power-Aware Rules (V Rules) ” in
the Tessent Shell Reference Manual .
6. Add faults using the applicable power-aware switch to the add_faults command. For
example:
SETUP> add_faults -on_domains
7. Optionally write the faults to a fault list for multiple power-aware test methodologies—
see “ Multiple Power Mode Test Flow .” For example:
SETUP> write_faults on_domain_fault_list.txt
8. Create the patterns using the create_patterns command
Power-Aware Flow Examples
the power-aware flow的举例子
Example 1
Table 13-2   four power domains and four power modes的例子

该设计包含四个扫描链,排列如下:

•chain1&2-位于CPU电源域中。

•chain3-位于MEM1电源域。

•chain4-位于CTL电源域。

为了测试设计,需要多个测试设置过程,除了关闭所有电源域之外,每个电源模式都需要一个测试设置程序。为了减少测试过程文件的维护开销,test_setup过程被写入以下单独的文件中:

test_setup_active
test_setup_standby
test_setup_idle
包含其余过程的主测试过程文件使用include语句包含要测试的电源模式的test_setup。例如,使用以下include语句:
# include test_setup_active”
will test the “active” power mode.

 建议的流程是先在所有电源域处于活动状态的情况下测试电源模式(如果存在这种电源模式)。这允许工具查看所有扫描链并检查跨越所有电源域的“电源感知规则(V规则)”规则。注意,当测试不同的电源模式时,需要相应地定义扫描链以防止DRC违规。

Example 2
In this example, the design contains the following:
Three power domains {D1, D2, D3}
Two power mode
o S1: (D1=ON, D2=ON, D3=OFF)
o S2: (D1=OFF, D2=ON, D3=ON)

此外,假设该设计具有PS1特性(特别是在换档周期和捕获周期期间),并且该设计可以保持在相同的功率模式。要测试设计,必须执行以下多次工具运行:

run 1 — ATPG for power mode S1

a、 在test_setup结束时,将设计配置为电源模式S1。

b、 仅在功率域D1和D2中添加扫描链。

c、 使用Add_faults-ON_domains命令仅在通电域(D1和D2)中添加故障。

d、 创建pattern和编写pattern。

e、 使用Write_faults命令将错误写入名为flist_S1.txt的文件。

f、 将隔离故障写入名为flist_S1_iso的文件。使用write_faults.txt–保存以供以后使用。

g、 将电平移位器错误写入名为flist_S1_ls的文件,使用write_faults–level_shifter.txt保存以供以后使用。

run 2 — ATPG for power mode S2
a、 在test_setup结束时,将设计配置为电源模式S2。

b、 仅在功率域D2和D3中添加扫描链。

c、 使用Add_faults-ON_domains命令仅在通电域(D2和D3)中添加故障。

d、 使用以下命令加载先前保存的S1故障列表:

ANALYSIS> read_faults flist_S1.txt –merge –Power_check on

这将更新D2中故障的故障状态,但丢弃D1中的故障。

e、 创建pattern和编写pattern。

f、 使用Write_faults命令将错误写入名为flist_S2.txt的文件。

g、 将隔离故障写入名为flist_S2_iso的文件。使用write_faults-isolation.txt保存以供以后使用。

h、 将电平移位器错误写入名为flist_S2_ls的文件。使用write_faults-level_shifter.txt保存以供以后使用。

运行2后,您可以通过将多个故障列表加载到工具中来计算整个故障覆盖率。可以使用read_faults–POwer_check OFF命令执行此操作,并按以下步骤进行切换:

run 3 — Overall test coverage report

a. Load the previously-saved fault list for D1:
ANALYSIS> read_faults flist_S1.txt –merge –Power_check off#加载d1
b. Load the previously-saved fault list for D2:
ANALYSIS> read_faults flist_S2.txt –merge –Power_check off#加载d2
c c、 发出report_statistics命令以报告整个测试覆盖率。

d、 将错误写入名为faults flist_all.txt的文件。使用write_faults命令。

最终工具运行报告隔离故障测试覆盖率ATPG和电平转换器故障测试覆盖,并将其保存在单独的故障列表中。

1. Report the isolation fault test coverage:#报告isolation fault的test覆盖率
ANALYSIS> report_statistics -isolation
2. Report the level-shifter fault test coverage:#报告 level-shifter的test coverage
ANALYSIS> report_statistics -level_shifter
3. Write all isolation faults to a file:#写文件
ANALYSIS> write_faults flist_all_iso.txt -isolation
4. Write all level-shifter faults to a file:#写文件
ANALYSIS> write_faults flist_all_ls.txt -level_shifter

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/93842.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Centos7迁移Anolis OS7系统

2020年12月08日CentOS官方宣布CentOS项目将停止,并推出CentOS Stream项目,详见公告 CentOS未来将会从 RedHat Enterprise Linux(RHEL) 复刻版本的 CentOS Linux 转向 CentOS Stream。 对处于生命周期中的 CentOS 版本后续影响: • CentOS Lin…

Codeforces Round #838 (Div. 2) A-C题解

cf比赛链接 目录 A. Divide and Conquer 题意: 思路: 代码: B. Make Array Good 题意: 思路: 代码: C. Binary Strings are Fun(什么疑惑题面) 题意:首先的两个…

PG::Sumo

nmap -Pn -p- -T4 --min-rate1000 192.168.170.87 nmap -Pn -p 22,80 -sCV 192.168.170.87 查看80端口的页面,没有什么有用的信息 尝试路径爆破,发现了/cgi-bin目录,就想到了HTB中的Shocker靶机。 继续爆破 wfuzz -c -z file,/usr/share/…

03. SQL注入漏洞基础

03. SQL注入漏洞基础 SQL注入漏洞基础(上) /01 SQL注入的原理 SQL注入原理 SQL注入产生的原因 当Web应用向后台数据库传递SQL语句进行数据库操作时。如果对用户输入的参数没有经过严格的过滤处理,那么攻击者就可以构造特殊的SQL语句&…

泓德基金:以超融合构建生产及灾备环境,承载 O32 等关键业务系统

案例亮点 承载 O32、TA、估值等基金行业关键业务系统生产与灾备环境。 POC 期间对超融合应用承载能力以及数据库支撑能力分别进行验证,性能与稳定性均满足需求。 超融合首先作为灾备资源池部署,稳定运行一年后,转为生产资源池,并…

高企认定没专利?专利评分低?如何评分?

众所周知,高企申报是一场“持久战”,申报知识产权、归集研发费用、科技成果转化等工作都需要一定的准备时间。其中,知识产权的获取所需要的时间是最长的(两年左右),对高新认定评分的影响也是最大的。因此,知识产权的研…

来聊一聊 ElasticSearch 最新版的 Java 客户端

可能不少小伙伴都注意到了,从 ElasticSearch7.17 这个版本开始,原先的 Java 高级客户端 Java High Level REST Client 废弃了,不支持了。老实说,ElasticSearch 算是我用过的所有 Java 工具中,更新最为激进的一个了&…

Unity中的Mask组件增加DrawCall的原因

Unity中的Mask组件增加DrawCall的原因 简介 常说mask组件不要常用,因为会增加drawcall,增加性能消耗;当然作为一个需要背八股文的同学而言,仅仅知道会增加性能消耗是不够的,所以这里简单看下其原理。 首先看下在Uni…

监控系列(三)自定义DM采集项(exporter)+主机监控+grafana展示

一、概括 本篇不涉及达梦数据库搭建,操作环境需提前准备prometheus以及grafana的搭建,请跳转到前文查看 监控系列(一)DM8PrometheusGrafana搭建 监控系列(二)Dem对接Prometheusgrafana显示 自定义的采集…

基于数字孪生技术的智慧变电站Web3D可视化系统

今天为大家分享一个采用 数维图 的 Sovit3D 构建轻量化 3D 可视化场景的案例——数字孪生智慧变电站三维可视化系统。多维度呈现变电站场景,实现变电站运行态势的实时监测,运维设备、控制系统和信息系统的互联互通。加强变电站设备的全状态感知力与控制力…

03-MySQL查询数据

目录 DQL语言 单表查询 AS子句 DISTINCT关键字的使用 WHERE条件语句 逻辑操作符 比较操作符 BETWEEN范围查询 LIKE模糊查询 使用IN进行范围查询 NULL空值条件查询 连接查询(多表查询) INNER JOIN内连接 等值和非等值的连接查询 外连接 JOIN对比…

49.Python的while循环

49.Python的while循环 文章目录49.Python的while循环1. 什么是循环2. 什么是while循环3.课题导入4.while循环语法5.while循环执行流程6. if和while的区别7.课堂练习1. 什么是循环 【循环的百度释义】 特指运行一周而回到原处,再转。 反复地连续地做某事。 【循环…

新征程-猿如意试用一波!

猿如意传送门(必带) 猿如意下载地址:猿如意-程序员的如意兵器,工具代码,一搜就有 猿如意使用了几次了,今天来想分享一下我对于猿如意的使用感受吧!! 先说结论:值得每个程序员都在电脑里安装一…

MySQL的基础架构简述

文章目录一、一条SQL查询语句是如何执行的1、连接器2、查询缓存3、分析器4、优化器5、执行器一、一条SQL查询语句是如何执行的 开篇先上基本架构示意图🤗: 大体来说,MySQL可以分为 Server 层和存储引擎两部分。 Server 层包括连接…

大一作业HTML网页作业 HTML校园篮球网页作业(12个页面)

🎉精彩专栏推荐 💭文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业: 【📚毕设项目精品实战案例 (10…

前沿系列--简述Diffusion Model 扩散模型(无代码版本)

文章目录前言why扩散简述how如何扩散逆向过程小结流程训练过程预测过程总结前言 OK,今天的话,我们来搞一下这个扩散模型,来对这个玩意进行一个简单的了解,因为这个也是目前还算比较前沿的东西,也挺有用的,…

CSAPP-Lab2 BombLab解析

文章目录ReferencePhase1Phase2Phase3Phase4Phase5Phase6Part1Part2Part3Part4Part5Part6SecretBombSummaryReference GDB Command Reference - disassemble command:怎么使用GDB进行反汇编调试GDB X CommandGDB and Debugging:GDB上手教程和如何进行de…

大一作业HTML网页作业 HTML CSS制作二十四节气网页

🎉精彩专栏推荐 💭文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业: 【📚毕设项目精品实战案例 (10…

背包问题:蛇优化算法(Snake Optimizer,SO)求解背包问题(Knapsack Problem,KP)提供Matlab代码

一、背包问题 1.1背包问题描述 背包问题(Knapsack Problem,KP)是一种重要的组合优化问题,在生活的许多领域都有着十分广泛的应用。背包问题可以描述为:给定一个背包和n种物品,其中,背包的容量为VVV ,第i …

Linux tar报错 无法 stat: 没有那个文件或目录 tar: 由于前次错误,将以上次的错误状态退出

解决方法 解决方式:-czf 的f必须在最后,因为f标识指定压缩后的文件名,f后面紧跟着的字符串就是你所指定的压缩后的文件名,所以f必须在后面 我记忆的方法:czf 吃早饭 举例:压缩多个文件、目录,压缩后得到的文…