【Tessent IJATG Users Manual】【Ch5】IJTAG Network Insertion

  • The IJTAG Network Insertion Flow
    • IJTAG Network Insertion Example
    • Modification of the IJTAG Network Insertion Flow
  • How to Edit or Modify a DftSpecification
    • Edit or Modify Method
    • DftSpecification Examples

IJTAG Network Insertion 可以将已有的 instrument 连接起来,插入 SIBs、TDRs 和 ScanMuxes 等,以此来创建自己的 IJATG network。

IJTAG Network Insertion 可以将 network 连接到一个 TAP 控制器或者是设计中预先存在的 TAP 控制器。

IJTAG Network Insertion 的实现是直接使用 create_dft_specification 命令。工具会读取设计中所有 instrument 的 ICL 模型,然后根据 ICL 模型需要被如何访问来插入 SIB 或者是 TDR。

如果需要的话,可以对 IJATG network 网络进行编辑或者修改,以满足设计需求。

在完成设计编辑之后,可以使用 extract_icl 命令生成 IJATG 网络的 ICL 描述。IJATG network 插入之后,工具不会自动执行 ICL 提取,因为你可以在提取之前进行一些额外的编辑。

Tessent IJTAG 会生成并连接自己的TAP。如果 IJATG network 需要连接到已经存在的 TAP 控制器,需要提供该 TAP 控制器的 ICL 。


The IJTAG Network Insertion Flow


基本的 IJTAG Network Insertion 流程和对应的一些命令如下图所示:

在这里插入图片描述

如上图 5-1 所示,IJTAG Network Insertion Flow 是相对比较简单。因为你想要修改设计文件,所以就必须将工具的 context 设定为 dft,并且加载单元库、设计文件和需要使用的所有的 instrument 的 ICL (可自动加载)。
create_dft_specification 命令告诉工具创建 DftSpecification ;process_dft_specification 命令在生成或编辑设计文件之前会进行验证。

工具执行完 DftSpecification 中的内容之后,会输出一系列文件,这些文件中包含所有插入的 IJTAG network 对象(SIBs、TDRs 和 ScanMuxes)( ICL 和 verilog 两种格式)和所有修改后的设计文件。

虽然 IJTAG network 是使用 create_dft_specification 自动生成的,但是你可以使用编辑命令或者是display_specification命令打开 GUI 对生成的 DftSpecification 进行修改。

如前所示, IJTAG network 的 ICL 描述并不是自动生成的,因为你可能对其进行进一步的编辑。但是,因为所有的数据都保存在内存中,所以你可在后面使用 extract_icl命令执行 IJTAG Network 的提取过程。


IJTAG Network Insertion Example

IJTAG Network Insertion 的示例如下所述。

set context dft -no_rtl## Read the libraries
read_cell_library ./library/adk_complete.tcelllib
read_cell_library ./library/memory.atpglib## Read the netlist
read_verilog ./netlist/cpu_top_scan_tk.v
read_verilog ./generated/cpu_top_edt.v
read_verilog ./PLL/PLL.v -interface_only## Read ICL and PDL files before set_current_design
read_icl ./PLL/PLL.icl
dofile ./PLL/PLL.pdl
set_current_design cpu_top## set design level before running set_system_mode analysis
set_design_level chip## Specifiy the TAP pins using set_arrtibute_value
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 tdoset_system_mode analysis
report_icl_modules## Automatically read any ICL from the directories that verilog is picked from
creat_dft_specification
report_config_data## Use display_specification to edit or modify the specification or use editing commands
## if neededprocess_dft_specification
extract_icl
exit

上述流程中,读入的 Verilog Netlist 已经插入了扫描链和带有 PLL 的 EDT IP。PLL 模块的 ICL 和 PDL 是在此之前单独生成并验证的。

因为 IJTAG network 是在 chip level 进行插入(set_design_level chip),所以在set_system_mode analysis之前需要指定 TAP pins。

使用 create_dft_specification 命令,PLL 和 EDT instruments 的 ICL 会被自动配置,然后插入到 IJTAG network 中。使用 report_config_data 可以报告该 network 中的内容。

如果 IJTAG network connection 是想要的,就可以使用 process_dft_specification 命令,否则可以使用编辑命令或者是打开 Configuration Data Visualizer 对其进行编辑。

最后一步就是使用 extract_icl 提取 set_current_design 所指定的 level 的 ICL。

【所以 DdfSpecification 是告诉工具如何进行 IJATG 插入,ICL 是在对完成插入的设计的 IJATG netwrok 的完整描述。如果当前设计是其他设计中的实例,在其他设计进行 IJATG netwrok 插入的时候,就可以使用当前设计的 ICL。ICL 中描述了当前设计中有哪些 Ijtag Instances(也可以叫 instrument) 以及它们之间的连接关系。】


Modification of the IJTAG Network Insertion Flow

大多数情况下,使用基本 IJTAG Network Insertion flow 即可,如果需要对其进行修改,可以使用如下内容。

在这里插入图片描述
在这里插入图片描述


How to Edit or Modify a DftSpecification


Edit or Modify Method

创建新的或者修改现有 DftSpecification 内容的两种方式:

  • Configuration Data Visualizer
  • ASCII text editor
  • 命令行

1. 图形化界面

Configuration Data Visualizer 提供创建和修改 DftSpecification 内容的图形化界面。在打开窗口中,会以树状目录显示 DftSpecification 中已经定义的内容。
你可以查看 Specification 的层次结构,对其中的 elements 进行移动,创建新的 element,或者对现有的 elements 及进行修改。

如下图所示,左边是 DftSpecification 中的内容,右边是可配置的内容。

在这里插入图片描述

选中最顶层的 DftSpecification ,鼠标右键可以添加内容。因为每个 DftSpecification 中只能由 1 个 IjtagNetwork,当前设计中已经存在了,所有右键就不会有。

在这里插入图片描述

【这个 GUI 的字体好小】

使用下述命令可以创建一个新的 DftSpecification。

在这里插入图片描述

该命令会打开 Configuration Data Visualizer 并创建和 current design 相关联的 DftSpecification Wrapper。

如果想查看内存中的 DftSpecification,对其进行修改或者追加特定的 IJTAG network,也可以使用该命令。例如,使用该命令打开当前设计中一个 ID 为 good3 的 DftSpecification。

在这里插入图片描述

Tessent Shell 中和 IJTAG Network Insertion 相关命令的小结:

在这里插入图片描述

2. ASCII text editor

就是文本编辑器直接打开 DftSpecification 文件,然后按照规定的语法修改就行了。也没有什么好说的。

但是图形化界面和文本编辑器用的不是很多,刚开始学的时候,可以用一用,在实际的项目设计中,都是 flow,更多的是考虑在命令行或者脚本中对其进行修改。

3. 命令行修改


  • CMD1read_config_data -in $spec -from_sting {}

    这个命令可以将特定的字符串(-from_sting后面 {} 中的内容,{} 也可以是双引号)写入到 DftSepc 中,字符串需要遵循 DftSepc 的语法,字符串可以放在 Tcl 变量中。

    如果想在 IjtagNetwork 中的 SIB 下面新加入一个 tdr,就可以使用下述命令:

    在这里插入图片描述

    Tdr wrapper 中的所有内容都可以按照规定的语法在这里定义。

    但是有一个问题是,双引号中的内容不能有变量,所有的变量都会当作普通字符串,如果想要使用变量,可以使用下述方式:

    在这里插入图片描述

    先将要插入的内容放到一个变量中,然后把变量给到命令。


  • CMD2add_config_element & set_config_value

    首先使用 add_config_element 命令插入一个 wrapper :

    在这里插入图片描述

    然后在使用 set_config_value 命令设定参数值。

    在这里插入图片描述
    该命令就是将一个 OCC wrapper 中的 clock_intercept_node 选项设置为 $clk

    使用 get_config_value -in_wrapper wrapper_object 可以返回 wrapper 中那些内容可以通过 set_config_value 命令控制。

    set_config_value 命令只能设计 wrapper 中已经存在的选项的值。如下图所示的 Tdr wrapper,绿色方框中的选型时默认存在的,可以直接设置,但是对于红色方框中的内容,如果是空的,就不能设置。如果有内容,如 connection(0) 已经存在了,那么是可以用该命令对其进行改的。

    也就是说,set_config_value命令只能修改已经存在的内容,不能增加内容

    在这里插入图片描述


  • CMD3move_config_elementdelete_config_element
    具体用法:move_config_element object_spec [-in_wrapper wrapper_name_or_object]
    就是移动 wrapper 的位置。

    【这里,可以移动和删除的内容可以是 wrapper 中的某一个配置】
    在这里插入图片描述


DftSpecification Examples

这里给出了一些使用 DftSpecification 的 element 和 syntax 创建特殊的或者常用的 IJTAG Network Insertion 任务。【就是特定的需求在 IjtagNetwork中如何实现】

这里所有的示例都是基于使用 ASCII text editor 来创建 DftSpecification 。(就是直接在文本编辑器中对 DftSpec 文件进行修改。)
-----------------------------------------------------------------------
1. Connection of a Basic Scan Instrument to a SIB
-----------------------------------------------------------------------
在该示例中,有一个带有单一 scan interface 的 instrument ,你想要将其连接到 SIB。

Instrument

在这里插入图片描述

DftSpecification

在这里插入图片描述

使用 ID 为 S3 的 SIB wrapper,并在 SIB wrapper 中声明 instrument 的设计实例的路径。

不需要指定 scan-in、scan-out 等其他控制端口,因为工具会从 ICL 模型描述中找到这些信息。

instance path 必须存在于设计中,因为 Dftspecification 只是按照指定内容将其连接起来,而不会创建新的 design instance。

Result

IJTAG network 中会插入一个 SIB 。该 SIB 控制 instrument 实例 design2_I1/instrumentB_I1 的 SelectPort “sel” 。

该 instrument 的的端口连接关系:

  • scan-out 被连接到 SIB 的第二个 scan-in;
  • scan-in 连接到和 SIB 的第一个 scan-in 端口一样的 IJTAG scan chain;

类似的,instrument 的 scan-、capture- 和 update- 控制端口连接到 SIB 对应接收这些控制信号的端口上。Tck 也是也是如此。

---------------------------------------------------------------------------------------------------
2. Creation of a a Scan Instrument With More Than One ScanInterface
---------------------------------------------------------------------------------------------------

在该示例中,instrument 有两个 ScanInterface 定义。如果使用和示例1中一样的语法,工具不知道将 SIB 连接到哪一个 scan ports。因此,在这种情况下,必须声明所连接的 ScanInterface 的名字。

Instrument

在这里插入图片描述

DftSpecification

在该示例中,将 ScanInterface P2 连接到了 SIB “S3”,P1 连接到其他地方。

Sin(S3)  {DesignInstance(design2_I1/instrumentC_I1) {scan_interface : P2 ;}
}

-------------------------------------------------------------
3. Connection of a Parallel Data Instrument
-------------------------------------------------------------

该示例展示如何将一个 instrument 的并行数据端口连接到 TDR。

Instrument

在这里插入图片描述

DftSpecification

将 instrument 连接到 TDR,使其成为 DftSpecification 的一部分。

Tdr(T3) {DataOutPorts {connection(6:0) : design2_I1/instrumentA_I1/INA[6:0] ;}DataInPorts {connection(7:0) : design2_I1/instrumentA_I1/OUT[7:0] ;}
}

Result

IJTAG network 中会有一个 8bit 的 TDR 寄存器。TDR 的 size 根据连接的需求自动确定确定

TDR 包含 8 个数据输入端口,7 个数据输出端口和所有常用的控制信号端口。

instrument 的 7 个最低位(即 7 个数据输入端口)连接到 TDR 的 7 个数据输出端口;相似的,instrument 的 8 个数据输出端口连接到 TDR的 八个数据输入端口。8bit 的 TDR 寄存器从中捕获数据。

-------------------------------------------------------------------------------------
4. Connection of a Parallel Data Instrument to the Top Level
-------------------------------------------------------------------------------------

该示例展示如何将 instrument 的并行数据端口连接到 top level 的数据端口。

Instrument

在这里插入图片描述

DftSpecification

IjtagNetwork {DataOutPorts {connection(6:0) : design2_I1/instrumentA_I1/INA[6:0] ;}DataInPorts {connection(7:0) : design2_I1/instrumentA_I1/OUTA[7:0] ;}
}

如果 top-level 的输入端口已经连接到其他设计的端口,但是你还是希望保留上面定义的连接关系。

在这种情况下,工具会在 connected instrument pins 的 parent instance 中自动插入一个 mux ,在 DftSpecification 中描述与原始连接和新插入的连接之间的切换。

如果连接的引脚是 floating 或者 tied,或者连接到引脚的 net没有 fan-in (multiplexing : auto),工具则不会插入 mux。

所插入的 mux 的 select 连接到 top-level 创建的 DataInPort。

如果想要强制工具总是在 top-level 输入端口和 instrument 的引脚之间插入一个 mux,无论是否需要,需要使用 multiplexing 参数。当然,你也可以强制工具不插入 mux。

在这里插入图片描述

--------------------------------------------------------------------------
5. Connection of a Parallel Data Instrument to a TDR
--------------------------------------------------------------------------

该示例将 instrument 的并行数据端口连接到 TDR,这个 TDR 会在 specification processing 过程中插入。同时,也展示了 multiplexing 参数的使用。

和示例4一样,工具也会分析是否需要插入 mux。不同的是,这里插入的 mux 的 select 端口是连接到插入的 TDR 上的一个额外的 DataOutPort。

DftSpecification

在这里插入图片描述

Result

TDR 的 size 根据连接关系的需求自动确定。在该示例中,IJTAG network 网络中会包含一个 9bit 的 TDR 寄存器:8 个数据输入端口、8 个数据输出端口和所有的控制信号端口。

TDR register 的低 7 位连接到 TDR 的低 7 位数据输出端口,然后连接到 instrument 的 7 个数据输入端口。

相似的, instrument 的 8 个数据输出端口连接到 TDR 的 8 个数据输入端口,然后有 TDR register 的低 8 位来捕获数据。

TDR register 的第 9bit 和第 8 个数据输出端口用于 mux 的 select line。

6. Creation of a TDR With More Bits Than Needed for the Current Specification

基于示例 5,该示例说明当 specification processing 中连接关系未知时,如何在 TDR 中保留额外的 bits。

可以使用参数 length 来指定 TDR register 的 bits 数,但是该数不能小于满足连接关系所需要的最小 bit 数。

DftSpecification

在这里插入图片描述

--------------------------------------------------
7. Connection of an EDT Controller
--------------------------------------------------

------------------------------------------------
8. Connection to a TAP Controller
------------------------------------------------

------------------------------------------------
9. Creation of a Hierarchy of SIBs
------------------------------------------------

-----------------------------------
10. Usage of a ScanMux
-----------------------------------

----------------------------------------------------------------------------------------------------
11. Move of a SIB, TDR, or ScanMux Deeper Into the Design Hierarchy
----------------------------------------------------------------------------------------------------

-------------------------------------------------------------------------------------
12. Change of the Instance Name of a SIB, TDR, or ScanMux
--------------------------------------------------------------------------------------

--------------------------------------------------------------------------------------------------------
13. Change of the Design and ICL Port Names of a SIB, TDR, or ScanMux
--------------------------------------------------------------------------------------------------------

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

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

相关文章

Docker学习(6):Docker Compose部署案例

一、docker-compose部署mysql 1、准备镜像 2、编写my.cnf配置文件 # 服务端参数配置 [mysqld] usermysql # MySQL启动用户 default-storage-engineINNODB # 创建新表时将使用的默认存储引擎 character-set-serverutf8mb4 # 设置mysql服务端默认字符集…

离线+树状数组,ABC253 F - Operations on a Matrix

一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 F - Operations on a Matrix 二、解题报告 1、思路分析 我们通过差分树状数组,可以轻松解决操作1 操作3我们也可以通过树状数组来获取对应列的值 关键是操作2会对操作3造成影响 所以我们先对…

【Linux】yum软件包管理器(使用、生态、yum源切换)

目录 1.yum-软件包管理器😸1.1yum使用方法1.2什么是yum?😸1.3yum的周边生态1.4yum源切换1.4.1 查看系统本身yum源1.4.2 软件源1.4.3yum源配置 1.yum-软件包管理器 以下操作需要联网的情况下进行 😸1.1yum使用方法 安装软件时由于需…

【学习笔记】Day 7

一、进度概述 1、DL-FWI基础入门培训笔记 2、inversionnet_train 试运行——未成功 二、详情 1、InversionNet: 深度学习实现的反演 InversionNet构建了一个具有编码器-解码器结构的卷积神经网络,以模拟地震数据与地下速度结构的对应关系。 (一…

03 库的操作

目录 创建查看修改删除备份和恢复查看连接情况 1. 创建 语法 CRATE DATABASE [IF NOT EXISTS] db_name [create_specification [, create_specification] …] create_specification:  CHARACTER SET charset_name  CPLLATE collation_name 说明: 大写的标识关键…

基于YOLOv8的小麦种子品质检测系统

基于YOLOv8的小麦种子品质检测系统 (价格85) 包含 [bad seed, healthy seed, impurity] 3个类 通过PYQT构建UI界面,包含图片检测,视频检测,摄像头实时检测。 (该系统可以根据数据训练出的yolov8的权重文件,运用在…

【多线程-从零开始-捌】代码案例2—阻塞队列

什么是阻塞队列 阻塞队里是在普通的队列(先进先出队列)基础上,做出了扩充 线程安全 标准库中原有的队列 Queue 和其子类,默认都是线程不安全的 具有阻塞特性 如果队列为空,进行出队列操作,此时就会出现阻…

vue2知识点4(组件 全局组件 局部组件 父子组件的生命周期钩子函数 父子组件之间的数据传递 局部路由)

目录 一、组件 1. 介绍 2. 全局组件 使用全局组件 实例和组件之间的数据不互通 组件复用 data函数式和data对象的区别: 注意 3. 局部组件 全局组件和局部组件的区别: 注册多个子组件(局部组件) 4. 父子组件的生命周期钩子函数 加载渲染过程…

RIP路由协议之网络工程师软考中级

几种常见的路由协议 路由协议名称路由协议分类(工作原理)协议分类(工作区域)路由算法RIP距离矢量IGPBellman-FordOSPF-ISIS链路状态IGPDijkstraBGP路径向量EGP/ IGP称为内部网关协议(I人,内向&#xff09…

python判断和循环语句

python判断语句 1、单个条件判断 if 条件:满足条件要做的事情1满足条件要做的事情2 else:不满足条件要做的事情3不满足条件要做的事情2 2、多个条件判断(满足条件1就不会判断条件2) else可以省略不写 if 条件1:满足条件1要做的事情a满足条件1要做的事…

爆款短视频素材去哪里找?做抖音短视频爆款热门素材网站分享

爆款短视频素材寻宝:哪里是创作者的宝藏地? 在短视频创作的世界里,找到高质量的素材是打造爆款视频的关键。无论你是初入短视频领域的新手,还是拥有庞大粉丝群的资深创作者,选择合适的视频素材网站可以极大提升你的视…

NET 定时器 Timer和线程Thread

是否可以更新UI线程的内容 》》》资源占用:‌ 》定时器可以的,不存在跨线程问题 》Thread创建的线程,不能更新UI线程的内容, 存在跨线程 Control.CheckForIllegalCrossThreadCalls false;//默认是True 》》执行方式&#xff…

软考:软件设计师 — 11.UML 建模

十一. UML 建模 UML 建模部分是下午场考试中第三个题目,分值 15 分。先介绍一下这类题目的考查形式。 1. 考察形式 (1)类图与对象图 填类名,方法名,属性名填关系填多重度 UML 中四种基本关系: 依赖关…

数据库连接池的深入学习

为什么需要数据库连接池? 正常操作数据库需要对其进行连接,访问数据库,执行sql语句,断开连接。 创建数据库连接是一个昂贵的过程,在高并发的情况下,频繁的创建数据库的连接可能会导致数据库宕机。 有了连…

【python015】常见成熟AI-图像识别场景算法清单(已更新)

1.欢迎点赞、关注、批评、指正,互三走起来,小手动起来! 【python015】常见成熟AI-图像识别场景算法清单及代码【python015】常见成熟AI-图像识别场景算法清单及代码【python015】常见成熟AI-图像识别场景算法清单及代码 文章目录 1.背景介绍2…

【ML】self-supervised Learning for speech and Image

【ML】self-supervised Learning for speech and Image 1. self-supervised Learning for speech and Image1.1 自监督学习在语音处理领域的方法及其特点1.2 自监督学习在图像处理领域的方法及其特点 2. Predictive Approach2.1 特点2.2 适用场景 3. contrastive Learning4. 语…

上架10天,下载量6W+!用AI绘画 Stable Diffusion 做表情包真的可以赚钱!(AI绘画副业教程分享)

大家好,我是画画的小强 拜托,你不会还不知道吧,在大家还忙着跟网友斗图的时候,已经有人靠做某信表情包快速变现了!光靠一套表情包就躺赚50W! 紫沐甜心生成的表情包胭脂公主,上架10天后下载量就…

C:冒泡排序

1、冒泡排序介绍: 冒泡排序的核心思想就是:两两相邻的元素进行比较。 先用一个例子来帮助大家理解一下冒泡排序的算法是怎们进行的 有一排高矮不同的人站成一列,要按照从矮到高的顺序重新排队。 冒泡排序的方法就是,从第一个人…

Python代码之特征工程基础

1. 什么是特征工程 特征工程是指从原始数据中提取、转换和创建适合于模型训练的数据特征的过程。它是机器学习和深度学习中非常重要的一步,因为好的特征工程可以显著提高模型的性能。特征工程涉及从数据中提取有意义的信息,并将其转换为模型可以理解和使…