当前位置: 首页 > article >正文

Mentor DFT实战:手把手教你搞定Wrapped Core的Scan Insertion(附完整TCL脚本)

Mentor DFT实战Wrapped Core的Scan Insertion全流程解析与TCL脚本精讲在芯片测试设计领域Wrapped Core的Scan Insertion一直是工程师们面临的棘手难题。当设计规模不断扩大核心间交互日益复杂时传统的扫描链插入方法往往显得力不从心。本文将从一个真实的项目案例出发带你逐步拆解Mentor DFT工具在处理Wrapped Core时的完整工作流程特别是针对那些容易让人困惑的多模式配置场景。1. Wrapped Core的基础概念与挑战Wrapped Core包裹核心是现代SoC设计中常见的IP集成方式它通过特定的Wrapper逻辑将核心与芯片其他部分隔离。这种设计带来了测试上的独特挑战——我们需要在不影响核心功能的前提下实现高效的测试访问机制。典型Wrapped Core的结构特点隔离逻辑Isolation Logic用于功能模式下的信号隔离旁路路径Bypass Path测试模式下直接连接输入输出的通路模式控制信号Mode Control决定当前是功能模式还是测试模式# Wrapped Core接口示例 set core_wrapper [create_wrapper \ -name DSP_CORE_WRAPPER \ -input_ports {clk rst_n data_in[31:0]} \ -output_ports {data_out[31:0] ready} \ -control_ports {test_mode scan_en}]注意Wrapper的接口定义直接影响后续Scan Insertion的配置方式务必在项目初期就与设计团队确认清楚。2. Scan Insertion前的准备工作2.1 设计环境配置在开始Scan Insertion之前需要确保Mentor DFT工具环境正确配置。以下是一个典型的初始化脚本# 设置工作库和设计文件 set LIB_PATH /project/libs/tech28hpc set RTL_PATH /project/rtl/dsp_core # 加载必要库 load_library -technology $LIB_PATH/tech.lib # 读入设计文件 read_verilog $RTL_PATH/dsp_top.v read_verilog $RTL_PATH/dsp_wrapper.v # 设置当前设计 current_design DSP_TOP link_design2.2 扫描配置参数定义不同的测试模式需要不同的扫描配置参数。我们可以使用set_scan_configuration命令进行全局设置# 基本扫描配置 set_scan_configuration \ -clock_mixing no_mix \ -style multiplexed_flip_flop \ -insert_clock_gating_aware true \ -chain_count 4 # 针对Wrapped Core的特殊配置 set_scan_configuration \ -wrapper_cell_analysis full \ -wrapper_boundary_scan true \ -shared_scan_out false关键参数解析参数默认值推荐值说明-clock_mixingno_mixno_mixWrapped Core建议保持时钟域隔离-wrapper_cell_analysisbasicfull完整分析Wrapper单元-shared_scan_outfalsefalse避免输出端口共享3. 多模式Scan Insertion实战3.1 定义测试模式Wrapped Core通常需要支持多种测试模式每种模式对应不同的扫描链配置# 内部测试模式测试核心逻辑 add_scan_mode -name int_mode \ -test_mode test_mode1,scan_en1 \ -scan_enable scan_en \ -create_ports auto # 外部测试模式测试Wrapper逻辑 add_scan_mode -name ext_mode \ -test_mode test_mode1,scan_en0 \ -scan_enable scan_en \ -create_ports auto # 旁路模式 add_scan_mode -name bypass_mode \ -test_mode test_mode0,scan_en0 \ -create_ports auto3.2 扫描链插入与优化完成模式定义后可以开始实际的扫描链插入过程# 分析Wrapper单元 analyze_wrapper_cells -all -verbose # 设置Wrapper边界属性 set_attribute_value -type port -name data_in* -attribute scan_boundary -value input set_attribute_value -type port -name data_out* -attribute scan_boundary -value output # 执行扫描链插入 insert_scan \ -mode {int_mode ext_mode bypass_mode} \ -analyze_only false \ -optimize true \ -verbose 3常见问题排查清单检查Wrapper端口是否正确定义了scan_boundary属性确认不同模式下的控制信号值没有冲突验证时钟域交叉处理是否符合预期检查扫描链长度是否均衡4. 高级配置与调试技巧4.1 EDT集成配置当使用EDTEmbedded Deterministic Test压缩技术时需要特殊考虑Wrapper的配置# EDT配置示例 set_edt_configuration \ -wrapper_mode hierarchical \ -chain_count 4 \ -input_channels 2 \ -output_channels 2 create_edt -name DSP_EDT \ -input_signals {edt_in[1:0]} \ -output_signals {edt_out[1:0]} \ -connect_to_wrapper4.2 OCC集成注意事项对于需要OCCOn-Chip Clocking的复杂设计Wrapper的时钟处理尤为关键# OCC时钟配置 set_occ_configuration \ -wrapper_clock_scheme separate \ -clock_gating_aware true \ -test_clock_divider 2 create_occ -name DSP_OCC \ -control_signals {occ_enable} \ -clock_sources {clk} \ -connect_to_wrapper4.3 验证与调试完成Scan Insertion后必须进行全面的验证# 扫描链验证 verify_scan_chain \ -mode all \ -report scan_chain.rpt \ -verbose 3 # 生成测试模式 create_test_patterns \ -mode {int_mode ext_mode} \ -format stil \ -output dsp_core_patterns.stil调试技巧使用report_scan_configuration -mode all检查配置一致性通过debug_scan_connection -from core_inst/data_reg追踪特定寄存器连接利用图形界面可视化扫描链路径特别关注Wrapper边界5. 完整TCL脚本示例以下是一个整合了上述所有关键步骤的完整脚本框架# Wrapped Core Scan Insertion完整脚本 set script_version 1.0 # 1. 初始化设置 source setup.tcl current_design DSP_TOP # 2. 扫描配置 set_scan_configuration \ -clock_mixing no_mix \ -chain_count 4 \ -wrapper_cell_analysis full # 3. 定义测试模式 add_scan_mode -name int_mode -test_mode test_mode1,scan_en1 add_scan_mode -name ext_mode -test_mode test_mode1,scan_en0 # 4. Wrapper特定设置 analyze_wrapper_cells -all set_attribute_value -type port -name data* -attribute scan_boundary -value input # 5. 执行扫描插入 insert_scan -mode {int_mode ext_mode} -optimize true # 6. 特殊结构集成 if {$use_edt} { set_edt_configuration -wrapper_mode hierarchical create_edt -name DSP_EDT -connect_to_wrapper } # 7. 验证与输出 verify_scan_chain -mode all write_scan_def -output dsp_core_scan_def.gz在实际项目中应用这个脚本时记得根据具体设计调整Wrapper端口名称、扫描链数量等参数。遇到问题时可以逐步执行脚本并检查中间结果这比一次性运行整个脚本更容易定位问题根源。

相关文章:

Mentor DFT实战:手把手教你搞定Wrapped Core的Scan Insertion(附完整TCL脚本)

Mentor DFT实战:Wrapped Core的Scan Insertion全流程解析与TCL脚本精讲 在芯片测试设计领域,Wrapped Core的Scan Insertion一直是工程师们面临的棘手难题。当设计规模不断扩大,核心间交互日益复杂时,传统的扫描链插入方法往往显得…...

CANN/asc-devkit:ReduceAll临时空间大小获取

GetReduceAllMaxMinTmpSize 【免费下载链接】asc-devkit 本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言,原生支持C和C标准规范,主要由类库和语言扩展层构成,提供多层级API,满足多维场景算子开发诉求。 项目地址: http…...

5步实现Windows直接安装Android应用:APK Installer完全指南

5步实现Windows直接安装Android应用:APK Installer完全指南 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer 你是否曾经想过,在Windows电脑上安装…...

Firefox Android与Firefox Focus对比分析:选择最适合你的浏览器

Firefox Android与Firefox Focus对比分析:选择最适合你的浏览器 【免费下载链接】firefox-android :warning: This repository hosts the Firefox for Android (Fenix), Focus for Android, and Mozilla Android Components projects. It is now developed and main…...

Camunda并行会签实战:从BPMN设计到数据库状态变化的完整追踪

Camunda并行会签实战:从BPMN设计到数据库状态变化的完整追踪 在复杂业务流程自动化领域,并行会签是一种常见但实现难度较高的模式。当三个部门主管需要同时审批一份采购申请时,传统串行审批会导致效率低下,而并行处理又面临状态同…...

为什么英语是编程最重要的前置技能?Newbie-Guideline揭示成功秘诀

为什么英语是编程最重要的前置技能?Newbie-Guideline揭示成功秘诀 【免费下载链接】Newbie-Guideline 컴퓨터과학/공학 신입생 및 비전공자 신입을 위한 지침서 项目地址: https://gitcode.com/gh_mirrors/ne/Newbie-Guideline 在编程学习的道路上&#xff0…...

Gregwar/Captcha图像效果详解:扭曲、线条、背景与透明度的艺术

Gregwar/Captcha图像效果详解:扭曲、线条、背景与透明度的艺术 【免费下载链接】Captcha PHP Captcha library 项目地址: https://gitcode.com/gh_mirrors/capt/Captcha 在PHP验证码开发中,Gregwar/Captcha库以其出色的图像效果和安全性能脱颖而出…...

CANN/asc-devkit Mins矢量计算

Mins(灵活标量位置) 【免费下载链接】asc-devkit 本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言,原生支持C和C标准规范,主要由类库和语言扩展层构成,提供多层级API,满足多维场景算子开发诉求。 …...

CANN/HCOMM拓扑层级查询

HcclRankGraphGetLayers 【免费下载链接】hcomm HCOMM(Huawei Communication)是HCCL的通信基础库,提供通信域以及通信资源的管理能力。 项目地址: https://gitcode.com/cann/hcomm 产品支持情况 Ascend 950PR/Ascend 950DT&#xff1…...

如何快速构建完整的以太坊Go开发实战应用:从入门到精通指南 [特殊字符]

如何快速构建完整的以太坊Go开发实战应用:从入门到精通指南 🚀 【免费下载链接】ethereum-development-with-go-book 📖 A little guide book on Ethereum Development with Go (golang) 项目地址: https://gitcode.com/gh_mirrors/et/ethe…...

FreeJoy固件刷写与配置全攻略:从STM32CubeProgrammer到中文版Configurator

FreeJoy控制器全流程实战指南:从固件刷写到高级配置 在开源硬件和DIY控制器领域,FreeJoy项目以其灵活性和低成本优势吸引了大量创客和游戏外设爱好者。不同于商业产品的封闭性,基于STM32F103C8T的FreeJoy解决方案让用户能够完全掌控控制器的每…...

告别卡顿!用ZLMRTCClient.js和Vue3打造超低延迟WebRTC监控播放器(附完整代码)

超低延迟WebRTC监控播放器:基于ZLMRTCClient.js与Vue3的工程实践 在安防监控、智慧园区等对实时性要求极高的场景中,传统流媒体方案如HLS或FLV往往面临3-5秒甚至更高的延迟。这种延迟在关键场景下可能导致严重后果——当监控画面显示"一切正常"…...

嵌入式数据存储终极指南:5分钟快速上手FlashDB超轻量级数据库

嵌入式数据存储终极指南:5分钟快速上手FlashDB超轻量级数据库 【免费下载链接】FlashDB An ultra-lightweight database that supports key-value and time series data | 一款支持 KV 数据和时序数据的超轻量级数据库 项目地址: https://gitcode.com/gh_mirrors/…...

【习题02】打印菱形

题目: 用C语言在屏幕上输出以下图案:1、题目分析: 这道题目需要打印一个菱形,经过分析可得每一行就是打印空格和*。 经过观察可得: 第一行:6个空格 1个*第二行:5个空格 3个*第三行:4…...

【习题01】喝汽水问题

题目:喝汽水,1瓶汽水1元,2个空瓶可以换一瓶汽水,给20元,可以喝多少汽水(编程实现)。 1、题目解析: 通过分析,我们可以得到以下流程图:20元钱,&…...

智能视觉瞄准系统:基于YOLOv8的高效游戏辅助解决方案

智能视觉瞄准系统:基于YOLOv8的高效游戏辅助解决方案 【免费下载链接】RookieAI_yolov8 基于yolov8实现的AI自瞄项目 AI self-aiming project based on yolov8 项目地址: https://gitcode.com/gh_mirrors/ro/RookieAI_yolov8 RookieAI_yolov8是一个基于先进视…...

3分钟解决Cursor试用限制:设备标识重置完整指南

3分钟解决Cursor试用限制:设备标识重置完整指南 【免费下载链接】go-cursor-help 解决Cursor在免费订阅期间出现以下提示的问题: Your request has been blocked as our system has detected suspicious activity / Youve reached your trial request limit. / Too …...

完全掌握Visual C++运行库:从DLL缺失到系统稳定的全面解决方案

完全掌握Visual C运行库:从DLL缺失到系统稳定的全面解决方案 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist 当您在Windows系统中运行游戏或专业软件…...

白介素-5(IL-5)的结构、功能及医学应用研究进展

摘要白介素-5(Interleukin-5,IL-5)是一种由Th2细胞、嗜酸性粒细胞祖细胞等免疫细胞分泌的多功能细胞因子,在调节免疫反应、尤其是嗜酸性粒细胞(Eosinophil, EOS)的分化、存活及功能活化中发挥核心作用。自1…...

Komanda代码嵌入功能详解:Gist、JSFiddle和Twitter无缝集成

Komanda代码嵌入功能详解:Gist、JSFiddle和Twitter无缝集成 【免费下载链接】komanda The IRC Client For Developers 项目地址: https://gitcode.com/gh_mirrors/ko/komanda Komanda作为一款面向开发者的IRC客户端,提供了强大的代码嵌入功能&…...

使用curl命令直接测试taotoken api的连通性与基础功能

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 使用curl命令直接测试taotoken api的连通性与基础功能 基础教程类,面向需要快速验证或在不便安装SDK的环境中进行操作的…...

【热门开源项目下载】yolo-onnx-java

【热门开源项目下载】yolo-onnx-java 1. 项目基础介绍与编程语言 yolo-onnx-java 是一个基于Java语言开发的轻量级AI模型调用框架,专注于为Java开发者提供高效、便捷的深度学习模型推理能力。项目通过ONNX(Open Neural Network Exchange)格式…...

BooruDatasetTagManager自定义界面与快捷键:打造个性化工作流程的终极指南 [特殊字符]

BooruDatasetTagManager自定义界面与快捷键:打造个性化工作流程的终极指南 🎨 【免费下载链接】BooruDatasetTagManager 项目地址: https://gitcode.com/gh_mirrors/bo/BooruDatasetTagManager BooruDatasetTagManager是一款强大的AI训练数据标签…...

DepHell与Docker集成:容器化Python应用开发的终极指南

DepHell与Docker集成:容器化Python应用开发的终极指南 【免费下载链接】dephell :package: :fire: Python project management. Manage packages: convert between formats, lock, install, resolve, isolate, test, build graph, show outdated, audit. Manage ven…...

测试TVS:SP0503BAHTG

简 介: 本文测试了SP0503BAHTG三通道TVS二极管阵列的特性。通过设计测试电路板,测量了该器件对1kHz正弦波的限幅效果,测得反向导通电压约-0.8V,顶部饱和电压6.3V。在1MHz高频测试中观察到快速响应特性,通过矩形波上升沿…...

YOLO-ONNX-Java分布式推理架构设计与实现

YOLO-ONNX-Java分布式推理架构设计与实现 引言:单机推理的性能瓶颈 在实际的AI视觉识别项目中,随着业务规模的扩大,单机推理往往面临以下挑战: 并发处理能力有限:单台服务器无法同时处理大量视频流GPU资源利用率低&…...

别再截图了!用AD21把PCB 3D模型直接塞进PDF,客户评审一目了然

用AD21将PCB 3D模型嵌入PDF:提升设计评审效率的终极方案 在硬件开发流程中,设计评审环节往往成为项目推进的瓶颈。传统方式下,工程师不得不反复截取多角度2D图纸,或录制繁琐的演示视频,既耗费时间又难以全面展示设计细…...

从蓝牙时钟到通用Timer:详解非32位满量程下的时间回环处理技巧

从蓝牙时钟到通用Timer:非标准位宽下的时间回环处理实战指南 在嵌入式系统中,时间管理如同隐形的骨架,支撑着各类关键功能的稳定运行。当开发者从32位通用定时器转向蓝牙协议栈中的28位时钟,或面对某些硬件平台上的24位专用定时器…...

YOLO-ONNX-Java 性能监控指标全面解析

YOLO-ONNX-Java 性能监控指标全面解析 概述 在计算机视觉应用中,性能监控是确保系统稳定运行的关键环节。YOLO-ONNX-Java 作为一个纯 Java 实现的 AI 视觉识别项目,提供了丰富的性能监控指标来帮助开发者优化系统性能。本文将深入解析该项目的性能监控指…...

分布式事务解决方案TCC实战

分布式事务解决方案TCC实战 一、分布式事务概述 在分布式系统中,事务跨越多个服务或数据库,传统的ACID事务无法直接适用,需要采用分布式事务解决方案。 1.1 分布式事务挑战 挑战说明网络延迟跨服务调用存在网络延迟和超时数据一致性多个数据源…...