Tessent Shell Flow for Flat Designs
- Overview of the RTL and Scan DFT Insertion Flow
- First DFT Insertion Pass: Performing MemoryBIST and Boundary Scan
- Second DFT Insertion Pass: EDT, Hybrid TK/LBIST, and OCC
- Performing Synthesis
- Performing Scan Chain Insertion (Flat Design)
- Performing ATPG Pattern Generation
- Simulating LBIST Faults
- Considerations for Using Gate-Level Verilog Netlists
Tessent Shell 的 workflow 可以分为两大类:pre-layout 和 post-layout。
pre-layout DFT 流程是使用 Tessent Shell 对 flat 或者 hierarchical 设计进行操作;post-layout flow 是对完成布局布线的网表进行操作。
在 flat design 的 RTL 和 Scan DFT 插入流程中,可以对整个 chip-level 的设计进行 DFT 插入。
flat DFT 实现的过程和设计的物理实现过程一致,主要流程包括如下步骤:
(工具手册中带有示例,后面有时间看一下。)
Overview of the RTL and Scan DFT Insertion Flow
无论是 flat design 还是 hierarchical design ,RTL 和 Scan DFT 插入流程都需要两个过程(two-pass insertion process)来完成 DFT 硬件的插入,如下图所示。
在这里,EDT 仅指 embedded deterministic test IP,LBIST 指的是 TK/LBIST IP,它也会包含 EDT。(EDT是 LBIST 的子集,可以只有 EDT 没有 LBIST,但是 LBIST 不能没有 EDT 。)
在第一步中, Tessent 插入 IJTAG 网络和使用 ICL(Instrument Connectivity Language)描述的 IJTAG instruments 。【MBIST Controller 也属于是 IJATG Instrument】
在第二步中, 工具检查 MemoryBIST 逻辑和剩余的功能逻辑,防止 DFT 信号和 IJTAG network 连接关系导致的覆盖率丢失和 pattern 数量增加。
scan insertion 可以和 synthesis 同时进行(就是在综合的时候,使用第三方工具进行扫描链插入),这不会对 DFT 的插入产生影响, 但是后面用 Tessent Shell 进行 ATPG pattern generation 的时候会麻烦一些。
下图所示为 DFT 插入前后的电路结构:
MemoryBIST (黄色)的时钟用的是 memory 的功能时钟;IJATG network(蓝色)使用 IJTAG 时钟(也就是 TCK 时钟)进行扫描测试。TAP network (红色)不进行 sacn test(non-scan during ATPG)。
First DFT Insertion Pass: Performing MemoryBIST and Boundary Scan
Memory BIST 和 Boundary Scan 在 EDT 和 OCC 之前插入,这样可以较为准确的估算的需要被测试的扫描时序单元( scannable sequential elements ,often referred to as “flops”)的数量。
Flops 的数量决定了第二步中 Tessent 生成的 EDT 控制器的大小。
Memory BIST 和 Boundary Scan 的插入过程具体可以参考对应的手册,
准备工作
- 如果使用的是 chip-level 的 design,为了插入 Boundary Scan,必须有带有实例化 IO pads 的 RTL design。
- 对于 RTL netlist,必须有 Teseent Cell Library 或者是 IO pads 对应的 pad library。
具体过程
-
加载 RTL 设计 数据
-
在第一步的插入过程中,
set_context -design_id
选项一般设置为 “rtl1”。
-design_id
会将特定 DFT 插入过程的所有的数据存储到 TSDB 中。对于第一个插入过程,rtl1 包含了 MBIST、Boundary Scan 和 IJRAG 的数据。(rtl1只是一个推荐名称,可以任意指定。) -
set_dft_specification_requirements
命令的-memory_test
设为 “auto” ,-boundary_scan
选项设置为 “on”,告诉工具同时进行 MBIST 和 Boundary Scan 的生成。 -
设定 design-level;
-
配置测试引脚和特殊引脚;
(从命令上看,这些应该只是对设计中现有的引脚进行配置,没有增加新的引脚。)
-
使用
check_design_rules
命令使工具从 setup mode 进入到 analysis mode,如果设计存在问题,工具会保持在 setup mode; -
创建 DFT 规范 ;(33-43)
为了使功能引脚能够被共享为 EDT channel 的引脚,在插入 boundary scan 的时候必须插入备用输入和输出,避免沿着功能路径级联多个选择器(multiplexers);(详细内容参考reference manual 的 AuxiliaryInputOutputPorts wrapper )
-
创建 DFT 硬件、提取 current design 的 ICL 、生成仿真仿真验证所需要的 patterns;
-
仿真验证
结果
对于 MemoryBIST,Tessent 插入 MemoryBIST 控制器、interface、BIST Access Port(BAP)、segment insertion bits(SIBs)。这些硬件结构会使用后续插入的 EDT 进行 scan test。
此外,Tessent 还会自动将预先存在的 scan testable instruments 和 scan resource instruments 分别连接到 IJTAG 网络的 Scan Tested