Tessent专栏第二篇:Tessent Shell ETChecker介绍(1)

目录

 

前言

1. Tessent Shell ETChecker与传统ETChecker的对比

1.1 工具比较

1.1.1 TS-ETChecker支持的功能

1.1.2 TS-ETChecker和传统ETChecker的区别

1.2 默认TS-ETChecker调用

1.3 支持的ETChecker约束

1.4 DRC规则名称对应


前言

这是专栏的第二篇,主要是翻译了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,了解这些对应关系的列表。

image.png

image.png

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计算是在什么时候或在什么规则下发生的。
      • 大多数 SanityRulesConstraintRules都是即时报告的,并直接反映在TS-ETChecker抄本中。SanityRules不需要相应的文档,因为这些规则只检查基本的约束语法。ConstraintRules验证约束与设计的一致性以及它们与其他约束的交互,总是将规则标识符(ETC_CR#)附加到它们的错误消息中,以便于文档查找。
      • ConsistencyRules在TS-ETChecker context中是不相关的。
      • 旧的 VerilogRulesVHDLRules要么由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对应关系。

image.png

表1-4显示了传统ETChecker规则和TS-ETChecker规则之间的DRC对应关系:AnalysisRules with –logic ON。

image.png

表1-5显示了传统ETChecker规则和TS-ETChecker规则之间的DRC对应关系:ClockRules with –logic ON。

image.png

image.png

表1-6显示了传统ETChecker规则与 ScanRule 和 BottomUpRule的TS-ETChecker规则之间的DRC对应关系。

image.png

image.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值