
Introduction to Tessent Scan
Tessent Scan使用极其灵活,有多种选项和功能 。使用Tessent Scan,可以分析设计,根据设计和用户约束分配新的扫描链,并在对设计执行实际扫描插入之前分析扫描链的分布和平衡。Tessent Scan的另一个重要功能是多模式扫描插入功能。对于多模式,可以指定任意数量的扫描模式或扫描配置。

图5-1显示了合成工具外的网表如何与Tessent Scan一起使用。网表可以替换扫描单元而不缝合,或者只替换非扫描单元,而非扫描单元可以在执行扫描缝合时替换为扫描单元。设计规则检查是从系统模式设置转换为分析时运行的S规则。仅当在要实现分层DFT的分层区域上执行扫描插入时,才需要标识包装单元,其中用于测试此块/模块逻辑的测试模式可以独立运行和/或计划从下一级别重新定位。如果使用分层测试应用程序,则需要在指定扫描配置之前识别包装单元。这在包裹型芯的扫描插入部分中进行了描述。可以提供输入以指定所需的扫描配置,以便在插入和缝合扫描链之前对其进行分析。可以更改扫描配置规范,以查看扫描链在通过执行分析缝合后将如何结束。插入扫描链后,会写出网表和TCD(Tessent Core Description),其中包含扫描更改如何缝合的详细信息
这些是Tessent Scan的一些功能:
1.支持多模式扫描插入,所有模式的扫描链长度均为最佳。
2.它允许将扫描分析阶段与扫描链的实际缝合分开,并在缝合之前提供扫描链分布。
3.它支持扫描数据模型的自我检查,并允许指定扫描拼接期间扫描单元的分组方式
Tessent Scan使用以下输入:
• Design (netlist)-需要提供Verilog门级网络列表作为输入。
• Circuit Setup (or Dofile or Tcl file) -这是一组命令,提供有关电路和如何插入测试结构的工具信息。您可以在工具任务中以交互方式发出这些命令,或将其放置在dofile或Tcl文件中。
• Library -Tessent Cell库包含设计使用的所有单元的描述。该库还包括工具用于将非扫描单元映射到扫描单元以及为添加的测试逻辑电路选择组件的信息。
• Input TCD File-如果有在*中描述的预先存在的扫描段。tcd_scan文件,然后需要提供它们作为扫描插入的输入。你可以阅读使用setdesignsources命令。tcd_scan文件的完整语法可在《Tessent Shell参考手册》的扫描部分找到。此外,如果预先存在扫描段的CTL模型,可以使用stil2mgc转换这些模型,然后读入。
• Test Procedure File-该文件定义了通过定义的扫描链移动扫描数据的刺激。此输入仅在包含预先存在的扫描电路或需要初始化测试模式(测试设置)的设计上是必需的。
Tessent Scan生成以下输出:
• Design (Netlist) -该网络列表包含使用插入的测试结构修改的原始设计。输出网络列表格式为门级Verilog
• TCD (Tessent Core Description) -此文件包含扫描插入期间指定的所有扫描模式。ATPG工具使用此文件生成模式。如果从以前的插入过程或较低级别的核心读取任何.tcd文件,则扫描模式将附加到输入*.tcd文件,并写入tsdb_outdir目录
图5-6是内存模块内描述的带有子链/段的扫描元件的示例。可以使用输入tcd_scan文件或add_scan_segments命令描述该扫描元素。

扫描元素对象类型在《Tessent Shell参考手册》的扫描数据模型一节中进行了描述。它可以在设计中进行反思,并且属性友好。这有助于描述所需的扫描配置。大多数扫描元素叶是根据DRC结果填充的,但有些是通过计划插入某些类型的模块(如专用包装单元)来推断的;这些扫描元素被认为是“虚拟的”,因为它们还不存在,但为了分析和规划目的,假设存在。
命令create_scan_chain_family使更高级的用户能够控制如何将特定扫描元素子填充分配到链中。例如,如果只想对外部链端口使用特殊命名,可以通过为外部扫描元素的子总体创建扫描链族来实现,如下所示:
未包装的core是不包含包装cell的物理块。包裹core是包含包裹单元的物理块。包装core用于分层设计的RTL和扫描DFT插入流。对于未包装的core,扫描插入作为core单个视图执行。对于包裹的core,对core的两个视图执行扫描插入:内部模式和外部模式。在扫描插入过程中,包装单元被缝合成单独的扫描链,称为包装链。包装链内的逻辑称为核心的内部模式,而包装链外的逻辑称之为核心的外部模式。下图显示了一个未包装的core和一个已包装的core。

包装单元可以是专用单元类型,也可以是具有功能性触发器的共享包装单元类型。如果生成的ATPG模式要在核心实例化的下一个父级重新定位,请使用包装的核心。当在下一个父级组合或分组多个包裹核心以生成ATPG模式时,包裹核心也是必要的。如果不打算重新定位ATPG模式,那么不包装核心就足够了。
如果设计中有扫描段,则使用子模块的输入tcd_scan文件描述这些扫描段。输入tcd_scan文件的完整语法为如《Tessent Shell参考手册》的扫描部分所述。此方法独立于dofile,只需要在设计时读入tcd_scan文件。这对于带有预先存在的扫描段的IP或具有内置旁路扫描链的内存非常有效。
下面是读取tcd file
可以使用add_scan_segments命令描述设计中存在的扫描段。在存在预先存在扫描段的子模块的每个设计中,都需要使用add_scan_segments命令。需要提供加载/卸载testproc文件,以帮助工具跟踪这些子链。
例如:
以下是连接到EDT IP后如何指定预先存在的扫描链的示例: