嵌入式存储器及集成电路的制作方法

文档序号:15619115发布日期:2018-10-09 21:54阅读:350来源:国知局

本发明涉及一种集成电路设计,以及更特别地,涉及一种具有能被内部或外部控制的建立-保持时间的嵌入式存储器及相关联的集成电路。



背景技术:

通常,片上系统(system-on-chip,soc)使用大量嵌入式存储器。在soc设计时间,传统的时序签核(timingsign-off)会针对保持时间裕度预留3σ(3-sigma)局部变化系数。然而,3σ覆盖的每百万缺陷数(defectivepartspermillion,dppm)级别明显小于1000dppm。如果预留的保持时间裕度从3σ增加到6-7σ,则可以改进dppm。然而,dppm的改进是以芯片面积、时序收敛(timingclosure)和速度性能为代价的。因此,不可避免地,soc设计会受到芯片面积、时序收敛和速度性能的影响。此外,在硅调试阶段,嵌入式存储器的存储器内置自测试(memorybuilt-inself-test,mbist)逻辑无法识别存储器输入接口和mbist逻辑本身的保持时间违规。这会导致mbistshmoo图中出现破洞(hole)现象,该破洞会使电路在某个范围内失效。



技术实现要素:

有鉴于此,本发明的目的之一在于提供一种嵌入式存储器和集成电路,以解决上述问题。

根据本发明的第一方面,本发明提供一种嵌入式存储器,该嵌入式存储器包括:存储器接口电路、单元阵列和外围电路。其中,该存储器接口电路,包括:可编程路径延迟电路和多个接口引脚,该多个接口引脚用于至少接收时钟信号、非时钟信号以及建立-保持时间控制设置;以及,该可编程路径延迟电路用于根据该建立-保持时间控制设置来控制时钟路径和非时钟路径中的至少一个的路径延迟,其中,该时钟路径用于传送该时钟信号,该非时钟路径用于传送该非时钟信号。该单元阵列包括多个存储单元;以及该外围电路用于至少根据该时钟路径提供的时钟信号和该非时钟路径提供的非时钟信号访问该单元阵列。

根据本发明的第二方面,本发明提供一种集成电路,该集成电路包括如上所述的嵌入式存储器。

根据本发明的第三方面,本发明提供一种集成电路,该集成电路包括:时钟树、触发器电路、嵌入式存储器和时钟门控单元电路。该时钟树用于至少分配第一时钟信号和第二时钟信号;该触发器电路具有时钟输入端口和数据输出端口,该时钟输入端口用于经由时钟门控单元电路接收来自该时钟树的该第一时钟信号,且该数据输出端口用于输出非时钟信号;该嵌入式存储器用于接收来自该时钟树的该第二时钟信号、接收来自该触发器电路的该非时钟信号,并至少根据该第二时钟信号和该非时钟信号执行存储器存取;以及该时钟门控单元电路用于接收该第一时钟信号并选择性地将该第一时钟信号提供给该触发器电路的该时钟输入端口。其中,该时钟门控单元电路包括可编程路径延迟电路,该可编程路径延迟电路用于根据建立-保持时间控制设置来控制时钟路径的路径延迟,其中,该时钟路径用于传送该第一时钟信号。

在上述技术方案中,嵌入式存储器和集成电路可以根据建立-保持时间控制设置来控制嵌入式存储器的非时钟信号相对于时钟信号的建立时间和/或保持时间,从而避免建立时间违规和/或保持时间违规。

本领域技术人员在阅读附图所示优选实施例的下述详细描述之后,可以毫无疑义地理解本发明的这些目的及其它目的。详细的描述将参考附图在下面的实施例中给出。

附图说明

通过阅读后续的详细描述以及参考附图所给的示例,可以更全面地理解本发明,其中:

图1是根据本发明实施例的第一集成电路设计的示意图;

图2a是根据本发明实施例示出图1所示的可编程路径延迟电路的第一示例性设计的示意图;

图2b是根据本发明实施例示出图1所示的可编程路径延迟电路的第二示例性设计的示意图;

图3是根据本发明实施例示出的非时钟信号和多个时钟信号的波形的示意图;

图4是根据本发明实施例示出的图2a所示的可编程路径延迟电路的电路设计的示意图;

图5是根据本发明实施例示出的图1中所示的可编程路径延迟电路的第二示例性设计的示意图;

图6是根据本发明实施例示出的图5中所示的可编程路径延迟电路的电路设计的示意图;

图7是根据本发明实施例示出的图1所示的可编程路径延迟电路的第三示例性设计的示意图;

图8是根据本发明实施例示出的时钟信号和非时钟信号的波形的示意图;

图9是根据本发明实施例的图1中所示的可编程路径延迟电路的第四示例性设计的示意图;

图10是根据本发明实施例示出的第二集成电路设计的示意图。

在下面的详细描述中,为了说明的目的,阐述了许多具体细节,以便本领域技术人员能够更透彻地理解本发明实施例。然而,显而易见的是,可以在没有这些具体细节的情况下实施一个或多个实施例,不同的实施例可根据需求相结合,而并不应当仅限于附图所列举的实施例。

具体实施方式

以下描述为本发明实施的较佳实施例,其仅用来例举阐释本发明的技术特征,而并非用来限制本发明的范畴。在通篇说明书及权利要求书当中使用了某些词汇来指称特定的元件,所属领域技术人员应当理解,制造商可能会使用不同的名称来称呼同样的元件。因此,本说明书及权利要求书并不以名称的差异作为区别元件的方式,而是以元件在功能上的差异作为区别的基准。本发明中使用的术语“元件”、“系统”和“装置”可以是与计算机相关的实体,其中,该计算机可以是硬件、软件、或硬件和软件的结合。在以下描述和权利要求书当中所提及的术语“包含”和“包括”为开放式用语,故应解释成“包含,但不限定于…”的意思。此外,术语“耦接”意指间接或直接的电气连接。因此,若文中描述一个装置耦接于另一装置,则代表该装置可直接电气连接于该另一装置,或者透过其它装置或连接手段间接地电气连接至该另一装置。

其中,除非另有指示,各附图的不同附图中对应的数字和符号通常涉及相应的部分。所绘制的附图清楚地说明了实施例的相关部分且并不一定是按比例绘制。

本发明的实施例提出了一种具有能被内部或外部控制的建立-保持时间(setup-holdtime)的嵌入式存储器,从而避免了或减少存储器输入接口处的建立时间违规和/或保持时间违规。通过这种方式,所提出的解决方案可以缓减“shmoo破洞”问题。此外,soc时序收敛也能够从所提出的解决方案中受益。

图1是根据本发明实施例的第一集成电路设计的示意图。在图1所示的实施例中,该集成电路是其中包括嵌入式存储器的片上系统(soc)10。为了清楚和简单起见,仅一个嵌入式存储器100被示出,但本发明并不限于此。嵌入式存储器100包括单元阵列(cellarray)102、外围电路(peripheralcircuit)104和存储器接口电路(memoryinterfacecircuit)106。单元阵列102具有多个存储单元(memorycell)108。通过使能存储单元108所对应的一个字线和一个位线,能够对每个存储单元108进行存取(acess),换言之,能够访问存储单元108。外围电路104包括对单元阵列102进行存取(读/写)(即访问单元阵列102)所需的电路组件。例如,外围电路104可以包括行解码器(rowdecoder)、行驱动器(rowdriver)、时钟发生器(clockgenerator)、时序控制器(timingcontroller)、列解码器(columndecoder)、感测放大器(senseamplifier)、数据锁存器(datalatches)等。在本实施例中,存储器接口电路106包括多个接口引脚(interfacepin)110和可编程路径延迟电路(programmablepathdelaycircuit)112。该多个接口引脚110用于接收时钟信号、多个非时钟信号和延迟选择信号。举例来说,该多个接口引脚110包括一个时钟引脚、一个芯片选择(chipselect,cs)引脚、一个写使能(writeenable,we)引脚、一个位写使能(bitwriteenable,byte)引脚、多个地址(address,adr)引脚、多个数据输入(datainput,di)引脚以及多个延迟选择(delayselect,delsel)引脚,其中,该时钟引脚被定义为接收时钟信号ck(该时钟信号ck是时钟源产生的外部时钟);该芯片选择引脚被定义为接收cs信号(该cs信号是非时钟信号);该写使能引脚被定义为接收we信号(该we信号是非时钟信号);该位写使能(bitwriteenable,byte)引脚被定义为接收byte信号(该byte信号是非时钟信号);该多个地址引脚被定义为接收多个adr位(该adr位是非时钟信号);该多个数据输入引脚被定义为接收多个di位(该di位是非时钟信号),以及,该多个延迟选择引脚被定义为接收由一个或多个delsel位构成的延迟选择信号。应该注意的是,根据实际的设计考虑,建立-保持时间控制设置(setup-holdtimecontrolsetting,shsel)由delsel位的至少一部分(例如,一部分或全部)输入。外围电路104至少根据时钟路径提供的时钟信号ck和一个/多个非时钟路径提供的一个/多个非时钟信号对单元阵列102进行读取/写入。在本发明实施例中,非时钟信号可以是:从该多个接口引脚中的控制引脚接收到的控制输入、从该多个接口引脚中的地址引脚接收到的地址位,或者,从该多个接口引脚中的数据输入引脚接收到的数据位。由于本发明实施例的重点在于存储器接口设计上(特别是可编程路径延迟电路112),因此,为了简洁起见,在此省略对单元阵列102和外围电路104的进一步描述。

应该注意的是,图1中仅示出了与本发明有关的电路组件。实际上,嵌入式存储器100可以具有额外的电路组件,以实现其它的指定功能。

嵌入式存储器100具有可编程的输入路径延迟,该可编程的输入路径延迟由可编程路径延迟电路112进行控制。因此,在存储器接口电路106处,能够对从接口引脚(例如,控制引脚、地址引脚或数据输入引脚)接收到的每个时钟信号和/或非时钟信号实现可编程的建立时间和可编程的保持时间。换句话说,凭借存储器接口电路106中的可编程路径延迟电路112,能够对接口引脚110处接收到的时钟信号和/或非时钟信号的建立时间和/或保持时间进行编程,即,该时钟信号和/或该非时钟信号的建立时间和/或保持时间是可调整的。

根据本发明的一个建立-保持时间控制方案,可编程路径延迟电路112用于根据建立-保持时间控制设置shsel来设置或控制时钟路径的路径延迟,其中,该时钟路径用于传递一个接口引脚110接收到的时钟信号ck。

图2a是根据本发明实施例示出的图1所示的可编程路径延迟电路112的第一示例性设计的示意图。可编程路径延迟电路112包括多个延迟单元电路206,208和多个选择电路210,212,214。选择电路用于根据建立-保持时间控制设置shsel选择性地输出其输入信号,在一些实施例中,选择电路可以利用开关电路来实现,具体地,本发明实施例不做任何限制。应该注意的是,图2a中所示的延迟单元电路的数量和图2a中所示的选择电路的数量仅用于说明目的,并不意味着对本发明的限制。实际上,延迟单元电路的数量和选择电路的数量可以根据实际的设计考虑进行调整,例如,延迟单元电路的数量可以是1,选择电路的数量可以是2。应当说明的是,图2a仅用于示例性地说明本发明实施例,可以理解地,基于本发明实施例可以获得其它变型实施方式。例如,在一种变型实施例中,如图2b所示,可以利用多工器(multiplexer,mux)216来实现选择电路210,212,214的功能,其中,多工器216的多个输入端口用于接收时钟信号ck、延迟单元电路206输出的信号以及延迟单元电路208输出的信号,以及,多工器216的输出端口用于根据建立-保持时间控制设置shsel选择性地输出其中一个信号作为内部时钟信号int_ck。应当说明的是,本发明实施例对延迟单元电路的数量不做任何限制,可编程路径延迟电路112可包括至少一个延迟单元电路。此外,应当说明的是,图2a和图2b所示的实施例以处理时钟信号为例进行示例说明,其也可用于对非时钟信号进行处理,但为简洁起见,此处不再赘述。

可编程路径延迟电路112接收来自一个接口引脚110的时钟信号ck,并且将时钟信号ck经由时钟路径204传送到外围电路104中的每个锁存器(latch)202,其中,多个锁存器中的每个锁存器202(例如,锁存器[0]-锁存器[n])接收一个非时钟信号non_ck和内部时钟信号int_ck,其中,该非时钟信号non_ck是从一个接口引脚110接收到的,该内部时钟信号int_ck是可编程路径延迟电路112提供的。作为示例而非限制,非时钟信号non_ck可以是嵌入式存储器100的cs信号、we信号、byte信号、adr位、di位或任何同步输入。

延迟单元电路206和208中的每一个用于向时钟信号ck施加或应用(apply)预定延迟量。应该注意的是,延迟单元电路206和208可以使用相同的延迟单元设计来实现,以提供相同的预定延迟量,或者,可以使用不同的延迟单元设计来实现,以提供不同的预定延迟量。在延迟单元电路206和208使用相同的延迟单元设计来实现以提供相同的预定延迟量dl的实施例中,如果时钟信号ck通过(passthrough)一个延迟单元电路,则时钟信号ck被延迟dl*1;如果时钟信号ck通过两个延迟单元电路,则时钟信号ck被延迟dl*2。

选择电路210具有输入端口和输出端口,其中,选择电路210的输入端口用于接收不经由(via)任何延迟单元电路206和208的时钟信号ck,以及,选择电路210的输出端口用于根据建立-保持时间控制设置shsel选择性地输出选择电路210的输入端口上接收到的时钟信号ck。选择电路212具有输入端口和输出端口,其中,选择电路212的输入端口用于经由延迟单元电路206接收该时钟信号ck(即接收时钟信号ck’,时钟信号ck’是时钟信号ck通过延迟单元电路206产生的),以及,选择电路212的输出端口用于根据建立-保持时间控制设置shsel选择性地输出选择电路212的输入端口上接收到的时钟信号。选择电路214具有输入端口和输出端口,其中,选择电路214的输入端口用于接收经由延迟单元电路206和208的时钟信号ck(即接收时钟信号ck”,时钟信号ck”是时钟信号ck通过延迟单元电路206和208产生的),以及,输出端口用于根据建立-保持时间控制设置shsel选择性地输出选择电路214的输入端口上接收到的时钟信号。

在该实施例中,建立-保持时间控制设置shsel确定选择电路210,212,214中的哪一个被使能,以将接收到的时钟信号输出到后面的锁存器202。当建立-保持时间控制设置shsel使能选择电路210时,时钟信号ck1(时钟信号ck1是使时钟信号ck通过选择电路210产生的)被用来用作内部时钟信号int_ck。当建立-保持时间控制设置shsel使能选择电路212时,时钟信号ck2(时钟信号ck2是使时钟信号ck通过延迟单元电路206和选择电路212产生的)被用来用作内部时钟信号int_ck。当建立-保持时间控制设置shsel使能选择电路214时,时钟信号ck3(时钟信号ck3是使时钟信号ck通过延迟单元电路206,208和选择电路214产生的)被用来用作内部时钟信号int_ck。简而言之,时钟信号ck1、ck2、ck3中的每一个可被认为是具有可编程时钟偏移(programmableclockskew)的时钟信号ck。凭借可编程路径延迟电路112的适当控制,可以调整时钟路径204的路径延迟,从而影响相对于内部时钟信号int_ck(其可被认为是具有可编程存储器接口延迟的时钟信号ck)的非时钟信号non_ck的建立时间和保持时间。

图3是根据本发明实施例示出的时钟信号ck、ck1、ck2、ck3和非时钟信号non_ck的波形的示意图。时钟信号ck、ck1、ck2、ck3具有相同的频率但相位不同。时钟信号ck1和ck之间的相位延迟来自选择电路210。时钟信号ck2和ck之间的相位延迟来自延迟单元电路206和选择电路212。时钟信号ck3和ck之间的相位延迟来自延迟单元电路206,208和选择电路214。建立时间tsetup是在时钟边缘出现之前,输入信号应该保持稳定的时间量,若不满足该建立时间,则发生建立时间违规(setuptimeviolation)。保持时间thold是在时钟边沿出现之后,输入信号应该保持稳定的时间量,若不满足该保持时间,则发生保持时间违规(holdtimeviolation)。通过对可编程路径延迟电路112的适当控制,可以调整内部时钟信号int_ck的时钟边沿的时序来避免锁存器202上的非时钟信号non_ck的建立时间违规和/或保持时间违规。在图3所示的实施例中,当内部时钟信号int_ck由时钟信号ck1设置时,建立时间和保持时间均符合(pass)时序要求;当内部时钟信号int_ck由时钟信号ck2设置时,建立时间符合时序要求,保持时间最低限度地符合(marginallypasses)时序要求(建立时间变好,保持时间变差,保持时间无裕度);以及,当内部时钟信号int_ck由时钟信号ck3设置时,该保持时间不符合时序要求。优选地,建立-保持时间控制设置shsel被设置为使能选择电路210,从而将时钟信号ck1输出至锁存器202。应该注意的是,图3所示的波形仅用于说明目的,并不意味着对本发明的限制。实际上,可以基于时钟信号ck和非时钟信号non_ck之间实际的时序关系来选择时钟信号ck1,ck2,ck3中的其中一个。

图4是根据本发明实施例示出的图2a所示的可编程路径延迟电路112的电路设计的示意图。为了清楚和简单起见,仅两个选择电路210,212和仅一个延迟单元电路208在图4中示出。延迟单元电路208使用两个反相器inv2和inv3来实现。选择电路210使用p沟道金属氧化物半导体场效应晶体管(p-channelmetal-oxide-semiconductorfieldeffecttransistor,pmos晶体管)mp1、mp2和n沟道金属氧化物半导体场效应晶体管(n-channelmetal-oxide-semiconductorfieldeffecttransistor,nmos晶体管)mn1、mn2来实现。选择电路212使用pmos晶体管mp3、mp4和nmos晶体管mn3、mn4来实现。建立-保持时间控制设置shsel包括一个控制位delsel。反相器inv1通过将控制位delsel的逻辑电平进行反相来设置或提供另一个控制位delselb。换句话说,当控制位delsel具有高逻辑值“1”时,控制位delselb具有低逻辑值“0”;以及,当控制位delsel具有低逻辑值“0”时,控制位delselb具有高逻辑值“1”。当控制位delsel被设置为低逻辑值“0”时,选择电路210被使能,而选择电路212被禁用。因此,时钟信号ck通过选择电路210,并由反相器inv4进一步处理成为内部时钟int_ck。当控制位delsel被设置为高逻辑值“1”时,选择电路210被禁用,而选择电路212被使能。因此,时钟信号ck通过延迟单元电路208和选择电路212,并且由反相器inv4进一步处理成为内部时钟信号int_ck。应该注意的是,图4中所示的电路实施方式仅用于说明的目的,并不意味着限制本发明。也就是说,可以利用其它的电路设计来实现图2a所示的可编程路径延迟电路112,从而实现对时钟路径204的路径延迟进行编程的相同目标。

从图4中可以看出,时钟路径204的路径延迟由整数个门延迟(gatedelay)进行编程。因此,对时钟路径204的路径延迟进行编程的粒度(granularity)取决于该门延迟。为了提高对时钟路径204的路径延迟进行编程的粒度,本发明提出了图1所示的可编程路径延迟电路112的另一设计。

图5是根据本发明实施例示出的图1中所示的可编程路径延迟电路112的第二示例性设计的示意图。可编程路径延迟电路112包括基延迟电路(basedelaycircuit)502、第一延迟控制电路504和第二延迟控制电路506。可编程路径延迟电路112接收来自一个接口引脚110的时钟信号ck,并将时钟信号ck经由时钟路径501传递到外围电路104中的每个锁存器202,其中,多个锁存器202中的每一个接收内部时钟信号int_ck和一个非时钟信号non_ck,该非时钟信号non_ck是从一个接口引脚110接收到的,该内部时钟信号int_ck是可编程路径延迟电路112提供的。作为示例而非限制,非时钟信号non_ck可以是嵌入式存储器100的cs信号、we信号、byte信号、adr位、di位或任何同步输入。

基延迟电路502用于接收时钟信号ck,并将可编程延迟量施加给或应用至时钟信号ck。换句话说,当时钟信号ck通过基延迟电路502时,时钟信号ck被延迟该可编程延迟量。第一延迟控制电路504包括多个第一晶体管m11-m1n,第一晶体管m11-m1n并联连接在基延迟电路502的第一节点n1和电源电压(supplyvoltage)vdd之间。第二延迟控制电路506包括多个第二晶体管m21-m2n,第二晶体管m21-m2n并联连接在基延迟电路502的第二节点n2与地电压(groundvoltage)gnd之间。根据实际的设计考虑,第一延迟控制电路504中实现的第一晶体管m11-m1n的数量和第二延迟控制电路506中实现的第二晶体管m21-m2n的数量是可调整的。在该实施例中,第一延迟控制电路504中接通的(turned-on)第一晶体管的数量和第二延迟控制电路506中接通的第二晶体管的数量都是受建立-保持时间控制设置shsel控制的。

基延迟电路502或可编程路径延迟电路112的可编程延迟量由第一延迟控制电路504中接通的第一晶体管的数量和第二延迟控制电路506中接通的第二晶体管的数量确定。例如,当第一延迟控制电路504中接通的第一晶体管的数量被设置为第一值且第二延迟控制电路506中接通的第二晶体管的数量被设置为相同的第一值时,基延迟电路502的可编程延迟量被设置为第一延迟时间;当第一延迟控制电路504中接通的第一晶体管的数量被设置为第二值且第二延迟控制电路506中接通的第二晶体管的数量被设置为相同的第二值时,基延迟电路502的可编程延迟量被设置为第二延迟时间。在本实施例中,如果第一值大于第二值,则由于基延迟电路502使用较大的驱动电流,从而第一延迟时间比第二延迟时间短;以及,如果第一值小于第二值,则由于基延迟电路502使用较小的驱动电流,从而第一延迟时间比第二延迟时间长。利用可编程路径延迟电路112的适当控制,内部时钟信号int_ck的时钟边沿的时序是可调整的,从而避免锁存器202处的非时钟信号non_ck的建立时间违规和/或保持时间违规。

图5中所示的可编程路径延迟电路112通过调整基延迟电路502所使用的驱动电流的大小来控制时钟路径501的路径延迟。与图2a中所示的可编程路径延迟电路112相比,图5所示的可编程路径延迟电路112能够以更精细的粒度来控制路径延迟。

图6是根据本发明实施例示出的图5中所示的可编程路径延迟电路112的电路设计的示意图。第一延迟控制电路504使用pmos晶体管mp1、mp2、mp3来实现。第二延迟控制电路506使用nmos晶体管mn1、mn2、mn3来实现。为了清楚和简单起见,第一延迟控制电路504和第二延迟控制电路506中的每一个以仅具有三个晶体管为例进行示出,但本发明并不限于此。基延迟电路502使用pmos晶体管mp4、mp5和nmos晶体管mn4、mn5来实现,其中,pmos晶体管mp4和nmos晶体管mn4构成一个反相器,以及,pmos晶体管mp5和nmos晶体管mn5构成另一个反相器。

建立-保持时间控制设置shsel包括一个控制输入delsel,该控制输入delsel由两个控制位delsel[0]和delsel[1]组成。反相器inv1通过反转控制位delsel[0]的逻辑电平来设置或提供另一控制位delsel[0]b。反相器inv2通过反转控制位delsel[1]的逻辑电平来设置或提供另一控制位delsel[1]b。换句话说,当控制位delsel[0]具有高逻辑值“1”时,控制位delsel[0]b具有低逻辑值“0”;以及,当控制位delsel[0]具有低逻辑值“0”时,控制位delsel[0]b具有高逻辑值“1”。类似地,当控制位delsel[1]具有高逻辑值“1”时,控制位delsel[1]b具有低逻辑值“0”;以及,当控制位delsel[1]具有低逻辑值“0”时,控制位delsel[1]b具有高逻辑值“1”。应该注意的是,pmos晶体管mp3被第一偏置电压vb1(例如,地电压gnd)接通,以及,nmos晶体管mn3被第二偏置电压vb2(例如,电源电压vdd)接通。因此,无论pmos晶体管mp1和mp2的状态是导通(on)还是截止(off),pmos晶体管mp3都是接通的;以及,无论nmos晶体管mn1和mn2的状态是导通还是截止,nmos晶体管mn3都是接通的(turnedon)。

当控制位delsel[0]被设置为低逻辑值“0”时,pmos晶体管mp1是断开的(turnedoff),且nmos晶体管mn1是断开的。当控制位delsel[0]被设置为高逻辑值“1”时,pmos晶体管mp1是接通的,且nmos晶体管mn1是接通的。当控制位delsel[1]被设置为低逻辑值“0”时,pmos晶体管mp2是断开的,且nmos晶体管mn2是断开的。当控制位delsel[1]设置为高逻辑值“1”时,pmos晶体管mp2是接通的,且nmos晶体管mn2是接通的。

当控制位delsel[0]和delsel[1]都被设置为低逻辑值“0”时,第一延迟控制电路504具有仅一个被接通的pmos晶体管mp3,且第二延迟控制电路506也具有仅一个被接通的nmos晶体管mn3。因此,由于驱动电流最小,时钟路径501的路径延迟被编程为具有最大延迟量。即,时钟路径501的路径延迟被编程为第一延迟量。

当控制位delsel[0]和delsel[1]中仅一个被设置为高逻辑值“1”时,第一延迟控制电路504具有两个接通的pmos晶体管(例如,mp1和mp3,或者,mp2和mp3),以及,第二延迟控制电路506具有两个接通的nmos晶体管(例如,mn1和mn3,或者,mn2和mn3)。因此,由于驱动电流中等,时钟路径501的路径延迟被编程为具有中等延迟量。即,时钟路径501的路径延迟被编程为第二延迟量,且第二延迟量小于第一延迟量。

当控制位delsel[0]和delsel[1]都被设置为高逻辑值“1”时,第一延迟控制电路504具有三个接通的pmos晶体管mp1、mp2、mp3,以及,第二延迟控制电路506具有三个接通的nmos晶体管mn1、mn2、mn3。因此,由于驱动电流最大,时钟路径501的路径延迟被编程为具有最小延迟量。即,时钟路径501的路径延迟被编程为第三延迟量,且第三延迟量小于第二延迟量。可以理解地,在图6所示的实施例中,基延迟电路502的驱动电流越大,时钟路径的路径延迟越小。

应该注意的是,图6仅用于说明性目的,并不意味着限制本发明。也就是说,通过利用其它的电路设计实现可编程路径延迟电路112,可以实现对时钟路径501的路径延迟进行编程的相同目标。

从图3可以看出,建立时间tsetup和保持时间thold中的任何一个是否违规时序要求取决于时钟信号与非时钟信号(其将被时钟信号采样)之间的相对时序关系。调整时钟信号的时序能够影响建立时间tsetup和保持时间thold。或者,调整非时钟信号的时序也能够影响建立时间tsetup和保持时间thold。根据本发明的另一建立-保持时间控制方案,可编程路径延迟电路112用于根据建立-保持时间控制设置shsel来设置非时钟路径的路径延迟,其中,非时钟路径用于传递非时钟信号,该非时钟信号是通过嵌入式存储器100的一个接口引脚110接收到的(例如,可以系cs信号、we信号、byte信号、adr位、di位或任何同步输入)。

图7是根据本发明实施例示出的图1所示的可编程路径延迟电路112的第三示例性设计的示意图。图7所示的可编程路径延迟电路712包括多个电路模块702,每个电路模块702用于向外围电路104中的多个锁存器202中的其中一个提供一个非时钟信号non_ck。可编程路径延迟电路712中的每个电路模块702包括多个延迟单元电路706、708和多个选择电路710、712、714。应当指出的是,图7所示的选择电路的数量和图7所示的延迟单元电路的数量仅用于说明的目的,而不意味着是对本发明的限制。实际上,根据实际设计考虑,可以调整每个电路模块702中实现的延迟单元电路的数量和选择电路的数量。

可编程路径延迟电路712的每个电路模块702从一个接口引脚110接收非时钟信号non_ck(例如,嵌入式存储器100的cs信号、we信号、byte信号、adr位、di位或任何其它的同步输入),并且经由非时钟路径704将非时钟信号non_ck传递到其中一个锁存器202,其中,每个锁存器202接收时钟信号ck和一个非时钟信号non_ck,其中,时钟信号ck是从一个接口引脚110接收到的,非时钟信号non_ck是可编程路径延迟电路712提供的。

延迟单元电路706和708中的每一个用于将预定延迟量施加给非时钟信号non_ck。应该注意的是,延迟单元电路706和708可以使用相同的延迟单元设计来实现,以提供相同的预定延迟量,或者,可以使用不同的延迟单元设计来实现,以提供不同的预定延迟量。在延迟单元电路706和708使用相同的延迟单元设计来实现以提供相同的预定延迟量dl的实施例中,如果非时钟信号non_ck通过一个延迟单元电路,则非时钟信号non_ck被延迟dl*1。如果非时钟信号non_ck通过两个延迟单元电路,则非时钟信号non_ck被延迟dl*2。

选择电路710具有输入端口和输出端口,其中,选择电路710的输入端口用于接收不经由任何延迟单元电路706和708的非时钟信号non_ck,并且选择电路710的输出端口用于根据建立-保持时间控制设置shsel选择性地输出非时钟信号non_ck,该非时钟信号non_ck是在选择电路710的输入端口上接收到的。选择电路712具有输入端口和输出端口,其中,选择电路712的输入端口用于经由延迟单元电路706接收非时钟信号non_ck,并且选择电路712的输出端口用于根据建立-保持时间控制设置shsel选择性地输出在选择电路712的输入端口上接收到的非时钟信号non_ck(其中,该非时钟信号non_ck已被延迟单元电路706延迟)。选择电路714具有输入端口和输出端口,其中,选择电路714的输入端口用于经由延迟单元电路706和708接收非时钟信号non_ck(其中,该非时钟信号non_ck已被延迟单元电路706和708延迟),并且选择电路714的输出端口用于根据建立-保持时间控制设置shsel选择性地输出在选择电路714的输入端口上接收到的非时钟信号non_ck。

在该实施例中,建立-保持时间控制设置shsel用于确定选择电路710、712、714中的哪一个被使能,以将接收到的非时钟信号输出到后面的锁存器202。当选择电路710被建立-保持时间控制设置shsel使能时,非时钟信号non_ck1(是通过使非时钟信号non_ck通过选择电路710产生的)被用来用作锁存器202的非时钟输入。当选择电路712被建立-保持时间控制设置shsel使能时,非时钟信号non_ck2(是通过使非时钟信号non_ck通过延迟单元电路706和选择电路712产生的)被用来用作锁存器202的非时钟输入。当选择电路714被建立-保持时间控制设置shsel使能时,非时钟信号non_ck3(是通过使非时钟信号non_ck通过延迟单元电路706、708和选择电路714产生的)被用来用作锁存器202的非时钟输入。在可编程路径延迟电路712的适当控制下,非时钟路径704的路径延迟能够被调整,从而,影响非时钟输入相对于时钟信号ck的建立时间和保持时间(其可被认为是具有可编程存储器接口延迟的非时钟信号non_ck)。

图8是根据本发明实施例示出的非时钟信号non_ck、non_ck1、non_ck2、non_ck3和时钟信号ck的波形的示意图。非时钟信号non_ck、non_ck1、non_ck2、non_ck3具有相同的波形但是时序不同。非时钟信号non_ck1和non_ck之间的时序延迟来自选择电路710。非时钟信号non_ck2和non_ck之间的时序延迟来自延迟单元电路706和选择电路712。非时钟信号non_ck3和non_ck之间的时序延迟来自延迟单元电路706、708和选择电路714。通过对可编程路径延迟电路712的适当控制,可以调整非时钟输入的时序,以避免锁存器202上的非时钟信号non_ck的建立时间违规和/或保持时间违规。在如图8所示的实施例中,当非时钟输入被设置为非时钟信号non_ck1时,建立时间满足时序要求;当非时钟输入被设置为非时钟信号non_ck2时,建立时间最低限度地满足时序要求;当非时钟输入被设置为非时钟信号non_ck3时,建立时间不满足时序要求。优选地,可以设置建立-保持时间控制设置shsel来启用选择电路710,从而将非时钟信号non_ck1输出到锁存器202。应该注意的是,图8仅用于说明目的,并不意味着对本发明的限制。实际上,可以基于时钟信号ck和非时钟信号non_ck之间的实际时序关系来选择非时钟信号non_ck1、non_ck2、non_ck3中的其中一个。

图7中所示的可编程路径延迟电路712中的每个电路模块702的功能与图2a中所示的可编程路径延迟电路112类似。主要区别在于:图7中所示的可编程路径延迟电路712中的每个电路模块702的输入是非时钟信号non_ck(例如,cs信号、we信号、byte信号、adr位、di位或任何同步输入)。因此,图7中所示的可编程路径延迟电路712中的每个电路模块702也可以使用图4所示的电路设计来实现。为了简洁起见,在此省略进一步的描述。

图9是根据本发明实施例的图1中所示的可编程路径延迟电路112的第四示例性设计的示意图。图9所示的可编程路径延迟电路912包括多个电路模块908,每个电路模块用于从一个接口引脚110接收非时钟信号non_ck,并且经由非时钟路径901将非时钟信号non_ck传送到外围电路104中的其中一个锁存器202。可编程路径延迟电路912中的每个电路模块908包括基延迟电路902、第一延迟控制电路904和第二延迟控制电路906。每个锁存器202接收时钟信号ck和一个非时钟信号non_ck,时钟信号ck来自其中一个接口引脚110,非时钟信号non_ck是可编程路径延迟电路912提供的。作为示例而非限制,非时钟信号non_ck可以是嵌入式存储器100的cs信号、we信号、byte信号、adr位、di位或任何同步输入。

基延迟电路902用于接收非时钟信号non_ck,并且将可编程延迟量施加给非时钟信号non_ck。换句话说,当非时钟信号non_ck通过基延迟电路902时,非时钟信号non_ck被延迟可编程延迟量。第一延迟控制电路904包括多个第一晶体管m11-m1n,该多个第一晶体管m11-m1n并联连接在基延迟电路902的第一节点n1和电源电压vdd之间。第二延迟控制电路906包括多个第二晶体管m21-m2n,该多个第二晶体管m21-m2n并联连接在基延迟电路902的第二节点n2和地电压gnd之间。根据实际的设计考虑,可以调整第一延迟控制电路904中实现的第一晶体管m11-m1n的数量和第二延迟控制电路906中实现的第二晶体管m21-m2n的数量。在本实施例中,第一延迟控制电路904中接通的第一晶体管的数量和第二延迟控制电路906中接通的第二晶体管的数量都由建立-保持时间控制设置shsel来控制。

基延迟电路902的可编程延迟量由第一延迟控制电路904中接通的第一晶体管的数量和第二延迟控制电路906中接通的第二晶体管的数量确定。例如,当第一延迟控制电路904中接通的第一晶体管的数量被设置为第一值且第二延迟控制电路906中接通的第二晶体管的数量被设置为相同的第一值时,基延迟电路902的可编程延迟量被设置为第一延迟时间;当第一延迟控制电路904中接通的第一晶体管的数量被设置为第二值且第二延迟控制电路906中接通的第二晶体管的数量被设置为相同的第二值时,基延迟电路902的可编程延迟量被设置为第二延迟时间。在本实施例中,如果第一值大于第二值,则由于基延迟电路902使用较大的驱动电流,从而第一延迟时间比第二延迟时间短;以及,如果第一值小于第二值,则由于基延迟电路902使用较小的驱动电流,从而第一延迟时间比第二延迟时间长。利用可编程路径延迟电路912的适当控制,非时钟输入的时序是可调整的,从而避免锁存器202处的非时钟输入的建立时间违规和/或保持时间违规。

图9中所示的可编程路径延迟电路912通过调整基延迟电路902使用的驱动电流的大小来控制时钟路径901的路径延迟。与图7所示的可编程路径延迟电路712相比,图9所示的可编程路径延迟电路912能够以更精细的粒度来控制路径延迟。

图9中所示的可编程路径延迟电路912中的每个电路模块908的功能与图5中所示的可编程路径延迟电路112的功能类似。主要区别在于:图9中所示的可编程路径延迟电路912中的每个电路模块908的输入是非时钟信号non_ck(例如,cs信号、we信号、byte信号、adr位、di位或任何同步输入)。因此,可编程路径延迟电路112中的每个电路模块908也可以使用图6中所示的电路设计来实现。为了简洁起见,在此省略进一步的描述。

在上述实施例中,可编程路径延迟电路用于根据建立-保持时间控制设置来设置或控制时钟路径和非时钟路径中仅一个的路径延迟。或者,可编程路径延迟电路可被修改为根据建立-保持时间控制设置来设置或控制时钟路径和非时钟路径两者的路径延迟。应当说明的是,这种替代设计也落入本发明的范围内。

调整非时钟信号的时序也能够影响建立时间tsetup和保持时间thold。在上述实施例中,嵌入式存储器100具有存储器接口电路106,存储器接口电路106配备有可编程路径延迟电路,该可编程路径延迟电路用于实现调整存储器接口处的非时钟信号的时序的目的。换句话说,上述实施例提出了一种具有内部控制的建立-保持时间的嵌入式存储器。然而,调整非时钟信号的时序的相同目的也可以通过调整位于嵌入式存储器外部的电路组件(例如,触发器)上的时钟信号的时序来实现,且该外部的电路组件用于提供非时钟信号给嵌入式存储器。因此,本发明的实施例还提出了一种具有外部控制的建立-保持时间的嵌入式存储器。

图10是根据本发明实施例示出的第二集成电路设计的示意图。在本实施例中,集成电路是其中包括嵌入式存储器的片上系统(soc)1000。为了清楚和简单起见,仅一个嵌入式存储器1008被示出。除了嵌入式存储器1008之外,soc1000还包括时钟树(clocktree)1002、时钟门控单元电路1004以及一个或多个触发器电路1006(例如,dff)。应该注意的是,图10中只示出了与本发明有关的电路组件。实际上,soc1000还可以具有额外的电路组件来实现其它指定的功能。

时钟树1002用于将多个时钟信号分别分配给soc1000中的多个时钟驱动电路组件。例如,时钟树1002可以分配具有相同频率但时钟偏移不同的第一时钟信号ck_1和第二时钟信号ck_2。每个触发器电路1006可以是具有时钟输入端口、数据输入端口和数据输出端口的d型触发器(d-typeflipflop,dff),其中,时钟输入端口用于经由时钟门控单元电路1004接收来自时钟树1002的第一时钟信号ck_1,数据输入端口用于接收一个非时钟信号non_ck(例如,cs信号、we信号、byte信号、adr位、di位或任何其它的同步输入),以及,数据输出端口用于将已采样的非时钟信号non_ck输出至嵌入式存储器1008。嵌入式存储器1008具有一个接口引脚,用于接收来自每个触发器电路1006的非时钟信号输出,以及,嵌入式存储器1008还具有一个接口引脚,用于接收来自时钟树1002的第二时钟信号ck_2。特别地,嵌入式存储器1008至少根据从时钟树1002接收到的第二时钟信号ck_2和从一个或多个触发器电路1006接收到的非时钟信号non_ck进行存储器存取(access)。

时钟门控单元电路1004用于接收来自时钟树1002的第一时钟信号ck_1,并且将第一时钟信号ck_1选择性地提供给触发器电路1006的时钟输入端口。如图10所示,时钟门控单元电路1004包括时钟门控电路1010和可编程路径延迟电路1012。在本实施例中,时钟门控电路1010是使用锁存器1014和与非(nand)门1016实现的时钟门控单元。锁存器1014被第一时钟信号ck_1控制,以输出时钟门控使能信号en至与非门1016的其中一个输入端口。当时钟门控使能信号en被设置为逻辑低电平时,时钟门控功能被使能,以选通(gate)第一时钟信号ck_1,使得时钟门控电路1010输出恒定电压电平。当时钟门控使能信号en被设置为逻辑高电平时,时钟门控功能被禁用,从而允许时钟门控电路1010输出第一时钟信号ck_1。

在本发明的一些实施例中,与非门1016可以用与(and)门、或(or)门或者或非(nor)门来代替,以满足设计要求。此外,时钟门控电路1010可以被修改为包括附加的逻辑门(例如,反相器),以满足设计要求。简而言之,图10中所示的时钟门控电路1010的电路设计仅用于说明目的。时钟门控电路1010可以使用任何可行的时钟门控设计来实现。由于本发明的重点不在于时钟门控电路1010的电路设计,因此,为简洁起见,在此不再赘述。

当时钟门控功能被时钟门控使能信号en禁用时,可编程路径延迟电路1012从前面的时钟门控电路1010接收第一时钟信号ck_1,并经由时钟路径1011将第一时钟信号ck_1传送给每个触发器电路1006。可编程路径延迟电路1012用于根据建立-保持时间控制设置shsel来设置或控制时钟路径1011的路径延迟。例如,可编程路径延迟电路1012可以使用图2a中所示的可编程路径延迟电路112来实现,或者,使用图4中所示的可编程路径延迟电路112来实现。由于本领域技术人员在阅读了针对图2a和图4所示的可编程路径延迟电路112的以上段落之后可以容易地理解可编程路径延迟电路1012的细节,因此,为了简洁起见,在此省略进一步的描述。

如上所述,每个触发器电路1006可以是具有时钟输入端口、数据输入端口和数据输出端口的d型触发器(dff),其中,时钟输入端口用于经由时钟门控单元电路1004接收第一时钟信号ck_1,数据输入端口用于接收一个非时钟信号non_ck(例如,cs信号、we信号、byte信号、adr位、di位、或任何同步输入),以及,数据输出端口用于将已采样的非时钟信号non_ck输出至嵌入式存储器1008。通过建立-保持时间控制设置shsel的适当设置,被馈送到每个触发器电路1006中的第一时钟信号ck_1的时序是可调整的,从而影响被馈送至嵌入式存储器1008的非时钟信号non_ck的时序。因此,通过位于嵌入式存储器1008外部的时钟门控单元电路1004的可编程路径延迟电路1012,嵌入式存储器1008(还接收第二时钟信号ck_2)接收到的非时钟信号non_ck的建立时间和保持时间可以被间接编程。

虽然本发明已经通过示例的方式以及依据优选实施例进行了描述,但是,应当理解的是,本发明并不限于公开的实施例。相反,它旨在覆盖各种变型和类似的结构(如对于本领域技术人员将是显而易见的),例如,不同实施例中的不同特征的组合或替换。因此,所附权利要求的范围应被赋予最宽的解释,以涵盖所有的这些变型和类似的结构。

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