news 2026/7/17 12:22:30

【Tessent】【DftSpecification】【1】【IjtagNetwork】Tdr

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【Tessent】【DftSpecification】【1】【IjtagNetwork】Tdr

Tdr

  • Overview
    • Arguments
    • Example
    • Update Stage Timing
  • Interface
  • DataInPorts
    • Arguments
    • Examples
  • DataOutPorts
  • DecodedSignal

Overview


A wrapper that specifies the creation and, optionally, the insertion of a TDR inside the IJTAG network.

Tdr Wrapper 中包含的内容如下:


Arguments


  • id

    一个只能包含字母、数组和下划线的唯一 id,也就是 Tdr 的名称。 IjtagNetwork wrapper 中的每一个 Tdr Wrapper 的 id 不能相同。

  • so_retiming : on | off

    用来指定 scan_out 信号上是否需要一个 retiming element,默认值是 on。

    如果 so_retiming 为 on,Tessent 工具在插入 TDR 的时候会在 scan_out 端口插入一个负沿触发的 reg,用于 scan chain retiming。

  • parent_instance : instance_name

    指定 TDR 插入的位置。

    如果没有指定内容,TDR 会被插入到同时包含 DataInPorts、DataOutPorts 和 DecodedSignal 的那个 instances 中。

    使用该选项将 TDR 放到不同的位置,如果将 parent_instance 设置为.,TDR 会被强制放在 root module,不再依赖其端口的连接关系。

    如果 TDR Wrapper 中没有指定 DataInPorts 和 DataOutPorts 的连接关系,parent_instance 默认为 root module。

    如果 parent_instance 是一个 repeated module 的 instance(直接指定或者是工具推断出的某个默认值),Tessent 工具在 Vaildation 阶段会给出一个 wraning,然后自动使用uniquify_instances命令来对 instance_name 指定的 instance 进行 uniquify。(所谓 uniquify 就是创建一个新的 module,只给当前 instance 使用。)

    如果想要在 IjtagNetwork Insertion 的时候不对 repeated module 进行 uniquify,可以将 current design 设置为对应的 module,在该 module 中插入 IJTAG Network,然后在 next level 的时候,将其设置为 DesignInstance wrapper。

  • leaf_instance_name : leaf_instance_name

    指定 TDR 的 leaf instance name.

    如果没有指定内容,默认值是 design_name_design_spec_id_tessent_tdr_tdr_id_inst,其中 design_spec_id 是 DftSpecification wrapper 中指定的 id,tdr_id 是当前 Tdr 的 id。

    Tessent 工具在例化 TDR 的时候会检查是否已经有同名的 tdr 存在,可以使用set_insertion_option命令来指定 uniquification suffix。

    Tessent 工具生成的 Tdr 的 module name 为 design_name_design_id_tessent_tdr_id,末尾的 id 指的是当前 Tdr 的 id。

    当 DftSpecification 中的 reuse_modules_when_possible 属性的值是 off 的时候,Tessent 工具会为每一个 Tdr Wrapper 创建唯一的 module;当其为 on 的时候,如果 tdr wrapper 中定义的内容相同,工具会复用 TDR module,而不是创建一个新的。

  • keep_active_during_scan_test : on | off | auto

    指定连接到该 TDRs 的所有 nodes 在 Scan Test Mode 都保持 active。

  • length : integer

    指定移位寄存器的长度。

    默认情况下,移位寄存器的长度足以满足 DataInPorts/count、DataOutPorts/count 或 DecodedSignal/decode_values 中指定的内容。

  • extra_bits_capture_value : 0 | 1 | self

    TDRs 位宽中超出指定值部分的值。

    A property that applies to the upper bits of the TDR when the length is larger than the DataInPorts/count value.

    The specified values control what the extra shift register bits capture during the capture cycle.

  • reset_value : binary

    指定 DataOutPorts 和 DecodedSignals 的复位值。

  • Attributes/attribute_name : attribute_value

    A data wrapper that defines arbitrary attributes in the TDR ICL module.


Example


一个 3bit TDR 的内部结构和端口如下图所示:

其对应的 Spec 文件如下:

Dftsepcification(MyCore,rtl){IjtagNetwork{HostScanInterface(purple){Tdr(blue){length:3;extra_bits_capture_value:self;DataOutPorts{count:3;port_naming:Dout[%d];output_timing(0):ijtag_scan_selection;output_timing(1):normal;output_timing(2):unlarched;}DataInPorts{count:1;port_naming:Din%d;}DecodedSignal(SigA){decode_values:3'bx00;output_timing:ijtag_scan_selection;}DecodedSignal(SigB){decode_values:3'bx01;output_timing:normal;}DecodedSignal(SigC){decode_values:3'bx1x;output_timing:unlatched;}}}}}

如果 Tdr Wrapper 中定义了>Update Stage Timing


IJTAG Network 和 IEEE 1149.1 或 IEEE 1500 Network 的结构是十分相似的,但是在 IJTAG Network 中 TDR 的输出可以用作部分 Network 的的使能信号。

如果 Tdr 的输出数据被用作部分 IJTAG Network 的使能信号(enable 或 disable),为了避免出现竞争,输出端口需要额外增加额外的延时。

如下图所示的电路,update_en 使能之后,S1 在 tck1 的下降沿(有效沿)到来之后发生变化。

如果 Soure Box 中没有 delay stage,S1 处的变化并迅速传递到 S3(S1 & update_en),Destination Box 中的 update stage 的时钟有效沿和使能信号同时跳变,这个时候就出现了 race。

如果 tck1 和 tck2 之间存在很大的 clock skew,那么 Destination Box 就不能完成 Update 操作。

针对这个问题,最直接的解决方法就是 TCK 的 CTS 做的非常细致,确保这里不会出现时序问题。

Tessent 工具的做法是在 Soure Box 中插入 delay stage,让 S3 处的使能信号的持续时间更长。这样一来,即使 TCK 的 Clock Skew 很大,也不对引起竞争冒险问题,确保 Destination Box 能够正确的完成 update 操作。


Interface


A wrapper that provides properties to fully specify the names of the eightclient portsof the TDR.

Interface Wrapper 用于定义 IEEE 1687 规定的标准端口的名称,其包含的内容如下:

一般情况下都是使用默认的端口名称,如果想要使用其他名称,可以做如下定义:


Interface Wrapper 中的 8 个端口是必须要有的,所有 Tdr 都会有这 8 个端口。

如下图所示,在 Dft Spec 中定义名称为 PERIPLL_CFG1 的 Tdr,只指定 32bit 的输入输出端口,Tessent 工具最终生成的 Tdr 中也是包含 8 个控制端口的, 这些端口的名称使用的是默认名称。

定义:

实现:


DataInPorts


A wrapper that specifies the number (count) of />


Arguments


  • count :integer
    指定 TDR 上所需要的>Examples

    示例1

    定义两个>DftSpecitication(MyCore,rtl){IjtagNetwork{HostScanInterface(purple){Sib(orange){Tdr(orange){DataInPorts{connection(0):u2/top_green/go;connection(1):u2/top_green/done;}}}}}}


    DataOutPorts


    A wrapper that specifies the number (count) of>Uasge

    Arguments

    • multiplexing : on | off | auto
      指定在连接到 pin_name 的时候是否需要添加 mux 。默认值是 auto。
      当设置为 auto 时,如果 pin 没有连接或者连接到一个固定值,或者连接到没有扇入 net,工具都会插入一个 mux。一旦连接关系中需要插入 mux,工具还会自动添加一个额外的 date-out port 来控制 mux 。
      mux 会被插入到 pin_name 所在的 parent_instance 。

    Examples

    指定>DftSpecitication(clk_gen,bottom_up){IjtagNetwork{HostScanInterface(ijtag){Tdr(1){DataOutPorts{connection(5:3):pll/mult[2:0];connection(2:0):pll/div[2:0];port_naming:mux_sel,mult[2:0],div[2:0];}DataInPorts{connection(0):pll/locked;port_naming:locked;}}}}}

    Multiplexing 没有指定值,所以应该是默认是 auto。因为 pll/mult[2:0] 和 pll/div[2:0] 这两个 pins 还有 functional source,所以会插入 mux,data-out 端口的第 7 个 bit 命名为 mux_sel ,用以控制 mux。


    DecodedSignal


    A wrapper that specifies the creation of a decoded signal.

    Uasge

    decode_values 用于指定 TDR 的哪些值可以激活解码信号。

    Arguments

    • decode_values :binary_code, ...
      指定一个二进制编码列表,用于定义 decoded signal 的激活条件。二进制编码的宽度必须和 TDR 一样,编码中可以包含 X 值,但是保证至少有一个 0 或者 1。

    (遗留问题:decoded signal 的输出取决于什么? )

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/17 12:22:19

基于Java+MySQL+SSM杂志在线阅读网站设计与实现

系列文章目录 项目介绍 开发环境 系统实现 论文参考 项目介绍 传统办法管理信息首先需要花费的时间比较多,其次数据出错率比较高,而且对错误的数据进行更改也比较困难,最后,检索数据费事费力。因此,在计算机上安装…

作者头像 李华
网站建设 2026/7/17 12:21:42

5分钟掌握VideoDownloadHelper:免费Chrome视频下载插件完整教程

5分钟掌握VideoDownloadHelper:免费Chrome视频下载插件完整教程 【免费下载链接】VideoDownloadHelper Chrome Extension to Help Download Video for Some Video Sites. 项目地址: https://gitcode.com/gh_mirrors/vi/VideoDownloadHelper 还在为无法离线观…

作者头像 李华
网站建设 2026/7/17 12:20:31

如何在iPhone上畅玩Minecraft Java版?PojavLauncher iOS完整指南

如何在iPhone上畅玩Minecraft Java版?PojavLauncher iOS完整指南 【免费下载链接】PojavLauncher_iOS A Minecraft: Java Edition Launcher for Android and iOS based on Boardwalk. Succeeded by https://github.com/AngelAuraMC/Amethyst-iOS 项目地址: https:…

作者头像 李华
网站建设 2026/7/17 12:20:27

jspm校园闲置物品交易平台

文章目录 目录 文章目录 论文目录 项目介绍 开发环境 系统实现 论文参考 论文目录 第一章 绪 论 1.1研究背景 1.2系统研究现状 1.3 研究意义 1.4 研究方法和设计思路 1.4.1研究方法 1.4.2设计思路 第二章 开发工具和开发技术 2.1开发工具 2.2 开发技…

作者头像 李华
网站建设 2026/7/17 12:20:13

网上订餐系统ssm

文章目录 目录 文章目录 论文目录 项目介绍 开发环境 系统实现 论文参考 论文目录 目 录 1 绪论 1.1 研究背景 1.2 目的和意义 1.3 论文结构安排 2 相关技术 2.1 SSM框架介绍 2.2 B/S结构介绍 2.3 Mysql数据库介绍 3 系统分析 3.1 系统可行性分析 …

作者头像 李华
网站建设 2026/7/17 12:19:59

AC/DC转换:无变压器方案的技术挑战与应用场景

1. 交流转直流的本质需求解析在电子设备供电系统中,交流转直流(AC/DC)是最基础也最关键的环节之一。传统方案中,变压器因其电压变换和电气隔离的特性,成为AC/DC转换的核心组件。但近年来随着半导体技术的发展&#xff…

作者头像 李华