本发明涉及存储器技术领域,尤其涉及一种双端口存储器字线控制电路。
背景技术:
存储器是数字系统中常用的器件之一。随着存储芯片容量的增大,器件的成品率呈指数规律下降,另一方面在不同的应用环境下,静态随机读取存储器SRAM的存储单元(bit-cell)可能会发生翻转造成存储数据的错误。因此在存储器电路设计时需要通过差错监测和纠正(Error Detecting And Correcting,简称EDAC)电路进行数据的纠错和回写来实现存储器可靠性的提高。
通常EDAC电路依据不同的纠错码和数据位宽,能够纠正一个或多个的存储单元的错误,然后将正确数据输出。但如果存储单元的错误数据没有得到及时的改正,则会形成软错误(soft error)的积累,也就是多个存储单元发生翻转,最终导致EDAC算法不能纠正的多位错误,造成存储器数据读出失效。因此,当检测到存储单元的错误时,必须对其及时回写纠正,从而避免因为软错误的累积导致的失效。
现有技术中,对于EDAC电路纠错计算得出的正确数据,一般先存入冗余的多位存储单元,并将其地址信号存储在锁存器中,当控制信号满足一定要求时,伺机回写到原有地址的存储单元。例如来自中国专利“一种纠错SRAM的回写方法”(申请号:201310643265.9)提出将正确码字存入冗余的n位存储单元,并将其地址信息存储在锁存器中,然后根据不同的控制信号产生出回写写入信号以及回写地址信号,确保地址信号不变,将存储在n位存储单元的数据写入SRAM,完成回写功能。又如来自中国专利“一种容错存储器及其纠错容错方法”(申请号:200710176138.7)提出所提出的存储器包含冗余行和冗余列,通过一系列的判断电路确定是否将冗余行或冗余列的存储数据替换故障行或故障列的存储数据,完成存储 器的自修复。
然而,在实现本发明的过程中,申请人发现现有技术的方法需要最少一行或一列的冗余存储单元,用于存储EDAC电路纠错计算得出的正确数据,同时还需要将地址信息存储在锁存器中,使得芯片的面积更大。同时,上述方法需要引入新的控制触发信号,以判断何时将冗余数据写回存储器,这样增加了该信号的生成电路,使得硬件设计变得更为复杂。
技术实现要素:
(一)要解决的技术问题
鉴于上述技术问题,本发明提供了一种双端口存储器字线控制电路,以解决现有技术中存储器需要冗余行存储单元或冗余列存储单元用于存储EDAC电路纠错计算得出的正确数据,实现减少存储器冗余存储单元,简化控制电路设计的目的。
(二)技术方案
本发明双端口存储器字线控制电路包括:控制模块,用于根据存储器端口的读写使能信号wren、EDAC开启使能信号EDAC_en和双端口地址比较信号add_compare产生两路的控制信号-(cont0、cont1);时钟延时模块,用于由时钟信号clk以及两延时控制信号(Delay_adjust0、Delay_adjust1)产生四路的延时信号(delay0、delay1、delay2、delay3);以及字线控制信号产生模块,与所述控制模块和时钟延时模块电性连通,用于依据两路的控制信号(cont0、cont1)和四路的延时信号(delay0、delay1、delay2、delay3),产生一字线控制信号word_line_en。
(三)有益效果
从上述技术方案可以看出,本发明双端口存储器字线控制电路具有以下有益效果:
(1)通过控制模块、时钟延时产生模块和字线控制信号产生模块可以产生带纠错功能字线控制信号,可以实现一个时钟周期内完成数据读出和回写,因此纠错数据无需冗余的存储单元,减少了芯片面积;
(2)根据不同的端口功能,通过控制模块、时钟延时产生模块和字线控制信号产生模块产生不同的字线控制信号,可以覆盖正常读写模式、带纠错功能的读出数据后回写功能,和没有EDAC功能的双端口存储器字 线控制电路实现兼容。
附图说明
图1为根据本发明实施例双端口存储器字线控制电路的结构示意图;
图2为图1所示字线控制电路中控制模块的结构示意图;
图3为图1所示字线控制电路中延时模块的结构示意图;
图3A为图3所示延时模块中固定延时链的结构示意图
图3B为图3所示延时模块中可调延时链的结构示意图;
图4为图1所示字线控制电路中字线控制信号产生模块的结构示意图;
图4A为图4所示字线控制信号产生模块中脉冲产生子模块的结构示意图;
图5为图1所示双端口存储器字线控制电路在不带纠错功能的正常存储器读功能时字线控制信号的时序图;
图6为图1所示双端口存储器字线控制电路在不带纠错功能的正常存储器写功能时字线控制信号的时序图;
图7为图6为图1所示双端口存储器字线控制电路在有纠错功能时的存储器读写字线控制信号的时序图;
图8列出了图1所示字线控制电路不同端口模式下字线控制信号。
具体实施方式
本发明提供了一种双端口存储器字线控制电路,可以在一个时钟周期里完成存储器数据的读出、EDAC纠错数据的生成以及生成数据的回写,同时本发明还可以和没有EDAC功能的双端口存储器字线控制电路实现兼容。
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。
在本发明的一个示例性实施例中,提供了一种双端口存储器字线控制电路。图1为根据本发明实施例双端口存储器字线控制电路的结构示意图。如图1所示,本实施例双端口存储器字线控制电路包括:
控制模块,用于根据存储器端口的读写使能信号wren、EDAC开启使能信号EDAC_en和双端口地址比较信号add_compare产生两路的控制信 号-第一控制信号cont0和第二控制信号cont1;
时钟延时模块,用于由时钟信号以及两延时控制信号-Delay_adjust0和Delay_adjust1产生四路的延时信号-delay0、delay1、delay2、delay3;
字线控制信号产生模块,与控制模块和时钟延时模块电性连通,用于依据两路控制信号-cont0和cont1和四路的延时信号-delay0、delay1、delay2、delay3,产生一字线控制信号-word_line_en。
以下对本实施例双端口存储器字线控制电路的各个组成部分进行详细说明。
图2为图1所示字线控制电路中控制模块的结构示意图。如图2所示,该控制模块包括:
第一反相器,其输入端输入读写使能信号wren,其输出端输出第一控制信号cont0;
第一二选一多路选择器,其0端口连接至第一反相器的输出端,其1端口输入双端口地址比较信号add_compare,其选择端输入EDAC开启使能信号EDAC_en,其输出端输出第二控制信号cont1。
本实施例中,各信号的定义如下:
(1)读写使能信号wren:wren的逻辑值为1时,表示存储器端口功能为写;其值为0时,表示存储器端口功能为读。
(2)EDAC开启使能信号EDAC_en:EDAC_en的逻辑值为1时,表示存储器端口功能为开启EDAC;其值为0时,表示存储器端口功能为关闭EDAC。
(3)双端口地址比较信号add_compare:add_compare的逻辑值为1时,表示存储器两端口地址相同;其值为0时,表示存储器两端口地址相同。
由上述结构可知,第一控制信号cont0和第二控制信号contl1表征当前双端口存储器的工作状态。第一控制信号cont0为读写使能信号wren的反相信号。EDAC开启使能信号EDAC_en作为第一二选一多路选择器的控制信号,当EDAC开启使能信号EDAC_en为0时,第二控制信号contl1同样为读写使能信号wren的反相信号;当EDAC开启使能信号EDAC_en为1时,第二控制信号contl1输出双端口地址比较信号add_compare。
图3为图1所示字线控制电路中延时模块的结构示意图。如图3所示,该时钟延时模块包括:
第一级固定延时链,其输入端输入时钟信号clk,其输出端输出第一延时信号delay0;
第一级可调延时链,其输入端连接至第一级固定延时链的输出端,其控制端输入第一延时信号Delay_adjust0,其输出端输出第二延时信号delay1;
第二级固定延时链,其输入端连接至第一级可调延时链的输出端,其输出端输出第三延时信号delay2;
第二级可调延时链,其输入端连接至第二级固定延时链的输出端,其控制端输入第二延时信号Delay_adjust1,其输出端输出第四延时信号delay3。
图3A为图3所示延时模块中固定延时链的结构示意图。如图3所示,该固定延时链由数级反向器组成,级数为偶数。具体级数由存储器规模大小及工艺模型确定。输入信号连接第一个反相器的输入端,第一个反相器的输出端连接第二个反相器的输入端,以此类推,经过偶数级反相器的输出端为固定延时链的输出端。
本实施例中,第一级固定延时链和第二级固定延时链均为如图3A所示的固定延时链,两者的结构相同,级数由存储器规模大小及工艺模型确定。一般情况下,第一级固定延时链延时的长短需与双端口存储器中译码器的延时匹配,第二级固定延时链延时的长短需与双端口存储器中纠错算法模块中计算出纠错数据的延时匹配。
图3B为图3所示延时模块中可调延时链的结构示意图。如图3B所示,该可调延时链由级联的两固定延时子链和第二二选一多路选择器组成。该两固定延时链均为图3A所示的固定延时链。
在该可调延时链中,输入信号连接第一固定延时子链中第一个反相器的输入端,第一个反相器的输出端连接第二个反相器的输入端,以此类推,经过第一固定延时子链中偶数级反相器的输出端信号定义为A。信号A连接到第二二选一多路选择器的0端口。同时,信号A连接到下一固定延时子链第一个反相器的输入端,和上一组类似,经过第二固定延时子链中偶 数级反相器的输出端信号连接到第二二选一多路选择器的1端口。Delay_adjust信号作为第二二选一选择器的输出选择信号决定输出端口和0端口或1端口相连。
本实施例中,第一级可调延时链和第二级可调延时链均为如图3B所示的可调延时链,两者的结构相同,级数可调。一般情况下,第一级可调延时链延时的长短需与双端口存储器中灵敏放大器模块的开启时间匹配,第二级可调延时链延时的长短需与纠错数据完成写入存储器的延时匹配。
图4为图1所示字线控制电路中字线控制信号产生模块的结构示意图。如图4所示。该字线控制信号产生模块包括:
第三二选一多路选择器,其0端口输入第三延时信号delay2,其1端口输入第一延时信号delay0,其选择端输入第一控制信号contl0;
第四二选一多路选择器,其0端口输入第四延时信号delay3,其1端口输入第二延时信号delay1,其选择端输入第二控制信号contl1;
脉冲产生子模块,其输入端连接至第四二选一多路选择器的输出端,其输出连接寄存器的清零端,用于字线控制信号产生模块中寄存器的清零。
寄存器,为带0清零端的寄存器,即当清零端信号为0时,寄存器输出为0,其时钟端口连接至第三二选一多路选择器的输出端,其清零端口连接至脉冲产生模块的输出端,其数据输入端口连接固定的逻辑1,其输出端输出字线控制信号word_line_en。
其中,字线控制信号word_line_en的逻辑值为1时表示字线打开,表示存储器可以正常读写;其值为0时,表示存储器不能读写。
图4A为图4所示字线控制信号产生模块中脉冲产生子模块的结构示意图。如图4A所示,该脉冲产生子模块包括:
一级数为奇数的反相器链,其第一个反相器的输入端连接至第四二选一多路选择器的输出端;以及
一与非门,其第一输入端连接至反相器链的输出端,其第二输入端连接至第四二选一多路选择器的输出端,其输出端连接至寄存器的清零端口。
本实施例字线控制电路中,根据不同的端口功能,通过控制模块、时钟延时产生模块和字线控制信号产生模块产生不同的字线控制信号,可以覆盖正常读写模式、带纠错功能的读出数据后回写功能,和没有EDAC功 能的双端口存储器字线控制电路实现兼容。以下分别介绍三种模式字线控制信号产生具体实施方式:
(1)不带纠错功能的正常存储器读功能:此时的端口信号为wren为0,EDAC_en为0;经过控制模块产生的控制信号cont0为1,cont1为1。cont0和cont1经过字线控制信号产生模块分别选择delay0和delay1。其中delay0连接寄存器的时钟端口,delay1经过脉冲产生模块连接寄存器的清零端,寄存器的输入端连接固定1电平,寄存器的输出定义为读字线控制信号。具体图例如图5所示;
(2)不带纠错功能的正常存储器写功能:此时的读写使能信号wren为1,EDAC开启使能信号EDAC_en为0;经过控制模块产生的控制信号cont0为0,cont1为0。cont0和cont1经过字线控制信号产生模块分别选择delay2和delay3。其中delay2连接寄存器的时钟端口,delay3经过脉冲产生模块连接寄存器的清零端,寄存器的输入端连接固定1电平,寄存器的输出定义为写字线控制信号。具体图例如图6所示;
(3)带纠错功能的存储器读出数据后回写功能:此时的读写使能信号为wren为0,EDAC开启使能信号EDAC_en为1;
3.1两端口地址不同时:add_compare为0,经过控制模块产生的控制信号cont0为1,cont1为0。cont0和cont1经过字线控制信号产生模块分别选择delay0和delay3。其中delay0连接寄存器的时钟端口,delay3经过脉冲产生模块连接寄存器的清零端,寄存器的输入端连接固定1电平,寄存器的输出定义为写字线控制信号。具体图例如图7所示:
3.2两端口地址相同时:add_compare为1,经过控制模块产生的控制信号cont0为1,cont1为1。cont0和cont1经过字线控制信号产生模块分别选择delay0和delay1。其中delay0连接寄存器的时钟端口,delay1经过脉冲产生模块连接寄存器的清零端,寄存器的输入端连接固定1电平,寄存器的输出定义为写字线控制信号。此时字线控制信号和正常读的字线控制信号完全相同,具体图例如图5所示。
图8列出了图1所示字线控制电路不同端口模式下(包括双端口地址是否相同)字线控制信号,从图8中可以看出,当EDAC_en为0时,也就是存储器没有纠错功能,读写字线分别正常开启,分别完成存储器的正 常读写功能;当EDAC_en为1且add_compare为0时,也就是存储器有纠错功能且双端口地址不同,此时端口字线开启覆盖正常读写字线开启,满足此端口在一个时钟周期读出数据后回写的时序功能要求,因此不需要存储EDAC纠错数据,也就避免增加冗余存储单元,同时本设计可以和没有EDAC功能的双端口存储器字线控制电路实现兼容。当EDAC_en为1且add_compare为1时,也就是存储器有纠错功能且双端口地址相同,此时端口字线与正常读的字线控制信号完全相同,避免双端口数据写同一地址冲突。
可见,本发明可以覆盖正常读写模式、带纠错功能的读出数据后回写功能,和没有EDAC功能的双端口存储器字线控制电路实现兼容。
至此,已经结合附图对本发明实施例进行了详细描述。依据以上描述,本领域技术人员应当对本发明双端口存储器字线控制电路有了清楚的认识。
需要说明的是,在附图或说明书正文中,未绘示或描述的实现方式,均为所属技术领域中普通技术人员所知的形式,并未进行详细说明。此外,上述对各元件和方法的定义并不仅限于实施例中提到的各种具体结构、形状或方式,本领域普通技术人员可对其进行简单地更改或替换,例如:
(1)本发明所采用的固定延时链和可调延时链,只是为满足对读时序和写时序的精细调节,如对读写时序要求不严格,也可全部采用固定延时链。同时,采用反相器组成延时链只是生成延时链的一种形式,也可用金属或氧化物电阻等生成延时链。
(2)本发明所采用的选择器,不限定设计选择器的电路,既可以采用传输门组成的选择器也可以采用与非门等形式的电路。
(3)本发明所采用的电路是基于上述端口定义下所设计的电路原理图,如端口定义不同,也可采用不同的电路实现方式。
(4)本发明所采用的带0清零端的寄存器只是为满足上述端口定义下的清零功能,如端口定义不同,可用其他的带清零端的寄存器替换,只需要实现脉冲清零功能即可。
综上所述,本发明双端口存储器字线控制电路可以在一个时钟周期里完成存储器数据的读出、EDAC纠错数据的生成以及生成数据的回写,从 而纠错数据无需冗余的存储单元,减少了芯片面积,简化了电路设计。此外,本发明还可以覆盖正常读写模式、带纠错功能的读出数据后回写功能,和没有EDAC功能的双端口存储器字线控制电路实现兼容。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。