0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

时序分析基本概念介绍——花一样的“模式”

数字后端IC芯片设计 来源:未知 作者:李倩 2018-03-26 10:43 次阅读

在Coarse Placement和Legalization之间,其实还有很重要的一个步骤, 就是对Scan Chain(扫描链)的处理。英文名Scan Reorder,直译为扫描链重组。

那讲Scan Reorder之前,有必要对Scan Chain的基本知识做一定普及。Scan chain其实是可测试性设计(DFT)中的内容。DFT,Design for test,其实是探测错误序列的一种设计方法学,由于芯片内部是一个黑盒子,在外部难以控制。测试人员通过DFT技术,可以从外部控制和观测电路内部触发器的信号值。DFT通常需要单独的一个部门来完成,很复杂,有专门的书籍可以参考。基本概念可以参考:

【时序分析基本概念介绍——花一样的“模式”】

而在后端PR中,我们更关注的是DFT中的Scan Chain,有了它,我们的芯片就更加具有测试性。Scan Chain将芯片中的所应用的普通寄存器替换成带有扫描功能的扫描寄存器,首尾相连成串,从而可以实现附加的测试功能。那扫描寄存器特殊在什么地方呢?我们从它的结构图来看一下:

从上图中可以看出,它比普通存储器多了SI,SE,SO这3个端口

1. 其中SI,SO也就是scan_in与scan_out端,定义了一条scan chain的input和output端。通常情况下,每一个input会驱动一条scan chain,一个ouput也是用来观察一条scan chain的。

2. SE是scan enable信号,它控制着scan cell的工作模式。从图中可以看出,SE,SI,D端通过一个Mux实现工作模式的切换。当SE输入为0时,scan cell工作在普通模式下,相当于是普通的flop;当SE输入为1时,scan cell就进入scan模式,相当于一个移位寄存器。

scan cell通常定义在lib库中直接导入,可以通过get_cells_of_scan_chain来做一些检查。

用图片说明可能会更加形象,对整个逻辑电路来说,未插入scan chain时,电路图如下:

插入scan chain以后,软件会自动地用scan flip flop(SFF)替换掉普通的flip flop,并且连接SFF到scan chain上,这样就实现了移位扫描的功能,如下图所示:

而后端对于扫描链的定义,通常使用DEF文件来定义,我们一般称它为scan def,配合下图,我们写出scan DEF语句来说明:

SCANCHAINS 1 ; scan chain数量

- chain0 scan chain名字+ START PIN scan_in scan chain起点+ FLOATING 代表着单独的寄存器单元,上图中out_reg_0,_1,_2,_3都是floating单元out_reg_0 ( IN SI ) ( OUT Q ) out_reg_1 ( IN SI ) ( OUT Q )

out_reg_2 ( IN SI ) ( OUT Q )out_reg_3 ( IN SI ) ( OUT Q )

+ ORDERED 需要放在一起的单元,上图中out_reg_4与u_buf就是ORDERED单元,用方框圈出out_reg_4 ( IN SI ) ( OUT Q )u_buf ( IN A ) ( OUT Y )+ STOP PIN scan_out ; scan chain终点END SCANCHAINS

概念都了解完以后,那我们后端到底需要对scan chain做些什么呢?

其实,在做完coarse placement后,Scan Cell大部分是按照连接的顺序随机的乱放的。这样其实会极大地占用绕线资源。因此,在后续步骤开始之前,我们希望对扫描链的连线进行处理,在不影响逻辑功能的前提下,重新进行连接,从而减少走线长度。那这个重组的过程,我们就称之为扫描链重组(Scan Reorder)。整个过程,可以用下面两张图来形象地说明:

Scan Reorder之前:可以看到,每个scan cell的连接得乱七八糟,专业术语叫做detour

Scan Reorder之后:仔细看,走线少了很多,也规整了不少吧!那这就是我们希望得到的结果~~(当然前提是不能影响逻辑功能)

如果用前文DEF的例子解释:

经过Scan Reorder之后,变成如下的电路连接:

可以看到,被方框圈住的out_reg_4和u_buf就类似一个整体一样,位置重新进行了排列。

那对应的Scan DEF信息变化就是:

左边的DEF格式前文已经说明,那右边reorder之后的大家能看懂嘛?

右边就多了一个#符号,这里可以理解为标志位,与着下面的#ORDERED segment 1相关联,就是为了说明它在FLOATING信息里的排列位置。

最后,我们可以使用report_scan_chains来报出scan chain的组成,使用check_scan_chain来检查其合理性

Checking Scan Chain scan_segment_88

STOP: u__noram/u_etm/u_fifo/ts_0_lockLD_865264

....

thru: u_noram/uersistent_cell_0_buf_intsi54506_i/Z

STATUS: VALIDATED, Sequential Length = 524, Instance Count = 524, Partition = partition_1

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • DFT
    DFT
    +关注

    关注

    2

    文章

    224

    浏览量

    22679
  • 时序
    +关注

    关注

    5

    文章

    385

    浏览量

    37275

原文标题:剪断了,理就不会乱——Scan Reorder

文章出处:【微信号:IC_Physical_Design,微信公众号:数字后端IC芯片设计】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    时序分析中的基本概念

    时序分析是FPGA设计中永恒的话题,也是FPGA开发人员设计进阶的必由之路。慢慢来,先介绍时序分析中的
    发表于 10-21 09:28 2020次阅读

    时序分析中的基本概念

    时序分析时FPGA设计中永恒的话题,也是FPGA开发人员设计进阶的必由之路。慢慢来,先介绍时序分析中的
    发表于 02-11 19:08 4241次阅读
    <b class='flag-5'>时序</b><b class='flag-5'>分析</b>中的<b class='flag-5'>一</b>些<b class='flag-5'>基本概念</b>

    时序分析基本概念介绍——时序库Lib,除了这些你还想知道什么?

    时序分析基本概念介绍——时序库Lib。用于描述物理单元的时序和功耗信息的重要库文件。lib库是最
    的头像 发表于 12-15 17:11 1.2w次阅读
    <b class='flag-5'>时序</b><b class='flag-5'>分析</b><b class='flag-5'>基本概念</b><b class='flag-5'>介绍</b>——<b class='flag-5'>时序</b>库Lib,除了这些你还想知道什么?

    详细介绍时序基本概念Timing arc

    时序分析基本概念介绍——Timing Arc
    的头像 发表于 01-02 09:29 2.4w次阅读
    详细<b class='flag-5'>介绍</b><b class='flag-5'>时序</b><b class='flag-5'>基本概念</b>Timing arc

    时序分析时序约束的基本概念详细说明

    时序分析时FPGA设计中永恒的话题,也是FPGA开发人员设计进阶的必由之路。慢慢来,先介绍时序分析中的
    发表于 01-08 16:57 28次下载
    <b class='flag-5'>时序</b><b class='flag-5'>分析</b>和<b class='flag-5'>时序</b>约束的<b class='flag-5'>基本概念</b>详细说明

    FPGA设计中时序分析基本概念

    时序分析时FPGA设计中永恒的话题,也是FPGA开发人员设计进阶的必由之路。慢慢来,先介绍时序分析中的
    的头像 发表于 03-18 11:07 2649次阅读

    介绍时序分析基本概念lookup table

    今天要介绍时序分析基本概念是lookup table。中文全称时序查找表。
    的头像 发表于 07-03 14:30 1436次阅读
    <b class='flag-5'>介绍</b><b class='flag-5'>时序</b><b class='flag-5'>分析</b>的<b class='flag-5'>基本概念</b>lookup table

    时序分析基本概念介绍&lt;Latency&gt;

    今天要介绍时序分析基本概念是Latency, 时钟传播延迟。主要指从Clock源到时序组件Clock输入端的延迟时间。
    的头像 发表于 07-04 15:37 2341次阅读
    <b class='flag-5'>时序</b><b class='flag-5'>分析</b><b class='flag-5'>基本概念</b><b class='flag-5'>介绍</b>&lt;Latency&gt;

    介绍时序分析基本概念MMMC

    今天我们要介绍时序分析基本概念是MMMC分析(MCMM)。全称是multi-mode, multi-corner, 多
    的头像 发表于 07-04 15:40 2483次阅读
    <b class='flag-5'>介绍</b><b class='flag-5'>时序</b><b class='flag-5'>分析</b><b class='flag-5'>基本概念</b>MMMC

    时序分析基本概念介绍&lt;Skew&gt;

    今天要介绍时序分析基本概念是skew,我们称为偏差。
    的头像 发表于 07-05 10:29 3417次阅读
    <b class='flag-5'>时序</b><b class='flag-5'>分析</b><b class='flag-5'>基本概念</b><b class='flag-5'>介绍</b>&lt;Skew&gt;

    时序分析Slew/Transition基本概念介绍

    今天要介绍时序分析基本概念是Slew,信号转换时间,也被称为transition time。
    的头像 发表于 07-05 14:50 3028次阅读
    <b class='flag-5'>时序</b><b class='flag-5'>分析</b>Slew/Transition<b class='flag-5'>基本概念</b><b class='flag-5'>介绍</b>

    时序分析基本概念介绍—Timing Arc

    今天我们要介绍时序基本概念是Timing arc,中文名时序弧。这是timing计算最基本的组成元素,在昨天的lib库介绍中,大部分
    的头像 发表于 07-06 15:00 3311次阅读
    <b class='flag-5'>时序</b><b class='flag-5'>分析</b><b class='flag-5'>基本概念</b><b class='flag-5'>介绍</b>—Timing Arc

    时序分析基本概念介绍&lt;Virtual Clock&gt;

    今天我们介绍时序分析基本概念是Virtual Clock,中文名称是虚拟时钟。
    的头像 发表于 07-07 16:52 1378次阅读
    <b class='flag-5'>时序</b><b class='flag-5'>分析</b><b class='flag-5'>基本概念</b><b class='flag-5'>介绍</b>&lt;Virtual Clock&gt;

    时序分析基本概念介绍&lt;ILM&gt;

    今天我们要介绍时序分析基本概念是ILM, 全称Interface Logic Model。是种block的结构模型。
    的头像 发表于 07-07 17:26 2810次阅读
    <b class='flag-5'>时序</b><b class='flag-5'>分析</b><b class='flag-5'>基本概念</b><b class='flag-5'>介绍</b>&lt;ILM&gt;

    时序分析基本概念介绍一样的“模式

    今天要介绍时序基本概念是Mode(模式). 这是Multiple Scenario环境下Sign off的个重要
    的头像 发表于 07-10 17:21 3344次阅读
    <b class='flag-5'>时序</b><b class='flag-5'>分析</b><b class='flag-5'>基本概念</b><b class='flag-5'>介绍</b>—<b class='flag-5'>花</b><b class='flag-5'>一样</b>的“<b class='flag-5'>模式</b>”