DFT可测性设置与Tetramax测试笔记

embedded/2025/1/16 19:21:40/

1 DFT

1.1 DFT类型

1、扫描链(SCAN):
扫描路径法是一种针对时序电路芯片的DFT方案.其基本原理是时序电路可以模型化为一个组合电路网络和带触发器(Flip-Flop,简称FF)的时序电路网络的反馈。

Scan 包括两个步骤,scan replacement和scan stitching,目的是把一个不容易测试的时序电路变成容易测试的组合电路。

2、内建自测试(BIST):
内建自测试(BIST)设计技术通过在芯片的设计中加入一些额外的自测试电路,测试时只需要从外部施加必要的控制信号,通过运行内建的自测试硬件和软件,检查被测电路的缺陷或故障。和扫描设计不同的是,内建自测试的测试向量一般是内部生成的,而不是外部输入的。内建自测试可以简化测试步骤,而且无需昂贵的测试仪器和设备(如ATE设备),但它增加了芯片设计的复杂性。

3、JTAG:
JTAG(Joint Test Action Group,联合测试工作组)是一种国际标准测试协议(IEEE 1149.1兼容),主要用于芯片内部测试.

JTAG的基本原理是在器件内部定义一个TAP(Test Access Port,测试访问口)通过专用的JTAG测试工具对内部节点进行测试。JTAG测试允许多个器件通过JTAG接口串联在一起,形成一个JTAG链,能实现对各个器件分别测试.

4、ATPG:
ATPG(Automatic Test Pattern Generation)自动测试向量生成是在半导体电器测试中使用的测试图形向量由程序自动生成的过程。测试向量按顺序地加载到器件的输入脚上,输出的信号被收集并与预算好的测试向量相比较从而判断测试的结果。

1.2 扫描链脚本

#############################
# set library
#############################
set search_path [concat $search_path ./lib]
set target_library {your_lib.db}
set link_library {* your_lib.db}
set symbol_library {your_lib.sdb}
set physical_library {your_lib.pdb}#############################
# read design file
#############################
read_verilog ./src/*.vcurrent_design top
link
uniquify
check_design#############################
# set load and constraints
#############################
# load_constraints
# timing_constraints
check_timing#############################
# basic synthesis
#############################
compile
write -format verilog -hier -output ./output/top_netlist.v#############################
# dft configuration
#############################
set hdlin_enable_rtldrc_info true
set_scan_configuration -style multiplexed_flip_flop
source ./dft/top.tmv
compile -scan
write -format verilog -hier -output ./output/top_netlist_dft.v# remove_design top
# read_verilog ./output/top_netlist_dft.v
# current_design topsource ./dft/circuit.tp
dft_drc
insert_dft
write -format verilog -hier -output ./output/top_scan.vg
write_test_protocol -output ./output/top.spf

top.tmv内容:

#set test timing variables
set test_default_delay 0
set test_default_bidir_delay  0
set test_default_strobe  40
set test_default_period  100

top.tp内容:

set_dft_signal  -view existing_dft -type ScanClock -timing {45 55} -port clk
set_dft_signal -view existing_dft -type Reset -active_state 0 -port rst_n
create_test_protocol

1.3 DFT前后对比

1、原始设计文件top_netlist.v
在这里插入图片描述

2、加入DFT,使用compile -scan后的设计文件top_netlist_dft.v:可以看到普通的DFF已经变成了带MUX的DFF,不过扫描链的控制引脚依然是全部拉低。

在这里插入图片描述

3、insert_dft之后的设计文件top_scan.vg:扫描链的控制引脚接到外部,输出引脚也已经引出。

在这里插入图片描述

2 TetraMax

在这里插入图片描述

2.1 启动tmax

找到TetraMax安装路径,终端输入:
<software_path>/tmax2
tmax2比tmax性能更好。

2.2 ATPG脚本

set_messages -log ./dft/tmax/tmax2_log.txt -replace# Read library and design with dft
read_netlist -library ./lib/tsmc090.v
read_netlist ./output/top_scan.vg# Build the ATPG Model
run_build_model top# Set up and run DRC
set_drc ./output/top.spf
run_drc# Add faults and run ATPG
add_faults -all
write_faults ./dft/tmax/all_faults.txt -replace -all
run_atpg# Write the patterns to store challenge sequences and ideal response sequences
write_patterns ./dft/tmax/top_patterns.stil -form stil

参考文献

https://zhuanlan.zhihu.com/p/159273941
https://blog.csdn.net/ciscomonkey/article/details/109151105
https://blog.csdn.net/Cloudriver_/article/details/134210464
https://blog.csdn.net/qq_43858116/article/details/131630503


http://www.ppmy.cn/embedded/154463.html

相关文章

python创建pdf水印,希望根据文本长度调整水印字体大小,避免超出页面

为了根据文本长度动态调整水印字体大小&#xff0c;可以先测量文本长度&#xff0c;然后根据页面宽度和高度动态计算合适的字体大小。以下是修改后的代码&#xff1a; from reportlab.pdfgen import canvas from reportlab.lib.pagesizes import letter from reportlab.pdfbas…

【HTML+CSS+JS+VUE】web前端教程-36-JavaScript简介

JavaScript介绍 JavaScript是一种轻量级的脚本语言&#xff0c;所谓脚本语言&#xff0c;指的是它不具备开发操作系统的能力&#xff0c;而是用来编写控制其他大型应用程序的“脚本” JavaScript是一种嵌入式语言&#xff0c;它本身提供的核心语法不算很多 为什么学习JavaScri…

智能家居企业如何通过设计师渠道打造第二曲线?

随着智能家居行业的迅速发展和消费者需求的不断升级&#xff0c;企业的营销策略也在不断变化。传统的B2C营销模式逐渐让位于更加精细化、定制化的B2B2C模式&#xff0c;其中设计师渠道的开发与合作&#xff0c;成为智能家居企业布局市场、提升品牌影响力的关键。 智能家居推广的…

HTTP 范围Range请求

引言 在现代Web应用中&#xff0c;HTTP范围请求是一种重要的技术&#xff0c;允许客户端请求资源的部分内容&#xff0c;而不是整个资源。这对于大型文件的传输尤其有用&#xff0c;如视频流、断点续传下载等。本文将深入探讨HTTP范围请求的工作原理、实现方法和应用场景。 H…

c#删除文件和目录到回收站

之前在c上遇到过这个问题&#xff0c;折腾许久才解决了&#xff0c;这次在c#上再次遇到这个问题&#xff0c;不过似乎容易了一些&#xff0c;亲测代码如下&#xff0c;两种删除方式都写在代码中了。 直接上完整代码&#xff1a; using Microsoft.VisualBasic.FileIO; using Sy…

WPS excel使用宏编辑器合并 Sheet工作表

使用excel自带的工具合并Sheet表&#xff0c;我们会发现需要开通WPS会员才能使用合并功能&#xff1b; 那么WPS excel如何使用宏编辑器进行合并 Sheet表呢&#xff1f; 1、首先我们要看excel后缀是 .xlsx 还是 .xls &#xff1b;如果是.xlsx 那么 我们需要修改为 .xls 注…

Python----Python高级(面向对象:对象,类,属性,方法)

一、面向对象简介 Python完全采用了面向对象的思想&#xff0c;是真正面向对象的编程语言&#xff0c;完全支持面向对象的基本功能&#xff0c;例如&#xff1a;继承、多态、封装等。 Python中&#xff0c;一切皆对象。python数据类型、函数等&#xff0c;都是对象。 面向对象&…

多云架构下JuiceFS实现一致性与低延迟数据分发的深度解析

多云架构下JuiceFS实现一致性与低延迟数据分发的深度解析 一、JuiceFS在多云架构中的角色与优势 1. JuiceFS简介 JuiceFS是一个高性能的分布式文件系统&#xff0c;专为云原生环境设计&#xff0c;支持多种公有云和私有云的对象存储服务。它通过将数据存储在对象存储中&…