目录
1. Tessent Shell ETChecker与传统ETChecker的对比
1.1.2 TS-ETChecker和传统ETChecker的区别
前言
这是专栏的第二篇,主要是翻译了Tessent2019版本官方文档中的《Tessent Shell ETChecker for the LV Flow User's Manual》的前三章,Tessent的文档有四十多篇,每一篇几乎都是至少两百页,最多能到七百页的大部头,而且都是英文,啃起来真的费劲。就是借助翻译工具去边翻译边学习,阅读这些文档也是一件艰辛的事情,不过也别无他法,要掌握这系列工具,官方文档是绕不过去的。
去年大半年一直在用2013版本的Tessent,直到后来遇到某个工具证书失效的问题,一直没法解决,后而转用2019版本。2013版本和2019版本差别还比较大,主要是体现在ETChecker这个步骤,2019版本中是将ETChecker升级成了Tessent Shell ETChecker,在操作上虽然2019版本是可以兼容2013版本的,不过了解一下升级后的操作也是有必要的。
以下就是Tessent Shell ETChecker前三章的正文,有一些机翻还是比较生硬的,但是似乎也很难找到更顺畅的表达,反正是工具性的文档,意思到了即可。
本来想三章内容一起放,无奈会闪退,故分成两篇文章
1. Tessent Shell ETChecker与传统ETChecker的对比
Tessent Shell ETChecker是传统LV Flow的ETChecker的下一代替代品,传统ETChecker是一种RTL分析工具,可以执行规则检查,提取信息,并为后续的自动测试设计(DFT)插入准备您的设计。Tessent Shell ETChecker利用Tessent Shell自省和图形功能来执行与传统ETChecker工具相同的任务。Tessent Shell ETChecker支持读取与以前相同的传统ETChecker命令文件、约束和flow约定,并且与传统ETChecker向后兼容。
在本文中,术语“ETChecker”指的是Tessent Shell ETChecker。在比较两种工具时,“传统ETChecker”一词仅用于澄清。
1.1 工具比较
Tessent Shell ETChecker执行以前由传统ETChecker执行的大部分功能。然而,这两种工具支持的内容有所不同。
1.1.1 TS-ETChecker支持的功能
TS-ETChecker,像传统ETChecker一样,可以执行以下设计功能:
-
-
- 执行传统ETChecker命令行,支持相同的选项。
- 读取包含约束条件的传统ETChecker输入配置文件,例如lv.EmbeddedTest、lv.memoryInstance。
- 检测并报告会影响下游DFT插入的违反设计规则的情况。
- 生成向后兼容的 .etCheckerInfo文件,包含LV Flow所需的所有设计信息。
- 生成其他辅助文件,为LV FLow准备设计并理解其结构。这些文件的名称如下:
-
-
-
-
- .etpClockDomainInfo
- .etpClockTree
- .etpDiInfo
- .etpInfoFixTestability
- .etpInfoFixViolations
- .etpPhysicalInfo
- .etpClock
-
-
从Tessent v2017.1版本开始,以下传统ETChecker文件不是由TS-ETChecker生成的:
-
-
- .etpConstraints
- .etpScanInfo
-
大多数TS-ETChecker输入命令行选项和约束与传统ETChecker直接向后兼容,允许Tessent Shell从传统LV Flow生成文件运行,并使用旧的LV设计数据库。
1.1.2 TS-ETChecker和传统ETChecker的区别
这两种工具之间的主要区别如下:
1)基于图形用户界面(GUI)的调试现在是用Tessent Visualizer工具完成的,而不是传统的ETChecker GUI。Tessent Visualizer工具的操作不同,但该工具支持增量原理图(incremental schematics)、跟踪、注释以及源代码和原理图之间的交叉引用等相同的主要功能。
2)TS-ETChecker支持传统的ETChecker batch模式,但也提供了一个完全交互式的基于Shell的模式,以及自检和脚本功能。
3)不再支持传统lv.padCell和lv.MemoryModule约束。对于pad.library和 .memlib文件,您必须使用通常的 -memlib和 -padlib命令行选项显式加载到TS-ETChecker中。
4)规则的命名不同于传统的ETChecker,并且并不总是直接对应于一个特定的传统ETChecker规则,尽管为了便于工具之间的迁移和最大限度地减少对文档的影响,已经花费了很大的努力来保留类似的规则命名和编号。
5)所有违反规则的行为都会直接在输出文本中得到回应。最基本的约束语法验证(Sanity Rules)和一致性验证(Constraint Rules)称为“Unregistered DRCs”,只显示在该文件中。在一个名为<design>.report_drc_<mode_name> 的单独输出文件中,包含违规的已注册DRCs的摘要,仅当至少发生一次已注册DRC违规时,才会写入输出目录。日志文件中始终会报告未注册的DRC违规。本文件后面提供了已注册的DRCs的完整列表。
6)支持带绑定时钟和绑定有效置位/复位的触发器。-noReport选项与lv.NonScanInstance约束一起提供,以支持这一点。
1.2 默认TS-ETChecker调用
LV Flow“etchecker”命令现在默认运行TS-ETChecker,而不是传统的ETChecker。TS-ETChecker子调用(sub-invokes)Tessent Shell读取命令行选项,加载设计,运行适当的DRC集,并生成输出文件。Tessent v2017.2版本不再提供传统的ETChecker。
1.3 支持的ETChecker约束
TS-ETChecker支持传统的ETChecker约束,使用相同的语法和选项,除了以下几点:
1)大多数以 lv.xxx形式的约束被翻译成一个或多个相关的Tessent Shell命令。Tessent Shell命令以下列方式回显到日志文件中:
"// translated command:<command>."
参见表1-1,了解这些对应关系的列表。
2)当lv.Target类型为Top时,必须使用lv.JTAGOption声明TAP引脚,否则工具会报告错误。如果 -bscan为ON,则该错误是致命的。
3)TS-ETChecker不支持lv.padCell和lv.MemoryModule约束。对于pad.library和 .memlib文件,您必须使用通常的 -memlib和 -padlib命令行选项将这些文件显式加载到TS-ETChecker中。你不能再绕过那些文件了。从积极的一面来看,这些文件的语法甚至在开始LV Flow之前就得到充分的验证。
4)带有嵌入式扫描单元的设计必须使ebscan单元的 .lvbscan描述文件与该单元加载的模拟或扫描模型一起可用。这样做是为了让TS-ETChecker可以自动导入这些文件。在传统的ETChecker中,ebscan单元的 .etcScanData中的一个lv.PadCell声明就足以开始简单的设计规则检查。
表1-1提供了 ETChecker 约束和相应的Tessent Shell命令的完整列表。
TS-ETChecker遵循传统ETChecker工具在以下所有对象的支持约束中设计对象规范的约定:
-
-
- 端口、引脚、网络、模块和实例
- Verilog和VHDL转义名称
- 生成块和循环语法
- 模块和实例定义(glob)中的通配符
- 实例数组
-
生成块/循环的语法得到增强,以更好地支持带有转义名称的块/循环。有关完整信息,请参考Tessent Shell Reference Manual 中的“HDL Limitations in the Tessent Shell Flow”。
TS-ETChecker中的DRCs使用Tessent Shell引擎,DRCs覆盖所有可能导致DFT插入失败的问题。DRC规则的命名和分组不同于传统的ETChecker。这些DRC规则中的许多规则与Tessent Shell MemoryBIST和Tessent Shell BoundaryScan产品共享,而逻辑测试DRC规则直接来自Tessent FastScan。请参见第22页的 “DRC Rule Name Correspondence”。
输出 .etCheckerInfo文件内容与LV Flow完全向后兼容。由于在TS-ETChecker中的优化,一些过时的LV Flow包装器或属性以及在某些context中没有使用的属性和包装器不会被工具写出。
TS-ETChecker和传统ETChecker之间的其他区别在第261页的“TS-ETChecker Versus Legacy ETChecker” 和第273页的“VHDL Flow Changes”中有详细说明。
1.4 DRC规则名称对应
TS-ETChecker运行传统ETChecker覆盖的所有DFT规则。然而,传统的ETChecker规则在TS-ETChecker中被重新命名,在某些情况下被重新组织如下:参考第97页的“Rules Verified by ETChecker”,获得支持的TS-ETChecker规则的完整列表。
1)TS-ETChecker和Tessent Shell MemoryBIST工具之间共享许多规则。在这种情况下,TS-ETChecker使用Tessent Shell MemoryBIST DRCs名称。
2)传统ETChecker和TS-ETChecker之间的给定规则并不总是一一对应的。例如,许多单一的Tessent Shell规则同时覆盖了几个传统的ETChecker规则。工具产生的错误信息也有所不同。
3)Tessent FastScan E5、E10和E11规则取代了一系列传统ScanRule检查。TS-ETChecker产生的DRC信息与传统规则有很大不同。此外,错误消息通常涉及Tessent FastScan生成的平面模型对象,如总线和ZVAL单元。E5严重性设置为错误,E10和E11严重性都设置为警告。在Tessent Visualizer工具中调试这些设计规则之前,请参考 Tessent Shell Reference Manual的“Design Rule Checking”部分。
4)您不能在旧的ETChecker脚本中重用 – ignoreRules和 – waiver命令行选项。规则名称在传统ETChecker和TS-ETChecker之间改变。然而,通过为每个降级的规则类调用下面的Tessent Shell命令,并将其放在您的etchecker输入配置文件中,您仍然可以在每个规则类的基础上waive DRC。TS-ETChecker将在运行DRCs之前执行这些命令。
set_drc_handling drc_id Warning
这将把drc_id正常致命错误变成一个简单的警告,这样您仍然可以在日志文件中看到违规的痕迹。只有“注册”的DRCs可以这样降级。drc_id只能采用以下值:
DFT_C8, DFT_C9, and DFT_C10
ETC_C4, ETC_C12, ETC_C16, ETC_C18, ETC_C22, and ETC_C26
ETC_CR23, ETC_CR44, and ETC_CR46
ETC_BU1 and ETC_BU2
ETC_S1, ETC_S5, ETC_S6, ETC_S6a, ETC_S7, ETC_S15, ETC_S16, ETC_S17,
ETC_S18, and ETC_S20
为了简化工具之间的迁移,许多终TS-ETChecker DRC名称使用以下约定直接映射到其等效的传统ETChecker名称:
AnalysisRule_n -> ETC_An
ClockRule_n -> ETC_Cn
ScanRule_n -> ETC_Sn
ConstraintRule_n -> ETC_CRn
这种映射约定允许在传统ETChecker和TS-ETChecker之间交叉检查DRC违规。参见第24页的表1-3、第25页的表1-4、第25页的表1-5和第26页的表1-6。如前所述,并非所有的传统ETChecker规则都映射到TS-ETChecker中的命名规则。此映射的例外情况如下:
-
-
- 大多数 AnalysisRules与同名的ETC_A#没有直接的对应关系。根据传统ETChecker的设计,任何信息处理步骤都必须封装在给定的命名规则中。相比之下,在系统模式转换(set_system_mode命令)期间,ETChecker可以在任何需要的地方运行这种处理。第24页的表1-3和第25页的表1-4详细说明了旧的AnalysisRule计算是在什么时候或在什么规则下发生的。
- 大多数 SanityRules和 ConstraintRules都是即时报告的,并直接反映在TS-ETChecker抄本中。SanityRules不需要相应的文档,因为这些规则只检查基本的约束语法。ConstraintRules验证约束与设计的一致性以及它们与其他约束的交互,总是将规则标识符(ETC_CR#)附加到它们的错误消息中,以便于文档查找。
- ConsistencyRules在TS-ETChecker context中是不相关的。
- 旧的 VerilogRules和VHDLRules要么由Tessent Shell RTL解析器间接验证,要么不再适用。本手册中没有记录这些规则。
- 所有 info_name 遗留规则都没有映射,因为这些规则是正常处理的运行步骤,不需要TS-ETChecker中的命名规则。表1-2列出了这些规则和相应的文件名。
-
Table 1-2. Info_ Rule File Mapping
Info_clock | Generate the .etpClockDomainInfo file |
Info_clock_tree | Generate the .etpClockTree file |
Info_etCheckerInfo | Generate the .etCheckerInfo file |
Info_Physical | Generate the .etpPhysicalInfo file |
Info_ScanType | Generate the .etpScanData file |
Info_FixViolations | Generate the .etpInfoFixViolation file |
Info_FixTestability | Generate the .etpInfoFixTestability file |
Info_DedicatedIsolation | Generate the .etpDIInfo file |
Info_constraints | Generate the .etpConstraints file(not supported in TS-ETChecker) |
如前所述,并非所有的传统ETChecker规则都映射到TS-ETChecker中的命名规则。表1-3和表1-4列出了这种映射的例外情况。表1-3列出了传统ETChecker规则和TS-ETChecker规则之间的DRC对应关系。
表1-3列出了传统ETChecker规则和TS-ETChecker规则之间的DRC对应关系。
表1-4显示了传统ETChecker规则和TS-ETChecker规则之间的DRC对应关系:AnalysisRules with –logic ON。
表1-5显示了传统ETChecker规则和TS-ETChecker规则之间的DRC对应关系:ClockRules with –logic ON。
表1-6显示了传统ETChecker规则与 ScanRule 和 BottomUpRule的TS-ETChecker规则之间的DRC对应关系。