一种基于跳变检错结构的时序错误检测单元的制作方法

文档序号:13075223阅读:201来源:国知局
一种基于跳变检错结构的时序错误检测单元的制作方法与工艺

本发明涉及集成电路技术领域,特别涉及一种基于跳变检错结构的时序错误检测单元。



背景技术:

随着集成电路制造工艺的发展及特征尺寸的缩小,半导体电路的集成度急剧增加。如何利用有限的能耗实现电路的高性能是现在集成电路设计极富有挑战的工作,尤其是随着移动通信产品和个人可穿戴设备的流行,对低功耗技术的需求尤为迫切。集成电路中的功耗和电源电压和频率有关,电源电压和工作频率越低,功耗就越低;但是降低频率会极大地损害电路的运行速度和性能。由于集成电路的功耗和电压的平方成正比例,所以降低电源电压是降低电路功耗最有效的方法。在传统的设计中,为了使电路即使在最坏的延迟时也总能正确工作,电压的下降有限制,不能无限下降,必须要在电路能正确工作的点以上。然而电路中路径的延时近似呈正态分布,最坏延迟路径被触发的概率很低。因此人们提出了另外的技术,进一步降低供电电压,使电压降低到电路总能正确工作的点以下,允许电路出现时序错误,通过纠正出现概率很小的时序错误,使电路能继续正确运行,自检错纠错技术就是利用这种原理实现低功耗的。

自检错纠错技术的检错单元必须要能实现数据采样和时序错误检测两大功能。典型的检错单元包括双采样和带跳变检测器的结构。双采样结构由于在路径中需要两组时序单元进行采样对比,面积和功耗开销相对较大,降低功耗有限。以往带跳变检测器的检错单元结构,跳变检测器面积开销较大。另外一些结构,跳变检测器和数据采样部分共用某些节点,数据采样和时序错误检测会相互作用,对电路的稳定性带来不利影响。



技术实现要素:

针对上述不足之处,本发明在基于传统的跳变检测器结构的基础上,提出一种基于新型的跳变检错结构的时序错误检测单元,该结构简单,不受亚稳态影响,数据采样和时序错误检测分开,不相互影响;并且应用在流水线中时,结合全局时钟暂停纠错技术,大幅降低了流水线的功耗。

本发明的技术方案如下:

一种基于跳变检错结构的时序错误检测单元,包括时序检测部分和数据采样部分,

所述时序检测部分包括第一pmos管m1、第二pmos管m2、第三pmos管m4、第四pmos管m7、第一nmos管m3、第二nmos管m5、第三nmos管m6和第四nmos管m8,

第一pmos管m1的栅极连接第一nmos管m3的栅极并作为所述时序错误检测单元的数据输入端,其漏极接第二pmos管m2的源极和第三pmos管m4的栅极;

第二pmos管m2的栅极作为第一时钟控制端,其漏极接第一nmos管m3的漏极和第二nmos管m5的栅极;第二nmos管m5的漏极接第三pmos管m4漏极;

第三nmos管m6的栅极作为第二时钟控制端,其漏极接第一nmos管m3和第二nmos管m5的源极以及第四pmos管m7和第四nmos管m8的栅极;

第四pmos管m7的漏极接第四nmos管m8的漏极并输出时序错误信号error;

第一pmos管m1、第三pmos管m4和第四pmos管m7的源极接电源电压,第三nmos管m6、第四nmos管m8的源极接地;

所述数据采样部分包括第五pmos管m9、第六pmos管m11、第七pmos管m13、第八pmos管m15、第五nmos管m10、第六nmos管m12、第七nmos管m14和第八nmos管m16,

第五pmos管m9和第五nmos管m10的源极连接所述时序错误检测单元的数据输入端,第七pmos管m13的栅极连接第五pmos管m9和第五nmos管m10的漏极、第六pmos管m11和第六nmos管m12的源极以及第七nmos管m14的栅极,其漏极连接第七nmos管m14的漏极以及第八pmos管m15和第八nmos管m16的栅极并输出反相数据输出信号;

第六pmos管m11的漏极连接第六nmos管m12、第八pmos管m15和第八nmos管m16的漏极并输出数据输出信号;

第五pmos管m9和第六nmos管m12的栅极连接所述第二时钟控制端,第五nmos管m10和第六pmos管m11的栅极互连并作为第三时钟控制端;

第七pmos管m13和第八pmos管m15的源极接电源电压,第七nmos管m14和第八nmos管m16的源极接地。

本发明的有益效果为:结构简单,面积开销小,只用8个mos晶体管就能实现时序错误检测;由于数据采样部分采用了电平有效的锁存器,所以本结构不会受亚稳态的影响;并且本发明将时序错误检测部分与数据采样部分分开,两部分独立工作互不影响,提高了电路的稳定性。本发明应于流水线技术时,结合全局时钟暂停纠错技术,即使在同一周期出现多个时序错误,也只需要一个额外的周期就能纠错,通过这种方式能大幅度降低流水线电路的功耗。

附图说明

图1为实施例中本发明应用于流水线结构的电路原理图。

图2为本发明所提出的一种基于跳变检错结构的时序错误检测单元示意图。

图3为本发明所提出的一种基于跳变检错结构的时序错误检测单元的运行时序图

图4为实施例中流水线结构的单级锁存器组模块的电路原理图。

图5为实施例中流水线结构的时钟控制和纠错模块的电路原理图。

图6为实施例中本发明应用于流水线结构的电路运行时序图。

具体实施方式

下面结合附图和具体实施例对本发明进行详细的描述:

本发明提出的带跳变检错结构的时序错误检测单元可用于流水线技术,如图1所示为本实施例中将本发明的时序错误检测单元用于流水线技术的电路原理图,包括多个串联的单级锁存器组、多个接在所述单级锁存器组之间的组合逻辑模块和一个时钟控制和纠错模块,所述第一级单级锁存器组的输入端接输入信号in,最后一级的单级锁存器组的输出端输出信号out。

其中单级锁存器组包括多个时序错误检测单元和一个错误汇总模块,时序错误检测单元的数目视具体电路而定,单级锁存器组的输入端为每个时序错误检测单元的输入端d连接上级流水线组合逻辑模块的输出或输入信号in,其输出端为每个时序错误检测单元的数据输出端q和反相数据输出端qn连接下级流水线组合逻辑模块的输入或最后一级单级锁存器组的输出端输出信号out。

每个单级锁存器组的错误汇总模块接收该单级锁存器组中的多个时序错误检测单元输出的时序错误信号error并输出单级流水线错误信号error_total至时钟控制和纠错模块的输入端,时钟控制和纠错模块还输入系统的时钟信号clk_s,并产生错误复位信号error_rstn反馈回每个单级锁存器组中的错误汇总单元,同时时钟控制和错误汇总模块还产生冗余电荷放电时钟信号clkn、检错窗口时钟信号clkn_d和本地时钟信号clk_l分别连接时序错误检测单元的第一时钟控制端、第二时钟控制端和第三时钟控制端。

图2为本发明所提出的基于新型跳变检错结构的时序错误检测单元示意图,图3为其运行的时序图。冗余电荷放电时钟信号clkn与检错窗口时钟信号clkn_d之间有一小段延时δ,这段延时非常小,为了便于说明,在图3中做了放大处理。

时序错误检测单元分为两部分:第一部分包括第一pmos管m1、第二pmos管m2、第三pmos管m4、第四pmos管m7、第一nmos管m3、第二nmos管m5、第三nmos管m6、第四nmos管m8,用来检测电路是否出现时序错误;第二部分包括第五pmos管m9、第六pmos管m11、第七pmos管m13、第八pmos管m15、第五nmos管m10、第六nmos管m12、第七nmos管m14和第八nmos管m16,用来采样数据。

当本地时钟信号clk_l为低电平,冗余电荷放电时钟信号clkn、检错窗口时钟信号clkn_d为高电平,即图3中的第1区域时,第二pmos管m2断开,第三nmos管m6导通,net3节点被拉低,net3节点经过第四pmos管m7和第四nmos管m8组成的反相器后变为高电平,所以此时时序错误信号error为高电平。由于第二pmos管m2断开,这时时序错误检测单元的输入信号d的跳变不会影响时序错误信号error。若此时时序错误检测单元的输入信号d为低电平,则第一pmos管m1导通,net1节点被充电;若时序错误检测单元的输入信号d为高电平则第一nmos管m3导通,net2节点被net3节点拉低。

当本地时钟信号clk_l、检错窗口时钟信号clkn_d为高电平,冗余电荷放电时钟信号clkn为低电平,即图3中的第2区域时,第二pmos管m2导通,第三nmos管m6导通,时序错误信号error仍为高电平。若此时时序错误检测单元的输入信号d继续保持低电平,第一pmos管m1导通,第一nmos管m3断开,net1节点被充电为高,由于m2第二pmos管导通,所以存储在net1节点的电荷将net2节点拉高,进而使第二nmos管m5导通,net3节点将net4节点拉低。若此时时序错误检测单元的输入信号d继续保持高电平,第一pmos管m1断开,第一nmos管m3导通,net2节点和net3节点将继续为低。若此时时序错误检测单元的输入信号d由低电平跳变为高电平,第一pmos管m1断开,第一nmos管m3导通,那么存储在net1节点的电荷将会经过第二pmos管m2、第一nmos管m3和第三nmos管m6被放掉,net1节点变为低电平,进而第三pmos管m4导通,net4节点被充电为高,存储电荷。若此时时序错误检测单元的输入信号d由高电平跳变为低电平,那么第一nmos管m3断开,第一pmos管m1导通,net1节点将被充电为高。

当本地时钟信号clk_l为高电平,冗余电荷放电时钟信号clkn、检错窗口时钟信号clkn_d为低电平,即图3的第3区域时,第二pmos管m2导通,第三nmos管m6断开。若时序错误检测单元的输入信号d产生上升沿跳变,即d由低电平向高电平跳变,此时,第一nmos管m3导通,net1节点存储的电荷经第二pmos管m2和第一nmos管m3将net3节点充电为高,net3节点经过第四pmos管m7和第四nmos管m8组成的反相器后变为低电平,所以此时时序错误信号error为低电平。若此时时序错误检测单元的输入信号d产生下降沿跳变,即时序错误检测单元的输入信号d由高电平向低电平跳变,这时第一pmos管m1导通,net1节点被充电为高,由于第二pmos管m2导通,进而net2节点为高,所以第二nmos管m5导通,这样,存储在net4节点的电荷就将net3节点充电为高,经过第四pmos管m7和第四nmos管m8组成的反相器后,时序错误信号error变为低电平。

当冗余电荷放电时钟信号clkn为高电平,本地时钟信号clk_l、检错窗口时钟信号clkn_d为低电平,即图3中的第4区域时,第二pmos管m2和第三nmos管m6断开,此时此结构不能检测时序错误,时序错误检测单元的输入信号d不能在这个范围内发生跳变。在实际的电路设计中,由于延时δ很小,所以这一区域很窄,几乎可以忽略。而且我们可以加强约束,使时序错误检测单元的输入信号d的跳变不可能发生在这个区域。时序错误检测单元的检错窗口为本地时钟信号clk_l的高电平宽度减去延时δ。最坏延迟路径必须要小于一个周期加上检错窗口的长度。冗余电荷放电时钟信号clkn与检错窗口时钟信号clkn_d之间有一小段延时δ主要是为了使第二pmos管m2提前δ的时间导通,将时序错误检测单元的输入信号d由低电平跳变为高电平存储在net1节点的电荷放掉,以免在检错窗口内net1节点对net3节点放电,产生伪错误。

总的来看,如果电路没有时序错误产生时,时序错误信号error为高电平,如果时序错误检测单元的输入信号d的数据在时序错误检测单元的检错窗口发生跳变,那么时序错误信号error就会跳变为低电平持续一段时间,再跳变为高电平。当本地时钟信号clk_l为高电平,检错窗口时钟信号clkn_d为低电平时,第五pmos管m9和第五nmos管m10组成的传输门导通,第六pmos管m11和第六nmos管m12组成的传输门断开。此时,时序错误检测单元的输入信号d的数据通过第五pmos管m9和第五nmos管m10组成的传输门,第七pmos管m13和第七nmos管m14组成的反相器,第八pmos管m15和第八nmos管m16组成的反相器分别到达时序错误检测单元的数据输出端、反相数据储输出端,完成在本地时钟信号clk_l高电平时的数据采样。当本地时钟信号clk_l为低电平,检错窗口时钟信号clkn_d为高电平时,第五pmos管m9和第五nmos管m10组成的传输门断开,第六pmos管m11和第六nmos管m12组成的传输门导通。在数据输出端的数据通过第六pmos管m11和第六nmos管m12组成的传输门,第七pmos管m13和第七nmos管m14组成的反相器,第八pmos管m15和第八nmos管m16组成的反相器锁存。如图3所示,当时序错误检测单元的输入信号d的数据在检错窗口跳变时,时序错误信号error变为低电平,当检错窗口时钟信号clkn_d变为高电平后,时序错误信号error变为高电平。在本地时钟信号clk_l为高电平时,时序错误检测单元的数据输出端对数据输入端进行采样,在本地时钟信号clk_l为低电平时,时序错误检测单元的数据输出端的数据锁存。

如图4所示为本实施例中单级锁存器组的结构图,包括多个时序错误检测单元和一个错误汇总单元,错误汇总单元包括一个上拉pmos管m17、一个下拉nmos管m18和多个并联的pmos管,上拉pmos管m17的源极接电源电压,其漏极接所述多个并联的pmos管的源极;下拉nmos管m18的源极接地,其漏极接所述多个并联的pmos管的漏极,所述多个并联的pmos管的栅极各自接一个时序错误检测单元输出的时序错误信号error,上拉pmos管m17和下拉nmos管m18的栅极接错误复位信号error_rstn,多个并联的pmos管的漏极输出单级流水线错误信号error_total。

当没有错误时,错误复位信号error_rstn为低电平,上拉pmos管m17导通,下拉nmos管m18断开,单级流水线错误信号error_total为低电平,当时序错误检测单元检测到时序错误时,时序错误检测单元的时序错误信号error信号端跳变为低电平,此时,单级锁存器组模块错误汇总单元上拉pmos管m17和下拉nmos管m18之间的pmos管至少会有一个导通,从而单级流水线错误信号error_total节点被拉为高电平。当错误复位信号error_rstn变为高电平时,下拉nmos管m18导通,上拉pmos管m17断开,单级流水线错误信号error_total节点被拉为低电平。错误复位信号error_rstn为单级流水线错误信号error_total的复位信号,使其能进行下一次错误汇总检测。

组合逻辑模块的输入为多个时序错误检测单元的数据输出信号q和反相数据输出信号qn,组合逻辑模块的输出为多个时序错误检测单元的数据输入信号d,根据不同的电路结构,组合逻辑模块的内容不同。

本实施例中的时钟控制和纠错模块如图5所示,包括或门、第一与门、第二与门、锁存器、反相器和延时单元,所述锁存器低电平有效;所述或门的输入端连接错误汇总单元输出的单级流水线错误信号error_total,其输出端连接所述锁存器的d输入端;系统的时钟信号clk_s连接所述锁存器的时钟输入端与所述第一与门和第二与门的第一输入端;所述第一与门的第二输入端连接所述锁存器的q输出端,其输出端输出错误复位信号error_rstn;所述第二与门的第二输入端连接所述锁存器的qn输出端,其输出端连接所述反相器的输入端并输出本地时钟信号clk_l;所述反相器的输出端输出冗余电荷放电时钟信号clkn并连接所述延时单元的输入端,所述延时单元的输出端输出检错窗口时钟信号clkn_d。多个单级锁存器组模块的输出的单级流水线错误信号error_total经过一个或门得到全局错误信号error_global,然后全局错误信号error_global信号接到一个低电平有效的锁存器的d输入端。低电平有效的锁存器输出时钟停止信号stall和时钟停止反相信号~stall。时钟停止信号stall和系统的时钟信号clk_s经过第一与门得到错误复位信号error_rstn,错误复位信号error_rstn被送到单级锁存器组模块的错误汇总单元输入端。系统时钟信号clk_s和时钟停止反相信号~stall经过第二与门得到本地时钟信号clk_l,本地时钟信号clk_l经过一个反向器得到冗余电荷放电时钟信号clkn,冗余电荷放电时钟信号clkn经过一个延时单元延时δ后得到检错窗口时钟信号clkn_d。

图6为时钟控制和纠错模块的运行时序图。当任意一个单级锁存器组模块的单级流水线错误信号error_total信号变为高电平,经过一个或门后,全局错误信号error_global信号变为高电平。全局错误信号error_global信号然后接到一个低电平有效的锁存器的输入端,此锁存器的时钟端口为系统时钟信号clk_s。锁存器的q和qn端分别为时钟停止信号stall和时钟停止反相信号~stall。当系统时钟信号clk_s的低电平到来时,锁存器将对高电平的全局错误信号error_global采样,得到时钟停止信号stall。如图6所示,时钟停止信号stall会保持一个时钟周期。系统时钟信号clk_s和时钟停止信号stall经过与门得到错误复位信号error_rstn,错误复位信号error_rstn的时钟高电平宽度和系统时钟信号clk_s一样。错误复位信号error_rstn变为高电平后,单级锁存器组模块的单级流水线错误信号error_total被拉为低电平,为下一次错误汇总做准备。系统时钟信号clk_s和时钟停止反相信号~stall经过一个与门后得到本地时钟信号clk_l,由本地时钟信号clk_l进而得到冗余电荷放电时钟信号clkn,检错窗口时钟信号clkn_d。总的来说,当电路因为供电电压下降而产生时序错误时,如图6所示,全局错误信号error_global跳变为高电平,锁存器对全局错误信号error_global采样得到时钟停止信号stall和时钟停止反相信号~stall,~stall信号使本地时钟信号clk_l,冗余电荷放电时钟信号clkn,检错窗口时钟信号clkn_d暂停一个时钟周期,完成纠错。时钟停止信号由stall和全局错误信号error_global产生的错误复位信号error_rstn使单级锁存器组的单级流水线错误信号error_total复位,为下一次检错做好准备。纠错过程完成后,电路会继续执行下一个输入。

相比于传统的检错结构,本发明结构非常简单;数据通路是由电平敏感的锁存器组成,所以不受亚稳态影响。并且,本结构将时序错误检测部分和数据采样部分分开,两者独立运行互不影响,提高了电路的稳定性。利用全局时钟暂停纠错技术,多个时序错误也只需要一个额外的时钟周期就能纠正,大幅降低了电路的功耗。

本领域的普通技术人员可以根据本发明公开的这些技术启示做出各种不脱离本发明实质的其它各种具体变形和组合,这些变形和组合仍然在本发明的保护范围内。

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