CN112684327A - 扫描链及其设计方法和基于扫描链的串行扫描复位方法 - Google Patents
扫描链及其设计方法和基于扫描链的串行扫描复位方法 Download PDFInfo
- Publication number
- CN112684327A CN112684327A CN202011380054.7A CN202011380054A CN112684327A CN 112684327 A CN112684327 A CN 112684327A CN 202011380054 A CN202011380054 A CN 202011380054A CN 112684327 A CN112684327 A CN 112684327A
- Authority
- CN
- China
- Prior art keywords
- reset
- register
- scan
- input
- terminal
- 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.)
- Granted
Links
Images
Landscapes
- Test And Diagnosis Of Digital Computers (AREA)
- Tests Of Electronic Circuits (AREA)
- Shift Register Type Memory (AREA)
Abstract
本公开提供一种扫描链及其设计方法和基于扫描链的串行扫描复位方法,该方法包括:提供扫描链,扫描链包括串行级联的多个设定寄存器,其中,除扫描链的起始的设定寄存器之外的每个设定寄存器的扫描/复位输入端连接到上一相邻的设定寄存器的复位输出端;使扫描链处于扫描/复位模式,向起始的设定寄存器的扫描/复位输入端施加复位数据信号,提供时钟输入,进行串行扫描复位且使得除扫描链的起始的设定寄存器之外的每个设定寄存器的扫描/复位数据输入端被输入复位数据信号。本公开基于多个设定寄存器串行级联形成扫描链,复用扫描链进行串行扫描,将复位数据信号扫描入所有的寄存器,实现所有寄存器的复位功能,节省大量连线资源与寄存器面积。
Description
技术领域
本公开的实施例涉及一种扫描链及其设计方法和基于扫描链的串行扫描复位方法。
背景技术
可测试性设计(DesignforTestability,DFT)是一种集成电路设计技术,它将一些特殊结构在设计阶段植入电路,以便设计完成后进行测试。电路测试有时并不容易,这是因为电路的许多内部节点信号在外部难以控制和观测。通过添加可测试性设计结构,例如扫描链等,内部信号可以暴露给电路外部。
扫描链作为目前超大规模集成电路设计中使用最为广泛的可测性设计结构,增强了芯片的可控性和可观察性,为芯片提供了良好的可测性。通常,在半导体芯片的设计过程中,不光需要设计实现预定功能的功能电路,也需要设计用于测试芯片制造缺陷的扫描测试电路(扫描链)。
在数字集成电路中,一般需要通过一定的方法对寄存器进行复位,使得其有一个确定的初始状态(例如0或1),从而让数字集成电路能够正常工作。现有技术中常用的寄存器复位方法包括同步复位和异步复位。
数字集成电路的同步复位方法对数字集成电路芯片的性能有一定的影响,而现有技术的数字集成电路的异步复位方法却又具有潜在的稳定性问题。而且,无论是同步复位结构还是异步复位结构,一般都需要设计实现全局的复位树结构,这样不仅带来额外的功耗开销,还对芯片物理实现带来极大的困难。因此,随着集成电路工艺的不断提高和集成度的不断增大,需要科学地设计一种能够实现复位的理想电路结构,克服现有技术中存在的种种问题。
发明内容
本公开的实施例提供了一种扫描链及其设计方法和基于扫描链的串行扫描复位方法,基于设计的多个设定寄存器,采用串行级联形成扫描链,并通过复用扫描链进行串行扫描,将复位数据信号扫描入所有的寄存器,实现对所有寄存器的复位功能,从而节省了传统复位设计所需的大量连线资源与寄存器面积。
本公开至少一实施例提供了一种随机测试用例生成方法,包括:
一种基于扫描链的串行扫描复位方法,包括:
提供扫描链,其中,所述扫描链包括单个设定寄存器或包括串行级联的多个设定寄存器,任一所述设定寄存器包括:
功能选择端,配置为接收使能信号以通过设置所述使能信号选择所述扫描链处于扫描/复位模式或基本工作模式;
第一输入端,配置为接收用于所述基本工作模式的功能数据输入信号;
扫描/复位输入端,配置为选择性地接收扫描用的扫描输入信号或复位用的复位数据信号;
时钟输入端,配置为接收所述设定寄存器所需的时钟输入;
数据输出端,配置为在所述扫描链处于扫描/复位模式时作为复位输出端并输出复位输出信号,其中,对于所述扫描链包括串行级联的多个设定寄存器,包括:除所述扫描链的起始的设定寄存器之外的每个设定寄存器的扫描/复位输入端连接到上一相邻的设定寄存器的复位输出端;
设置所述设定寄存器的使能信号,使得所述扫描链处于所述扫描/复位模式;并且
对于所述扫描链包括单个设定寄存器,向所述扫描链的所述单个设定寄存器的扫描/复位输入端施加复位数据信号,提供所述单个设定寄存器的时钟输入,以进行串行扫描复位,或者,对于所述扫描链包括串行级联的多个设定寄存器,向所述扫描链的起始的设定寄存器的扫描/复位输入端施加复位数据信号,提供所述设定寄存器的时钟输入,以进行串行扫描复位,且使得除所述扫描链的起始的设定寄存器之外的每个设定寄存器的扫描/复位数据输入端均被输入所述复位数据信号。
例如,在本公开至少一实施例提供的一种串行扫描复位方法中,所述复位数据信号为0或1,所述复位输出信号为0或1。
例如,在本公开至少一实施例提供的一种串行扫描复位方法中,对于所述扫描链包括串行级联的多个设定寄存器,还包括:
通过在一个或多个所述设定寄存器的复位输出端分别与相应的下一相邻的所述设定寄存器的扫描/复位输入端之间设置第一反相器,使得在所述扫描/复位模式时,进行串行扫描复位,且使得除所述扫描链的起始的设定寄存器之外的每个设定寄存器的扫描/复位数据输入端均被输入所述复位数据信号。
例如,在本公开至少一实施例提供的一种串行扫描复位方法中,所述多个设定寄存器包括至少一个第一寄存器和/或至少一个第二寄存器,其中,被复位的所述第一寄存器的复位输出端输出反相复位数据信号,所述反相复位数据信号是所述复位数据信号的取反,被复位的所述第二寄存器的复位输出端输出所述复位数据信号。
例如,在本公开至少一实施例提供的一种串行扫描复位方法中,所述第一寄存器包括:
第一基础寄存器,其中,所述第一基础寄存器包括第一基础输入端以及包括所述第一寄存器的扫描/复位输入端、功能选择端、时钟输入端和复位输出端;
置于所述第一基础寄存器的第一基础输入端和所述第一寄存器的第一输入端之间的第二反相器,其中,所述第一寄存器的复位输出端的输出等于所述第一寄存器的第一输入端的输入且等于所述第一基础寄存器的第一基础输入端的取反;
所述第二寄存器包括:
第二基础寄存器,其中,所述第二基础寄存器包括所述第二寄存器的第一输入端、扫描/复位输入端、功能选择端、时钟输入端和复位输出端,所述第二寄存器的复位输出端的输出等于所述第二寄存器的第一输入端的输入;
所述串行扫描复位方法还包括:
通过在一个或多个所述第一寄存器的复位输出端分别与相应的下一相邻的设定寄存器的扫描/复位输入端之间设置奇数个所述第一反相器,以及在一个或多个所述第二寄存器的复位输出端分别与相应的下一相邻的设定寄存器的扫描/复位输入端之间设置偶数个所述第一反相器,使得在所述扫描/复位模式时,进行串行扫描复位,且使得除所述扫描链的起始的设定寄存器之外的每个设定寄存器的扫描/复位输入端均被输入所述复位数据信号。
例如,在本公开至少一实施例提供的一种串行扫描复位方法中,所述第一基础寄存器和所述第二基础寄存器是具有相反输出的D触发器。
例如,在本公开至少一实施例提供的一种串行扫描复位方法中,所述第一寄存器包括:
第一基础寄存器,其中,所述第一基础寄存器包括第一基础扫描输入端以及包括所述第一寄存器的第一输入端、功能选择端、时钟输入端和复位输出端;
置于所述第一基础寄存器的第一基础扫描输入端和所述第一寄存器的扫描/复位输入端之间的第二反相器,其中,所述第一寄存器的复位输出端的输出等于所述第一寄存器的第一输入端的输入;
所述第二寄存器包括:
第二基础寄存器,其中,所述第二基础寄存器包括所述第二寄存器的第一输入端、扫描/复位输入端、功能选择端、时钟输入端和复位输出端,所述第二寄存器的复位输出端的输出等于所述第二寄存器的第一输入端的输入;
所述串行扫描复位方法还包括:
通过在一个或多个所述第一寄存器的复位输出端分别与相应的下一相邻的所述设定寄存器的扫描/复位输入端之间设置奇数个所述第一反相器,以及在一个或多个所述第二寄存器的复位输出端分别与相应的下一相邻的设定寄存器的扫描/复位输入端之间设置偶数个所述第一反相器,使得在所述扫描/复位模式时,进行串行扫描复位,且使得除所述扫描链的起始的设定寄存器之外的每个设定寄存器的扫描/复位输入端均被输入所述复位数据信号。
例如,在本公开至少一实施例提供的一种串行扫描复位方法中,所述第一基础寄存器和所述第二基础寄存器是具有相反输出的D触发器。
例如,在本公开至少一实施例提供的一种串行扫描复位方法中,还包括:
响应于所述扫描/复位模式,所述奇数是大于等于1的奇数,所述偶数是大于等于0的偶数。
例如,在本公开至少一实施例提供的一种串行扫描复位方法中,向所述扫描链施加复位数据信号,包括:
所述扫描链的起始的设定寄存器的扫描/复位输入端接收二选一多路复用器的输出端输出的所述复位数据信号,其中,所述二选一多路复用器输入复位用的复位数据信号和扫描用的扫描输入信号,并根据复位控制信号选择性地输出用于响应所述扫描/复位模式中复位模式所需的所述复位数据信号或者输出用于响应所述扫描/复位模式中扫描模式所需的所述扫描输入信号。
例如,在本公开至少一实施例提供的一种串行扫描复位方法中,所述二选一多路复用器输出的所述复位数据信号为接地信号,所述接地信号为0,或者,所述二选一多路复用器输出的所述复位数据信号为电源信号,所述电源信号为1。
例如,在本公开至少一实施例提供的一种串行扫描复位方法中,提供所述设定寄存器的时钟输入,包括:
将所有的设定寄存器的使能信号置为1,根据所述扫描链的长度给出适配的时钟输入,以进行串行扫描复位。
例如,在本公开至少一实施例提供的一种串行扫描复位方法中,根据所述扫描链的长度给出适配的时钟输入,包括:
根据长度为N的扫描链,所述设定寄存器的使能信号为1的持续时间大于等于N个时钟周期。
本公开至少一实施例提供了一种用于串行扫描复位的扫描链,包括复位信号端和单个设定寄存器或串行级联的多个设定寄存器,所述复位信号端与所述扫描链的起始的设定寄存器连接,其中,任一所述设定寄存器包括:
功能选择端,配置为接收使能信号以通过设置所述使能信号选择所述扫描链处于扫描/复位模式或基本工作模式;
第一输入端,配置为接收所述基本工作模式所需的功能数据输入信号;
扫描/复位输入端,配置为选择性地接收扫描用的扫描输入信号或复位用的复位数据信号;
时钟输入端,配置为接收所述设定寄存器所需的时钟输入;
数据输出端,配置为在所述扫描链处于扫描/复位模式时作为复位输出端并输出复位输出信号,其中,对于所述扫描链包括串行级联的多个设定寄存器,包括:除所述扫描链的起始的设定寄存器之外的每个所述设定寄存器的扫描/复位输入端连接到上一相邻的设定寄存器的复位输出端,以实现串行级联;
其中,对于所述扫描链包括单个设定寄存器,当所述扫描链处于所述扫描/复位模式时通过向所述扫描链的所述单个设定寄存器的扫描/复位输入端施加复位数据信号以进行串行扫描复位,或者,对于所述扫描链包括多个设定寄存器,所述多个设定寄存器被串行级联来使得当所述扫描链处于所述扫描/复位模式时并通过所述复位信号端向所述起始的设定寄存器施加复位数据信号以进行所述串行扫描复位的过程中,除所述扫描链的起始的设定寄存器之外的每个设定寄存器中的扫描/复位输入端均被输入所述复位数据信号。
例如,在本公开至少一实施例提供的一种用于串行扫描复位的扫描链中,所述复位数据信号为0或1,所述复位输出信号为0或1。
例如,在本公开至少一实施例提供的一种用于串行扫描复位的扫描链中,对于所述扫描链包括串行级联的多个设定寄存器,一个或多个所述设定寄存器的复位输出端分别与相应的下一相邻的设定寄存器的扫描/复位输入端之间设置第一反相器,使得在所述扫描/复位模式时,进行串行扫描复位,且使得除所述扫描链的起始的设定寄存器之外的每个设定寄存器的扫描/复位数据输入端均被输入所述复位数据信号。
例如,在本公开至少一实施例提供的一种用于串行扫描复位的扫描链中,所述多个设定寄存器包括至少一个第一寄存器和/或至少一个第二寄存器,其中,被复位的所述第一寄存器的复位输出端输出反相复位数据信号,所述反相复位数据信号是所述复位数据信号的取反,被复位的所述第二寄存器的复位输出端输出所述复位数据信号。
例如,在本公开至少一实施例提供的一种用于串行扫描复位的扫描链中,所述第一寄存器包括:
第一基础寄存器,其中,所述第一基础寄存器包括第一基础输入端以及包括所述第一寄存器的扫描/复位输入端、功能选择端、时钟输入端和复位输出端;
置于所述第一基础寄存器的第一基础输入端和所述第一寄存器的第一输入端之间的第二反相器,其中,所述第一寄存器的复位输出端的输出等于所述第一寄存器的第一输入端的输入且等于所述第一基础寄存器的第一基础输入端的取反;
所述第二寄存器包括:
第二基础寄存器,其中,所述第二基础寄存器包括所述第二寄存器的第一输入端、扫描/复位输入端、功能选择端、时钟输入端和复位输出端,所述第二寄存器的复位输出端的输出等于所述第二寄存器的第一输入端的输入;
一个或多个所述第一寄存器的复位输出端分别与相应的下一相邻的设定寄存器的扫描/复位输入端之间设置奇数个所述第一反相器,并且一个或多个所述第二寄存器的复位输出端分别与相应的下一相邻的设定寄存器的扫描/复位输入端之间设置偶数个所述第一反相器,使得在所述扫描/复位模式时,进行串行扫描复位,且使得除所述扫描链的起始的设定寄存器之外的每个设定寄存器的扫描/复位输入端均被输入所述复位数据信号。
例如,在本公开至少一实施例提供的一种用于串行扫描复位的扫描链中,所述第一寄存器包括:
第一基础寄存器,其中,所述第一基础寄存器包括第一基础扫描输入端以及包括所述第一寄存器的第一输入端、功能选择端、时钟输入端和复位输出端;
置于所述第一基础寄存器的第一基础扫描输入端和所述第一寄存器的扫描/复位输入端之间的第二反相器,其中,所述第一寄存器的复位输出端的输出等于所述第一寄存器的第一输入端的输入;
所述第二寄存器包括:
第二基础寄存器,其中,所述第二基础寄存器包括所述第二寄存器的第一输入端、扫描/复位输入端、功能选择端、时钟输入端和复位输出端,所述第二寄存器的复位输出端的输出等于所述第二寄存器的第一输入端的输入;
一个或多个所述第一寄存器的复位输出端分别与相应的下一相邻的设定寄存器的扫描/复位输入端之间设置奇数个所述第一反相器,并且一个或多个所述第二寄存器的复位输出端分别与相应的下一相邻的设定寄存器的扫描/复位输入端之间设置偶数个所述第一反相器,使得在所述扫描/复位模式时,进行串行扫描复位,且使得除所述扫描链的起始的设定寄存器之外的每个设定寄存器的扫描/复位输入端均被输入所述复位数据信号。
例如,在本公开至少一实施例提供的一种用于串行扫描复位的扫描链中,所述奇数是大于等于1的奇数,所述偶数是大于等于0的偶数。
例如,在本公开至少一实施例提供的一种用于串行扫描复位的扫描链中,所述复位信号端包括二选一多路复用器;所述二选一多路复用器的输出端与所述扫描链的起始的设定寄存器的扫描/复位输入端连接,向所述起始的设定寄存器的扫描/复位输入端提供所述复位数据信号;所述二选一多路复用器的第一输入端输入复位用的所述复位数据信号,第二输入端输入扫描用的所述扫描输入信号。
例如,在本公开至少一实施例提供的一种用于串行扫描复位的扫描链中,所述扫描链的起始的设定寄存器是所述第一寄存器或所述第二寄存器。
例如,在本公开至少一实施例提供的一种用于串行扫描复位的扫描链中,所述二选一多路复用器的第一输入端接地或者接电源。
本公开至少一实施例提供了一种用于串行扫描复位的扫描链的设计方法,包括:
提供单个设定寄存器或多个设定寄存器;
利用综合工具对寄存器传输级进行综合时,将所述设定寄存器中的基础寄存器映射为标准单元库中的标准寄存器元件,其中,任一所述设定寄存器包括:功能选择端,配置为接收使能信号以通过设置使能信号选择所述扫描链处于扫描/复位模式或基本工作模式;第一输入端,配置为接收所述基本工作模式所需的功能数据输入信号;扫描/复位输入端,配置为选择性地接收扫描用的扫描输入信号或复位用的复位数据信号;时钟输入端,配置为接收所述设定寄存器所需的时钟输入;数据输出端,配置为在所述扫描链处于扫描/复位模式时作为复位输出端并输出复位输出信号;其中,所述基础寄存器包括所述设定寄存器的功能选择端、时钟输入端和复位输出端,所述基础寄存器还包括用于所述基本工作模式的第一基础输入端或包括所述设定寄存器的第一输入端,所述基础寄存器还包括用于扫描/复位模式的第一基础扫描输入端或包括所述设定寄存器的扫描/复位输入端;
对于所述扫描链包括多个设定寄存器,使用扫描链连接工具,使得除所述扫描链的起始的设定寄存器之外的每个所述设定寄存器的扫描/复位输入端连接到上一相邻的设定寄存器的复位输出端,以实现所述多个设定寄存器的串行级联;
根据后端物理设计的时序要求,对所述设定寄存器的物理位置进行布局;
检查所有的设定寄存器,其中,对于所述扫描链包括单个设定寄存器,使得在所述扫描链处于所述扫描/复位模式时,向所述扫描链的所述单个设定寄存器施加复位数据信号以进行所述串行扫描复位,或者,对于所述扫描链包括串行级联的多个设定寄存器,使得在所述扫描链处于所述扫描/复位模式时,向所述扫描链的起始的设定寄存器施加复位数据信号以进行所述串行扫描复位的过程中,除所述扫描链的起始的设定寄存器之外的每个设定寄存器中的扫描/复位输入端均被输入所述复位数据信号。
例如,在本公开至少一实施例提供的一种扫描链的设计方法中,对于所述扫描链包括多个设定寄存器,还包括:
基于布局的结果,调整至少两个所述设定寄存器中的一个的复位输出端和另一个的扫描/复位输入端之间的连接关系,以使所述扫描链的绕线长度缩短。
例如,在本公开至少一实施例提供的一种扫描链的设计方法中,对于所述扫描链包括多个设定寄存器,还包括:
通过在一个或多个所述设定寄存器的复位输出端分别与相应的下一相邻的设定寄存器的扫描/复位输入端之间设置第一反相器,使得在所述扫描/复位模式时,进行串行扫描复位,且使得除所述扫描链的起始的设定寄存器之外的每个的设定寄存器的所述扫描/复位数据输入端均被输入所述复位数据信号。
例如,在本公开至少一实施例提供的一种扫描链的设计方法中,所述多个设定寄存器包括至少一个第一寄存器和/或至少一个第二寄存器,其中,被复位的所述第一寄存器的复位输出端输出反相复位数据信号,所述反相复位数据信号是所述复位数据信号的取反,被复位的所述第二寄存器的复位输出端输出所述复位数据信号。
例如,在本公开至少一实施例提供的一种扫描链的设计方法中,所述第一寄存器包括:
第一基础寄存器,其中,所述第一基础寄存器包括第一基础输入端以及包括所述第一寄存器的扫描/复位输入端、功能选择端、时钟输入端和复位输出端;
置于所述第一基础寄存器的第一基础输入端和所述第一寄存器的第一输入端之间的第二反相器,其中,所述第一寄存器的复位输出端的输出等于所述第一寄存器的第一输入端的输入且等于所述第一基础寄存器的第一基础输入端的取反;
所述第二寄存器包括:
第二基础寄存器,其中,所述第二基础寄存器包括所述第二寄存器的第一输入端、扫描/复位输入端、功能选择端、时钟输入端和复位输出端,所述第二寄存器的复位输出端的输出等于所述第二寄存器的第一输入端的输入;
所述扫描链的设计方法还包括:
通过在一个或多个所述第一寄存器的复位输出端分别与相应的下一相邻的设定寄存器的扫描/复位输入端之间设置奇数个所述第一反相器,以及在一个或多个所述第二寄存器的复位输出端分别与相应的下一相邻的设定寄存器的扫描/复位输入端之间设置偶数个所述第一反相器,使得在所述扫描/复位模式时,进行串行扫描复位,且使得除所述扫描链的起始的设定寄存器之外的每个设定寄存器的扫描/复位输入端均被输入所述复位数据信号。
例如,在本公开至少一实施例提供的一种扫描链的设计方法中,所述第一寄存器包括:
第一基础寄存器,其中,所述第一基础寄存器包括第一基础扫描输入端以及包括所述第一寄存器的第一输入端、功能选择端、时钟输入端和复位输出端;
置于所述第一基础寄存器的第一基础扫描输入端和所述第一寄存器的扫描/复位输入端之间的第二反相器,其中,所述第一寄存器的复位输出端的输出等于所述第一寄存器的第一输入端的输入;
所述第二寄存器包括:
第二基础寄存器,其中,所述第二基础寄存器包括所述第二寄存器的第一输入端、扫描/复位输入端、功能选择端、时钟输入端和复位输出端,所述第二寄存器的复位输出端的输出等于所述第二寄存器的第一输入端的输入;
所述扫描链的设计方法还包括:
通过在一个或多个所述第一寄存器的复位输出端分别与相应的下一相邻的所述设定寄存器的扫描/复位输入端之间设置奇数个所述第一反相器,以及在一个或多个所述第二寄存器的复位输出端分别与相应的下一相邻的设定寄存器的扫描/复位输入端之间设置偶数个所述第一反相器,使得在所述扫描/复位模式时,进行串行扫描复位,且使得除所述扫描链的起始的设定寄存器之外的每个设定寄存器的扫描/复位输入端均被输入所述复位数据信号。
例如,在本公开至少一实施例提供的一种扫描链的设计方法中,还包括:
计算任一第一寄存器的复位输出端至相应的下一相邻的所述设定寄存器的扫描/复位输入端之间的所述第一反相器的个数并记为第一数目,计算任一第二寄存器的复位输出端至相应的下一相邻的设定寄存器的扫描/复位输入端之间的所述第一反相器的个数记为第二数目;
判断是否同时满足所述第一数目为奇数以及所述第二数目为偶数,若是,则满足串行扫描复位成功的条件;若否,则在相应的第一寄存器或第二寄存器的复位输出端与下一相邻的设定寄存器的扫描/复位输入端之间设置所述第一反相器,使得所述第一数目为奇数以及所述第二数目为偶数,以满足串行扫描复位成功的条件。
例如,在本公开至少一实施例提供的一种扫描链的设计方法中,还包括:
通过验证是否所有的所述第二寄存器的复位输出端均输出所述复位数据信号以及所有的所述第一寄存器的复位输出端均输出反相复位数据信号,所述反相复位数据信号是所述复位数据信号的取反,以验证串行扫描复位的正确性。
附图说明
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本公开一些实施例提供的一种基于扫描链的串行扫描复位方法的流程图;
图2为本公开一些实施例提供的一种第一寄存器的结构示意图;
图3为本公开一些实施例提供的一种第二定寄存器的结构示意图;
图4为本公开一些实施例提供的一种一种未在设定寄存器与设定寄存器之间的路径上设置反相器的扫描链的结构示意图;
图5为本公开一些实施例提供的一种在设定寄存器与设定寄存器之间的路径上设置反相器的扫描链的结构示意图;
图6为本公开一些实施例提供的一种用于串行扫描复位的扫描链的设计方法的流程示意图;
图7为本公开又一些实施例提供的一种用于串行扫描复位的扫描链的设计方法的流程示意图;
图8为本公开又一些实施例提供的另一种形式的第一寄存器13的结构示意图;以及
图9为本公开又一些实施例提供的一种用于串行扫描复位的扫描链的结构示意图。
具体实施方式
下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
除非另有定义,本公开实施例使用的所有术语(包括技术和科学术语)具有与本公开所属领域的普通技术人员共同理解的相同含义。还应当理解,诸如在通常字典里定义的那些术语应当被解释为具有与它们在相关技术的上下文中的含义相一致的含义,而不应用理想化或极度形式化的意义来解释,除非本公开实施例明确地这样定义。
本公开实施例中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“一个”、“一”或者“该”等类似词语也不表示数量限制,而是表示存在至少一个。同样,“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。本公开实施例中使用了流程图用来说明根据本公开实施例的方法的步骤。应当理解的是,前面或后面的步骤不一定按照顺序来精确的进行。相反,可以按照倒序或同时处理各种步骤。同时,也可以将其他操作添加到这些过程中,或从这些过程移除某一步或数步。
对于寄存器复位方法,不管是同步复位还是异步复位,目前一般都是通过复位树(ResetTree)来实现,需要占用大量绕线资源,且每个寄存器都需要额外配套一个双路选择器或使用带复位端口的寄存器,需占用大量面积,而且,复位用的复位端口的控制信号也需要绕线的资源。发明人发现:目前的扫描测试(ScanTest)仅使用串行扫描链对芯片进行测试,即芯片中的扫描链通常只用于测试,并且所需的扫描用的使能信号与数据扫描路径,同样需要占用大量绕线资源,因此需要避免使用复位树以及增加双路选择器或使用带复位端口的寄存器,以节省大量绕线资源与寄存器电路面积。
本公开至少一实施例提供一种基于扫描链的串行扫描复位方法,包括:
提供扫描链,其中,该扫描链包括单个设定寄存器或包括串行级联的多个设定寄存器,任一设定寄存器包括:
功能选择端,配置为接收使能信号以通过设置使能信号选择扫描链处于扫描/复位模式或基本工作模式;
第一输入端,配置为接收用于基本工作模式的功能数据输入信号;
扫描/复位输入端,配置为选择性地接收扫描用的扫描输入信号或复位用的复位数据信号;
时钟输入端,配置为接收设定寄存器所需的时钟输入;
数据输出端,配置为在扫描链处于扫描/复位模式时作为复位输出端并输出复位输出信号,其中,对于扫描链包括串行级联的多个设定寄存器,包括:除扫描链的起始的设定寄存器之外的每个设定寄存器的扫描/复位输入端连接到上一相邻的设定寄存器的复位输出端;
设置多个设定寄存器的使能信号,使得扫描链处于扫描/复位模式;
对于扫描链包括单个设定寄存器,向扫描链的单个设定寄存器的扫描/复位输入端施加复位数据信号,提供单个设定寄存器的时钟输入,以进行串行扫描复位,或者,对于扫描链包括串行级联的多个设定寄存器,向扫描链的起始的设定寄存器的扫描/复位输入端施加复位数据信号,提供设定寄存器的时钟输入,以进行串行扫描复位,且使得除扫描链的起始的设定寄存器之外的每个设定寄存器的扫描/复位数据输入端均被输入复位数据信号。
本公开至少一实施例还提供了一种用于串行扫描复位的扫描链,包括复位信号端和单个设定寄存器或串行级联的多个设定寄存器,复位信号端与扫描链的起始的设定寄存器连接,其中,任一设定寄存器包括:
功能选择端,配置为接收使能信号以通过设置使能信号选择扫描链处于扫描/复位模式或基本工作模式;
第一输入端,配置为接收基本工作模式所需的功能数据输入信号;
扫描/复位输入端,配置为选择性地接收扫描用的扫描输入信号或复位用的复位数据信号;
时钟输入端,配置为接收设定寄存器所需的时钟输入;
数据输出端,配置为在扫描链处于扫描/复位模式时作为复位输出端并输出复位输出信号,其中,对于扫描链包括串行级联的多个设定寄存器,包括:除扫描链的起始的设定寄存器之外的每个设定寄存器的扫描/复位输入端连接到上一相邻的设定寄存器的复位输出端,以实现串行级联;
其中,对于扫描链包括单个设定寄存器,当扫描链处于扫描/复位模式时通过向扫描链的单个设定寄存器的扫描/复位输入端施加复位数据信号以进行串行扫描复位,或者,对于扫描链包括多个设定寄存器,多个设定寄存器被串行级联来使得当扫描链处于扫描/复位模式时并通过复位信号端向起始的设定寄存器施加复位数据信号以进行串行扫描复位的过程中,除扫描链的起始的设定寄存器之外的每个设定寄存器中的扫描/复位输入端均被输入复位数据信号。
本公开至少一实施例还提供了一种用于串行扫描复位的扫描链的设计方法。
本公开上述实施例的串行扫描复位方法或扫描连,可以通过复用串行扫描链,将初始复位值扫描入所有寄存器,实现对所有寄存器的复位功能,可以避免使用复位树以及增加双路选择器或使用带复位端口的寄存器,从而避免占用大量面积。而且,由于复用了串行扫描链,相当于复用了扫描链的绕线走线资源,因此,在本公开至少一个示例中,还可以节省大量绕线资源与寄存器电路面积,有利于芯片面积的减小。
图1为本公开一些实施例提供的一种基于扫描链的串行扫描复位方法的流程图。图2为本公开一些实施例提供的一种第一寄存器的结构示意图。图3为本公开一些实施例提供的一种第二定寄存器的结构示意图。
如图1-图3结合所示,本公开至少一实施例提供的串行扫描复位方法包括步骤S1至步骤S3。
步骤S1、提供扫描链,其中,该扫描链包括串行级联的多个设定寄存器,任一设定寄存器包括功能选择端se、第一输入端d、扫描/复位输入端sdi、时钟输入端clk和复位输出端q。
步骤S2、设置多个设定寄存器的使能信号,使得扫描链处于扫描/复位模式。
步骤S3、向扫描链的起始的设定寄存器的扫描/复位输入端sdi施加复位数据信号,提供设定寄存器的时钟输入,以进行串行扫描复位,且使得除扫描链的起始的设定寄存器之外的每个设定寄存器的扫描/复位数据输入端sdi均被输入复位数据信号。
首先,对于步骤S1,例如,在一些示例中,功能选择端配置为接收使能信号以通过设置使能信号选择扫描链处于扫描/复位模式或基本工作模式,第一输入端配置为接收用于基本工作模式的功能数据输入信号,扫描/复位输入端配置为选择性地接收扫描用的扫描输入信号或复位用的复位数据信号,时钟输入端配置为接收设定寄存器所需的时钟输入,复位输出端配置为输出复位输出信号。其中,除扫描链的起始的设定寄存器之外的每个设定寄存器的扫描/复位输入端连接到上一相邻的设定寄存器的复位输出端,以实现串行级联。
接着,对于步骤S2,例如,在一些示例中,使能信号为0或1。比如,当使能信号为0时,功能选择端选择扫描链处于基本工作模式,又比如,当使能信号为1时,功能选择端选择扫描链处于扫描/复位模式。
例如,在一些示例中,当扫描链处于基本工作模式时,第一输入端接收功能数据输入信号,扫描链的设定寄存器通过功能路径连接,功能路径执行一系列的算术逻辑运算,以使芯片完成预先设计的正常功能,例如数据加密、信号处理等等。鉴于扫描链处于基本工作模式不是本公开实施例阐述的重点,为了保证本公开实施例的说明清楚且简明,本公开实施例省略扫描链处于基本工作模式的相关内容。
例如,在一些示例中,当扫描链处于扫描/复位模式时,扫描链的设定寄存器的扫描/复位输入端选择性地接收扫描用的扫描输入信号或复位用的复位数据信号。
值得说明的是,设定寄存器的扫描/复位输入其实是一个输入端,并且扫描/复位输入与扫描/复位模式对应。扫描/复位模式包括扫描模式和复位模式,而且该扫描模式和该复位模式在同一时刻只能二选其一进行相应的操作。
例如,在一些示例中,当需要对扫描链的设定寄存器进行复位时,此时需要选择扫描/复位模式中的复位模式,则扫描/复位输入端为复位输入端,即该扫描/复位输入端输入复位用的复位数据信号。又例如,在一些示例中,当需要进行扫描测试时,此时需要选择扫描/复位模式中的扫描模式,则扫描/复位输入端为扫描输入端,即该扫描/复位输入端输入扫描用的扫描输入信号。这意味着上述示例复用了串行扫描链,也相当于复用了扫描链的绕线走线资源,由此可以节省大量绕线资源,从而有利于芯片面积的减小。
值得说明的是,本公开实施例的复位输出端q是设定寄存器的数据输出端q在扫描链处于扫描/复位模式时所表示的用于输出复位输出信号的输出端,该数据输出端q在扫描链处于基本工作模式时则表示用于工作状态时输出与功能数据输入信号对应结果的输出端。为了本公开实施例的表述清楚与简洁,下文的数据输出端都是用扫描链处于扫描/复位模式时的复位输出端q进行描述。
需要注意的是,对于选择扫描模式或选择复位模式,可以根据需要自由进行调整。下文主要是以扫描链在扫描/复位模式的复位模式的场景为例进行详细描述,因此,下文中的设定寄存器在复位模式时的扫描/复位输入端应该选择的是复位输入端,为了表述方便,后续依然采用扫描/复位输入端替代复位输入端进行描述,但是其仅仅是为了表述方便,并不会对设定寄存器的的结构特征和功能等起到任何限制作用。此外,对于扫描链在扫描/复位模式的扫描模式的场景的相关内容,本领域技术人员可以根据本文的相关描述能够得知扫描链处于扫描模式的具体方案,本公开实施例在此不做详细阐述。
例如,在一些示例中,无论是扫描/复位模式中的扫描模式还是复位模式,都是要在使能信号为1时才能进行相应的复位操作或扫描测试操作。
最后,对于步骤S3,例如,在一些示例中,将向起始的设定寄存器的扫描/复位输入端sdi施加的复位数据信号记为R,则除扫描链的起始的设定寄存器之外的每个设定寄存器的扫描/复位数据输入端sdi均被输入复位数据信号R,这意味着,所有的设定寄存器的扫描/复位输入端sdi输入的都是该复位数据信号R。再将复位输出端输出的复位输出信号记为O,则复位输出信号O为复位数据信号R或者为反相复位数据信号P,其中,该反相复位数据信号P是复位数据信号R的取反。
例如,在一些示例中,向起始的设定寄存器的扫描/复位输入端sdi施加的复位数据信号R为0或1,设定寄存器的复位输出信号为复位数据信号0(相当于复位为0)或反相复位数据信号1(相当于复位为1)。
下文主要是以复位数据信号R为0以及反相复位数据信号P为1为具体例进行说明,以利于理解本公开的实施例。然而本公开实施例的复位数据信号和复位输出信号并不局限于该复位值0和1,还可以是其他合理的复位值,本公开实施例对此不作限制,在此也不做穷举和赘述。
例如,在一些示例中,如图2所示,第一寄存器11的复位输出信号RVAL(ResetValue,也称复位值)为1,其中,第一寄存器11的扫描/复位输入端sdi输入的复位数据信号为0,第一寄存器11的复位输出端q输出的复位输出信号RVAL为反相复位数据信号1。
如图2所示,第一寄存器11包括第一基础寄存器1101(即图2中白色方框部分dff_scan,表示一个D触发器)和反相器1102。其中,第一基础寄存器1101包括第一基础输入端D以及SI端、CK端、SE端和QB端,这意味着,第一基础寄存器1101包括了第一寄存器11的扫描/复位输入端sdi、功能选择端se、时钟输入端clk和复位输出端q。因为图2是为了将第一寄存器11和第一基础寄存器1101区分开来,特地在图2的白色方框部分的外侧加了一层灰色方框,但是在实际电路结构层面上来看,SI端、CK端,SE端与QB端和sdi端、se端、clk端和q端分别指同一端。值得说明的是,这里图2仅为一种便于理解的示意图,并不会对该第一寄存器11的特征起到任何限制作用。
例如,在一些示例中,如图2所示,第一寄存器11的反相器1102置于第一基础寄存器1101的第一基础输入端D和第一寄存器11的第一输入端d之间。
如图3所示,第二寄存器12的复位输出信号RVAL为0,其中,第二寄存器的扫描/复位输入端sdi输入的复位数据信号为0,第一寄存器11的复位输出端q输出复位数据信号0。
例如,在一些示例中,如图3所示,第二寄存器12包括第二基础寄存器1201(即图3中白色方框部分dff_scan,表示一个D触发器)。其中,第二基础寄存器1201包括D端、SI端、CK端、SE端和Q端,这意味着,第二基础寄存器1201包括了第二寄存器的第一输入端d、扫描/复位输入端sdi、功能选择端se、时钟输入端clk和复位输出端q。因为图3为是了将第二寄存器和第二基础寄存器区分开来,特地在图3的白色方框部分的外侧加了一层灰色方框,但是在实际电路结构层面上来看,D端、SI端、CK端,SE端与QB端和d端、sdi端、se端、clk端和q端分别指同一端。值得说明的是,这里图3仅为一种便于理解的示意图,并不会对该第二寄存器12的特征起到任何限制作用。
例如,在一些示例中,第一寄存器11的第一基础寄存器1101和第二寄存器12的第二基础寄存器1201是具有相反的逻辑输出的D触发器,即第一基础寄存器1101的QB端的输出是第二基础寄存器1201的Q端的输出的取反,主要是因为反相器1102的存在。
例如,在一些示例中,响应于每个第二寄存器12经过一个时钟周期,图3中的第二寄存器12的复位输出端q(即Q端)的输出等于第二寄存器12的第一输入端d的输入,实现正常的D触发器的功能,即表示当一拍时钟之后,第二寄存器12的复位输出端才会等于第一输入端d,如果没有时钟,则第二寄存器12的复位输出端的输出不会改变。
例如,在一些示例中,响应于每个第一寄存器11经过一个时钟周期,图2中的第一寄存器11的复位输出端q(即QB端)的输出等于第一寄存器11的第一输入端d的输入且等于第一基础寄存器1101的第一基础输入端D的取反,即表示当一拍时钟之后,第一寄存器11的复位输出端才会等于第一输入端d,如果没有时钟,则第一寄存器11的复位输出端的输出不会改变。值得说明的是,第一寄存器的11在设计时考虑的因素包括:由于第一寄存器11依然需要能够实现正常的D触发器的功能,意味着需要让q端和d端的数值保持一致,即当d端输入0时,q端输出0,当d端输入1,则q端也输出1,再者,根据复位功能的需求,第一寄存器11的复位输出端q(即QB端)需要输出反相复位数据信号1,此时让第一寄存器11加设了一个反相器1102,让其置于第一基础寄存器1101的第一基础输入端D和第一寄存器11的第一输入端d之间,使得复位输出端q(即QB端)的输出与第一输入端d的输入能够保持一致,从而实现正常D触发器的功能。这意味着,如果第一寄存器11不采用QB端,而直接在第一基础寄存器1101的第一基础输入端D和第一寄存器11的第一输入端d之间加了一个反相器1102,此时第一寄存器11就不再是个D触发器。换句话说,QB端相当于是Q端的反相,而第一寄存器11的D端的反相器1102的存在,相当于是输入与输出侧的反相的抵消,该第一寄存器11依然能够实现正常D触发器的功能。
据前所述,与第一寄存器11相比,第二寄存器12没有设置一个反相器。基于上述可知,是否在基础寄存器(例如第一基础寄存器或第二基础寄存器)的基础输入端和第一寄存器11的第一输入端之间设置了反相器,决定了设定寄存器的复位输出端q输出的复位输出信号RVAL是1还是0。例如,若需要让设定寄存器的复位输出端q输出1,则选用图2的第一寄存器11,又例如,若需要让设定寄存器的复位输出端q输出0,则选用图3的第二寄存器12。
例如,在一些示例中,对于图3中的第二寄存器12,当扫描链处于复位模式时,第二寄存器12的sdi端输入0,则该第二寄存器的q端输出0,即第二寄存器的Q端的输出等于SI端的输入;对于图2中的第一寄存器11,当扫描链处于复位模式时,第一寄存器11的sdi端输入0,则该第一寄存器11的q端输出1,即第一寄存器11的QB端的输出等于sdi端(即SI端)的输入的取反。基于上述示例的特定形式的第一寄存器11和第二寄存器12,在设置使能信号使扫描链处于扫描/复位模式时,从扫描链的起始的设定存储器的sdi端输入0,传输经过每一级的设定寄存器之后,使得所有的设定寄存器的Q端都是输出0,QB端都是输出1,此时如果q端接的Q端,则q端为0,如果q端接的是QB端,则q端为1,这样q端的值就等于复位输出信号RVAL了,完成复位功能。
基于上述可知,第一寄存器11的QB端和第二寄存器12分别可以实现D触发器的功能,并且由于第一寄存器11的QB端和第二寄存器12的Q端的区分的存在,有利于扫描链复位完成后的验证工作,即只需要检查验证所有的QB端的复位值和所有的Q端的复位值,验证起来比较简单,尤其是对于存在几百万甚至几千万个寄存器的芯片。
值得注意的是,对于扫描链中一些设定寄存器的复位输出信号需要为0以及又一些设定寄存器的复位输出信号需要为1,这点具体需要根据实际情况进行预设,本领域技术人员可以视实际情况而定,本公开实施例对此不作限制,并且也不做赘述。另外,需要说明的是,本公开实施例的扫描链不仅同时包含复位输出信号为0的设定寄存器以及复位输出信号为1的设定寄存器,还可以全部是复位输出信号为0的设定寄存器,也可以是全部是复位输出信号为1的设定寄存器,这取决于复位值的需求,具体可以根据实际需求进行自由调整,本公开实施例对此不作限制,并且在此也不做赘述。
例如,在一些示例中,扫描链包括串行级联的多个设定寄存器,该多个设定寄存器包括至少一个第一寄存器11和/或至少一个第二寄存器12。
图4为本公开一些实施例提供的一种未在设定寄存器与设定寄存器之间的路径上设置反相器的扫描链的结构示意图。图5为本公开一些实施例提供的一种在设定寄存器与设定寄存器之间的路径上设置反相器的扫描链的结构示意图。
例如,在一些示例中,串行扫描复位方法包括:通过在一个或多个设定寄存器的复位输出端分别与相应的下一相邻的设定寄存器的扫描/复位输入端之间设置反相器(如图5中的反相器2101和2102),使得在扫描/复位模式时,进行串行扫描复位,且使得除扫描链的起始的设定寄存器之外的每个设定寄存器的扫描/复位数据输入端均被输入复位数据信号(如复位数据信号为0)。
为了以示区别,本公开的一些实施例将设定寄存器的复位输出端与相应的设定寄存器的扫描/复位输入端之间的反相器记为第一反相器,以及将第一寄存器11自身设置的反相器(例如反相器1102)记为第二反相器。
例如,在一些示例中,如图4所示,扫描链100包括依次串行级联的四个设定寄存器,分别为设定寄存器1201a、设定寄存器1101a、设定寄存器1102a和设定寄存器1202a。设定寄存器1101a和设定寄存器1102a均属于第一寄存器11,设定寄存器1201a和设定寄存器1202a均属于第二寄存器12。其中,设定寄存器1101a的扫描/复位输入端连接到设定寄存器1201a的复位输出端,设定寄存器1102a的扫描/复位输入端连接到设定寄存器1101a,设定寄存器1202a的扫描/复位输入端连接到设定寄存器1102a的复位输出端。
例如,在一些示例中,扫描链100包括复位信号端,该复位信号端包括二选一多路复用器301,如图4所示。该二选一多路复用器301的输出端与扫描链100的起始的设定寄存器1201a的扫描/复位输入端连接,用于在使能信号(Scan_Shift_En)为1时向起始的设定寄存器1201a的扫描/复位输入端提供复位数据信号。例如,二选一多路复用器301的第一输入端3011接地,则二选一多路复用器301输出的复位数据信号为接地信号,比如接地信号为0。又例如,二选一多路复用器301的第一输入端3011接电源,则二选一多路复用器301输出的复位数据信号为电源信号,比如电源信号为1,并且,第一输入端3011接电源时的复位数据信号为1,其得到的设定寄存器的复位输出信号是上述复位数据信号为0的示例中对应的复位输出信号的取反,具体的方法和原理可以参照上文关于基于扫描链的串行扫描复位方法的描述,在此不做赘述。例如,二选一多路复用器301的第一输入端3011输入复位用的复位数据信号0,第二输入端3012输入扫描用的扫描输入信号(Scan_Data_In)。正如上文所述的本公开实施例的复位数据信号不仅限于0或1,对应地,本公开实施例的二选一多路复用器301的第一输入端3011也不仅限于接地或接电源,还可以通过其他的方式以向扫描链100的起始的设定寄存器的扫描/复位输入端施加合理的复位数据信号。
例如,在一些示例中,二选一多路复用器301还包括复位控制信号端3013。例如,当控制信号端3013接收到的复位控制信号Reset为1时,二选一多路复用器301选择第一输入端3011输入复位用的复位数据信号0,此时基于扫描链进行串行扫描复位。又例如,当控制信号端3013接收到的复位控制信号Reset为0时,二选一多路复用器301选择第二输入端3012输入扫描用的扫描输入信号(Scan_Data_In),此时基于扫描链进行扫描测试。值得说明的是,本公开实施例的复位控制信号并不局限于0和1,还可以是其他合理的复位控制信号,本公开实施例对此不作限制,在此也不做穷举和赘述。
例如,在一些示例中,扫描链的起始的设定寄存器可以是第二寄存器12,如图4和图5中的设定寄存器1201a,扫描链的起始的设定寄存器也可以是第一寄存器11(未图示),本公开实施例在此不作限制,只要能让二选一多路复用器301的输出端输出复位数据信号0即可,则同样让扫描链的起始的设定寄存器的扫描/复位输入端的输入为复位数据信号0。
如图4所示,设定寄存器1201a的扫描/复位输入端输入复位数据信号0,设定寄存器1201a的复位输出端输出复位数据信号0,紧接着,设定寄存器1101a的扫描/复位输入端输入复位数据信号0,设定寄存器1101a的复位输出端q(即QB端)输出1,由于本公开实施例至少一实施例需要使所有的第一寄存器11的扫描/复位输入端sdi输入复位数据信号0并且复位输出端q(即QB端)输出反向复位数据信号1,以及让所有的第二寄存器的扫描/复位输入端sdi输入复位数据信号0并且复位输出端q(即Q端)输出反向复位数据信号0,以完成复位功能。所以,当设定寄存器1101a的复位输出端输出1,造成该设定寄存器1102a的扫描/复位输入端输入的是1而不再是复位数据信号0,从而导致在复位模式时不再满足寄存器的QB端是SI端的取反,由此,为了让设定寄存器1102a的描/复位输入端也输入复位数据信号0,则通过在设定寄存器1101a的复位输出端q和设定寄存器1102a的扫描/复位输入端sdi之间设置奇数个第一反相器(例如图5所示的一个反相器2101),使得设定寄存器1102a的扫描/复位输入端sdi输入复位数据信号0,如图5所示。
同样地,图4中设定寄存器1102a复位输出端q(即QB端)输出1,造成图4中的设定寄存器1202的扫描/复位输入端sdi输入的是1而不再是复位数据信号0,所以,为了让设定寄存器1202a的描/复位输入端sdi也输入复位数据信号0,则通过在设定寄存器1102a的复位输出端q和设定寄存器1202a的扫描/复位输入端sdi之间设置一个第一反相器(例如图5所示的反相器2102),使得设定寄存器1202a的扫描/复位输入端sdi输入复位数据信号0。
例如,在图5的示例中,设定寄存器1201a的复位输出端q(即Q端)和设定寄存器1101a的扫描/复位输入端sdi之间设置0个第一反相器(即没有设置第一反相器),此时,设定寄存器1201a的复位输出端q输出复位数据信号0,对应地,设定寄存器1101a的扫描/复位输入端sdi也输入复位数据信号0。
值得说明的是,当设定寄存器1102a的复位输出端q(即QB端)和设定寄存器1202a的扫描/复位输入端sdi之间设3个或5个或7个或其他的2n+1(n为整数)个第一反相器时,设定寄存器1102a的复位输出端q输出复位数据信号1,该输出的复位数据信号1经过3或5或7等奇数个第一反相器后,使得设定寄存器1202a的扫描/复位输入端sdi输入复位数据信号0。
同样地,当设定寄存器1201a的复位输出端q(即Q端)和设定寄存器1101a的扫描/复位输入端sdi之间设置2个或4个或6个或其他的2n(n为整数)个第一反相器时,设定寄存器1201a的复位输出端q输出复位数据信号0,并且该输出的复位数据信号0经过了2或4或6等偶数个第一反相器后,使得设定寄存器1101a的扫描/复位输入端sdi也输入复位数据信号0。
据前所述,串行扫描复位方法还包括:为响应扫描/复位模式,通过在一个或多个第一寄存器11(例如包括QB端的设定寄存器1101a或1102a)的复位输出端分别与相应的下一相邻的设定寄存器(例如包括QB端的设定寄存器1102a或者包括Q端的设定寄存器1202a)的扫描/复位输入端之间设置奇数个第一反相器(例如图5中的反相器2101或反相器2102),以及在一个或多个第二寄存器12的复位输出端分别与相应的下一相邻的设定寄存器(可以是第一寄存器,也可以是第二寄存器)的扫描/复位输入端之间设置偶数个第一反相器使得在扫描/复位模式时,进行串行扫描复位,且使得除扫描链的起始的设定寄存器之外的每个设定寄存器的扫描/复位输入端均被输入复位数据信号0,则所有的第一寄存器11的扫描/复位输入端sdi都输入复位数据信号0。
例如,在一些示例中,为了表述方便,将任一的第一寄存器11的复位输出端q至相应的下一相邻的设定寄存器的扫描/复位输入端sdi之间的第一反相器的个数x记作为第一数目x,以及将任一第二寄存器12的复位输出端q至相应的下一相邻的设定寄存器的扫描/复位输入端sdi之间的第一反相器的个数y记作为第二数目y。例如,在一些示例中,第二数目y为大于等于0的偶数,第一数目x为大于等于1的奇数。
由此,当第一数目x为奇数以及第二数目y为偶数时,则满足串行扫描复位成功的条件,能够达到所有的设定寄存器的扫描/复位输入端sdi都输入复位数据信号0,并且第一寄存器11的复位输出端q(即QB端)都输出反向复位数据信号1以及第二寄存器12的复位输出端q(即Q端)都输出复位数据信号0,以实现串行扫描复位成功。
总而言之,本公开至少一实施例需要从扫描链的起始的设定寄存器的扫描/复位输入端sdi输入复位数据信号0,传输经过扫描链(Q/QB->SI)连接后,所有的第一寄存器11的QB端输出的都是1,所有的第二寄存器12的Q端输出的都是0,从而达成复位的功能。本公开至少一实施例可以通过复用串行扫描链,将初始复位值扫描入所有寄存器,实现对所有寄存器的复位功能,可以避免使用复位树以及增加双路选择器或使用带复位端口的寄存器,从而避免占用大量面积。
需要说明的是,为了表述清楚、简洁,图4和图5仅图示了一种包含两个第一寄存器11和两个第二寄存器12的扫描链,其是示例性的,而不是对本公开的限制,具体可以根据实际需要进行自由调整,本公开实施例在此不做穷举和赘述。
例如,在一些示例中,对于提供设定寄存器的时钟输入,包括:将所有的设定寄存器的使能信号置为1,根据扫描链的长度给出适配的时钟输入,以进行串行扫描复位。其中,当扫描链的长度为N时,N≥1并且为整数,则设定寄存器的使能信号(Scan_shift_En)为1的持续时间大于等于N个时钟周期。比如,扫描链的长度为10,则使能信号为1的持续时间至少需要10个时钟周期,设定寄存器的扫描/复位输入端sdi的输入在每一拍时钟周期前进一个设定寄存器,则整个复位过程所需的实际就是10拍。
由此可见,对于串行扫描复位方法,由于将第一寄存器11的反相器1102设置在D端,则Q/QB->D的传输延时增加,会降低芯片工作频率,但是该实施例的实现方式非常简单,在验证串行扫描复位的正确性的时候,因为存在第一寄存器11的QB端和第二寄存器12的Q端的区分,只需要在复位完成之后,检查验证是否所有的第二寄存器12的Q端均输出复位数据信号0,并检查验证是否所有的第一寄存器11的QB端均输出反相复位数据信号1。其中,若所有的第二寄存器12的Q端均输出复位数据信号0以及所有的第一寄存器11的QB端均输出反相复位数据信号1,则说明电路设计正确以及串行扫描复位正确。
需要说明的是,在本公开实施例中,上述各个示例提供的串行扫描复位方法的流程可以包括更多或更少的操作,这些操作可以顺序执行或并行执行。虽然上文串行扫描复位方法的流程包括特定顺序出现的多个操作,但是应该清楚地了解,多个操作的顺序并不受限制。
本公开上述实施例的串行扫描复位方法通过复用串行扫描链,将初始复位值扫描入所有寄存器,实现对所有寄存器的复位功能,避免使用复位树以及增加双路选择器或使用带复位端口的寄存器,节省大量绕线资源与寄存器电路面积。需要说明的是,本公开的实施例中的扫描链的具体功能和技术效果可以参考上文中关于串行扫描复位方法的描述,此处不再赘述。
图6为本公开一些实施例提供的一种用于串行扫描复位的扫描链的设计方法的流程示意图。如图6所示,本公开至少一实施例提供了一种用于串行扫描复位的扫描链的设计方法,该设计方法包括步骤T1至步骤T5。
步骤T1、提供多个设定寄存器。
对于步骤T1,例如,在一些示例中,提供的多个设定寄存器是分散的多个设定寄存器,其中,步骤T1时的设定寄存器的基础寄存器的基础输入端D和输出端Q端可以是有逻辑连接的,而SI端在该设计阶段时暂时忽略或全部接地,换句话说,在步骤T1的设计阶段时,扫描链此时并不存在。
步骤T2、利用综合工具对寄存器传输级(RTL)进行综合时,将设定寄存器中的基础寄存器映射为标准单元库中的标准寄存器元件。
对于步骤T2,例如,在一些示例中,该设定寄存器包括功能选择端、第一输入端、扫描/复位输入端、时钟输入端和复位输出端,该设定寄存器的具体构造和功能可以参考上文中关于扫描链和基于扫描链的串行扫描复位方法的描述,此处不再赘述。例如,设定寄存器中的基础寄存器是上文中的第一基础寄存器和第二基础寄存器,因此,该基础寄存器包括设定寄存器的功能选择端、时钟输入端和复位输出端,基础寄存器还包括用于基本工作模式的第一基础输入端或包括设定寄存器的第一输入端,基础寄存器还包括用于扫描/复位模式的第一基础扫描输入端或包括设定寄存器的扫描/复位输入端。例如,在一些示例中,在步骤T2的综合阶段,将设定寄存器中的基础寄存器映射为带有SI端的标准寄存器元件。
步骤T3、使用扫描链连接工具,使得除扫描链的起始的设定寄存器之外的每个设定寄存器的扫描/复位输入端sdi连接到上一相邻的设定寄存器的复位输出端q,以实现多个设定寄存器的串行级联,最终形成串行级联的扫描链。
步骤T4、根据后端物理设计的时序要求,对设定寄存器的物理位置进行布局。
对于步骤T4,例如,在一些示例中,后端设计时序要求是指要满足工作频率要求,布局是指调节设定寄存器的物理位置,例如,摆得近的设定寄存器之间路径短延迟小,如果设定寄存器摆得太远,路径边长延迟变大会让工作频率降低。
例如,在一些示例中,扫描链的设计方法还包括:通过在一个或多个第一寄存器11的复位输出端分别与相应的下一相邻的设定寄存器的扫描/复位输入端之间设置一个第一反相器,使得在扫描/复位模式时,进行串行扫描复位,且使得除扫描链的起始的设定寄存器之外的每个设定寄存器的扫描/复位输入端均被输入复位数据信号0,具体实现方法和原理可以参照上文有关串行扫描复位方法的相关描述,此处不再赘述。
步骤T5、检查所有的设定寄存器,使得在扫描链处于扫描/复位模式时,向扫描链的起始的设定寄存器施加复位数据信号以进行串行扫描复位的过程中,除扫描链的起始的设定寄存器之外的每个设定寄存器中的扫描/复位输入端均被输入复位数据信号。
对于步骤T5,扫描链的设计方法还包括:
在芯片流片投产之前,首先计算任一第一寄存器11的复位输出端至相应的下一相邻的设定寄存器的扫描/复位输入端之间的第一反相器的个数x并记为第一数目x,计算任一第二寄存器12的复位输出端至相应的下一相邻的设定寄存器的扫描/复位输入端之间的第一反相器的个数y记为第二数目y;
然后判断是否同时满足第一数目x为奇数以及第二数目y为偶数:若是,则表明扫描链设计正确,此时满足串行扫描复位成功的条件;若否,则表明扫描链设计不正确,因此在相应的第一寄存器11的复位输出端与下一相邻的设定寄存器的扫描/复位输入端之间添加第一反相器,使得第一数目x为奇数以及第二数目y为偶数,以满足串行扫描复位成功的条件。
例如,在一些示例中,对于计算个数x和个数y,进一步包括:
在芯片流片投产之前,使用脚本检查所有的设定寄存器的扫描/复位输入端sdi输入之前的驱动是Q端还是QB端,以分别计算从Q/QB端到相邻的下一sdi端之间的第一反相器个数,用于验证扫描链设计的正确性。其中,从任一第二寄存器12的Q端到相邻的下一设定寄存器的sdi端之间的第一反相器的个数y需要为偶数个,以及从任一第一寄存器11的QB端到相邻的下一设定寄存器的sdi端之间的第一反相器的个数x需要为奇数个。如果不满足,则通过脚本自动在路径上(即相应的第一寄存器11或第二寄存器12的复位输出端与下一相邻的设定寄存器的扫描/复位输入端之间)插入第一反相器。
例如,图4是步骤T5完成之前的扫描链状态,图5是步骤T5完成之后的扫描链的状态,图5是在图4的基础上,在设定寄存器1101a的复位输出端与设定寄存器1102a的扫描/复位输入端之间加了一个第一反相器2101,以及在设定寄存器1102a的复位输出端与设定寄存器1202a的扫描/复位输入端之间加了一个第一反相器2102。
值得说明的是,图4和图5仅为扫描链的一种示例,扫描链中的寄存器的个数和具体连接方式等,本公开实施例对此均不作限制,具体可以根据实际需要进行自由调整。
图7为本公开又一些实施例提供的一种用于串行扫描复位的扫描链的设计方法的流程示意图。例如,在一些示例中,如图7所示,扫描链的设计方法包括步骤P1至步骤P6。
其中,步骤P1、步骤P2、步骤P3、步骤P4的具体内容分别与上述的步骤T1、步骤T2、步骤T3、步骤T4相同,并且,步骤P6的具体内容与上述的步骤T5相同,而介于步骤P4和步骤P6之间的步骤P5进一步包括:基于布局的结果,调整至少两个设定寄存器中的一个的复位输出端和另一个的扫描/复位输入端之间的连接关系,以使扫描链的绕线长度缩短。
扫描链的设计方法中考虑添加该步骤T5的原因主要包括:在经过步骤P4的初步布局后,设定寄存器大部分是按照连接的顺序随机的乱放,这样其实会极大地占用绕线资源,因此,在后续步骤开始之前,希望对扫描链的连线进行处理,在不影响逻辑功能的前提下,重新进行连接(也称扫描链重组),从而减少扫描链的走线长度。
例如,在一些示例中,两个设定寄存器q端与sdi端的连接遵循就近原则,比如,调整设定寄存器位置之后,将离得近的两个设定寄存器的q端与sdi端连接到一起,将离得远的两个设定寄存器之间原本q端与sdi端的连接进行断开,以使扫描链的绕线长度缩短。需要说明的是,该步骤P5中调整的设定寄存器的个数不局限于这两个,还可以是三个或四个或者更多个,具体可以根据实际需要进行自由调整,本公开实施例在此不作限制和赘述。
图8为本公开又一些实施例提供的另一种形式的第一寄存器13的结构示意图。例如,在一些示例中,上文任一示例所涉及的第一寄存器不再采用图2所示的第一寄存器11,而改成采用图8所示的第一寄存器13。
例如,在图8示例中,第一寄存器13的复位输出信号RVAL为1,其中,第一寄存器13的扫描/复位输入端sdi输入的复位数据信号为0,第一寄存器的复位输出端q输出的复位输出信号RVAL为反相复位数据信号1。例如,在一些示例中,响应于每个第一寄存器13经过一个时钟周期,图8中的第一寄存器13的复位输出端q(即Q端)的输出等于第一寄存器13的第一输入端d的输入,即可以实现正常的D触发器的功能,即表示当一拍时钟之后,第一寄存器13的复位输出端才会等于第一输入端d,如果没有时钟,则第一寄存器13的复位输出端的输出不会改变。
如图8所示,第一寄存器13包括第一基础寄存器1301(即图8中白色方框部分dff_scan,表示一个D触发器)和反相器1302。其中,第一基础寄存器1301包括第一基础扫描输入端SI以及D端、CK端、SE端和Q端,这意味着,第一基础寄存器1301包括了第一寄存器13的第一输入端d、功能选择端se、时钟输入端clk和复位输出端q。因为图8是为了将第一寄存器和第一基础寄存器区分开来,特地在图8的白色方框部分的外侧加了一层灰色方框,但是在实际电路结构层面上来看,D端、CK端、SE端与Q端和d端、se端、clk端和q端分别指同一端。值得说明的是,这里图8仅为一种便于理解的示意图,并不会对该第一寄存器的特征起到任何限制作用。
例如,在图8示例中,第一寄存器13的反相器1302置于第一基础寄存器1301的第一基础扫描输入端SI和第一寄存器13的扫描/复位输入端sdi之间。
例如,在一些示例中,对于图8中的第一寄存器13,当扫描链处于复位模式时,第一寄存器13的sdi端输入0,第一基础扫描输入端SI输入1,因为第一基础寄存器1301的第一基础扫描输入端SI和第一寄存器13的扫描/复位输入端sdi之间设置了一个反相器1302,则该第一寄存器13的q端(即Q端)输出1,即第一寄存器的Q端的输出等于sdi端的输入的取反。
由上可知,本公开实施例可以采用图8的第一寄存器13来替代图2的第一寄存器11,因为第一寄存器13同样能够实现从扫描/复位输入端sdi输入复位数据信号0且复位输出端q输出反相复位数据信号1的效果,从而完成寄存器的复位功能。
图9为本公开一些实施例提供的一种用于串行扫描复位的扫描链的结构示意图。例如,在一些示例中,将图5的扫描链100中所有的第一寄存器11(例如设定寄存器1101a、1102a)替换为图8所示的第一寄存器13,从而形成图9所示的扫描链200。例如,图5中的设定寄存器1101a替换为图9中的设定寄存器1301a,图5中的设定寄存器1102a替换为图9中的设定寄存器1302a。
值得注意的是,图9示例中的扫描链除了第一寄存器11换成了第一寄存器13之外,其他方面的内容(例如有关串行扫描复位方法、扫描链以及扫描链的设计方法)可以参照上文中扫描链包括第一寄存器11的示例的相关描述,本公开实施例在此不做赘述。
对于基于图9所示的扫描链进行串行扫描复位的方案中,由于将第一寄存器(即复位输出信号RVAL是1的设定寄存器)中的反相器设置在SI端,则此方案中Q->D的传输延时更小,工作频率可以更高,但是该方案的实现与验证相较图5的方案困难一些,因为串行扫描复位完成后,扫描链中有的设定寄存器Q端输出为1(例如图9中的设定寄存器1301a),有的设定寄存器Q端输出为0(例如图9中的设定寄存器1201a),则验证时需要按照列表逐个检查。需要说明的是,对于图8-图9的实施所对应的串行扫描复位的方法的具体功能和技术效果可以参考上文中关于第一寄存器13和扫描链200的相关描述,此处不再赘述。
另外,作为一种特殊情况,本公开实施例的扫描链还可以仅仅包含单个设定寄存器(未图示),即上述扫描链的长度为N=1的时候,该单个设定寄存器可以是上述的第一寄存器11,也可以是上述的第二寄存器12或13,本公开实施例对此不做限制,至于该示例中的设定寄存器的具体构造和功能可以参考上文中关于扫描链和基于扫描链的串行扫描复位方法的描述,此处不再赘述。
例如,对于一条扫描链包括单个设定寄存器,基于该条扫描链的串行扫描复位方法包括:向扫描链的单个设定寄存器的扫描/复位输入端施加复位数据信号,提供单个设定寄存器的时钟输入,以进行串行扫描复位。
例如,在扫描链的设计方法中,对于该条扫描链包括单个设定寄存器,此时无需使用扫描链连接工具将该单个设定寄存器与其他的设定寄存器进行级联。需要注意的是,无论是包括单个设定寄存器还是包括多个设定寄存器,形成的都可以称为扫描链,例如,在一些示例中,当使用扫描链连接工具在成千上万个设定寄存器中自动连接设定寄存器时,连接形成了很多个包括多个设定寄存器的扫描链之后,最后剩下一个设定寄存器,并将该剩下的一个设定寄存器单独作为一个扫描链。但是本公开实施例并不对扫描链设计时提供的可供形成扫描链的设定寄存器的个数、形成的扫描链的数目、各个扫描链的长度、相应长度的扫描链的形成顺序等等均不作限制,具体根据实际需要进行自由调整,并且在此不做赘述。值得说明的是,扫描链的长度为N=1的示例的其他具体功能和技术效果可以参考上文中关于扫描链和基于扫描链的串行扫描复位方法的描述,此处不再赘述。
有以下几点需要说明:
(1)本公开实施例附图只涉及到本公开实施例涉及到的结构,其他结构可参考通常设计。
(2)在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合以得到新的实施例。
以上所述,仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,本公开的保护范围应以所述权利要求的保护范围为准。
Claims (31)
1.一种基于扫描链的串行扫描复位方法,包括:
提供扫描链,其中,所述扫描链包括单个设定寄存器或包括串行级联的多个设定寄存器,任一所述设定寄存器包括:
功能选择端,配置为接收使能信号以通过设置所述使能信号选择所述扫描链处于扫描/复位模式或基本工作模式;
第一输入端,配置为接收用于所述基本工作模式的功能数据输入信号;
扫描/复位输入端,配置为选择性地接收扫描用的扫描输入信号或复位用的复位数据信号;
时钟输入端,配置为接收所述设定寄存器所需的时钟输入;
数据输出端,配置为在所述扫描链处于扫描/复位模式时作为复位输出端并输出复位输出信号,其中,对于所述扫描链包括串行级联的多个设定寄存器,包括:除所述扫描链的起始的设定寄存器之外的每个设定寄存器的扫描/复位输入端工作连接到上一相邻的设定寄存器的复位输出端;
设置所述设定寄存器的使能信号,使得所述扫描链处于所述扫描/复位模式;并且
对于所述扫描链包括单个设定寄存器,向所述扫描链的所述单个设定寄存器的扫描/复位输入端施加复位数据信号,提供所述单个设定寄存器的时钟输入,以进行串行扫描复位,或者,对于所述扫描链包括串行级联的多个设定寄存器,向所述扫描链的起始的设定寄存器的扫描/复位输入端施加复位数据信号,提供所述设定寄存器的时钟输入,以进行串行扫描复位,且使得除所述扫描链的起始的设定寄存器之外的每个设定寄存器的扫描/复位数据输入端均被输入所述复位数据信号。
2.如权利要求1所述的串行扫描复位方法,其中,
所述复位数据信号为0或1,所述复位输出信号为0或1。
3.如权利要求1或2所述的串行扫描复位方法,对于所述扫描链包括串行级联的多个设定寄存器,还包括:
通过在一个或多个所述设定寄存器的复位输出端分别与相应的下一相邻的所述设定寄存器的扫描/复位输入端之间设置第一反相器,使得在所述扫描/复位模式时,进行串行扫描复位,且使得除所述扫描链的起始的设定寄存器之外的每个设定寄存器的扫描/复位数据输入端均被输入所述复位数据信号。
4.如权利要求3所述的串行扫描复位方法,其中,
所述多个设定寄存器包括至少一个第一寄存器和/或至少一个第二寄存器,其中,被复位的所述第一寄存器的复位输出端输出反相复位数据信号,所述反相复位数据信号是所述复位数据信号的取反,被复位的所述第二寄存器的复位输出端输出所述复位数据信号。
5.如权利要求4所述的串行扫描复位方法,其中,
所述第一寄存器包括:
第一基础寄存器,其中,所述第一基础寄存器包括第一基础输入端以及包括所述第一寄存器的扫描/复位输入端、功能选择端、时钟输入端和复位输出端;
置于所述第一基础寄存器的第一基础输入端和所述第一寄存器的第一输入端之间的第二反相器,其中,所述第一寄存器的复位输出端的输出等于所述第一寄存器的第一输入端的输入且等于所述第一基础寄存器的第一基础输入端的取反;
所述第二寄存器包括:
第二基础寄存器,其中,所述第二基础寄存器包括所述第二寄存器的第一输入端、扫描/复位输入端、功能选择端、时钟输入端和复位输出端,所述第二寄存器的复位输出端的输出等于所述第二寄存器的第一输入端的输入;
所述串行扫描复位方法还包括:
通过在一个或多个所述第一寄存器的复位输出端分别与相应的下一相邻的设定寄存器的扫描/复位输入端之间设置奇数个所述第一反相器,以及在一个或多个所述第二寄存器的复位输出端分别与相应的下一相邻的设定寄存器的扫描/复位输入端之间设置偶数个所述第一反相器,使得在所述扫描/复位模式时,进行串行扫描复位,且使得除所述扫描链的起始的设定寄存器之外的每个设定寄存器的扫描/复位输入端均被输入所述复位数据信号。
6.如权利要求5所述的串行扫描复位方法,其中,
所述第一基础寄存器和所述第二基础寄存器是具有相反输出的D触发器。
7.如权利要求4所述的串行扫描复位方法,其中,
所述第一寄存器包括:
第一基础寄存器,其中,所述第一基础寄存器包括第一基础扫描输入端以及包括所述第一寄存器的第一输入端、功能选择端、时钟输入端和复位输出端;
置于所述第一基础寄存器的第一基础扫描输入端和所述第一寄存器的扫描/复位输入端之间的第二反相器,其中,所述第一寄存器的复位输出端的输出等于所述第一寄存器的第一输入端的输入;
所述第二寄存器包括:
第二基础寄存器,其中,所述第二基础寄存器包括所述第二寄存器的第一输入端、扫描/复位输入端、功能选择端、时钟输入端和复位输出端,所述第二寄存器的复位输出端的输出等于所述第二寄存器的第一输入端的输入;
所述串行扫描复位方法还包括:
通过在一个或多个所述第一寄存器的复位输出端分别与相应的下一相邻的所述设定寄存器的扫描/复位输入端之间设置奇数个所述第一反相器,以及在一个或多个所述第二寄存器的复位输出端分别与相应的下一相邻的设定寄存器的扫描/复位输入端之间设置偶数个所述第一反相器,使得在所述扫描/复位模式时,进行串行扫描复位,且使得除所述扫描链的起始的设定寄存器之外的每个设定寄存器的扫描/复位输入端均被输入所述复位数据信号。
8.如权利要求7所述的串行扫描复位方法,还包括:
所述第一基础寄存器和所述第二基础寄存器是具有相反输出的D触发器。
9.如权利要求4~8任一所述的串行扫描复位方法,还包括:
响应于所述扫描/复位模式,所述奇数是大于等于1的奇数,所述偶数是大于等于0的偶数。
10.如权利要求4所述的串行扫描复位方法,其中,
向所述扫描链施加复位数据信号,包括:
所述扫描链的起始的设定寄存器的扫描/复位输入端接收二选一多路复用器的输出端输出的所述复位数据信号,其中,所述二选一多路复用器输入复位用的复位数据信号和扫描用的扫描输入信号,并根据复位控制信号选择性地输出用于响应所述扫描/复位模式中复位模式所需的所述复位数据信号或者输出用于响应所述扫描/复位模式中扫描模式所需的所述扫描输入信号。
11.如权利要求10所述的串行扫描复位方法,其中,
所述二选一多路复用器输出的所述复位数据信号为接地信号,所述接地信号为0,或者,所述二选一多路复用器输出的所述复位数据信号为电源信号,所述电源信号为1。
12.如权利要求1~2,4~8,10~11中任一所述的串行扫描复位方法,其中,提供所述设定寄存器的时钟输入,包括:
将所有的设定寄存器的使能信号置为1,根据所述扫描链的长度给出适配的时钟输入,以进行串行扫描复位。
13.如权利要求12所述的串行扫描复位方法,其中,
根据所述扫描链的长度给出适配的时钟输入,包括:
根据长度为N的扫描链,所述设定寄存器的使能信号为1的持续时间大于等于N个时钟周期。
14.一种用于串行扫描复位的扫描链,包括复位信号端和单个设定寄存器或串行级联的多个设定寄存器,所述复位信号端与所述扫描链的起始的设定寄存器连接,其中,任一所述设定寄存器包括:
功能选择端,配置为接收使能信号以通过设置所述使能信号选择所述扫描链处于扫描/复位模式或基本工作模式;
第一输入端,配置为接收所述基本工作模式所需的功能数据输入信号;
扫描/复位输入端,配置为选择性地接收扫描用的扫描输入信号或复位用的复位数据信号;
时钟输入端,配置为接收所述设定寄存器所需的时钟输入;
数据输出端,配置为在所述扫描链处于扫描/复位模式时作为复位输出端并输出复位输出信号,其中,对于所述扫描链包括串行级联的多个设定寄存器,包括:除所述扫描链的起始的设定寄存器之外的每个所述设定寄存器的扫描/复位输入端连接到上一相邻的设定寄存器的复位输出端,以实现串行级联;
其中,对于所述扫描链包括单个设定寄存器,当所述扫描链处于所述扫描/复位模式时通过向所述扫描链的所述单个设定寄存器的扫描/复位输入端施加复位数据信号以进行串行扫描复位,或者,对于所述扫描链包括多个设定寄存器,所述多个设定寄存器被串行级联来使得当所述扫描链处于所述扫描/复位模式时并通过所述复位信号端向所述起始的设定寄存器施加复位数据信号以进行所述串行扫描复位的过程中,除所述扫描链的起始的设定寄存器之外的每个设定寄存器中的扫描/复位输入端均被输入所述复位数据信号。
15.如权利要求14所述的用于串行扫描复位的扫描链,其中,
所述复位数据信号为0或1,所述复位输出信号为0或1。
16.如权利要求14或15所述的用于串行扫描复位的扫描链,其中,
对于所述扫描链包括串行级联的多个设定寄存器,一个或多个所述设定寄存器的复位输出端分别与相应的下一相邻的设定寄存器的扫描/复位输入端之间设置第一反相器,使得在所述扫描/复位模式时,进行串行扫描复位,且使得除所述扫描链的起始的设定寄存器之外的每个设定寄存器的扫描/复位数据输入端均被输入所述复位数据信号。
17.如权利要求16所述的用于串行扫描复位的扫描链,其中,
所述多个设定寄存器包括至少一个第一寄存器和/或至少一个第二寄存器,其中,被复位的所述第一寄存器的复位输出端输出反相复位数据信号,所述反相复位数据信号是所述复位数据信号的取反,被复位的所述第二寄存器的复位输出端输出所述复位数据信号。
18.如权利要求17所述的用于串行扫描复位的扫描链,其中,
所述第一寄存器包括:
第一基础寄存器,其中,所述第一基础寄存器包括第一基础输入端以及包括所述第一寄存器的扫描/复位输入端、功能选择端、时钟输入端和复位输出端;
置于所述第一基础寄存器的第一基础输入端和所述第一寄存器的第一输入端之间的第二反相器,其中,所述第一寄存器的复位输出端的输出等于所述第一寄存器的第一输入端的输入且等于所述第一基础寄存器的第一基础输入端的取反;
所述第二寄存器包括:
第二基础寄存器,其中,所述第二基础寄存器包括所述第二寄存器的第一输入端、扫描/复位输入端、功能选择端、时钟输入端和复位输出端,所述第二寄存器的复位输出端的输出等于所述第二寄存器的第一输入端的输入;
一个或多个所述第一寄存器的复位输出端分别与相应的下一相邻的设定寄存器的扫描/复位输入端之间设置奇数个所述第一反相器,并且一个或多个所述第二寄存器的复位输出端分别与相应的下一相邻的设定寄存器的扫描/复位输入端之间设置偶数个所述第一反相器,使得在所述扫描/复位模式时,进行串行扫描复位,且使得除所述扫描链的起始的设定寄存器之外的每个设定寄存器的扫描/复位输入端均被输入所述复位数据信号。
19.如权利要求17所述的用于串行扫描复位的扫描链,其中,
所述第一寄存器包括:
第一基础寄存器,其中,所述第一基础寄存器包括第一基础扫描输入端以及包括所述第一寄存器的第一输入端、功能选择端、时钟输入端和复位输出端;
置于所述第一基础寄存器的第一基础扫描输入端和所述第一寄存器的扫描/复位输入端之间的第二反相器,其中,所述第一寄存器的复位输出端的输出等于所述第一寄存器的第一输入端的输入;
所述第二寄存器包括:
第二基础寄存器,其中,所述第二基础寄存器包括所述第二寄存器的第一输入端、扫描/复位输入端、功能选择端、时钟输入端和复位输出端,所述第二寄存器的复位输出端的输出等于所述第二寄存器的第一输入端的输入;
一个或多个所述第一寄存器的复位输出端分别与相应的下一相邻的设定寄存器的扫描/复位输入端之间设置奇数个所述第一反相器,并且一个或多个所述第二寄存器的复位输出端分别与相应的下一相邻的设定寄存器的扫描/复位输入端之间设置偶数个所述第一反相器,使得在所述扫描/复位模式时,进行串行扫描复位,且使得除所述扫描链的起始的设定寄存器之外的每个设定寄存器的扫描/复位输入端均被输入所述复位数据信号。
20.如权利要求18或19所述的用于扫描复位的扫描链,其中,
所述奇数是大于等于1的奇数,所述偶数是大于等于0的偶数。
21.如权利要求18或19所述的用于串行扫描复位的扫描链,其中,
所述复位信号端包括二选一多路复用器;
所述二选一多路复用器的输出端与所述扫描链的起始的设定寄存器的扫描/复位输入端连接,向所述起始的设定寄存器的扫描/复位输入端提供所述复位数据信号;
所述二选一多路复用器的第一输入端输入复位用的所述复位数据信号,第二输入端输入扫描用的所述扫描输入信号。
22.如权利要求21所述的用于串行扫描复位的扫描链,其中,
所述扫描链的起始的设定寄存器是所述第一寄存器或所述第二寄存器。
23.如权利要求21所述的用于串行扫描复位的扫描链,其中,
所述二选一多路复用器的第一输入端接地或者接电源。
24.一种用于串行扫描复位的扫描链的设计方法,包括:
提供单个设定寄存器或多个设定寄存器;
利用综合工具对寄存器传输级进行综合时,将所述设定寄存器中的基础寄存器映射为标准单元库中的标准寄存器元件,其中,任一所述设定寄存器包括:
功能选择端,配置为接收使能信号以通过设置使能信号选择所述扫描链处于扫描/复位模式或基本工作模式;
第一输入端,配置为接收所述基本工作模式所需的功能数据输入信号;
扫描/复位输入端,配置为选择性地接收扫描用的扫描输入信号或复位用的复位数据信号;
时钟输入端,配置为接收所述设定寄存器所需的时钟输入;
数据输出端,配置为在所述扫描链处于扫描/复位模式时作为复位输出端并输出复位输出信号;
其中,所述基础寄存器包括所述设定寄存器的功能选择端、时钟输入端和复位输出端,所述基础寄存器还包括用于所述基本工作模式的第一基础输入端或包括所述设定寄存器的第一输入端,所述基础寄存器还包括用于扫描/复位模式的第一基础扫描输入端或包括所述设定寄存器的扫描/复位输入端;
对于所述扫描链包括多个设定寄存器,使用扫描链连接工具,使得除所述扫描链的起始的设定寄存器之外的每个所述设定寄存器的扫描/复位输入端连接到上一相邻的设定寄存器的复位输出端,以实现所述多个设定寄存器的串行级联;
根据后端物理设计的时序要求,对所述设定寄存器的物理位置进行布局;
检查所有的设定寄存器,其中,对于所述扫描链包括单个设定寄存器,使得在所述扫描链处于所述扫描/复位模式时,向所述扫描链的所述单个设定寄存器施加复位数据信号以进行所述串行扫描复位,或者,对于所述扫描链包括串行级联的多个设定寄存器,使得在所述扫描链处于所述扫描/复位模式时,向所述扫描链的起始的设定寄存器施加复位数据信号以进行所述串行扫描复位的过程中,除所述扫描链的起始的设定寄存器之外的每个设定寄存器中的扫描/复位输入端均被输入所述复位数据信号。
25.如权利要求24所述的扫描链的设计方法,对于所述扫描链包括多个设定寄存器,还包括:
基于布局的结果,调整至少两个所述设定寄存器中的一个的复位输出端和另一个的扫描/复位输入端之间的连接关系,以使所述扫描链的绕线长度缩短。
26.如权利要求24所述的扫描链的设计方法,对于所述扫描链包括多个设定寄存器,还包括:
通过在一个或多个所述设定寄存器的复位输出端分别与相应的下一相邻的设定寄存器的扫描/复位输入端之间设置第一反相器,使得在所述扫描/复位模式时,进行串行扫描复位,且使得除所述扫描链的起始的设定寄存器之外的每个的设定寄存器的所述扫描/复位数据输入端均被输入所述复位数据信号。
27.如权利要求26所述的扫描链的设计方法,其中,
所述多个设定寄存器包括至少一个第一寄存器和/或至少一个第二寄存器,其中,被复位的所述第一寄存器的复位输出端输出反相复位数据信号,所述反相复位数据信号是所述复位数据信号的取反,被复位的所述第二寄存器的复位输出端输出所述复位数据信号。
28.如权利要求27所述的扫描链的设计方法,其中,
所述第一寄存器包括:
第一基础寄存器,其中,所述第一基础寄存器包括第一基础输入端以及包括所述第一寄存器的扫描/复位输入端、功能选择端、时钟输入端和复位输出端;
置于所述第一基础寄存器的第一基础输入端和所述第一寄存器的第一输入端之间的第二反相器,其中,所述第一寄存器的复位输出端的输出等于所述第一寄存器的第一输入端的输入且等于所述第一基础寄存器的第一基础输入端的取反;
所述第二寄存器包括:
第二基础寄存器,其中,所述第二基础寄存器包括所述第二寄存器的第一输入端、扫描/复位输入端、功能选择端、时钟输入端和复位输出端,所述第二寄存器的复位输出端的输出等于所述第二寄存器的第一输入端的输入;
所述扫描链的设计方法还包括:
通过在一个或多个所述第一寄存器的复位输出端分别与相应的下一相邻的设定寄存器的扫描/复位输入端之间设置奇数个所述第一反相器,以及在一个或多个所述第二寄存器的复位输出端分别与相应的下一相邻的设定寄存器的扫描/复位输入端之间设置偶数个所述第一反相器,使得在所述扫描/复位模式时,进行串行扫描复位,且使得除所述扫描链的起始的设定寄存器之外的每个设定寄存器的扫描/复位输入端均被输入所述复位数据信号。
29.如权利要求27所述的扫描链的设计方法,其中,
所述第一寄存器包括:
第一基础寄存器,其中,所述第一基础寄存器包括第一基础扫描输入端以及包括所述第一寄存器的第一输入端、功能选择端、时钟输入端和复位输出端;
置于所述第一基础寄存器的第一基础扫描输入端和所述第一寄存器的扫描/复位输入端之间的第二反相器,其中,所述第一寄存器的复位输出端的输出等于所述第一寄存器的第一输入端的输入;
所述第二寄存器包括:
第二基础寄存器,其中,所述第二基础寄存器包括所述第二寄存器的第一输入端、扫描/复位输入端、功能选择端、时钟输入端和复位输出端,所述第二寄存器的复位输出端的输出等于所述第二寄存器的第一输入端的输入;
所述扫描链的设计方法还包括:
通过在一个或多个所述第一寄存器的复位输出端分别与相应的下一相邻的所述设定寄存器的扫描/复位输入端之间设置奇数个所述第一反相器,以及在一个或多个所述第二寄存器的复位输出端分别与相应的下一相邻的设定寄存器的扫描/复位输入端之间设置偶数个所述第一反相器,使得在所述扫描/复位模式时,进行串行扫描复位,且使得除所述扫描链的起始的设定寄存器之外的每个设定寄存器的扫描/复位输入端均被输入所述复位数据信号。
30.如权利要求28或29所述的扫描链的设计方法,还包括:
计算任一第一寄存器的复位输出端至相应的下一相邻的所述设定寄存器的扫描/复位输入端之间的所述第一反相器的个数并记为第一数目,计算任一第二寄存器的复位输出端至相应的下一相邻的设定寄存器的扫描/复位输入端之间的所述第一反相器的个数记为第二数目;
判断是否同时满足所述第一数目为奇数以及所述第二数目为偶数,若是,则满足串行扫描复位成功的条件;若否,则在相应的第一寄存器或第二寄存器的复位输出端与下一相邻的设定寄存器的扫描/复位输入端之间设置所述第一反相器,使得所述第一数目为奇数以及所述第二数目为偶数,以满足串行扫描复位成功的条件。
31.如权利要求28或29所述的扫描链的设计方法,还包括:
通过验证是否所有的所述第二寄存器的复位输出端均输出所述复位数据信号以及所有的所述第一寄存器的复位输出端均输出反相复位数据信号,所述反相复位数据信号是所述复位数据信号的取反,以验证串行扫描复位的正确性。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011380054.7A CN112684327B (zh) | 2020-11-30 | 2020-11-30 | 扫描链及其设计方法和基于扫描链的串行扫描复位方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011380054.7A CN112684327B (zh) | 2020-11-30 | 2020-11-30 | 扫描链及其设计方法和基于扫描链的串行扫描复位方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112684327A true CN112684327A (zh) | 2021-04-20 |
CN112684327B CN112684327B (zh) | 2023-09-05 |
Family
ID=75447026
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011380054.7A Active CN112684327B (zh) | 2020-11-30 | 2020-11-30 | 扫描链及其设计方法和基于扫描链的串行扫描复位方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112684327B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023283774A1 (zh) * | 2021-07-12 | 2023-01-19 | 华为技术有限公司 | 一种扫描链设计方法、装置及芯片 |
CN116381471A (zh) * | 2023-06-05 | 2023-07-04 | 上海类比半导体技术有限公司 | 一种扫描测试电路、方法及芯片 |
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5163155A (en) * | 1988-06-07 | 1992-11-10 | Mitsubishi Denki Kabushiki Kaisha | System for resetting a series of latches to varying data patterns |
US5260950A (en) * | 1991-09-17 | 1993-11-09 | Ncr Corporation | Boundary-scan input circuit for a reset pin |
CN101097245A (zh) * | 2006-06-29 | 2008-01-02 | 国际商业机器公司 | 实现高速测试电路的扫描链和方法 |
CN102062836A (zh) * | 2009-11-17 | 2011-05-18 | 三星半导体(中国)研究开发有限公司 | 扫描寄存器、扫描链、芯片及其测试方法 |
CN102495360A (zh) * | 2011-12-16 | 2012-06-13 | 浙江大学 | 一种安全扫描寄存器、安全扫描链及其扫描方法 |
CN102938642A (zh) * | 2012-11-28 | 2013-02-20 | 中国人民解放军国防科学技术大学 | 基于扫描链的芯片内部寄存器的复位方法 |
CN103023467A (zh) * | 2012-11-28 | 2013-04-03 | 中国人民解放军国防科学技术大学 | 基于扫描方式的寄存器复位方法及装置 |
CN103308851A (zh) * | 2012-03-16 | 2013-09-18 | 三星电子株式会社 | 扫描触发器及其方法和具有该扫描触发器的装置 |
US20130262943A1 (en) * | 2012-03-28 | 2013-10-03 | International Business Machines Corporation | Optimized synchronous scan flip flop circuit |
US20150276866A1 (en) * | 2014-03-26 | 2015-10-01 | Anurag Jindal | Reset generation circuit for scan mode exit |
CN106164687A (zh) * | 2014-04-11 | 2016-11-23 | 高通股份有限公司 | 针对具有异步复位信号的扫描链的复位方案 |
CN106688045A (zh) * | 2014-09-16 | 2017-05-17 | 高通股份有限公司 | 使用稳健时钟控制方法以防止无意的读或写的可扫描存储器 |
CN110020558A (zh) * | 2019-04-09 | 2019-07-16 | 长沙理工大学 | 边界扫描设计环境下一种安全的密码芯片可测试性设计结构 |
CN111103959A (zh) * | 2019-12-20 | 2020-05-05 | 展讯通信(上海)有限公司 | 寄存器复位系统及芯片 |
-
2020
- 2020-11-30 CN CN202011380054.7A patent/CN112684327B/zh active Active
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5163155A (en) * | 1988-06-07 | 1992-11-10 | Mitsubishi Denki Kabushiki Kaisha | System for resetting a series of latches to varying data patterns |
US5260950A (en) * | 1991-09-17 | 1993-11-09 | Ncr Corporation | Boundary-scan input circuit for a reset pin |
CN101097245A (zh) * | 2006-06-29 | 2008-01-02 | 国际商业机器公司 | 实现高速测试电路的扫描链和方法 |
CN102062836A (zh) * | 2009-11-17 | 2011-05-18 | 三星半导体(中国)研究开发有限公司 | 扫描寄存器、扫描链、芯片及其测试方法 |
CN102495360A (zh) * | 2011-12-16 | 2012-06-13 | 浙江大学 | 一种安全扫描寄存器、安全扫描链及其扫描方法 |
CN103308851A (zh) * | 2012-03-16 | 2013-09-18 | 三星电子株式会社 | 扫描触发器及其方法和具有该扫描触发器的装置 |
US20130262943A1 (en) * | 2012-03-28 | 2013-10-03 | International Business Machines Corporation | Optimized synchronous scan flip flop circuit |
CN103023467A (zh) * | 2012-11-28 | 2013-04-03 | 中国人民解放军国防科学技术大学 | 基于扫描方式的寄存器复位方法及装置 |
CN102938642A (zh) * | 2012-11-28 | 2013-02-20 | 中国人民解放军国防科学技术大学 | 基于扫描链的芯片内部寄存器的复位方法 |
US20150276866A1 (en) * | 2014-03-26 | 2015-10-01 | Anurag Jindal | Reset generation circuit for scan mode exit |
CN106164687A (zh) * | 2014-04-11 | 2016-11-23 | 高通股份有限公司 | 针对具有异步复位信号的扫描链的复位方案 |
CN106688045A (zh) * | 2014-09-16 | 2017-05-17 | 高通股份有限公司 | 使用稳健时钟控制方法以防止无意的读或写的可扫描存储器 |
CN110020558A (zh) * | 2019-04-09 | 2019-07-16 | 长沙理工大学 | 边界扫描设计环境下一种安全的密码芯片可测试性设计结构 |
CN111103959A (zh) * | 2019-12-20 | 2020-05-05 | 展讯通信(上海)有限公司 | 寄存器复位系统及芯片 |
Non-Patent Citations (3)
Title |
---|
P. YANG等: "《 Low-power priority Address-Encoder and Reset-Decoder data-driven readout for Monolithic Active Pixel Sensors for tracker system》", 《NUCLEAR INSTRUMENTS AND METHODS IN PHYSICS RESEARCH SECTION A: ACCELERATORS, SPECTROMETERS, DETECTORS AND ASSOCIATED EQUIPMENT》 * |
欧阳冬生;张培勇;项群良;冯忱晖;: "用于密码芯片的前馈异或安全扫描结构", 计算机辅助设计与图形学学报, no. 06 * |
赵岩等: "《一种扩展的片上实时调试系统设计》", 《计算机工程》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023283774A1 (zh) * | 2021-07-12 | 2023-01-19 | 华为技术有限公司 | 一种扫描链设计方法、装置及芯片 |
CN116381471A (zh) * | 2023-06-05 | 2023-07-04 | 上海类比半导体技术有限公司 | 一种扫描测试电路、方法及芯片 |
CN116381471B (zh) * | 2023-06-05 | 2023-09-19 | 上海类比半导体技术有限公司 | 一种扫描测试电路、方法及芯片 |
Also Published As
Publication number | Publication date |
---|---|
CN112684327B (zh) | 2023-09-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5550843A (en) | Programmable scan chain testing structure and method | |
US7975197B2 (en) | On-chip scan clock generator for ASIC testing | |
US7290190B2 (en) | Semiconductor integrated circuit with a test circuit | |
US8145964B2 (en) | Scan test circuit and scan test control method | |
US20030056183A1 (en) | Scan test circuit, and semiconductor integrated circuit including the circuit | |
US7712002B2 (en) | Test circuit for semiconductor integrated circuit | |
CN112684327B (zh) | 扫描链及其设计方法和基于扫描链的串行扫描复位方法 | |
JP2008286553A (ja) | 半導体集積回路モジュール | |
JPS63243890A (ja) | 半導体集積回路装置 | |
US20110175638A1 (en) | Semiconductor integrated circuit and core test circuit | |
US20050055614A1 (en) | Multi-clock domain logic system and related method | |
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 | |
US8793546B2 (en) | Integrated circuit comprising scan test circuitry with parallel reordered scan chains | |
US6370663B1 (en) | Semiconductor integrated circuit | |
US11262403B2 (en) | Semiconductor device | |
JPH09243705A (ja) | 半導体論理集積回路 | |
KR101174679B1 (ko) | 반도체 집적회로 | |
JP2003121497A (ja) | 論理回路テスト用スキャンパス回路及びこれを備えた集積回路装置 | |
KR20220164826A (ko) | 멀티-다이 집적회로를 테스트하기 위한 방법 및 장치 | |
US7051302B2 (en) | Method for reducing pin overhead in non-scan design for testability | |
JP4416469B2 (ja) | 半導体集積回路およびその設計方法 | |
JP2723957B2 (ja) | 半導体集積回路装置 | |
CN114927156B (zh) | 一种包含冗余存储单元的移位寄存方法及移位寄存结构 | |
JP3645456B2 (ja) | 半導体集積回路装置 | |
JP4186559B2 (ja) | スキャンフリップフロップ |
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 |