集成电路中的保存-恢复的制作方法

文档序号:25442728发布日期:2021-06-11 22:02阅读:147来源:国知局
集成电路中的保存-恢复的制作方法



背景技术:

本申请案大体上涉及电子电路中的节能,且更特定来说,涉及集成电路中的保存-恢复功能性。

集成电路(ic)可包括例如输入/输出、控制、编码及解码的各种功能块。系统将电力引导到ic,且ic将电力引导到组件功能块以使ic及功能块(分别)保持有源且使其能够按需即时执行其相应功能。(“设计块”是指ic或功能块。)当未使用由设计块执行的功能时,可使设计块空闲。然而,即使在空闲时,有源设计块将继续消耗电力以维持包括设计块的存储器元件(例如触发器及寄存器)的内容的当前状态(还称为设计块的背景或配置)。如果有源设计块掉电以降低功耗,那么其当前状态会丢失,这可导致错误或需要重新初始化设计块,其中任一者通常都将花费电力及时间来解决。

保存-恢复(sr)是一种使处于特定操作状态的设计块能够掉电且稍后再加电且返回到相同操作状态以降低电力及时间成本的方法。为了执行sr,设计块的操作状态在设计块掉电之前存储于裸片上存储器中。当设计块再次加电时,操作状态信息从裸片上存储器检索且用于重建设计块中的操作状态。

扫描链可用于测试设计中。扫描链通常包括时控、串行连接的触发器,其经连接以在断言扫描启用信号时加载由设计块中的存储器元件存储的数据。扫描链长度(不同扫描链中单元(例如触发器)的数目)可由于例如时钟域混合约束、存储器链、物理设计及平面图要求及电力域合并而不同。扫描元件(例如单元及控制元件)通常需要在同一时钟域内(同步时控)。而且,单独电力域通常具有单独、专用扫描链,其在相应电力域“接通”(有源)时在由相应电力域提供的电力模式中是有源的。

图1a展示用于使用扫描链102保存设计块的状态的现有技术电路的实例框图100。(为了方便,扫描链102称为从顶部扫描链102(链1)到底部扫描链102(链4)编号。)表示设计块的状态的位104首先从设计块存储器元件加载到多个扫描链102的单元106中。(未展示设计块及用于将状态信息从设计块加载到扫描链102中的结构。)个别位104对应于设计块中的相应存储器元件的状态。扫描链102经连接以输出到sr控制块108。sr控制块108经连接以将包含时钟130的控制信号输出到扫描链102。sr控制块108还经连接以将从相应扫描链102的末端单元110输出的位104存储到存储器112,其中在图1a(及后续图)中,末端单元110希望识别离每一相应链中的最右单元。举例来说,链1包含五个单元106,其中从左到右的第五单元还是末端单元110,因为其经连接以将其存储位输出到sr控制块108。作为另一实例,链3(其包含比链1少的单元106)包含三个单元,其中从左到右的第三单元还是末端单元110,其同样经连接以将其存储位104输出到sr控制块108。存储器112具有多行114及多列116的存储器单元118。sr控制块108通过通常将每扫描链102的末端单元110的一个位104复制到相应行114接着被写入来一次将位104存储到存储器单元118的行114。因此,存储器单元118的个别列116对应于个别相应扫描链102;从扫描链102读出的位104经存储到对应列116中的存储器单元118中。行114被编号一(1)到五(5)(五是扫描链102的最长者的长度),且列116被编号一(1)到四(4)(四是扫描链102的数目)。在图1b到1f中,从sr控制块108到存储器112的箭头指示刚从扫描链102加载数据的存储器112的行114。

图1b展示用于在图1a之后经过一个时钟130循环之后使用扫描链102保存设计块的状态的现有技术电路的实例框图120。扫描链102由从sr控制块108接收的时钟信号130时控。时钟130致使扫描链102使由扫描链102的单元106存储的位104在相应扫描链102的末端单元110的方向上连续前进到相应扫描链102的相邻后续单元106。扫描链102的末端单元110将其存储位104输出到sr控制块108,sr控制块108依序将位104存储于一行存储器单元118中。因此,在图1b中,来自先前图1a的末端单元110的位104(即,1100)已写入到存储器100的行114编号(1)中。此外,每一扫描链102中的位104已每扫描链102连续前进一个单元106。位104的连续前进(本文中还称为位104的迭代前进或逐步移动位104)意味着:如果位104存储于扫描链的串行连接单元106中(其为了参考在图1c的定向上考虑为从左到右且为了连接称为单元a、b及c),那么由于单元106a、b、c经串行连接a→b→c使得c是末端单元110,所以单个迭代前进将输出存储于单元106c中的位104,致使存储于单元106b中的位104存储于单元106c中,且致使存储于单元106a中的位104存储于单元106b中。(因此,时钟130用作致使位104连续前进通过扫描链102的传播信号。在一些实施例中,可使用除时钟130之外的传播信号。)

图1c展示用于在图1a之后经过两个时钟130循环之后使用扫描链102保存设计块的状态的现有技术电路的实例框图122。如图1c中展示,由sr控制块108输出的时钟130循环致使扫描链102迭代由扫描链102存储的位104的连续前进且循序地将扫描链102的内容输出到sr控制块108。因此,在图1c中,来自先前图1b的末端单元位(即,0001)已写入到存储器112的行号(2)中。因为从扫描链102的末端单元110输出的位104经存储于存储器单元的对应列116的序列行中,所以扫描链102的内容在存储器112中逐步重构,从扫描链102转置到存储器列116。

图1d展示用于在图1a之后经过三个时钟130循环之后使用扫描链102保存设计块的状态的现有技术电路的实例框图124。如图1e中展示,因为链3仅具有三个单元106,所以其现已输出所有三个其存储位104且为空的。

图1e展示用于在图1a之后经过四个时钟130循环之后使用扫描链102保存设计块的状态的现有技术电路的实例框图126。如图1e中展示,因为链2仅具有四个单元106,所以其现已输出所有四个其存储位104。而且,因为链3在图1d之后为空的,所以sr控制块108不存在要存储于定位于存储器112的行号(4)、列(3)(在(行,列)惯例中还称为(4,3))处的存储器单元118中的位104。

图1f展示用于在图1a之后经过五个时钟130循环之后使用扫描链102保存设计块的状态的现有技术电路的实例框图128。如图1f中展示,所有扫描链102现已输出所有其存储位104。而且,因为链2及3在图1d之后为空的,所以sr控制块108不存在要存储于存储器单元118(5,2)及(5,3)处的位104。因此,存储器单元118(4,3)、(5,2)及(5,3)未由sr控制块108指派。

图1g展示用于保存设计块的状态的存储器112的现有技术实例框图132。存储器112可被视作先进先出(fifo);此反映已用于状态保存过程的连接。而且,如关于状态保存过程描述,扫描链102被一起时控。因此,如果图1f中展示的存储器112状态用于通过从存储器112的顶部逐行读取来将状态数据重新加载到扫描链102中,那么来自较短扫描链102(即,在列(2)及(3)中)的数据将迭代地前进通过相应较短扫描链102且从相应较短扫描链102离开,且未知数据(在图1f中展示的实例中,(4,3)、(5,2)及(5,3)的内容)将被写入到且保持于较短扫描链102中,从而致使在保存-复位事件的保存部分时存储的数据的不准确复制。因此,存储器112经重新布置以准备恢复设计块状态。图1g展示被重新布置134之前及被重新布置136之后的存储器112。存储器单元118经重新布置使得从较短扫描链102写入的最后几个位104与由sr控制块108写入的存储器单元118的最后一行114(第五行114,因为图1a到1f中的最长扫描链102是五个单元106长)对准。而且,(1,2)、(1,3)及(2,3)处现在未被指派的存储器单元118被填充零。这些填充符零首先在状态恢复过程期间加载到对应扫描链102(链2及3,作为比最长扫描链102短的扫描链102)中(见图2a到2f),且在状态恢复过程期间通过移过较短链110的末端单元110来丢弃。这将导致在恢复过程完成时扫描链102的单元106内的状态恢复数据适当对准。图1g中展示的存储器112重新布置可能需要软件执行或执行专门硬件,且使sr过程增加可观时间。

替代地,在一些现有技术实施例中,额外触发器可用于增加较短扫描链102的长度,使得其与最长扫描链102一样长以使每一扫描链102具有相同数目个单元106。这能够在无需存储器112重新布置的情况下在当恢复过程完成时适当对准扫描链102的单元106内的状态恢复数据。然而,额外触发器会增加大量额外装置区使用及在设计块处于功能模式时增加额外泄漏电流。

图2a展示用于使用扫描链102恢复设计块的保存状态的现有技术电路的实例框图200。状态恢复过程可在非有源设计块从睡眠状况加电时开始。如图2a中展示,在状态恢复过程开始时,存储器112含有相同于在重新步骤136保存数据之后图1g中所展示的状态保存过程结束时的配置的相同数据。存储器112经连接以将从行114读出的数据输出到sr控制块108。sr控制块108经配置以将从存储器112接收的数据输出到相应扫描链102的第一单元202且将时钟130分配给扫描链102。(在图2a到2f中,第一单元202希望识别每一相应扫描链102中最左的单元。)时钟130致使由扫描链102中的每一者从sr控制块108接收的数据存储于每一接收扫描链102的对应单元106中且使位104(图2a中未展示)迭代地前进通过相应扫描链102的串行连接单元106。在图2b到2f中,从存储器112到sr控制块108的箭头指示刚从存储器112卸载以重新加载扫描链102中的每一者中的相应单元106的行114。

图2b展示用于在自图2a以来经过一个时钟130循环之后使用扫描链102恢复设计块的保存状态的现有技术电路的实例框图202。时钟130循环致使存储于存储器112的第一行114(行1)中的数据从存储器112读出且存储于扫描链102的对应者中的单元106中。因此,存储器112中的列116对应于相应扫描链102,使得从列1中的存储器单元118读出的数据存储于链1中,从列2中的存储器单元118读出的数据存储于链2中,依此类推。因此,数据被传回到其先前在关于图1a到1g描述的保存过程中从其读出的扫描链102。注意,移动到第二及第三扫描链102(链2及3)中的零是在图1g中展示且关于图1g描述的存储器112重新布置期间加入的填充符。这些零稍后将在恢复过程中被丢弃(即,移出相应扫描链102),如下文描述。

图2c展示用于在自图2a以来经过两个时钟130循环之后使用扫描链102恢复设计块的状态的现有技术电路的实例框图204。时钟130循环致使存储于扫描链102中的每一者中的位104移动通过扫描链102中的串行连接单元106且存储于存储器单元118的第二行114的每一列中的数据从存储器112读出且存储于对应扫描链102中。

图2d展示用于在自图2a以来经过三个时钟130循环之后使用扫描链102恢复设计块的保存状态的现有技术电路的实例框图206。时钟130循环致使存储于扫描链102中的位104移动通过扫描链102中的串行连接单元106且存储于存储器单元118的第三行114中的数据从存储器112读出且存储于对应扫描链102中。

图2e展示用于在自图2a以来经过第四时钟130循环之后使用扫描链102恢复设计块的保存状态的现有技术电路的实例框图208。时钟130循环致使存储于扫描链102中的位104移动通过扫描链102中的串行连接单元106且存储于存储器单元118的第四行114中的数据从存储器112读出且存储于对应扫描链102中。因为第三扫描链102(链3)仅三个单元106长,所以填充符零中的一者被移出链3且借此被丢弃。

图2f展示用于在自图2a以来经过第五时钟130循环之后使用扫描链102恢复设计块的保存状态的现有技术电路的实例框图210。时钟130循环致使存储于扫描链102中的位104移动通过扫描链102中的串行连接单元106且存储于存储器单元118的第五行114中的数据从存储器112读出且存储于对应扫描链102中。因为第二及第三扫描链102(链2及3)小于五个单元106长(最长扫描链102(第一及第四扫描链102)的长度),所以填充符零被移出链2及3中的每一者且借此被丢弃。如图2f中展示,扫描链102现含有相同于图1a中的保存过程开始时的相同配置中的位104。接着,扫描链102中所含的数据可用于恢复设计块的保存状态,从而反转用于最初将设计块的状态数据加载到扫描链102中的过程。



技术实现要素:

在描述的实例中,用于保存及恢复设计块状态的电路包含:第一存储器,其经配置以接收第一数据的不同部分且依第一顺序将其存储于不同第一存储器中;及第二存储器,其耦合到第一存储器。具有最多存储器单元的第一存储器具有n个存储器单元。具有较少存储器单元的第一存储器具有m个存储器单元。当保存状态时,来自不同第一存储器的第一数据依第二顺序写入到所述第二存储器的不同对应区域作为第二数据。所述第二顺序重复存储于具有较少单元的对应第一存储器的使用所述第一顺序确定的循序前nmodm个单元中的所述第一数据的部分。当恢复状态时,第二数据从所述第二存储器读取且依所述第一顺序存储于对应第一存储器中;重复部分重复存储于具有较少单元的对应第一存储器中。

附图说明

图1a展示用于使用扫描链保存设计块的状态的现有技术电路的实例框图。

图1b展示用于在图1a之后经过一个时钟循环之后使用扫描链保存设计块的状态的现有技术电路的实例框图。

图1c展示用于在图1a之后经过两个时钟循环之后使用扫描链保存设计块的状态的现有技术电路的实例框图。

图1d展示用于在图1a之后经过三个时钟循环之后使用扫描链保存设计块的状态的现有技术电路的实例框图。

图1e展示用于在图1a之后经过四个时钟循环之后使用扫描链保存设计块的状态的现有技术电路的实例框图。

图1f展示用于在图1a之后经过五个时钟循环之后使用扫描链保存设计块的状态的现有技术电路的实例框图。

图1g展示用于保存设计块的状态的存储器的现有技术实例框图。

图2a展示用于使用扫描链恢复设计块的保存状态的现有技术电路的实例框图。

图2b展示用于在自图2a以来经过一个时钟循环之后使用扫描链恢复设计块的保存状态的现有技术电路的实例框图。

图2c展示用于在自图2a以来经过两个时钟循环之后使用扫描链恢复设计块的状态的现有技术电路的实例框图。

图2d展示用于在自图2a以来经过三个时钟循环之后使用扫描链恢复设计块的保存状态的现有技术电路的实例框图。

图2e展示用于在自图2a以来经过第四时钟循环之后使用扫描链恢复设计块的保存状态的现有技术电路的实例框图。

图2f展示用于在自图2a以来经过第五时钟循环之后使用扫描链恢复设计块的保存状态的现有技术电路的实例框图。

图3a展示用于使用扫描链保存设计块的状态的电路的实例框图。

图3b展示用于在自图3a以来经过一个时钟循环之后使用扫描链保存设计块的状态的电路的实例框图。

图3c展示用于在自图3a以来经过两个时钟循环之后使用扫描链保存设计块的状态的电路的实例框图。

图3d展示用于在自图3a以来经过三个时钟循环之后使用扫描链保存设计块的状态的电路的实例框图。

图3e展示用于在自图3a以来经过四个时钟循环之后使用扫描链保存设计块的状态的电路的实例框图。

图3f展示用于在自图3a以来经过五个时钟循环之后使用扫描链保存设计块的状态的电路的实例框图。

图4a展示用于使用扫描链保存设计块的状态的电路的实例框图。

图4b展示用于在自图4a以来经过一时钟循环之后使用扫描链恢复设计块的保存状态的电路的实例框图。

图4c展示用于在自图4a以来经过两个时钟循环之后使用扫描链恢复设计块的状态的电路的实例框图。

图4d展示用于在自图4a以来经过三个时钟循环之后使用扫描链恢复设计块的保存状态的电路的实例框图。

图4e展示用于在自图4a以来经过四个时钟循环之后使用扫描链恢复设计块的保存状态的电路的实例框图。

图4f展示用于在自图4a以来经过第五时钟循环之后使用扫描链恢复设计块的保存状态的电路的实例框图。

图5a展示用于使用扫描链保存设计块的状态的实例过程。

图5b展示用于使用扫描链保存设计块的状态的实例过程。

图6a展示用于为用于保存设计块的状态的扫描链提供时钟的时钟电路的实例框图。

图6b展示时钟电路的实例时序图。

图6c展示用于为用于保存设计块的状态的扫描链提供时钟且经配置以在sr模式转变时抑制错误时钟转变的时钟电路的实例框图。

图6d展示时钟电路的实例时序图。

具体实施方式

图3a展示用于使用扫描链102保存设计块的状态的电路的实例框图300。图3a到3f的电路300、312、314、316、318、320分别与图1a到1f的电路100、120、122、124、126、128共享各个方面,因此,来自图1a到1f的相同元件符号被带到图3a到3f用于此类项。图3a到3f的电路300、312、314、316、318、320中的较短扫描链102不包含末端单元110与sr控制块108之间的连接,而图3a到3f的电路300、312、314、316、318、320中的较长扫描链102包含末端单元110与sr控制块108'之间的连接(图3a到4f中展示且关于图3a到4f描述的sr控制块108'与现有技术图1a到1f及2a到2f的sr控制块108具有一些类似性,但还引入了关于本文中引入的发明标的物描述的额外功能性)。

当设计块接收睡眠命令且准备掉电时,可执行状态保存过程。设计块状态数据最初使用状态数据输入302从设计块存储器元件(未展示)加载到相应扫描链102中(此过程未展示),从而导致图3a中展示的加载状态数据的扫描链102。图3a中展示的最长扫描链102是五个单元106长。在最长扫描链102中,状态数据输入302直接连接到扫描链102的第一单元304(就串行连接的扫描路径单元106的数目而言,最远离sr控制块108')。在较短扫描链102中,状态数据输入302连接到多路复用器306的第一输入。多路复用器306还接收相应扫描链102的末端单元110的输出作为第二输入。sr模式选择器308将控制信号提供到每一多路复用器306以控制多路复用器的相应输入的哪一者输出到相应扫描链102的第一单元304中。当扫描链102在执行图3a到3f中展示的保存过程时,sr模式选择器308将选择末端单元110的输出。当扫描链102在执行图4a到4f中展示(且下文关于图4a到4f进一步描述)的恢复过程时,sr模式选择器308将选择从状态数据输入302接收的数据。

每一扫描链102还包括sr输出310,其将来自相应扫描链102的所选择的单元106的数据输出到sr控制块108'以存储于存储器112中。在最长扫描链102中,提供sr输出310的所选择的单元106是末端单元110。在较短扫描链102中,提供sr输出310的所选择的单元106是除相应扫描链102的末端单元110之外的单元106。针对长度为n的最长扫描链102及长度为m的较短扫描链102,其中较短扫描链102的第一单元106被编号为一(1),且较短扫描链102的后续单元106被连续编号直到编号为m的末端单元110:sr输出310经连接到(n-m)单元,使得当位104前进通过扫描链102的串行连接单元106由时钟130触发时,(n-m)单元106中的位104被输出到sr控制块108'以存储于存储器112中且还前进到下一单元106(编号为n-m+1)。(为了方便,扫描链102称为从顶部扫描链102(链1)编号到底部扫描链102(链4)。)如图3a中展示,链1及4两者具有相同最大数目个单元(其中长度是五个单元106),而链2是四个单元106长,且链3是三个单元106长。因此,链2的sr输出310经连接到单元106一(n-m=5-4=1)的输出,且链3的sr输出310经连接到单元106二(n-m=5-3=2)的输出。

考虑其中n-m≥m导致此设计的一般化的情况。因此,sr输出310应连接到单元106nmodm以产生本文中描述的结果。注意,当n-m<m时,单元106nmodm相同于单元106n-m。

在图3a到3e中,为了清楚,展示将由于下一时钟130循环而由相应扫描链102输出的位104的值,其中相应sr输出310连接到sr控制块108'。链1将从链1的末端单元110输出1;链2将从链2的单元106一输出1;链3将从链3的单元106二输出0;且链4将从链4的末端单元110输出0。

图3b展示用于在自图3a以来经过一个时钟130循环之后使用扫描链102保存设计块的状态的电路的实例框图312。在图3b到3f中,从sr控制块108'到存储器112的箭头指示在存储器112的哪一行114中sr控制块108'致使从扫描链102输出的数据在最近时钟130循环保存。在图3中,由于最近时钟130循环而从扫描链102输出的数据已存储于存储器112的行1中。同时(优选地,在同一时钟130循环期间),sr控制块108'从每一相应扫描链102读取位104值如下。链1将从链1的末端单元110输出0;链2将从链2的单元106一输出1;链3将从链3的单元106二输出1;且链4将从链4的末端单元110输出1。

如图3b中展示,位104已连续前进通过每一扫描链102的单元106。因此,先前存储于链1及4(最长扫描链102)的末端单元110中的位104不再由相应扫描链102存储。然而,在链2及3(较短扫描链102)中,存储于相应末端单元110中的位104循环回到相应多路复用器306,且由多路复用器306(如由sr模式选择器308选择)传递到且存储于相应第一单元304中。因此,数据将循环通过较短扫描链102,使得存储于较短扫描链102中的一些位将输出到sr控制块108'且在从最长链102完全输出数据所需的数个时钟130循环(即,n个时钟130循环)期间存储于存储器112中超过一次。

图3c展示用于在自图3a以来经过两个时钟130循环之后使用扫描链102保存设计块的状态的电路的实例框图314。由于最近时钟130循环而从扫描链102输出的数据已存储于存储器112的行2中。同时,将由于下一时钟130循环而由相应扫描链102输出的位104的值是:链1将从链1的末端单元110输出1;链2将从链2的单元106一输出0;链3将从链3的单元106二输出0;且链4将从链4的末端单元110输出1。而且,从前一循环存储于链2的末端单元110中的0已循环回到且已存储于链2的第一单元304中,且从前一循环存储于链3的末端单元110中的0已循环回到且已存储于链3的第一单元304中(经由相应多路复用器306)。

图3d展示用于在自图3a以来经过三个时钟130循环之后使用扫描链102保存设计块的状态的电路的实例框图316。由于最近时钟130循环而从扫描链102输出的数据已存储于存储器112的行3中。将由于下一时钟130循环而由相应扫描链102输出的位104的值是:链1将从链1的末端单元110输出1;链2将从链2的单元106一输出1;链3将从链3的单元106二输出0;且链4将从链4的末端单元110输出0。而且,从前一循环存储于链2的末端单元110中的1已循环回到且已存储于链2的第一单元304中,且从前一循环存储于链3的末端单元110中的1已循环回到且已存储于链3的第一单元304中(经由相应多路复用器306)。注意,在图3d之后三个时钟130循环,链3已返回到存储于图3a中展示的单元106中的位104值的布置。这是因为链3的m(扫描链102的单元106的长度)等于三(三个单元106、三个时钟130循环)。因此,由链3输出且由存储器112存储的数据序列将开始针对状态保存过程的剩余部分重复。

图3e展示用于在自图3a以来经过四个时钟130循环之后使用扫描链102保存设计块的状态的电路的实例框图318。由于最近时钟130循环而从扫描链102输出的数据已存储于存储器112的行4中。将由于下一时钟130循环而由相应扫描链102输出的位104的值是:链1将从链1的末端单元110输出0;链2将从链2的单元106一输出1;链3将从链3的单元106二输出1;且链4将从链4的末端单元110输出0。而且,从前一循环存储于链2的末端单元110中的1已循环回到且已存储于链2的第一单元304中,且从前一循环存储于链3的末端单元110中的0已循环回到且已存储于链3的第一单元304中(经由相应多路复用器306)。注意,在图3d之后四个时钟130循环,链2已返回到存储于图3a中展示的单元106中的位104值的布置。这是因为链2的m(扫描链102的单元106的长度)等于四(四个单元106、四个时钟130循环)。因此,由链2输出且由存储器112存储的数据序列将开始针对状态保存过程的剩余部分重复。

图3f展示用于在自图3a以来经过五个时钟130循环之后使用扫描链102保存设计块的状态的电路的实例框图320。由于最近时钟130循环而从扫描链102输出的数据已存储于存储器112的行5中。从前一循环存储于链2的末端单元110中的1已循环回到且已存储于链2的第一单元304中,且从前一循环存储于链3的末端单元110中的0已循环回到且已存储于链3的第一单元304中(经由相应多路复用器306)。

由于图3a到3f的状态保存过程,如果存储器112的列p(其中p是从1到4的对应于扫描链p的数目)中的存储器单元118从行5到行1读取,那么存储于列p的存储器单元118中的位104将依从左到右顺序是相同于存储于图3a中的链p(编号为p的扫描链102)中的位104的位。针对较短扫描链102,这是正确的,但有一个警告:存储于存储器单元118中的位104在第m位104之后重复(针对扫描链中的给定m个位,在存储器112中向上读取,重复在(n-m)行114处开始)。此重复可包括最初存储于扫描链102中的位104的一或多个副本或最初存储于扫描链102中的位104的部分副本。举例来说,图3a中展示且具有m=3个位的从链3的第一单元106读取到第三单元106的链3的初始内容是(1,0,0)。图3f中展示的从存储器112的行5读取到行1的存储器112的列3的内容是(1,0,0,1,0)。因此,从行5读取到行1,图3f中展示的存储器112的列3含有链3的初始内容加从链3的第一单元304读取到第三单元106(末端单元110)的链3的(n-m=5-3=2)个额外位。当位104在一时钟130循环之前前进通过串行连接单元106时,较短扫描链102从其相应末端单元110循环到其相应第一单元304。因此,在状态恢复过程期间,当数据从存储器112加载回到相应扫描链102中时,当那些先前写入的位值从扫描链102的末端单元110循环到扫描链102的第一单元304时,重复位104值(来自较短扫描链102)将被盖写相同、先前写入的位104值(如关于图4a到4f进一步描述)。

图4a展示用于使用扫描链102恢复扫描链的状态且因此恢复设计块的状态的电路的实例框图400。状态恢复过程可在非有源设计块唤醒(设计块加电)时执行。如图4a中展示,在状态恢复过程开始时,存储器112含有相同于图3f中展示的状态保存过程结束时的相同配置中的数据。存储器112经连接以将来自其行114的数据输出到sr控制块108'。sr控制块108'经配置以将从存储器112接收的数据输出到相应扫描链102的第一单元304且将时钟130分配给扫描链102。时钟130致使由扫描链102从sr控制块108'接收的数据存储于对应单元106中且使位104(图4a中未展示)迭代地前进通过相应扫描链102的串行连接单元106。较短扫描链102(如图4a中展示,链2及3)还使从相应末端单元110前进的位104循环回到相应多路复用器306。因为sr模式选择器308经设置以传递最新接收的数据而非循环数据(其在状态恢复过程期间意味着从存储器112接收的数据),所以在存储操作期间循环的特定数据在恢复操作期间被丢弃,且从存储器112经由sr控制块108'及相应状态数据输入302接收的数据由相应多路复用器306传递以存储于(链2及3的)相应第一单元304中。然而,因为存储于存储器112中的数据重复最初存储于较短扫描链102中的数据,所以重复位104匹配循环(及丢弃)位104。实际上,图3a到3f的状态保存过程用存储于较短扫描链102中的状态数据填补存储器112。这避免零填补、存储器112重新布置或牺牲装置面积来平衡具有额外单元106的扫描链102长度(如上文关于图1a到2f描述)。

在图4b到4f中,从存储器112到sr控制块108'的箭头指示刚被卸载以重新加载扫描链102的行114。

图4b展示用于在自图4a以来经过一时钟130循环之后使用扫描链102恢复设计块的保存状态的电路的实例框图402。时钟130循环致使存储于存储器112的第一行114(行1)中的数据从存储器112读出且存储于对应扫描链102中的单元106中。因此,存储器112中的列116对应于相应扫描链102,使得从列1中的存储器单元118读出的数据存储于链1中,从列2中的存储器单元118读出的数据存储于链2中,依此类推。因此,数据被传回到其先前在关于图3a到3f描述的保存过程中从其读出的扫描链102。

图4c展示用于在自图4a以来经过两个时钟130循环之后使用扫描链102恢复设计块的状态的电路的实例框图404。时钟130循环致使存储于扫描链102中的位104迭代地移动(前进)通过扫描链102中的串行连接单元106且存储于存储器单元118的第二行114中的数据从存储器112读出且存储于对应扫描链102中。

图4d展示用于在自图4a以来经过三个时钟130循环之后使用扫描链102恢复设计块的保存状态的电路的实例框图406。时钟130循环致使存储于扫描链102中的位104迭代地移动通过扫描链102中的串行连接单元106且存储于存储器单元118的第三行114中的数据从存储器112读出且存储于对应扫描链102中。在状态恢复过程中的此点处,链3中的所有单元106都含有位104,但存储器112的列3尚不为空。留在存储器112的列3中的数据将被存储到链3的单元106中,而非如同保存操作中的情况,相同数据从链3的末端单元110循环回到链3的多路复用器306。多路复用器306将不传递循环位104,因为sr模式选择器308当前选择新数据来输入到较短扫描链106中。

图4e展示用于在自图4a以来经过四个时钟130循环之后使用扫描链102恢复设计块的保存状态的电路的实例框图408。时钟循环130致使存储于扫描链102中的位104迭代地移动通过扫描链102中的串行连接单元106且存储于存储器单元118的第四行114中的数据从存储器112读出且存储于对应扫描链102中。因为第三扫描链102(链3)是仅三个单元106长,所以存储于图4d中链3的末端单元110中的零经连接回到链3的多路复用器306的输入,但其实际上被丢弃,因为sr模式选择器308控制多路复用器306从sr控制块108'输出数据而非循环回数据。因此,链3多路复用器306输出先前存储于存储器112的列3(对应于链3)、行4(在状态保存过程的第四时钟130循环中从链3读出,且在状态恢复过程的第四时钟130循环中从存储器112的列3读出)中的零,借此其存储于链3的第一单元304中。

在图4e中,链2的所有单元106都含有在状态恢复过程期间从存储器112读取的存储位104。随后,图4f中链2的行为(丢弃循环位104、存储从存储器112读取的相同位104)将类似于图4e中链3的行为。

图4f展示用于在自图4a以来经过第五时钟130循环之后使用扫描链102恢复设计块的保存状态的电路的实例框图410。时钟130循环致使存储于扫描链102中的位104迭代地移动通过扫描链102中的串行连接单元106且存储于存储器单元118的第五行114中的数据从存储器112读出且存储于对应扫描链102的第一单元304中。先前存储于链2及3的末端单元110中的一作为输入循环回到相应多路复用器306且被丢弃(由于sr模式选择器308),且从存储器112的行5、列2及3读出的相同一存储于链2及3的相应第一单元304中。如图4f中展示,扫描链102现含有相同于图4a中的保存过程开始时的相同配置中的位104。接着,扫描链102中所含的数据可用于恢复设计块的保存状态,从而反转用于最初将设计块的状态加载到扫描链102中的过程。

图5a展示用于使用扫描链保存设计块的状态的实例过程500。在步骤502中,在设计块处接收睡眠命令,从而致使设计块准备掉电,且接着掉电。保存设计块的状态是掉电准备的部分。在步骤504中,将设计块的状态数据的不同部分加载到多个扫描链的不同者中。此类链由多个串行连接存储器单元组成。最长扫描链具有n个单元,且较短扫描链具有m个单元,其中不同扫描链的m可不同。在步骤506中,使存储于扫描链中的状态数据迭代地前进通过扫描链。位从最长扫描链的末端单元输出,且位从较短扫描链的第(n-m)单元输出。位从较短扫描链中的第m单元循环以存储于相应较短扫描链的第一单元中。在步骤508中,依序将从扫描链的不同者输出的位存储于存储器的不同区域中,使得扫描链的不同者对应于存储器区域的不同者。在步骤510中,重复步骤506及508的迭代前进及存储直到在步骤504中存储于较长扫描链中的所有状态数据都存储于存储器中。这将导致存储于较短扫描链中的状态数据的一个以上副本(例如一副本加部分副本)存储于存储器中。

图5b展示用于使用扫描链保存设计块的状态的实例过程500。在步骤514中,循序地从对应于扫描链的存储器区域读出位(如关于步骤508描述),优选地,每步骤514的迭代每区域一个位。在步骤516中,将从存储器读出的位存储于扫描链的相应第一单元中。在步骤518中,如果最长扫描链尚未(重新)填充状态数据,那么使状态数据迭代地前进通过扫描链,且重复步骤514及516。在步骤520中,重复地使状态数据迭代地前进通过扫描链,且使从扫描链输出的状态数据返回到设计块的相应存储器元件。

图6a展示用于为用于保存设计块的状态的扫描链提供时钟的时钟电路600的实例框图。时钟电路600包括时钟分频器608,其接收参考时钟602作为输入且经连接以输出分频时钟信号clkdiv604作为其本身的输入(反馈)及作为多路复用器606的输入。多路复用器606还接收保存-恢复时钟clksr610作为输入。sr模式612选择器选择多路复用器606输出clkdiv604或clksr610作为多路复用器输出614。在设计块的正常功能期间,多路复用器606输出clkdiv604来供设计块使用。在状态保存过程或状态恢复过程期间,多路复用器606输出clksr610来供扫描链及相关电路使用。

图6b展示时钟电路600的实例时序图611。如图6b中展示,sr模式612最初被设置为高态以对应于其中已触发sr(保存-恢复)功能性的设计块空闲状态(例如掉电状态)。sr模式612稍后转变到低态以指示设计块从空闲状态到功能(例如加电)状态的转变及从保存-恢复模式到功能模式的对应转变。clkdiv604开始呈低态,且在sr模式612转换到低态之前(在设计块从保存-恢复模式转变到功能模式之前)转变到高态。在图6b中展示的时间周期期间,clksr610最初振荡,且在状态恢复过程完成时在sr模式612转低之前停止振荡。多路复用器输出614最初遵循clksr610,且在sr模式612转低时转高以遵循clkdiv604(sr模式612改变导致所选择的多路复用器输出614改变)。产生上升时钟边缘616的多路复用器输出614的此转变与sr模式612转变同时发生。此可能会出问题:多路复用器输出614中的上升时钟边缘616指示其中不存在时钟转变的时钟转变(上升时钟边缘),这可导致时控电路展现非所要(错误)行为。

图6c展示用于为用于保存设计块的状态的扫描链提供时钟且经配置以在sr模式612转变时抑制错误时钟转变的时钟电路618的实例框图。时钟电路618包含控制触发器620,其接收clksr610及复位信号622作为输入且经连接以将转变时钟clkxn624输出到or逻辑门626。or逻辑门626还接收clksr610作为输入。or逻辑门626将门控保存-恢复时钟clksr_g628输出到多路复用器606。sr模式620选择多路复用器606输出clkdiv604或clksr_g628作为多路复用器输出614。在设计块的正常功能期间,多路复用器606输出clkdiv604来供设计块使用。在状态保存过程或状态恢复过程期间,多路复用器606输出clksr_g628来供扫描链及相关电路使用。

图6d展示时钟电路618的实例时序图630。图6d中展示的信号时序相同于图6b中的,只是添加了复位信号622及其对多路复用器输出614的影响。复位信号622开始呈低态,且在状态恢复过程结束时在sr模式612转高之前转高,且保持高态直到从空闲状态到功能状态的转变完成。复位信号622致使clkxn624(未展示)转高,这致使clksr_g628(未展示)转高,从而致使多路复用器输出614保持高态。此防止多路复用器输出614展示错误上升边缘转变。

图6a、6b、6c及6d解决设计块中的空闲状态到功能状态转变。图6c的时钟电路618还可用于在设计块中的功能状态到sr状态转变期间通过在sr模式612转高之前激活复位信号622且保持高态直到转变到空闲状态完成(例如,当状态保存过程准备开始时)来抑制错误时钟转变。集成电路中的保存-恢复功能性领域的一般技术人员应明白,时钟电路618还可经修改以防止错误上升边缘转变及错误下降边缘转变两者。

在权利要求书的范围内,可修改描述的实施例,且其它实施例是可能的。

在一些实施例中,存储器单元可存储一个以上位。在一些实施例中,不同存储器单元可存储不同数目个位。

在一些实施例中,可使用不同于本文中描述的单元数目及存储器大小。

在一些实施例中,可使用不同数目个时钟循环使位前进通过扫描链。

在一些实施例中,可使用除时钟信号之外的传播信号(致使位连续前进通过扫描链的信号)。

在一些实施例中,将从扫描链读出的位非连续地存储于存储器中。在一些实施例中,依不同顺序(例如,交互书写地)将位存储于存储器中。在一些实施例中,将来自扫描链的位存储于存储器的同一列中而非同一行上。在一些实施例中,将来自扫描链的位从底部向上存储于存储器中。

在一些实施例中,可在保存状态过程期间将状态数据的额外副本存储于存储器中。

在一些实施例中,状态数据存储于存储器中的顺序不相同于状态数据存储于扫描链中的顺序。

在一些实施例中,将状态数据从扫描链加载到其中的存储器与设计块处于同一裸片上;在一些实施例中,将状态数据从扫描链加载到其中的存储器与设计块处于不同裸片上。

在一些实施例中,在初始化动作中,最初将数据串行加载到扫描链中(例如经由扫描链的第一单元)。在一些实施例中,在初始化动作期间,最初将数据并行加载到扫描链中,例如通过在同一时钟循环期间将所有数据加载到扫描链的对应单元中或通过在个别时钟循环期间将多个位直接加载到扫描链的对应单元中。

在一些实施例中,用于保存及恢复设计块的状态的电路包含多个第一存储器(例如扫描链102)及第二存储器(例如存储器112)。第一存储器经配置以在初始化动作期间从设计块的存储器元件(例如寄存器及触发器)接收第一数据(例如状态数据)。第一存储器依第一顺序将第一数据的不同部分存储于第一存储器的不同者中(例如扫描链102依特定连续顺序存储状态数据,如图3a中展示)。第一存储器的不同者具有不同数目个存储器单元(例如不同扫描链102具有不同数目个单元106),具有最多存储器单元的第一存储器中的若干者具有n个存储器单元,且具有较少存储器单元的第一存储器中的若干者具有m个存储器单元。第二存储器经耦合到第一存储器。在保存状态动作期间,第一数据(状态数据)从第一存储器(扫描链102)读取且存储于第二存储器(存储器112)中,存储于第一存储器的不同者中的第一数据的部分依第二顺序写入到第二存储器的不同对应区域作为第二数据(例如,扫描链102中的状态数据经写入到存储器112的对应列116中)。第二顺序包含存储于具有较少存储器单元的第一存储器的对应者的使用第一顺序确定的循序前n减m个存储器单元中的第一数据的重复部分(例如,存储于较短扫描链102的前n减m个单元106中的位104由于循环输入及较短扫描链102中的输出310的位置且因为n个时钟循环用于输出不同于较短扫描链102的m个位104而在存储器112中重复,其中n>m)。在恢复状态动作期间,第二数据的不同部分从第二存储器读取且依第一顺序存储于第一存储器的不同对应者中(状态数据从存储器112输出回到对应扫描链102,使得状态数据依相同于状态数据最初存储于扫描链102中时的顺序由扫描链102存储),且重复部分依第一顺序存储于其中已存储第二数据的相同部分的具有较少存储器单元的第一存储器的对应者中(在存储器112中重复的位104依初始连续顺序存储于扫描链102中,例如图4e及4f中展示)。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1