文章目录

  • 背景:reorder和repartition的概念
  • DEF文件的结构
  • 写出sdf文件
  • 一些好文链接

Scan Def文件是在我们insert DFT之后write out出来,本篇博文对Scan Def的基本概念,以及def文件的格式进行介绍。
版权所有,请勿随意转载
作者:ciscomonkey

背景:reorder和repartition的概念

因为scan insert 会增加很多额外的路径,为了符合die的大小和时序需求,我们应该尽可能地减小这些路径,其中一种优化方式就是基于物理信息来优化。
什么是Scan Reorder
如下图所示,在一条scan chain里面,交换s’can cell的顺序,就是Scan reorder。从而解决了一些route太长的问题。

什么是Scan Repartition
如下图所示,在Scan chain与Scan chain之间,互相交换Scan cell,叫做Scan Repartition。必须要补充说明的是这里我所说的交换,是只在report里面的内容上面的交换,并是这两个cell的位置交换,记住,我们的任务是要减少routing。如下,我将继续用swap来说明,但始终注意并不是交换scan cell的物理位置,只是,交换chain 的scan element。

在Scan reordering 和repartition的时候,也不是任意可以交换的。需要考虑的因素有clock mixing, DFT partitions ,multivotage regions和 multiple test modes。所以传达这个信息的方式,我们用DEF来描述,只需要告诉Layout 工具哪些是可以reordering 哪些可以repartition,后端工具无需去理解DFT 的约束。

DEF文件的结构

def文件采用了stub chain来定义,stub chain并不等同于Scan chain,他是Scan chain 的element。另外def文件的cell并不包含所有的cell,不能优化的cell,不会出现。例子如下:


DEF文件如上图所示,总共有8条chain,列举了产生的前3条,stub chain的内容。
**START 和STOP:**指的是stub chain的边界。边界可能是I/O ports,logic gates,latch, buffer等
**FLOATING:**指的是unordered list ,可以被后端用来自由的reorder。当然是在当前这个stub chain内。
**ORDERED: ** 描述了在该组内不能reorder的scan cell,但可以整体在stub chain里面进行reorder,换句话说就是order里面的内容是捆绑在一起的,不能对捆绑的内容进行改变了,只能对整体在该stub chain内进行order。
BIST: bist的属性,这里暂不介绍,可能与LBIST测试有关,这里暂不介绍,实际工程中暂时没有找到该属性。

PARTITION: 指的是stub chain可以被repartitioned(swap)标志,只有相同partition的才能swap 斯stub chain elements,partition name是独一无二或者没有partition的 stub chain将不能够实现swap。关于,partition name, 官方的解释如下,并没有说ORDER里面的内容。
关于这个stub chain elements的表述方法,我有两个理解,一个是交换stub chain里面的元素,一个是以stub chain 为单位来交换。关于前者,我存在的疑虑是已经捆绑好的ORDER部分,能否进行SWAP, 经讨论后,如果支持后者,我又思考,如果是以stub chain为单位的话,那么如果stub chain的长度不一致怎么办?还能否做到chain length的长度一致的基本原则。所以,经过考虑后,我认为支持前者的意思,这样长度不会改变,但已经捆绑后的为什么能够交换呢?因为有相同的PARTITION的identify。

一条stub chain包含0个或多个 ordered section, 但是只会有0个或者1个floating section, 因为在一个stub chain里面多个FLOATING section是没有意义的。

所以综上所述,我形成了下面的想法:

写出sdf文件

change_names -heri -rules verilog
write_scan_def -output [formate "%s%s" ./$TOP_design _scan.def]

一些好文链接

1

2

如何理解ScanDef的概念相关推荐

  1. c# 添加中文描述 给enum_理解C# 核心概念 – C# 程序集本地化

    在之前几讲中,老白给大家介绍了C#中module和Assembly的生成和使用.在这一篇中,老白将更加深入的介绍下Assembly其中的一个知识点--本地化(Localization). 什么是本地化 ...

  2. 理解 Keystone 核心概念 - 每天5分钟玩转 OpenStack(18)

    作为 OpenStack 的基础支持服务,Keystone 做下面这几件事情: 管理用户及其权限 维护 OpenStack Services 的 Endpoint Authentication(认证) ...

  3. 十分钟带你理解Kubernetes核心概念

    原文地址:http://www.dockone.io/article/932 十分钟带你理解Kubernetes核心概念 本文将会简单介绍Kubernetes的核心概念.因为这些定义可以在Kubern ...

  4. 从构建区块链理解区块链概念

    从构建区块链理解区块链概念 import hashlib import json from datetime import time from urllib.parse import urlparse ...

  5. 通过插画理解kubernetes基本概念

    ========== 第一篇 ========== 转自:https://www.cnblogs.com/kouryoushine/articles/8007648.html 插画版Kubernete ...

  6. 一张图理解AOP关键概念

    一张图理解AOP关键概念 Aspect(切面) Joint Point(连接点) Advice(通知) Pointcut(切入点) Weaving(织入) 这里以跟踪方法调用为例,Calculate为 ...

  7. 深入理解CRM的概念

    深入理解CRM的概念 什么是CRM CRM(Customer Relationship Management),即客户关系管理.CRM概念最初由美国Gartner Group集团于1980年提出,而在 ...

  8. 用工厂流水线的方式来理解RxJava的概念

    现在有很多的 RxJava 入门教程,但是大多数都是示例代码,并不能让人很快理解 RxJava 的原理和方法,这篇文章就用流水线来比喻 RxJava 的开发方式,看完这篇文章后你就能理解 RxJava ...

  9. [原创]理解泛函的概念和能量…

    原文地址:[原创]理解泛函的概念和能量泛函的梯度下降流 作者:小腹黑zju 对本篇文章进行转载需说明出处: 1. 泛函的概念             函数y=f(x)是一个变量x∈R到y∈R的一个映射 ...

最新文章

  1. 重载自增++和自减--运算符
  2. 即将推出.NET Framework 4.7.2中的一些亮点
  3. Modelsim command line 传参数到 .do 文件
  4. AI+药物研发:人工智能赋能新药研发(人工智能应用案例)
  5. Unity计划放弃支持部分图形特性
  6. (16)System Verilog禁止类中所有变量随机化
  7. 力扣513. 找树左下角的值(JavaScript)
  8. AngularJS 技术总结
  9. c语言课程设计报告书通讯录,C语言课程设计学生通讯录管理系统设计
  10. 2021.9.8 华为笔试题第三题
  11. android实现QQ空间和QQ好友分享功能
  12. angular 脏值检测基础流程
  13. 雅诗兰黛公司以2019年乳腺癌防治运动团结全世界并带来希望
  14. 2021年scrapy一分钟内爬取笔趣阁整本小说存为txt|解决章节排序问题
  15. Python Flask框架-开发简单博客-认证蓝图
  16. 教你用单片机表白2019(文末送代码)
  17. 计算机网页设计布局与排版研究,计算机网页设计中的布局与排版研究
  18. 卡罗拉 (COROLLA) - 参数配置
  19. JTAG, TTL, CFE
  20. 如何修改文件的创建时间?

热门文章

  1. RedHat(Linux) Oracle数据库设置开机自启动
  2. 4月13日学习笔记——jQuery动画
  3. Python 安装管理器 pythonz
  4. return 和 方法的递归调用
  5. UA OPTI570 量子力学1 电磁波与光子
  6. UA MATH523A 实分析3 积分理论例题 一个测度与积分的综合计算题
  7. 超好用的免费文献管理软件Mendeley 简易入门教程
  8. sql三表连接查询 - 使用sqlite 演示
  9. linux进程篇 (二) 进程的基本控制
  10. SrpingCloud 之SrpingCloud config分布式配置中心实时刷新