Tessent_ijtag_ug——第 5 章IJTAG 网络插入 (1)

第 5 章IJTAG 网络插入

IJTAG 网络插入功能使您能够连接现有的instrument,并插入 SIBTDR ScanMux 以创建您自己的 IJTAG 网络。 IJTAG 网络插入功能使您能够将网络连接到 TAP 控制器或设计中已有的 TAP 控制器。IJTAG 网络插入的原理是使用 create_dft_specification 命令,非常简单。工具读取设计中instrument ICL 模型,并根据 ICL 模型的访问需求插入 SIB TDR。如果需要,您可以编辑或修改 IJTAG 网络以满足设计需求。 完成设计编辑后,您可以使用 extract_icl 命令生成 IJTAG 网络的 ICL 描述。请注意,工具在 IJTAG 网络插入后不会自动执行 ICL 提取,因为您可以在提取前进行额外的编辑。 Tessent IJTAG 可以生成并连接自己的 TAP,也可以连接到已有的 TAP 控制器。如果 IJTAG 网络需要连接到已有的 TAP 控制器,则必须提供该 TAP 控制器的 ICL

IJTAG 网络插入流程

本节介绍了基本的 IJTAG 网络插入流程,并列出了实现该流程的相应命令。 5-1 展示了您使用 Tessent Shell 执行的基本 IJTAG 网络插入流程的步骤。

如图 5-1 所示,IJTAG 网络插入流程相对简单。由于您需要修改设计文件,因此必须将工具设置为 DFT 上下文,然后加载单元库、设计文件以及所有使用的instrument ICL(这些可以自动为您加载)。第一个 create_dft_specification 命令指示工具创建 DftSpecification,第二个命令 process_dft_specification 在生成并修改设计文件之前运行一个验证步骤。 当工具处理 DftSpecification 时,它会将文件写入磁盘上的有组织的目录结构中。这些文件包括以 ICL Verilog 格式表示的所有插入的 IJTAG 网络对象(SIBTDR ScanMux)以及所有修改后的设计文件。IJTAG 网络是使用 create_dft_specification 命令自动生成的。然而,您始终可以使用编辑命令或通过使用 display_specification GUI 来修改创建的 DftSpecification。如前所述,网络的 ICL 描述不会自动生成,因为您可能需要进行进一步的设计编辑。然而,由于所有数据都存储在内存中,您可以使用 extract_icl 命令执行后续的 IJTAG 网络提取步骤。

IJTAG 网络插入示例

以下是一个 IJTAG 网络插入的示例。

set_context dft -no_rtl

## 读取库

read_cell_library ./library/adk_complete.tcelllib

read_cell_library ./library/memory.atpglib

## 读取网表

read_verilog ./netlist/cpu_top_scan_tk.v

read_verilog ./generated/cpu_top_edt.v

read_verilog ./PLL/PLL.v -interface_only

## set_current_design 之前读取 ICL PDL 文件

read_icl ./PLL/PLL.icl

dofile ./PLL/PLL.pdl

set_current_design cpu_top

## 在运行 set_system_mode analysis 之前设置设计级别

set_design_level chip

## 使用 set_attribute_value 指定 TAP 引脚

set_attribute_value tck_p -name function -value tck

set_attribute_value tdi_p -name function -value tdi

set_attribute_value tms_p -name function -value tms

set_attribute_value trst_p -name function -value trst

set_attribute_value tdo_p -name function -value tdo

set_system_mode analysis

report_icl_modules

## 自动从读取 Verilog 的目录中读取任何 ICL

create_dft_specification

report_config_data

## 使用 display_specification 编辑或修改规范,或者使用编辑命令(如果需要)

## 如果需要的话。

process_dft_specification

extract_icl

exit

上述示例首先将context设置为 dft 并读取库。 下一步是读取已经插入扫描和 EDT IP Verilog 网表,其中 PLL 模块已经存在。对于 PLL 模块,已经单独创建并验证了 ICL PDL。接下来读取 PLL PDL ICL。使用 set_design_level 指定插入 IJTAG 网络的级别。在此示例中,IJTAG 网络插入在设计的顶层,因此在运行“set_system_mode analysis”之前指定了 TAP 引脚。 通过 create_dft_specificationPLL EDT instrument ICL 自动配置为插入到 IJTAG 网络中。可以使用 report_config_data 报告此网络。如果需要 IJTAG 网络连接,则使用 process_dft_specification,否则使用编辑命令或与 Configuration Data Visualizer 一起使用的 display_specification 来编辑。最后一步是 extract_icl,它为使用 set_current_design 设置的级别提供 ICL

布局感知的 IJTAG 连接

布局感知的 IJTAG 连接功能通过使用 DEF 文件中的坐标来创建节点之间的最短路径,从而改善 IJTAG 扫描链中元素的排序。 如果没有布局信息,工具会按字母顺序将每个层次级别的签核模块和 IJTAG instrument连接到一个 IJTAG 链中。按字母顺序连接可能导致布局和布线问题,但布局感知连接有助于缓解这一问题。 5-2 比较了按字母顺序连接(左侧)和布局感知连接(右侧)的 IJTAG 网络布局示例。


布局感知连接使用 DEF 文件中的坐标生成一个 DftSpecification 包装器,该包装器对 IJTAG 元素进行排序以创建节点之间的最短路径。加载 DEF 文件时,布局感知处理是自动进行的(不需要特殊的命令或开关)。DEF 文件应提供 IJTAG instrument扫描输出引脚的布局信息。如果扫描输出引脚的坐标缺失,布局感知连接将使用实例坐标。 连接从 IJTAG 扫描输出端口(ijtag_so tdo)开始。工具确定哪个元素的布局位置最近,并将其作为下一个节点,直到所有元素都连接到链中。如果扫描输出端口的坐标缺失,连接将从坐标最接近(0,0)点的元素开始。 注意 您也可以通过在 Tessent Shell 中设置 “def_x_coordinate” “def_y_coordinate” 属性来提供节点坐标。

修改 IJTAG 网络插入流程

在大多数使用场景中,您可以使用基本的 IJTAG 网络插入流程。然而,如果需要,您可以对流程进行以下修改。

5-1. IJTAG 网络插入流程的修改

...

描述

更改输出目录根目录

默认情况下,process_dft_specification 命令将所有编辑后的设计文件和生成的 IJTAG 网络对象文件写入以 ./tsdb_outdir 为根目录的有序目录结构中。您可以使用 set_tsdb_output_directory 命令指示工具使用任何其他目录根目录;如果该目录尚不存在,工具将创建它。

验证写入的 DftSpecification 是否正确

您有多种选项可以验证写入的 DftSpecification 是否正确。请参阅 process_dft_specification 命令的“-no_insertion”“-validate_only”选项。

转录所有执行的设计编辑

高级命令 process_dft_specification 运行一系列 Tessent Shell 编辑命令,例如 create_connections create_instance。通常,这些命令不会被转录,但在调试时可能很有用。process_dft_specification 命令为您提供 -transcript_insertion_commands 选项,该选项将 DftSpecification 执行期间执行的所有设计编辑步骤添加到转录中。

运行 DftSpecification

您可以为当前设计加载多个 DftSpecification;它们根据用户指定的标识符有所不同。有关更多信息,请参阅 DftSpecification 包装器描述。通过 process_dft_specification 命令的 “id” 选项,可以轻松选择其中一个或另一个 DftSpecification

自动运行额外的设计编辑

DftSpecification 处理结束时,修改后的设计文件将写入输出目录。如果您想进一步编辑设计,自动写入设计文件是一个不必要的且可能耗时的步骤。process_dft_specification 命令提供了一种方法,告诉工具在写入最终的修改后设计文件之前,先运行您的设计编辑命令。然后,该文件将包含插入的 IJTAG 网络以及您指定的设计编辑。

写入 process_dft_specification.post_insertion 过程

如果您正在编写一个名为 process_dft_specification.post_insertion 的特定名称的 Tcl 过程,并将其加载到内存中,您可以使用 dofile 命令并针对包含此过程的文件。或者,您也可以直接在主 dofile 中编写 Tcl 过程。当 process_dft_specification 命令看到存在 Tcl 过程时,它将在 DftSpecification 指定的所有设计编辑成功完成后,但在运行 write_design 命令之前,自动调用 Tcl 过程。

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

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

相关文章

同步与互斥学习笔记

一、基本概念同步与互斥是多任务/多线程编程中的两个核心机制:同步:指多个任务之间存在明确的先后顺序,一个任务必须等待另一个任务完成某些操作后才能继续执行。互斥:指多个任务在同一时刻争抢使用同一资源(临界资源&…

Tomcat 启动流程与类加载机制

Tomcat 启动流程与类加载机制1. 引言 Tomcat 的启动不仅仅是简单的 java -jar 或 catalina.sh start。 它背后包含 Bootstrap 启动器、Catalina 控制器、Server/Service/Connector/Container 初始化 等关键步骤。 另一方面,Tomcat 为了支持 热部署、不同应用间类隔离…

MTK Linux Charger驱动分析(十二)- mtk_pd_adapter.c

1. 代码整体分析 mtk_pd_adapter.c(源文件) 主要内容: 该文件实现了MediaTek平台的USB PD(Power Delivery)适配器驱动,基于Linux内核的电源管理和Type-C端口控制器(TCPC)框架。 它处理PD协议事件,包括PD连接状态、Type-C状态、水检测(WD_STATUS)、Sink VBUS变化等。…

Spring Boot Logback 日志配置详解:从基础到分布式追踪

日志是应用程序不可或缺的组成部分,它不仅能帮助我们调试问题,还能监控系统运行状态。在 Spring Boot 生态中,Logback 凭借其高性能和灵活性成为首选的日志框架。本文将通过一个实际的 Logback 配置文件,详细解析其各个组件的功能…

软件体系结构——后端三层架构

三层架构——Controller、Service、Dao 不仅是对代码进行的逻辑分层。其真正的本质,是将业务、技术和数据剥离。搞业务的专心做业务,搞技术的专心搞技术,做数据存储的专心做数据存储。三方通过接口进行对接,任一部分重构&#xff…

QML学习笔记(一)基本了解和工程配置

前言: 已经从事QT开发几年了,但对于QML这个东西始终是没有彻底掌握,一方面实际工作中没有用到过,其次它的语法对我来说是全新的东西,不像QWidget那一套可以直接在C中去写。这就是为什么网上都说qml更简单,我…

SAP HANA Scale-out 04:缓存

结果缓存静态结果缓存 Vs 动态结果缓存FeatureStatic Result CacheDynamic Result CacheTarget Scenario对复杂视图(通常是顶层视图)的查询频繁更新的大表(例如ACDOCA)上的聚合查询Query result非实时数据实时数据ScopeTarget obj…

嘉兴禾润 HTR7216 (S) LED 驱动芯片:特性与应用

在如今智能设备飞速普及的时代,无论是智能家居的氛围营造、IoT 设备的状态提示,还是个人消费电子的视觉呈现,都离不开高性能 LED 驱动芯片的支撑。嘉兴禾润推出的 HTR7216 (S) LED 驱动芯片,凭借丰富的功能、精准的控制以及出色的…

Python实现剑龙优化算法 (Stegosaurus Optimization Algorithm, SOA)优化函数(付完整代码)

Python实现剑龙优化算法 (Stegosaurus Optimization Algorithm, SOA)优化函数(付完整代码)1.剑龙优化算法介绍剑龙优化算法(Stegosaurus Optimization Algorithm,SOA)是一种受剑龙独特生理结构和行为模式启发而设计的元…

分布式拜占庭容错算法——权益证明(PoS)算法详解

Java 实现权益证明(PoS)算法详解 一、PoS 核心机制 #mermaid-svg-Sbj0HU6MjOl1yo5L {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-Sbj0HU6MjOl1yo5L .error-icon{fill:#552222;}#mermaid-s…

【论文阅读】谷歌:生成式数据优化,只需请求更好的数据

谷歌DeepMind团队通过Generative Data Refinement(GDR)技术,成功将极端有毒的4chan讨论数据转化为安全且语义丰富的训练素材,推动了LLM训练数据净化的新范式: • GDR利用预训练大模型对原始数据进行“重写”&#xff0…

C++ 多线程实战 10|C++20 的信号量、闩锁与屏障

目录 前言 学习目标 1. 信号量(Semaphore) 示例:限制并发下载任务 2. 闩锁(Latch) 示例:赛跑 3. 屏障(Barrier) 示例:图像处理流水线 4. 常见坑与对策 5. 实践作…

【Java SE】01. 初识Java

1. 认识Java Java是一种优秀的程序设计语言,它具有令人赏心悦目的语法和易于理解的语义。Java还是一个有一系列计算机软件和规范形成的技术体系,这个技术体系提供了完整的用于软件开发和跨平台部署的支持环境,并广泛应用于嵌入式系统、移动终…

解锁仓储智能调度、运输路径优化、数据实时追踪,全功能降本提效的智慧物流开源了

AI 视频监控平台:全链路协同驱动的智能监控解决方案AI 视频监控平台是一款融合高性能功能与轻量化操作的实时算法驱动型视频监控系统,其核心愿景在于深度破除不同芯片厂商间的技术壁垒,省去冗余重复的适配环节,最终达成芯片、算法…

冒泡排序与选择排序以及单链表与双链表

1. 冒泡排序(Bubble Sort) 1. 原理 冒泡排序是一种 简单的排序算法,通过 两两比较相邻元素,把较大的元素逐渐 “冒泡” 到数组末尾。 思路: 从数组头开始,比较相邻两个元素。 如果前一个比后一个大&…

Python实现计算点云投影面积

本次我们分享一种基于 Open3D 的快速、稳健方法,用于从激光点云中自动提取“地面”并计算其投影面积。算法先自适应估计地面高程,再将地面点投影至水平面,随后用凸包或最小外接矩形求取面积。整个流程无需人工干预,单文件即可运行…

AXI4 协议

一、AXI4简介AXI4(Advanced eXtensible Interface 4)是ARM公司推出的高性能片上总线协议,属于AMBA(Advanced Microcontroller Bus Architecture)标准的一部分。它专为高带宽、低延迟的片上通信设计,广泛应用…

《饿殍:明末千里行》Switch版试玩发布 3月13日发售

使用jQuery的常用方法与返回值分析 jQuery是一个轻量级的JavaScript库,旨在简化HTML文档遍历和操作、事件处理以及动画效果的创建。本文将介绍一些常用的jQuery方法及其返回值,帮助开发者更好地理解和运用这一强大的库。 1. 选择器方法 jQuery提供了多种…

[特殊字符] 认识用户手册用户手册(也称用户指南、产品手册)是通过对产品功能的清

一份优秀的用户手册能有效降低用户的使用门槛,提升用户体验和工作效率。下面我将为你梳理编写用户手册的核心要点、步骤和技巧。📖 认识用户手册用户手册(也称用户指南、产品手册)是​​通过对产品功能的清晰解释,为特…