CN108226763B - 用于扫描链重新排序的方法、设备和计算机程序产品 - Google Patents
用于扫描链重新排序的方法、设备和计算机程序产品 Download PDFInfo
- Publication number
- CN108226763B CN108226763B CN201711345443.4A CN201711345443A CN108226763B CN 108226763 B CN108226763 B CN 108226763B CN 201711345443 A CN201711345443 A CN 201711345443A CN 108226763 B CN108226763 B CN 108226763B
- Authority
- CN
- China
- Prior art keywords
- scan
- cell
- scan chain
- chain
- ordered
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
- G01R31/317—Testing of digital circuits
- G01R31/3181—Functional testing
- G01R31/3185—Reconfiguring for testing, e.g. LSSD, partitioning
- G01R31/318533—Reconfiguring for testing, e.g. LSSD, partitioning using scanning techniques, e.g. LSSD, Boundary Scan, JTAG
- G01R31/318536—Scan chain arrangements, e.g. connections, test bus, analog signals
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Tests Of Electronic Circuits (AREA)
- Semiconductor Integrated Circuits (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
提供一种用于扫描链重新排序的方法、设备和计算机程序产品。根据一个总体方面,在具有片上扫描测试压缩硬件的大型数字集成电路中,一种设备可包括数字电路接收器电路和扫描链重新排序电路。数字电路接收器电路被配置为:接收包括由各个单元表示的逻辑电路的电路模型文件,并将作为结束单元的虚拟单元在排序的扫描链的末端插入到电路模型文件中,其中,各个单元被布置在排序的扫描链中。扫描链重新排序电路被配置为:将排序的扫描链重新排序为重新排序的扫描链,其中,扫描链重新排序电路被配置为将排序的扫描链的开始单元和结束单元保持为重新排序的扫描链的开始单元和结束单元。
Description
本申请要求于2016年12月15日提交的名称为“用于在具有片上测试压缩的数字集成电路的物理实现中的扫描链重新排序和优化的方法和设备(METHOD AND APPARATUS FORSCAN CHAIN REORDERING AND OPTIMIZATION IN PHYSICALIMPLEMENTATION OF DIGITALINTEGRATED CIRCUITS WITHON-CHIP TEST COMPRESSION)”的第62/435,056号临时专利申请和于2017年4月13日提交的第15/487,428号专利申请的优先权。这些在先提交的申请的主题通过引用整体包含于此。
技术领域
本描述涉及电路的设计,更具体地讲,涉及一种用于在具有片上测试压缩(on-chip test compression)的数字集成电路的物理实现中的扫描链重新排序和优化的方法和设备。
背景技术
用于测试的设计或可测试性设计(DFT)通常包括将可测试性特征添加到硬件产品设计的集成电路(IC)设计技术。添加的特征通常使开发和将制造测试应用到设计的硬件更容易。通常,制造测试的目的是验证产品硬件不包含可能对产品的正确运行产生不利影响的设计或制造缺陷。
用于将来自芯片输入的测试数据传送到内部的被测电路(circuit under test,CUT)并观察它们的输出的最常见方法被称为扫描设计。在扫描设计中,设计中的寄存器或时序元件(例如,触发器或锁存器)在用于获取对芯片的内部节点的访问的一个或多个扫描链中被连接。测试模式经由扫描链被移入,功能时钟信号在“捕获周期”期间被施脉冲以测试电路,然后结果被移出到芯片输出引脚并与预期的“良好机器”结果进行比较。
大型数字IC上的扫描技术的直接应用能够导致具有相应的长测试器时间和存储器需求的大的矢量集。扫描测试压缩技术和电路通常用于大数字IC(诸如,CPU和SOC设计)中。测试压缩技术通过对芯片上的扫描输入进行解压缩并对测试输出进行压缩来解决这个问题。对于给定设计中的固定数量的扫描IO,压缩模式中的扫描链在长度上比不应用压缩技术的扫描链短得多。通过短压缩链的测试数据花费更少的时钟周期,因此花费更少的时间。这将显著地减少芯片测试时间。
扫描链除了用于制造“通过/不通过(go/no go)”测试之外,还能够用于“调试(debug)”芯片设计。在这种情况下,芯片以正常的“功能模式”(例如,计算机或移动电话芯片可执行汇编语言指令)执行。在任何时候,芯片时钟可被停止,并且芯片被重新配置为“测试模式”。此时,通过扫描链的使用,内部状态可被导出(dump out),或被设置为任何期望的值。用于辅助调试的扫描的另一使用包括在初始状态下对所有存储器元件进行扫描,然后返回功能模式以执行系统调试。这样做的一个优点是在不经过许多时钟周期的情况下使系统处于已知状态。
发明内容
根据一个总体方面,一种设备可包括:数字电路接收器电路和扫描链重新排序电路。数字电路接收器电路被配置为:接收包括由各个单元表示的逻辑电路的电路模型文件,其中,多个单元被布置在排序的扫描链上;将虚拟单元插入在排序的扫描链的末端到电路模型文件中。扫描链重新排序电路被配置为:将排序的扫描链重新排序为重新排序的扫描链,其中,扫描链重新排序电路被配置为将排序的扫描链的开始单元和结束单元保持为重新排序的扫描链的开始单元和结束单元。
根据另一总体方面,一种用于调节数字电路的时序的计算机程序产品可有形地实现在计算机可读介质上。所述计算机程序可包括可执行代码,所述可执行代码在执行时被配置为使数据处理设备:接收包括由各个单元表示的逻辑电路的电路模型,其中,多个单元被排列在至少一个排序的扫描链中;将虚拟单元在所述至少一个排序的扫描链的末端插入到电路模型中;至少部分地基于约束集合,将所述至少一个排序的扫描链重新排序为重新排序的扫描链。
根据另一总体方面,一种方法可包括:接收包括由各个单元表示的逻辑电路的电路模型,其中,多个单元被布置在至少一个排序的扫描链中。所述方法可包括:将虚拟单元在所述至少一个排序的扫描链的末端插入到电路模型中。所述方法可包括:至少部分地基于约束集合,将所述至少一个排序的扫描链重新排序为重新排序的扫描链。
在附图和下面的描述中阐述了一个或多个实现的细节。从说明书和附图以及权利要求,其他特征将是清楚的。
一种用于电路的设计的系统和/或方法,更具体地讲,一种用于在具有片上测试压缩的数字集成电路的物理实现中的扫描链重新排序和优化的方法和设备,基本上如至少一幅附图所示和/或结合至少一幅幅图描述,如在权利要求中更完整地阐述。
附图说明
图1是根据本公开的主题的系统的示例实施例的框图。
图2A是根据本公开的主题的系统的示例实施例的框图。
图2B是根据本公开的主题的系统的示例实施例的框图。
图3A是根据本公开的主题的电路的示例实施例的框图。
图3B是根据本公开的主题的电路的示例实施例的框图。
图3C是根据本公开的主题的电路的示例实施例的框图。
图4是根据本公开的主题的系统的示例实施例的框图。
图5A是根据本公开的主题的电路的示例实施例的框图。
图5B是根据本公开的主题的电路的示例实施例的框图。
图6A是根据本公开的主题的电路的示例实施例的框图。
图6B是根据本公开的主题的电路的示例实施例的框图。
图7A是根据本公开的主题的电路的示例实施例的框图。
图7B是根据本公开的主题的电路的示例实施例的框图。
图8是可包括根据本公开的主题的原理形成的装置的信息处理系统的示意性框图。
各个附图中的相同的参考标号表示相同的元件。
具体实施方式
以下将参考示出一些示例实施例的附图更全面地描述各个示例实施例。然而,本公开的主题可以以许多不同的形式实现并且不应被解释为限于这里阐述的示例实施例。相反,提供这些示例实施例,使得本公开将是彻底和完整的,并且将向本领域技术人员全面传达本公开的主题的范围。在附图中,为了清楚,层和区域的尺寸和相对尺寸可能被夸大。
将理解,当元件或层被称为“在”另一元件或层“上”或者“连接到”、或“结合到”另一元件或层时,该元件或层可“直接在”另一元件或层“上”或者“直接连接到”或“直接结合到”另一元件或层,或者可存在中间元件或层。相反,当元件或层被称为“直接在”另一元件或层“上”或者“直接连接到”或“直接结合到”另一元件或层时,不存在中间元件或层。相同的标号始终表示相同的元件。如这里所使用的,术语“和/或”包括一个或多个相关所列项的任何和所有组合。
将理解,尽管这里可使用术语“第一”、“第二”、“第三”等来描述各种元件、组件、区域、层和/或部分,但是这些元件、组件、区域、层和/或部分不应受这些术语限制。这些术语仅用于将一个元件、组件、区域、层和/或部分与另一元件、组件、区域、层或部分区分开来。因此,在不脱离本公开的主题的教导的情况下,以下讨论的第一元件、组件、区域、层或部分可被称为第二元件、组件、区域、层或部分。
为了便于描述,这里可使用诸如“在……之下”、“在……下方”、“下面的”、“在……之上”、“上面的”等空间相对术语来描述如图中所示的一个元件或特征与另一个元件或特征的关系。将理解,空间相对术语意在包含除了附图中描述的方向之外的装置在使用或操作中的不同方向。例如,如果附图中的装置被翻转,则描述为“在”其他元件或特征“之下”或“下方”的元件将位于其他元件或特征“之上”。因此,示例性术语“在……下方”可包含“在……之上”和“在……下方”两种方向。装置可被另外定位(旋转90度或在其他方向),并且这里使用的空间相对描述符被相应地解释。
这里使用的术语仅用于描述特定示例实施例的目的,而不意在限制本公开的主题。如这里所使用的,除非上下文明确另有指示,否则单数形式也意在包括复数形式。还将理解,当在本说明书中使用术语“包括”和/或“包含”时,指定存在叙述的特征、整体、步骤、操作、元件和/或组件,但并不排除存在或添加一个或多个其他特征、整体、步骤、操作、元件、组件和/或它们的组。
这里参考作为理想的示例实施例(和中间结构)的示意性图示的横截面图示来描述示例实施例。同样地,例如,预计由于制造技术和/或公差的结果导致的来自图示的形状的变化。因此,示例实施例不应被解释为限于这里示出的区域的特定形状,而是包括例如由制造引起的形状的偏差。例如,示为矩形的注入区域将通常在其边缘具有圆形或弯曲的特征和/或注入浓度的梯度,而不是从注入区域到非注入区域的突然改变。类似地,通过注入形成的埋区可导致埋区与注入发生的表面之间的区域中的一些注入。因此,附图中示出的区域在实质上是示意性的,并且它们的形状不意在示出装置的区域的实际形状,并不意在限制本公开的主题的范围。
除非另有定义,否则这里使用的所有术语(包括技术术语和科学术语)具有与本公开的主题所属领域的普通技术人员通常理解的含义相同的含义。还将理解,除非在此明确定义,否则术语(诸如,在通用字典中定义的术语)应被解释为具有与它们在相关领域的背景中的含义一致的含义,并且将不被解释为理想化或过于正式的含义。
以下,将参考附图详细解释示例实施例。
图1是根据本公开的主题的系统100的示例实施例的框图。在示出的实施例中,在集成电路设计处理期间,可创建数字电路模型102(以下也被称为电路模型102或模型102)。可期望调节用于实现数字电路模型102的电路单元。系统100的组件可用于调节与如下所述的模型102相关联的电路单元。
在示出的实施例中,系统100可用于在执行物理制造之前调节数字电路模型102。在另一实施例中,系统100可用于在设计处理中(例如,在合成(synthesis)期间)更早地调节或改变模型102的扫描链106(或者产生修改的数字电路模型118)。应理解,上面仅是几个说明性示例,本公开的主题不限于此。
在一个实施例中,系统100可接收数字电路模型102。在各个实施例中,数字电路模型102可包括物理合成的或布局的(laid out)模型。在另一实施例中,模型102可包括介于设计处理的两端中间的电路的表示。应理解,上面仅是几个说明性示例,本公开的主题不限于此。
模型102可包括多个逻辑电路或多个逻辑电路的表示。在一些实施例中,模型102可包括处理器、片上系统(SoC)、存储器电路或其他电路的表示。在各个实施例中,逻辑电路可包括由寄存器元件(例如,触发器、锁存器等)划分的组合逻辑电路。在一些实施例中,逻辑电路可被划分为相对基本的逻辑功能(例如,与(AND)门、或非(NOR)门、多路复用器(MUX)等)。如下所述,在不管逻辑电路被划分的粒度的级别的情况下,它们将被映射到通常作为标准库单元的部分的各个单元104(以下也被称为电路单元104)或者与所述各个单元104相关联。
在示出的实施例中,这些寄存器元件的至少一部分可被布置成多个扫描链106。例如,在一些实施例中,扫描链106可包括在单个功能单元块(例如,浮点单元、加载/存储单元等)内发现的寄存器,使得可对电路模型102的针对性的部分执行测试。在各个实施例中,单个功能单元块可包括多个扫描链106。应理解,上面仅是几个说明性示例,本公开的主题不限于此。
在各个实施例中,每个扫描链106可包括线性串联元件。如上所述,这些元件的大多数(即便不是全部)可包括寄存器或时序单元(诸如,扫描触发器)。在这样的实施例中,时序单元可被认为是形成大的移位寄存器的时序电路单元104的串或路径。每个扫描链106可包括位被移入的第一元件或单元或者开始元件或单元,以及位被移出的最后元件或单元或者结束元件或单元。在开始元件与结束元件之间可以是任何数量的中部扫描链单元或中间扫描链单元。参考其他附图更详细地讨论扫描链106。
在当前实施例中,模型102将被描述为包括表示逻辑电路或与逻辑电路相关联的多个电路单元104。在这样的实施例中,电路模型102可已经经历布局与布线(place androute)处理或布局(layout)的部分。在这样的实施例中,单元104中的每一个可包括标准单元。执行同一逻辑功能但是出于其他原因(诸如,物理尺寸或特性(例如,单排高度与多排高度、增加的驱动强度、镜像或翻转等))而不同的单元,可被认为属于单个单元族(family)。
电路模型102可由数字电路接收器110接收。数字电路接收器110可被配置为针对预定义的规则或参数111的集合检查电路模型102的正确性或有效性。这些规则和参数111可基于实施例而变化。
在示出的实施例中,系统100可包括可作为计算机软件程序(例如,可作为布局与布线电子设计自动化(EDA)工具的部分)的扫描链重新排序器112。扫描链重新排序器112可被配置为改变一个或多个扫描链106的排序。
在各个实施例中,由于当单元104在布局和布线操作(未示出)期间被布局时,扫描链106中的元件也作为逻辑电路(例如,浮点单元)中的功能寄存器元件进行操作,所以根据逻辑电路中的元件104的功能性使用对单元104进行布局可比根据在扫描链106中它们的使用对单元104进行布局给予更大的权重。因此,在扫描链104内逻辑上彼此相邻的单元104可在电路的物理布局上相当遥远。这可使扫描链106具有非常长的导线连接,导致物理布局中的布线和拥塞问题,并且甚至由于长的导线延迟导致扫描链移位时序问题。在这样的实施例中,扫描链重新排序器112可被配置为基于扫描单元的物理布局来重新排序或重新连接扫描链106中的各个元件,使得长的单元连接和布线拥塞问题最小化。
然而,传统的扫描链重新排序器(诸如,大多数物理布局与布线EDA工具中的内置扫描链重新排序特征)对通常具有在设计期间插入的用于减少硅片测试时间的片上扫描压缩硬件的大型集成电路(诸如,CPU和SOC)具有限制,因此在制造成本上具有限制。在布局和布线工具中对压缩的扫描链的限制在于每个扫描链中的最后的扫描元件在物理布局和布线工具中被指定为用于扫描链重新排序的链的停止(STOP)点。这导致压缩的扫描链中的最后的扫描单元不能够被重新排序。由于在大的设计中可存在大量的压缩的扫描链,所以压缩的链中的最后的扫描单元的数量也可以是大量的。在这种情况下,由于这些单元未被重新排序,所以仍然可存在布线和拥塞问题。相反,由于用于重新排序的开始(START)点通常是在压缩的扫描链中的第一扫描元件之前的组合单元(诸如,多路复用器),所以压缩的链的第一扫描单元可像链中的其他扫描单元一样被重新排序。因此,为了进一步改进物理设计并提高芯片性能,需要解决在大型CPU和SOC设计中压缩的扫描链的最后的扫描单元的扫描重新排序问题。
在示出的实施例中,扫描链重新排序器112可被配置为在扫描链106的最后添加虚拟结束元件108。在这样的实施例中,扫描链104的原始结束元件可变成中部元件或中间元件。在这样的实施例中,扫描链重新排序器112能够移动或重新排序扫描链104的原始结束元件,而不移动虚拟结束点108。
如下所述,在各个实施例中,扫描链重新排序器112可被配置为将扫描链元件从第一扫描链移动到第二扫描链106或甚至第三扫描链106。在一个这样的实施例中,扫描链106可以全部是相同的时钟域或功能单元块(例如,全部在浮点单元内)的部分。
在一些实施例中,扫描链重新排序器112可被配置为基于一个或多个标准重新排序扫描链106。在各个实施例中,标准可包括时序、功率、布线、特定排序要求。应理解,上面仅是几个说明性示例,本公开的主题不限于此。
在一些实施例中,系统100可包括链结束点调节器116。链结束点调节器116可被配置为从虚拟结束点108被添加的任意扫描链106移除虚拟结束点108。在一些实施例中,链结束点调节器116可更有选择性,并且可在确定移除虚拟结束点108不改变链或不使链无法满足一个或多个特定标准(例如,功率、时序等)的情况下,仅移除虚拟结束点108。例如,在一些实施例中,虚拟结束点108可包括增加扫描链106的驱动强度的缓冲器或其他单元。应理解,上面仅是一个说明性示例,本公开的主题不限于此。
在示出的实施例中,扫描链重新排序器112或链结束点调节器116可产生修改的数字电路模型118。这种修改的数字电路模型108可包括修改的或重新排序的扫描链194。这种修改的数字电路模型108还可包括未被扫描链重新排序器112重新排序的多个扫描链106。应理解,上面仅是几个说明性示例,本公开的主题不限于此。
在各个实施例中,这种新的或调节后的数字电路模型108可随后被其他工具评价或处理。例如,静态和/或动态时序评估器可对模型执行更详细和准确的时序分析。在另一实施例中,物理合成器可用于将修改的数字电路模型118转变成包括物理制造数字电路所需的信息的电路物理模型192。
在各个实施例中,这些其他工具的结果可通过系统100反馈,以用于另外的通路(pass)或重新评估修改的数字电路模型108。应理解,上面仅是几个说明性示例,本公开的主题不限于此。
图2A是根据本公开的主题的系统200的示例实施例的框图。在示出的实施例中,系统200在任何虚拟结束点的添加或插入之前被示出。
在示出的实施例中,系统200可包括允许一个或多个输入位在各个扫描链201中被移位的解压器202。系统200还可包括允许各个扫描链201的输出作为单个位或作为比解压器202与压缩器203之间的内部链的数量少的位被移出的压缩器203。此外,每个扫描链201可包括确定在系统200中特定扫描链是从解压器202接收输入还是从先前的扫描链201的最后的扫描元件的输出接收输入的输入多路复用器(MUX)204。
在各个实施例中,解压器202和压缩器203可由XOR类型的组合逻辑而形成,或者由组合元件与顺序元件的组合而形成。输入MUX204的选择引脚可由扫描测试模式信号控制。在这样的实施例中,可存在两种扫描测试模式:压缩模式和非压缩(也称为,压缩旁路)模式。在这样的实施例中,扫描链201可在压缩旁路模式下连结为长的扫描链,或者可在需要较少时间和精力进行扫描的压缩扫描模式下选择短的链。在这样的实施例中,因为扫描链201可被缩短,所以扫描链201可被描述为可压缩的。
在示出的实施例中,每个扫描链201可包括多个时序元件或单元208。如上所述,每个扫描链201可包括开始元件或第一元件208s,以及结束元件或最后元件208e。在这样的实施例中,结束元件208e可将它的输出发送到压缩器203和下一链的输入多路复用器204二者。扫描链201以其理想化的简单形式示出。在集成电路(IC)的物理设计期间,扫描链重新排序通过电子设计自动化(EDA)工具被实施。压缩的扫描链的重新排序可基于物理布局、布线和/或时序信息来断开或重新连接扫描链中的扫描单元,以实现预期的物理设计目标并因此在硅片上实现芯片性能。
在用于扫描链重新排序的EDA物理IC设计工具中支持的正常设置和流程中,START点和STOP点将被选择作为用于在重新排序期间开始和结束扫描链的连接点。针对具有片上压缩的设计(诸如,例如,在图2A中所示),START点是MUX204的输出引脚,STOP点是最后的扫描单元208e的扫描数据输入引脚。传统的扫描重新排序方法受到最后的扫描元件208e的连接约束,将不重新排序压缩的扫描链中的这些最后的扫描元件。在大型数字系统中,由于大量寄存器在物理实现中将被映射到扫描触发器,所以压缩的链的数量可以是大量的。针对高性能中央处理器(CPU)或大型片上系统(SOC),可存在成千上万个扫描链;因为扫描链将更短,所以扫描链的数量可容易地加倍以实现更积极的测试时间缩短目标;片上压缩在设计中将具有更高的压缩比。
图2B是根据本公开的主题的系统250的示例实施例的框图。在示出的实施例中,系统250在任何虚拟结束点210的添加或插入之前被示出。
如上所述,系统250可包括解压器202和压缩器203。每个扫描链201可包括输入多路复用器(MUX)204、开始元件208s以及多个中部元件或中间元件208。然而,在示出的实施例中,结束元件现在是虚拟元件210而不是图2A的寄存器208e。先前的结束元件208e现在仅是中间元件208。在这样的实施例中,扫描链重新排序器可能够移动或重新排列先前的结束元件208e。
图3A是根据本公开的主题的电路320和电路350的示例实施例的框图。在示出的实施例中,电路320和电路350二者都可包括扫描链300的表达或实施例。为了简单起见,扫描链300仅是扫描链的靠近链的端部的扫描链段的代表性部分。图3A示出一些扫描单元302至308和它们的布局以及它们的连接。扫描链结束于最后的扫描单元连接到其输入中的一个的MUX。
在示出的实施例中,扫描链可包括四个时序元件302、304、306和308。扫描链300可将其输出提供给之后在扫描链300的输出和其他扫描链(未示出)之间进行选择以从芯片输出的输出多路复用器310。扫描链300可将其输出提供给下一扫描链(未示出)。
在示出的实施例中,电路320示出处于半混乱状态下的扫描链300。扫描链300的元件是排序的元件302、304、306和308。该排序不是基于元件的物理(或建议的物理)布图,而是基于其他标准(例如,元件在寄存器-晶体管-逻辑(RTL)文件中首次被提到的排序)。如图所示,这样的排序创建结束点元件308远离输出MUX310的环路。在传统的重新排序技术中,元件302、元件304和元件306可被重新排序,但是结束元件308将决不被改变。在这种情况下,结束点元件308将总是远离输出MUX310。
在示出的实施例中,电路350示出元件302、元件304、元件306和元件308的相同排序。然而,作为结束点312的虚拟元件(诸如,缓冲器单元)已经插入到链300中。注意,只要虚拟元件的插入不会改变设计的功能逻辑状态,虚拟元件就可包括缓冲器单元或顺序单元(诸如,锁存器或触发器)。现在,重新排序技术可改变元件304、元件306和元件308的排序,并且允许最靠近MUX310或缓冲器312的元件用作链300的功能输出。
图3B是根据本公开的主题的电路322和电路352的示例实施例的框图。在示出的实施例中,电路322和电路352二者都可包括扫描链300的表达或实施例。
电路322示出在没有虚拟缓冲器312(在一些实施例中,被称为STOPBUF)的益处的情况下,扫描链300的可能的重新排序。在这样的实施例中,结束点308不能被重新排序。因此,链300可仅按元件302、元件306、元件304和元件308的顺序被重新排序。因此,结束点308与MUX310之间的距离被保持并且不是最优的。
相反,电路352示出具有虚拟缓冲器STOPBUF 312的益处的情况下扫描链300的可能的重新排序。现在,元件308是可移动的,重新排序技术可按元件302、308、306和304的排序对链进行排列。可见,由链300所采取的路径更直接。最后的时序元件304输出到靠近MUX310的虚拟缓冲器312。
图3C是根据本公开的主题的电路354的示例实施例的框图。在示出的实施例中,电路354可包括扫描链300的表达或实施例。
如上所述,在各个实施例中,一旦重新排序技术已经完成,则虚拟结束点312可从电路354移除。在这样的实施例中,由虚拟结束点312强加的任意延迟或空间要求在物理电路中可不存在。在这样的实施例中,虚拟结束点312可以是虚拟元件。在示出的实施例中,链300被排序为经过元件302、元件308、元件306、元件304,然后直接输出到MUX310。
图4是根据本公开的主题的系统400的示例实施例的框图。在示出的实施例中,在集成电路设计处理期间,可创建数字电路模型102。可期望调节用于实现数字电路模型102的电路单元。如下所述,系统400的组件可用于调节与模型102相关联的电路单元。
如上所述,数字电路模型102可由数字电路接收器电路110接收。数字电路模型102可包括多个扫描链106。这些扫描链106可通过扫描链重新排序器112被重新排序。作为该处理的部分,虚拟结束点108可被添加或插入到一个或多个扫描链106中。
在示出的实施例中,系统400可使用多位单元404。在这种背景下,多比特单元(具体地讲,多位寄存器)是将多个门或单元的逻辑功能组合成单个预封装单元的电路单元104。这可减小电路单元104的物理面积和/或功率需求。
例如,传统的单位触发器单元将包括数据输入(Data In,D)、时钟(Clock)、扫描输入(Scan In,SI)输入和扫描使能输入(SE),并且具有数据输出(Data Out,Q)和扫描输出(Scan Out,SO)。多位(例如,4位)触发器单元将包括Data In 1(D1)、Data In 2(D2)、DataIn 3(D3)、Data In 4(D4)、时钟(Clock)和Scan-In 1至Scan-In 4。多位触发器单元将具有Data Out 1(Q1)至Data Out 4(Q4)以及Scan Out 1至Scan Out 4。因为多位触发器仍将会具有与单位触发器相同的逻辑功能,所以DataIn和Data Out中的每一个将会半独立地操作,而单个时钟将控制所有四个触发器。
在这样的实施例中,主要的结构差异通常是在多位触发器的所有单位触发器之间共享的时钟网络。在多位单元404中,该单元的所有单位逻辑部分物理上同地协作(co-located),这解决许多物理设计实现挑战。多位触发器对资源的最优使用更进一步,并提供超越单位触发器的许多优点。
这样的优点可包括使用多位单元的片上系统(SoC)实现导致如时钟树综合工具所看到的较少数量的时钟接收端(clocksink)。因此,由于由时钟网驱动的整体电容减少,所以它们的使用应导致所有触发器中的时钟的较少功耗。当时钟路径在整个多位单元中被内部地平衡时,这还可减少顺序门中的时钟偏斜。由于时钟缓冲器的总数应减少,所以多位触发器的使用应导致更小的面积损耗,导致更少的拥塞。此外,由于共享的逻辑(在时钟门控或者置位-复位逻辑中)以及来自库团队的优化的多位电路和布图,多位单元404使用应提高时序数量。应理解,上面仅是几个说明性示例,本公开的主题不限于此。
在示出的实施例中,系统400可包括多位单元替换器414。在各个实施例中,多位单元替换器414可包括在扫描链重新排序器112中。在示出的实施例中,多位单元替换器414可被配置为使用多位扫描单元404来替换扫描链106内的多个单位扫描单元104。例如,可使用4位的多位单元404来替换4个单位扫描单元104。在这样的实施例中,扫描链106可占用较少的空间(根据布局和布线二者)以及较少的功率。应理解,上面仅是一个说明性示例,本公开的主题不限于的此。
在各个实施例中,数字单元模型102可能已包括多位单元404。在这样的实施例中,多位单元替换器414可被配置为使用多位扫描单元404替换扫描链106内的多个单位或多位扫描单元。例如,2个单位扫描单元104和一个2位的多位扫描单元404可被组合成一个4位的多位扫描单元404。再次,在这样的实施例中,扫描链106可占用较少的空间(根据布局和布线二者)以及较少的功率。应理解,上面仅是一个说明性示例,本公开的主题不限于此。
此外,系统400(或者,图1的系统100)可被配置为使用逻辑相同(例如,二者都为1位触发器)但占用不同的物理占用面积(footprint)(例如,矩形与方形,双高与单高等)的单元104来替换扫描链106中的电路单元104。在各个实施例中,这可减少由扫描链106强加的空间和/或功率要求。
如上所述,系统400可包括被配置为移除虚拟结束点108的链结束点调节器116。系统400可产生具有重新排序的或修改的扫描链494的修改的数字模型408。在这样的实施例中,修改的扫描链494可包括一个或多个多位单元404。在各个实施例中,修改的数字模型408可用于创建电路物理模型192。
在各个实施例中,数字电路模型102可包括文件或文件的组。在一些实施例中,文件可包括表示各个单元104的文本条目。在这样的实施例中,这些文本部分中的一些可指示表示的单元104是结束点或开始点,以及单元104被什么(如果有的话)扫描链包括。
在这样的实施例中,扫描链重新排序器112可被配置为编辑(例如,删除、插入、移动等)这些文本部分作为重新排序扫描链的部分。在各个实施例中,这些文本部分可以是特定的硬件描述语言或更通用的格式(例如,可扩展标记语言(XML)、JavaScript对象表示法(JSON)等)。应理解,上面仅是几个说明性示例,本公开的主题不限于此。
图5A是根据本公开的主题的电路520和550的示例实施例的框图。在示出的实施例中,电路520和电路550二者可包括扫描链500的表达或实施例。
在示出的实施例中,扫描链500可包括八个时序单元501、502、503、504、505、506、507和508。所有的时序单元是单位时序元件。扫描链500可将其输出提供给之后可在扫描链500的输出与其他扫描链(未示出)之间进行选择以从芯片输出的输出多路复用器510。扫描链500可将其输出提供给下一扫描链(未示出)。
在示出的实施例中,电路520示出处于半混乱状态下的扫描链500。扫描链500的单元是排序的单元501、502、503、504、505、506、507和508。该排序不是基于单元的物理(或建议的物理)布图,而是基于其他标准(例如,单元在寄存器-晶体管-逻辑(RTL)文件中首次被提到的排序)。如图所示,这样的排序创建结束点单元508远离输出MUX 510的环路。
在示出的实施例中,电路550示出单元501、单元502、单元503、单元504、单元505、单元506、单元507和单元508的相同排序。然而,虚拟结束点或缓冲器结束点512已被插入链500中。现在,重新排序技术可改变单元502、单元503、单元504、单元505、单元506、单元507和单元508的排序,并且允许最靠近MUX510或缓冲器512的单元用作链500的功能输出。在各个实施例中,链500可使用如参考图3B所描述的单位扫描单元来排序。
图5B是根据本公开的主题的电路550和电路552的示例实施例的框图。在示出的实施例中,电路550和电路552二者可包括扫描链500的表达或实施例。
由于在最后的扫描元件508之后在扫描链中插入虚拟停止缓冲器(STOPBUF)512,所以它不仅使单元508自由地被重新排序,还使单元508自由地与其他扫描单元进行组合以形成用于优化的m位扫描单元,并在物理设计中带来m位单元转换的益处。
电路550仅重复图3A的电路350。然而,在示出的实施例中,重新排序技术被配置为将多个单位扫描单元组合为多位扫描单元。例如,扫描单元501、扫描单元502、扫描单元507和扫描单元508(组592)可被组合成电路552的4位扫描单元562。同样地,扫描单元503、扫描单元504、扫描单元505和扫描单元506(组594)可被组合成4位扫描单元564。
在图示中,多位扫描单元使用图例FF#来指定,其中,#示出扫描单元中的位数(例如,4、3、2等)。如果图例未被使用,则扫描单元是单位扫描单元(例如,单元502)。
在示出的实施例中,电路552已将8个单位单元(单元501至单元508)扫描链500重组为两个4位单元(单元562和单元564)扫描链。在各个实施例中,如上所述,虚拟缓冲器512可保持或被移除。
图6A是根据本公开的主题的电路620和电路650的示例实施例的框图。在示出的实施例中,电路620和电路650二者可包括扫描链600和699的表达或实施例。
由于图6A的完整性,所以示出较不复杂的图6B。图6B包括电路620和电路650,但是没有明确地示出组群692、694、696。另外,图6A和图6B是相同的。较不复杂的图6B仅向感兴趣的读者提供而不将单独地讨论。
在示出的实施例中,电路620中所示的链600的版本包括以下时序单元:1位单元601、2位单元602、1位单元603、5位单元604以及1位单元605和1位单元606。其中,在电路620中,单元606是链600的结束点并输出到MUX 607。
在示出的实施例中,电路620中所示的链699的版本包括以下时序单元:1位单元611、2位单元612、1位单元613、5位单元614以及2位单元615。其中,在电路620中,单元615是链699的结束点并输出到MUX617。
在各个实施例中,重新排序技术可被配置为:不仅重新排序扫描单元的顺序,将扫描单元组合成多位扫描单元,而且还跨越多个扫描链(在这个示图中,两个链600和699)组合扫描单元。在各个实施例中,如果两个(或更多个)链在同一时钟域上或在同一功能单元块中,则可允许这种单元的跨越链的组合。例如,浮点单元(FPU)内的链可全部在FPU时钟域上,其中,加载/存储单元(LSU)中的链可在LSU时钟域上。应理解,上面仅是一个说明性示例,本公开的主题不限于此。
在示出的实施例中,重新排序技术可将单元611、单元612和单元613(组692)组合为电路671的4位扫描单元671。同样地,重新排序技术可将单元601、单元602和单元606(组694)组合为电路650的4位时序单元662。这与在图5B中看到的排序类似,除了较小的多位扫描单元(例如,单元602和单元612)可与其他单位或多位扫描单元组合以创建更大的多位单元(例如,单元662)。
在示出的实施例中,重新排序技术还可组合扫描链600与扫描链699之间的多个扫描链。在一个实施例中,组696示出重新排序技术可将扫描单元603和扫描单元605从链600移动到链699。在该处理中,重新排序技术可将这些单元603和单元605与其他单元(例如,单元615)组合以形成多位单元672。
在这样的实施例中,在重新排序的电路650中所示的扫描链600包括4位扫描单元662、5位扫描单元604、虚拟结束点或缓冲器608以及MUX 607。在重新排序的电路650中所示的扫描链699包括4位扫描单元671、4位扫描单元672、5位扫描单元614、虚拟结束点或缓冲器618和MUX 617。在各个实施例中,只要位的总数在预定义的最大值内,扫描链中的位的总数的增加或减少就可以是可接受的。
在示出的实施例中,合成的多位单元包括原单元的位的和。然而,在各个实施例中,将原单元组合成包括比原单元的位之和更多位的扫描单元可能是有利的。例如,由于扫描链扫描单元还在逻辑电路中执行逻辑功能,所以时序单元可出于其他原因被组合成多位单元。这些多位单元可包括不在扫描链中的位。在这样的实施例中,扫描链仅使用多位单元中的全部位的子集。应理解,上面仅是一个说明性示例,本公开的主题不限于此。
图7A是根据本公开的主题的电路的示例实施例的框图。示出的实施例中,可在本公开的主题中使用多位单元(m位单元)701。具体地讲,示出4位串联扫描单元。在各个实施例中,可使用其他形式的多位单元。
在示出的实施例中,多位扫描单元701包括四个触发器742、744、746和748。这些触发器由时钟信号799控制。在正常操作或非扫描操作期间,触发器742接收信号D0 720作为输入并输出信号Q0 720。在正常操作或非扫描操作期间,触发器744接收信号D1 721作为输入并输出信号Q1 731。在正常操作或非扫描操作期间,触发器746接收信号D2 722作为输入并输出信号Q2 732。在正常操作或非扫描操作期间,触发器748接收信号D3 723作为输入并输出信号Q3 733。
在扫描操作(由扫描使能(SE)信号759控制)期间,MUX741可将触发器742的输入设置为扫描输入(SI)信号769。在扫描操作期间,MUX743可将触发器744的输入设置为先前触发器的输出(输出Q0 730)。在扫描操作期间,MUX 745可将触发器746的输入设置为先前触发器的输出(输出Q1 731)。在扫描操作期间,MUX 747可将触发器748的输入设置为先前触发器的输出(输出Q2 732)。在这样的实施例中,四个触发器742、744、746和748可串联连线。最终的输出是扫描输出(SO)信号733(也是触发器748的输出Q3)。
在示出的实施例中,如图所示,内部电路形成内部扫描链。由于这种类型的多位扫描单元701可被最大程度地优化以实现最小面积和功率以及最高速度,所以这种类型的多位扫描单元701通常用于实际物理设计IC中。应理解,上面仅是一个说明性示例,本公开的主题不限于此。
图7B是根据本公开的主题的电路的示例实施例的框图。示出的实施例中,可在本公开的主题中使用多位单元(m位单元)791。具体地讲,示出4位并联扫描单元。在各个实施例中,可使用其他形式的多位单元。
在示出的实施例中,多位扫描单元791包括四个触发器742、744、746和748。这些触发器由时钟信号799控制。在正常操作或非扫描操作期间,触发器742接收信号D0 720作为输入并输出信号Q0 730。在正常操作或非扫描操作期间,触发器744接收D1 721作为输入并输出信号Q1 731。在正常操作或非扫描操作期间,触发器746接收D2 722作为输入并输出信号Q2 732。在正常操作或非扫描操作期间,触发器748接收D3 723作为输入并输出信号Q3733。
在扫描操作(由第0扫描使能(SE0)信号750控制)期间,MUX741可将触发器742的输入设置为第0扫描输入(SI0)信号760。触发器742的输出可以是第0扫描输出(SO0)信号730(也是触发器742的输出Q0)。在扫描操作(由第1扫描使能(SE1)信号751控制)期间,MUX 743可将触发器744的输入设置为第1扫描输入(SI1)信号761。触发器744的输出可以是第1扫描输出(SO1)信号731(也是触发器744的输出Q1)。在扫描操作(由第2扫描使能(SE2)信号752控制)期间,MUX745可将触发器746的输入设置为第2扫描输入(SI2)信号762。触发器746的输出可以是第2扫描输出(SO2)信号732(也是触发器746的输出Q2)。在扫描操作(由第3扫描使能(SE3)信号753控制)期间,MUX 747可将触发器748的输入设置为第3扫描输入(SI3)信号763。触发器748的输出可以是第3扫描输出(SO3)信号733(也是触发器748的输出Q3)。在这样的实施例中,四个触发器742、744、746和748可被并联连线。
在示出的实施例中,内部电路仅与在电路中共享的时钟信号799一起堆叠。四个触发器不形成单个扫描链。由于对面积、功率和速度的非常有限的优化,所以这种类型的多位扫描单元通常被使用。在各个实施例中,它可被选择性地使用。应理解,上面仅是一个说明性示例,本公开的主题不限于此。
图8是可包括根据本公开的主题的原理形成的半导体装置的信息处理系统800的示意性框图。
参考图8,信息处理系统800可包括根据本公开的主题的原理构造的一个或多个装置。在另一实施例中,信息处理系统800可使用或执行根据本公开的主题的原理的一个或多个技术。
在各个实施例中,信息处理系统800可包括计算装置(诸如,例如,膝上型计算机、台式机、工作站、服务器、刀片服务器、个人数字助理、智能电话、平板以及其他适当的计算机或其虚拟机或它们的虚拟计算装置)。在各个实施例中,信息处理系统800可由用户(未示出)使用。
根据本公开的主题的信息处理系统800还可包括中央处理器(CPU)、逻辑或处理器810。在一些实施例中,处理器810可包括一个或多个功能单元块(FUB)或组合逻辑块(CLB)815。在这样的实施例中,组合逻辑块可包括各种布尔逻辑操作(例如,与非(NAND)、NOR、非(NOT)、异或(XOR))、稳定逻辑装置(例如,触发器、锁存器),其它逻辑装置或它们的组合。这些组合逻辑操作可以以简单或复杂的方式被配置为处理输入信号以实现期望的结果。将理解,虽然描述了同步的组合逻辑操作的一些说明性示例,但是本公开的主题不受此限制,而可包括异步操作或它们的混合。在一个实施例中,组合逻辑操作可包含多个互补金属氧化物半导体(CMOS)晶体管。在各个实施例中,这些CMOS晶体管可被布置成执行逻辑操作的门;应理解,其他技术可被使用并在本公开的主题的范围内。
根据本公开的主题的信息处理系统800还可包括易失性存储器820(例如,随机存取存储器(RAM))。根据本公开的主题的信息处理系统800还可包括非易失性存储器830(例如,硬盘、光学存储器、NAND存储器或闪存)。在一些实施例中,易失性存储器820、非易失性存储器830或它们的组合或者部分可被称为“存储介质”。在各个实施例中,易失性存储器820和/或非易失性存储器830可被配置为以半永久或基本永久的形式存储数据。
在各个实施例中,信息处理系统800可包括被配置为允许信息处理系统800成为通信网络的部分并经由通信网络通信的一个或多个网络接口840。Wi-Fi协议的示例可包括,但不限于:电气和电子工程师协会(IEEE)802.11g、IEEE 802.11n。蜂窝协议的示例可包括,但不限于:IEEE 802.16m(也称为高级无线MAN(城域网)、高级长期演进(LTE)、增强型数据速率GSM(全球移动通信系统)演进(EDGE)、演进的高速分组接入(HSPA+))。有线协议的示例可包括,但不限于:IEEE 802.3(也称为,以太网)、光纤通道、电力线通信(例如,HomePlug,IEEE1901)。应理解,上面仅是几个说明性示例,本公开的主题不限于此。
根据本公开的主题的信息处理系统800还可包括用户接口单元850(例如,显示器适配器、触觉接口、人机接口装置)。在各个实施例中,这种用户接口单元850可被配置为从用户接收输入和/或向用户输出提供。其他类型的装置也可用于提供与用户的交互;例如,向用户提供的反馈可以是任何形式的感觉反馈(例如,视觉反馈、听觉反馈或触觉反馈);来自用户的输入可以以包括声音、语音或触觉输入的任何形式被接收。
在各个实施例中,信息处理系统800可包括一个或多个其他装置或硬件组件860(例如,显示器或监视器、键盘、鼠标、相机、指纹读取器、视频处理器)。应理解,上面仅是几个说明性示例,本公开的主题不限于此。
根据本公开的主题的信息处理系统800还可包括一个或多个总线805。在这样的实施例中,系统总线805可被配置为通信地结合处理器810、易失性存储器820、非易失性存储器830、网络接口840、用户接口单元850以及一个或多个硬件组件860。由处理器810处理的数据或从非易失性存储器830的外部输入的数据可存储在非易失性存储器830或易失性存储器820中。
在各个实施例中,信息处理系统800可包括或执行一个或多个软件组件870。在一些实施例中,软件组件870可包括操作系统(OS)和/或应用。在一些实施例中,OS可被配置为将一个或多个服务提供给应用,并且管理或充当应用与信息处理系统800的各种硬件组件(例如,处理器810、网络接口840)之间的中介。在这样的实施例中,信息处理系统800可包括一个或多个本地应用,其中,本地应用可安装在本地(例如,在非易失性存储器830内)并被配置为由处理器810直接执行并直接与OS交互。在这样的实施例中,本地应用可包括预编译的机器可执行代码。在一些实施例中,本地应用可包括被配置为将源代码或目标代码转换为之后由处理器810执行的可执行代码的脚本解释器(例如,C shell(csh)、AppleScript、AutoHotkey)或者虚拟执行机(VM)(例如,Java虚拟机、微软(Microsoft)公共语言运行库)。
上述的半导体装置可使用各种封装技术被封装。例如,根据本公开的主题的原理构造的半导体装置可使用以下技术中的任意一种或如将被本领域技术人员已知的其他技术被封装:层叠封装(POP)技术、球栅阵列(BGA)技术、芯片级封装(CSP)技术、塑料引线芯片载体(PLCC)技术、塑料双列直插式封装(PDIP)技术、裸片格栅封装技术、裸片级晶片形式技术、板上芯片(COB)技术、陶瓷双列直插式封装(CERDIP)技术、塑料方形扁平封装(公制)(PMQFP)技术、塑料方形扁平封装(PQFP)技术、小外形封装(SOIC)技术、收缩型小外形封装(SSOP)技术、薄型小外形封装(TSOP)技术、薄型方形扁平封装(TQFP)技术、系统级封装(SIP)技术、多芯片封装(MCP)技术、晶片级制造封装(WFP)技术、晶片级加工的堆叠封装(WSP)技术。
方法步骤可由执行计算机程序的一个或多个可编程处理器执行,以通过对输入数据进行操作并生成输出来执行功能。方法步骤还可由专用逻辑电路(例如,FPGA(现场可编程门阵列)或ASIC(专用集成电路))执行,并且方法步骤可被实现为专用逻辑电路。
在各个实施例中,计算机可读介质可包括当被执行时使装置执行方法步骤的至少一部分的指令。在一些实施例中,计算机可读介质可包括在磁介质、光介质、其他介质或它们的组合(例如,CD-ROM、硬盘、只读存储器、闪存)中。在这样的实施例中,计算机可读介质可以是有形的的以及非暂时呈现的制品。
尽管已经参考示例实施例描述了本公开的主题的原理,但是本领域的技术人员将清楚的是,在不脱离这些公开的构思的精神和范围的情况下,可对这些示例实施例进行各种改变和修改。因此,应理解,上面的实施例不是限制性的,而仅是说明性的。因此,本公开构思的范围由权利要求及其等同物的可允许的最广泛的解释来确定,而不应受前面的描述制约或限制。因此,将理解,所附权利要求意在覆盖落入实施例的范围内的所有这样的修改和改变。
Claims (20)
1.一种用于扫描链重新排序的方法,包括:
接收包括由各个单元表示的逻辑电路的电路模型,其中,各个单元被布置在至少一个排序的扫描链中;
将虚拟单元在所述至少一个排序的扫描链的末端插入到电路模型中;
至少部分地基于约束集合,将所述至少一个排序的扫描链重新排序为重新排序的扫描链,使得能够移动或重新排序所述至少一个排序的扫描链的原始结束单元,而不移动作为所述至少一个排序的扫描链的当前结束单元的虚拟单元。
2.根据权利要求1所述的方法,其中,虚拟单元包括缓冲器。
3.根据权利要求1所述的方法,其中,重新排序的步骤包括:
将所述至少一个排序的扫描链的开始单元保持为重新排序的扫描链的开始单元;
将位于所述至少一个排序的扫描链的末端的虚拟单元保持为重新排序的扫描链的结束单元;
改变所述至少一个排序的扫描链内的除了开始单元之外的单元中的至少一个的排序。
4.根据权利要求1所述的方法,还包括:
从重新排序的扫描链的末端移除虚拟单元。
5.根据权利要求1所述的方法,其中,重新排序的步骤包括:
将单元从第一扫描链移动到第二扫描链。
6.根据权利要求1所述的方法,其中,重新排序的步骤包括:
使用至少一个多位扫描单元替换多个扫描单元,其中,多位扫描单元包括与所述多个扫描单元一样多的位。
7.根据权利要求6所述的方法,其中,使用至少一个多位扫描单元替换多个扫描单元的步骤包括:
使用第二多位扫描单元替换第一多位扫描单元和至少一个单位扫描单元,其中,第二多位扫描单元包括与第一多位扫描单元和所述至少一个单位扫描单元一样多的位。
8.根据权利要求6所述的方法,其中,使用至少一个多位扫描单元替换多个扫描单元的步骤包括:
在所述至少一个排序的扫描链中使用包括第二组物理尺寸并且在激活时执行逻辑功能的第二单元替换包括第一组物理尺寸并且在激活时所述执行逻辑功能的第一单元。
9.一种计算机可读介质,包括可执行代码,所述可执行代码在被执行时被配置为使数据处理设备:
接收包括由各个单元表示的逻辑电路的电路模型,其中,各个单元被排列在至少一个排序的扫描链中;
将虚拟单元在所述至少一个排序的扫描链的末端插入到电路模型中;
至少部分地基于约束集合将所述至少一个排序的扫描链重新排序为重新排序的扫描链,使得能够移动或重新排序所述至少一个排序的扫描链的原始结束单元,而不移动作为所述至少一个排序的扫描链的当前结束单元的虚拟单元。
10.根据权利要求9所述的计算机可读介质,其中,虚拟单元包括缓冲器。
11.根据权利要求9所述的计算机可读介质,其中,所述可执行代码在被执行时被配置为使数据处理设备:
将所述至少一个排序的扫描链的开始单元保持为重新排序的扫描链的开始单元;
将位于所述至少一个排序的扫描链的末端的虚拟单元保持为重新排序的扫描链的结束单元;
改变所述至少一个排序的扫描链内的除了开始单元之外的单元中的至少一个的排序。
12.根据权利要求9所述的计算机可读介质,其中,所述可执行代码在被执行时被配置为使数据处理设备:
从重新排序的扫描链的末端移除虚拟单元。
13.根据权利要求9所述的计算机可读介质,其中,所述可执行代码在被执行时被配置为使数据处理设备:
将单元从第一扫描链移动到第二扫描链。
14.根据权利要求9所述的计算机可读介质,其中,所述可执行代码在被执行时被配置为使数据处理设备:
使用至少一个多位扫描单元替换多个扫描单元,其中,多位扫描单元包括与所述多个扫描单元一样多的位。
15.根据权利要求14所述的计算机可读介质,其中,所述可执行代码在被执行时被配置为使数据处理设备:
使用第二多位扫描单元替换第一多位扫描单元以及至少一个单位扫描单元,其中,第二多位扫描单元包括与第一多位扫描单元和所述至少一个单位扫描单元一样多的位。
16.根据权利要求9所述的计算机可读介质,其中,所述可执行代码在被执行时被配置为使数据处理设备:
在所述至少一个排序的扫描链中使用包括第二组物理尺寸并在激活时执行逻辑功能的第二单元替换包括第一组物理尺寸并在激活时执行所述逻辑功能的第一单元。
17.一种用于扫描链重新排序的设备,包括:
数字电路接收器电路,被配置为:
接收包括由各个单元表示的逻辑电路的电路模型文件,其中,各个单元被布置在排序的扫描链中,
将虚拟单元在排序的扫描链的末端插入到电路模型文件中;
扫描链重新排序电路,被配置为:
将排序的扫描链重新排序为重新排序的扫描链,使得能够移动或重新排序排序的扫描链的原始结束单元,其中,扫描链重新排序电路被配置为分别将排序的扫描链的开始单元和位于排序的扫描链的末端的虚拟单元保持为重新排序的扫描链的开始单元和结束单元。
18.根据权利要求17所述的设备,还包括:
链结束点调节器电路,被配置为从电路模型文件移除重新排序的扫描链的末端的虚拟单元。
19.根据权利要求17所述的设备,其中,扫描链重新排序电路被配置为:
从电路模型文件删除文本的多个部分,其中,文本的多个部分中的每个部分表示排序的扫描链中的时序单元;
将表示多位扫描单元的文本的部分插入到电路模型文件的扫描链部分中,其中,多位扫描单元包括与由文本的所述多个部分表示的时序单元一样多的位。
20.根据权利要求17所述的设备,其中,电路模型文件包括第一扫描链和第二扫描链的表示;
其中,扫描链重新排序电路被配置为:
编辑电路模型文件的部分,使得来自第一扫描链的第一时序单元被移动到第二扫描链并与来自第二扫描链的第二时序单元组合,以在第二扫描链内形成多位扫描单元。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201662435056P | 2016-12-15 | 2016-12-15 | |
US62/435,056 | 2016-12-15 | ||
US15/487,428 | 2017-04-13 | ||
US15/487,428 US10338139B1 (en) | 2016-12-15 | 2017-04-13 | Method and apparatus for scan chain reordering and optimization in physical implementation of digital integrated circuits with on-chip test compression |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108226763A CN108226763A (zh) | 2018-06-29 |
CN108226763B true CN108226763B (zh) | 2021-08-20 |
Family
ID=62652369
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711345443.4A Active CN108226763B (zh) | 2016-12-15 | 2017-12-15 | 用于扫描链重新排序的方法、设备和计算机程序产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108226763B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110489885B (zh) * | 2019-08-22 | 2021-01-26 | 安徽寒武纪信息科技有限公司 | 运算方法、装置以及相关产品 |
CN111737944B (zh) * | 2020-06-19 | 2023-03-24 | 展讯通信(上海)有限公司 | 芯片及其可测试性设计方法、装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1615443A (zh) * | 2002-01-16 | 2005-05-11 | 美国华腾科技股份有限公司 | 用于在基于扫描的集成电路中传输扫描图案的方法和装置 |
CN1806179A (zh) * | 2003-07-09 | 2006-07-19 | 松下电器产业株式会社 | 扫描测试设计方法、扫描测试电路、扫描测试电路插入用计算机辅助设计程序、大规模集成电路及携带式数码机器 |
CN103023467A (zh) * | 2012-11-28 | 2013-04-03 | 中国人民解放军国防科学技术大学 | 基于扫描方式的寄存器复位方法及装置 |
KR101539712B1 (ko) * | 2015-01-19 | 2015-07-28 | 연세대학교 산학협력단 | 저전력 스캔 테스트가 가능한 반도체 장치 및 그를 테스트하는 방법 |
CN105259493A (zh) * | 2014-07-14 | 2016-01-20 | 联发科技股份有限公司 | 集成电路扫描单元的替换方法、可偏移扫描单元及集成电路 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8621301B2 (en) * | 2009-03-04 | 2013-12-31 | Alcatel Lucent | Method and apparatus for virtual in-circuit emulation |
-
2017
- 2017-12-15 CN CN201711345443.4A patent/CN108226763B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1615443A (zh) * | 2002-01-16 | 2005-05-11 | 美国华腾科技股份有限公司 | 用于在基于扫描的集成电路中传输扫描图案的方法和装置 |
CN1806179A (zh) * | 2003-07-09 | 2006-07-19 | 松下电器产业株式会社 | 扫描测试设计方法、扫描测试电路、扫描测试电路插入用计算机辅助设计程序、大规模集成电路及携带式数码机器 |
CN103023467A (zh) * | 2012-11-28 | 2013-04-03 | 中国人民解放军国防科学技术大学 | 基于扫描方式的寄存器复位方法及装置 |
CN105259493A (zh) * | 2014-07-14 | 2016-01-20 | 联发科技股份有限公司 | 集成电路扫描单元的替换方法、可偏移扫描单元及集成电路 |
KR101539712B1 (ko) * | 2015-01-19 | 2015-07-28 | 연세대학교 산학협력단 | 저전력 스캔 테스트가 가능한 반도체 장치 및 그를 테스트하는 방법 |
Also Published As
Publication number | Publication date |
---|---|
CN108226763A (zh) | 2018-06-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10338139B1 (en) | Method and apparatus for scan chain reordering and optimization in physical implementation of digital integrated circuits with on-chip test compression | |
US8788896B2 (en) | Scan chain lockup latch with data input control responsive to scan enable signal | |
KR101344577B1 (ko) | 집적 회로 테스트를 위한 저전력 및 영역 효율적인 스캔 셀 | |
US8479067B2 (en) | Test architecture including cyclical cache chains, selective bypass scan chain segments, and blocking circuitry | |
US20170061057A1 (en) | Integrated circuit design method reducing clock power and integrated clock gater merged with flip-flops | |
US8726108B2 (en) | Scan test circuitry configured for bypassing selected segments of a multi-segment scan chain | |
US8327201B1 (en) | Parallel testing of an integrated circuit that includes multiple dies | |
CN110390968B (zh) | 用于存储器应用的锁存电路 | |
JP2005032102A (ja) | スキャンテスト設計方法、スキャンテスト回路、スキャンフリップフロップ回路、スキャンテスト回路挿入用cadプログラム、大規模集積回路及び携帯デジタル機器 | |
US10451674B2 (en) | Apparatus and method for at-speed scan test | |
US7278123B2 (en) | System-level test architecture for delivery of compressed tests | |
CN108226763B (zh) | 用于扫描链重新排序的方法、设备和计算机程序产品 | |
US10658062B2 (en) | Simultaneous scan chain initialization with disparate latches | |
Chen et al. | Test stimulus compression based on broadcast scan with one single input | |
US20020157074A1 (en) | Method for layout design and timing adjustment of logically designed integrated circuit | |
US6834368B2 (en) | Semiconductor integrated circuit including a test facilitation circuit for functional blocks intellectual properties and automatic insertion method of the same test facilitation circuit | |
US8595668B1 (en) | Circuits and methods for efficient clock and data delay configuration for faster timing closure | |
US20170146600A1 (en) | Scan Logic For Circuit Designs With Latches And Flip-Flops | |
US11017135B2 (en) | Scan logic for circuit designs with latches and flip-flops | |
Chandra et al. | Designing efficient combinational compression architecture for testing industrial circuits | |
KR20220164826A (ko) | 멀티-다이 집적회로를 테스트하기 위한 방법 및 장치 | |
US10310012B2 (en) | Lightweight, low overhead debug bus | |
US9268891B1 (en) | Compact and efficient circuit implementation of dynamic ranges in hardware description languages | |
Kumar et al. | A novel architecture for scan cell in low power test circuitry | |
Hosseinabady et al. | A selective trigger scan architecture for VLSI testing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |