一种存储器编译器拼接方法和存储器与流程

文档序号:11830635阅读:205来源:国知局
一种存储器编译器拼接方法和存储器与流程
本申请涉及存储器
技术领域
,更具体地说,涉及一种存储器编译器拼接方法和存储器。
背景技术
:现有的存储器编译器在设计过程中,通常把存储器划分为各个功能模块(leafcell),功能模块中的电路尺寸依据阵列的最坏情况而定。然后用程序根据配置参数,拼接各个功能模块,最终将多个功能模块组合成一个存储器。在这个过程中,存储器中的大尺寸器件都是依据阵列的最坏情况下设定的,不能追踪阵列的行数和列数的变化,因此,采用现有技术中的技术方案生成的存储器的面积(Performance,power,area—简称PPA)浪费,同时也会增大存储器功耗。技术实现要素:有鉴于此,本申请提供一种存储器编译器拼接方法,用于解决现有技术中存储器的面积浪费的问题。为了实现上述目的,现提出的方案如下:一种存储器编译器拼接方法,包括:确定信号由字线驱动到最远端存储单元的延时时间与存储单元的列数n以及字线驱动的驱动MOS的Fin的数目nWLD之间的函数关系,其中所述nWLD为一离散数;将所述n列存储单元均分为预设段,在nWLD的取值范围内,依据所述函数关系计算每段存储单元的最小延时时间,当所述最小延时时间小于第一预设值时,获取所述最小延时时间对应的nWLD,记为优选取值,所述优选取值 即为所述存储器中字线驱动和每两段存储单元之间的缓冲器的驱动MOS的Fin个数;拼装Fin为优选取值的字线驱动和缓冲器的版图。优选的,上述存储器编译器拼接方法,还包括:当所述最小延时时间不小于第一预设值时,所述n列存储单元的均分段数加1,直至在nWLD的取值范围内,每段存储单元的最小延时时间小于第一预设值。优选的,上述存储器编译器拼接方法中,所述信号由存储器字线驱动到最远端存储单元的延时时间与存储单元的列数n以及字线驱动MOS的Fin的数目nWLD之间的函数关系,为:t0=a*b+nnWLDa*CC_WL+(n+1)n2RC_WLCC_WL=f(nWLD,n);]]>其中,t0为信号由存储器字线驱动到最远端存储单元的延时时间,RC_WL为存储单元位线的电阻值,CC_WL为存储单元位线的电容值,a和b为常数。优选的,上述存储器编译器拼接方法中,还包括:对所述存储器编译器的行数m进行追踪,具体为:计算存储器的上拉PMOS的电阻阻值RC_PU与写驱动的电阻阻值RWRD和m行存储单元的电阻阻值RC_BL之和的比值T,其中,所述;所述nWRD为写驱动的NMOS的Fin的个数,c为固定值;在nWRD的取值范围内,计算使得所述比值T大于第二预设值的写驱动的NMOS的最小Fin的个数,记为nWRD1;拼装Fin为nWRD1的写驱动的版图。优选的,上述存储器编译器拼接方法中,还包括:采用时序控制电路对所述存储器编译器的行数m和列数n进行追踪,具体为:确定存储器的时序控制电路的延时t1与反相器驱动的功能模块个数p以及反相器的Fin的数目nDriver之间的函数关系,其中所述nDriver为一离散数;求在所述nDriver的取值范围内,使得所述延时t1满足时序要求时的Fin的最小数目,记为nDriver1;拼装Fin为nDriver1的时序控制电路版图。优选的,上述存储器编译器拼接方法中,所述时序控制电路的延时t1与反相器驱动的功能模块个数p以及反相器的Fin的数目nDriver之间的函数关系为t1=d*e+pnDriverd*Cleafcell+(p+1)p2RleafcellCleafcell,]]>其中,所述d、e为固定值,所述Cleafcell为反相器所驱动的功能模块的电容,所述Rleafcell为反相器所驱动的功能模块的连线电阻。一种存储器,所述存储器为采用上述任意一项存储器编译器拼接方法拼装而成的存储器。从上述的技术方案可以看出,本申请公开的存储器编译器拼接方法中,通过对所述存储器编译器的列数n进行追踪,使得存储单元的WLDriver和Buffer的Fin的个数均为最优值,使得所述WLDriver和Buffer的尺寸最优,因此增强了存储器的面积利用率,减小了面积浪费。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。图1为现有3D晶体管的结构图;图2为本申请实施例公开的存储器编译器中的WLDriver的长连线模型;图3为本申请实施例公开的对存储器编译器的列数进行跟踪的方法的流程图;图4为存储器编译器的写驱动WriteDriver最坏情况的长线模型图;图5为本申请实施例公开的对存储器编译器的行数m进行跟踪的方法流程图;图6为存储器的时序追踪电路的结构图;图7为时序追踪电路中的大尺寸反相器的长连线模型图;图8为本申请实施例公开的采用时序控制电路对所述存储器编译器的行数m和列数n进行追踪的流程图。具体实施方式针对于现有技术中的存储器功能模块中的电路尺寸依据阵列的最坏情况而定,从而造成存储器的面积浪费的问题,本申请公开了一种存储器编译器拼接方法和存储器。下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。在鳍式场效晶体管(FinField-EffectTransistor,FinFET)工艺下,MOS器件的沟道长度固定,宽度只能数量化的取值。因此用户可以定制MOS器件的尺寸,可以对MOS器件进行计算机控制。因此原有的存储器编译器设计技术可以在FinFET工艺下进行优化改革。如图1所示,图1中的FinFET器件为3D晶体管(MOS管),参见图1中的3D晶体管的沟道长度为固定值,宽度只能量子化的取值,因此所述MOS管的尺寸由Fin的总个数决定:FinSum=Fin1Finger*Finger,MOS管的尺寸就是一个离散的函数,这样就可以方便用计算机进行处理,控制版图排列,进行拼装MOS管。存储器编译器中的字线驱动(WLDriver)、写驱动(WriteDriver)、时序追踪电路(TrackingPath)中设置有大尺寸器件,所述WLDriver用于驱动存储阵列中存储单元的字线,所述WriteDriver用于驱动存储阵列中存储单元的位线,所述TrackingPath用于控制存储器的时序,申请人通过研究发现利用FinFET器件尺寸离散化的特性,可使得大尺寸器件的尺寸对行数和列数进行追踪,从而使得减少存储器的面积浪费成为可能。图2为本申请实施例公开的存储器编译器中的WLDriver的长连线模型。其中,图2中所示RWLD为WLDriver驱动MOS的电阻,CWLD为WLDriver驱动MOS 的电容,RC_WL为存储单元位线的电阻,CC_WL为存储单元位线的电容,WLDriver一共驱动n列存储单元,所述t0为信号由WLDriver到最远端的存储单元的延时时间,所述t0=f(nWLD,n),其中,所述nWLD为WLDriver驱动MOS的Fin的总目数,且所述nWLD为一离散数。基于所述信号由WLDriver到最远端的存储单元的延时时间t0与所述WLDriver驱动MOS的Fin的总目数nWLD和存储单元的列数n之间的函数关系,本申请公开了一种存储器编译器拼接方法,通过对存储器编译器的列数进行追踪,达到优化存储器编译器的PPA的目的。图3为本申请实施例公开的对存储器编译器的列数进行跟踪的方法。参见图1,该方法包括:对所述存储器编译器的列数n进行追踪,具体为:步骤S301:确定信号由字线驱动到最远端存储单元的延时时间t0与存储单元的列数n以及字线驱动的驱动MOS的Fin的数目nWLD之间的函数关系;步骤S302:将所述n列存储单元均分为i段,i=1;步骤S303:在nWLD的取值范围内,计算得到n/i列存储单元的最小延时时间tn/i;步骤S304:判断所述最小延时时间tn/i是否小于第一预设值ttarget,如果是执行步骤S306,如果否,执行步骤S305,所述第一预设值ttarget的大小依据用户需求而定:步骤S305:使得i=i+1,继续执行步骤S303;在nWLD的取值范围内,继续计算得到n/i列存储单元的最小延时时间tn/i,直至判断所述最小延时时间tn/i小于所述第一预设值ttarget;步骤S306:如果所述最小延时时间tn/i小于第一预设值ttarget,获取使得所述最小延时时间tn/i为最小值时对应的的字线驱动MOS的Fin的数目(nWLD),记为nmeet;步骤S307:在每两段存储单元之间插入一缓冲器Buffer,字线驱动和每个所述缓冲器Buffer的驱动的Fin个数为nmeet;步骤S308:拼装Fin为nmeet的字线驱动和缓冲器的版图。图3所示,首先nWLD在Fin的个数许可取值范围内,得到n个存储单元的最小延时,如果小于目标(第一预设值)ttarget,则在取值范围内求满足约束条件的最小的Fin取值;如果大于第一预设值ttarget,则进行平均分段,求每段最小延时,并将每段最小延时与第一预设值ttarget进行比对,若小于第一预设值ttarget,则求满足约束条件的最小Fin值,否则继续分段下去直至满足目标约束条件(每段最小延时小于第一预设值ttarget)为止。这样一直选择到满足条件的分段数和Fin的取值,一直选择最优的结果,因此每段合起来整体的延时则在满足约束条件下也是最小的。其中,上述方法可以称之为贪心算法,对于这个对贪心选择的迭代可以用模拟仿真进行求解,在Fin的有限、离散的取值下,运行仿真得到对应的延时,将得到的延时与第一预设值进行比对,若小于第一与设置,则结束掉仿真,然后对延时进行运算;若大于第一预设值,则对所述n列存储单元进行分段,继续在离散的取值下,仿真得到每段存储单元对应的延时,后继的迭代以此类推,直至每段存储单元对应的延时小于第一预设值时为止。然后每两段存储单元之间插入以缓冲器Buffer,Fin的取值决定WLDriver和Buffer的尺寸。不同的列数(n)得到对应的分段数和Fin的取值nmeet,通过计算机生成对应的WLDriver和Buffer的版图,这样存储器编译器就可以追踪列数的变化,使得每个存储器的WLDriver的PPA都会最优。参见本申请上述实施例公开的,对所述存储器编译器的列数n进行追踪的方法,存储单元的WLDriver和Buffer的Fin的个数均为最优值,从而使得所述WLDriver和Buffer的尺寸最优,从而增强了存储器的面积利用率,减小了面积浪费。可以理解的是,参见图2,所述由存储器字线驱动到最远端存储单元的延时时间t0与存储单元的列数n以及字线驱动MOS的Fin的数目nWLD之间的函数关系,为:t0=RWLDCWLD+(RWLD+RC_WL)CC_WL+(RWLD+2RC_WL)CC_WL+...+(RWLD+nRC_WL)CC_WL=RWLDCWLD+nRWLDCC_WL+(n+1)n2RC_WLCC_WL]]>设其中CWLD=bnWLD,所述a、b为常数,则:t0=a*b+nnWLDa*CC_WL+(n+1)n2RC_WLCC_WL=f(nWLD,n);]]>其中RC_WL为存储单元位线的电阻值,CC_WL为存储单元位线的电容值;因此,可求得所述t0与n和nWLD之间的函数关系式为:t0=a*b+nnWLDa*CC_WL+(n+1)n2RC_WLCC_WL=f(nWLD,n).]]>图4为存储器编译器的写驱动WriteDriver最坏情况的长线模型图。其中,所示RC_PU为存储单元的上拉PMOS的电阻,RC_BL为存储单元BL的电阻,CC_BL为存储单元位线BL(bitline)的电容,RWRD为写驱动(WriteDriver)的电阻,m为存储单元的行数。当需要把存储单元写翻转时,电阻的比例需要满足条件:其中所述λflip为第二预设值。其中,若所述WriteDriver的NMOS的Fin的个数为nWRD,则,所述所述c为常数,则上述公式可变形为:图5为本申请实施例公开的对存储器编译器的行数m进行跟踪的方法流程图。可以理解的是,为了进一步优化存储器的PPA,在上述对所述存储器编译器的列数n进行追踪的基础上,还可以对存储器编译器的行数m进行跟踪,参见图4和图5,其具体过程为:步骤S501:计算存储器的上拉PMOS的电阻阻值RC_PU与写驱动的电阻阻值RWRD和m行存储单元的电阻阻值RC_BL之和的比值T;步骤S502:在nWRD的取值范围内,计算使得所述比值T大于第二预设值的写驱动的NMOS的最小Fin的个数,记为nWRD1;步骤S503:拼装Fin为nWRD1的写驱动的版图。可见,通过设置对所述存储器编辑器的写驱动的具体结构进行分析,得到所述存储器的上拉PMOS的电阻阻值RC_PU与写驱动的电阻阻值RWRD和m行 存储单元的电阻阻值RC_BL之和的比值T,同时,分析得到所述写驱动的电阻阻值RWRD与所述WriteDriver的NMOS的Fin的个数nWRD之间的关系,从而通过带入得到,所述WriteDriver的NMOS的Fin的个数nWRD与所述比值T之间的关系,通过分析计算即可得到使得所述比值T满足预设条件时的最小nWRD的取值,从而达到对储器编译器的行数m进行追踪的目的,使得所述WriteDriver的尺寸为最优,从而进一步增强了存储器的面积利用率,减小了面积浪费。图6为存储器的时序追踪电路的结构图。其中,图中Cell存储器功能模块,所述WLFMS为WL信号的时序触发器,所述SAFSM为SAEN信号的时序触发器。参见图6,所述时序追踪电路在工作时,当所示CK端获取到时钟信号的上升沿时,触发WLEN置为‘1’,使得所示DWL也置为‘1’开启反相器,RBL开始放电,最终使得WL_END变为‘1’重置WLFSM,相应的WLEN置‘0’,DWL置‘0’,RBL恢复为‘1’,WL_END置‘0’,结束WL的时序追踪;当WL_END置为‘1’时,开启SA的时序追踪,SAEN置‘1’,SA_END置‘1’重置SAFSM使得SAEN为‘0’,然后SA_END也变为‘0’,结束SA的时序追踪。驱动WLEN的反相器驱动一条长连线,其信号延时受存储器中存储阵列的行数(m)的影响;驱动RBL的反相器驱动一条长连线,延时同样受存储器中存储阵列的行数(m)的影响;驱动SAEN的反相器驱动长连线,延时受存储器中存储阵列的列数(n)的影响;驱动SA_END的反相器驱动长连线,延时同样受存储器中存储列数(n)的影响。且上述这些反相器均为大尺寸器件,影响存储器的整体时序。现有的存储器编译器的时序追踪电路只对阵列的最坏情况进行设计,这样导致阵列其他情况下的时序追踪并不是最适合的,使得时序追踪电路的PPA不是最优的,增加了存储器的面积浪费。图7为时序追踪电路中的大尺寸反相器的长连线模型。针对于存储器中时序追踪电路的PPA不是最优的问题,申请人建立了如图7所示的长连线模型,其中,所示RDriver为驱动反相器的MOS电阻,所示CDriver为驱动反相器的MOS电容,所述Rleafcell为存储器功能模块的连线电阻,所述Cleafcell为存储器功能模块的电容,所述p为驱动反相器所连接的存储器 功能模块的个数,所述延时t1为由驱动反相器到驱动反相器所连接的最远功能模块的延时时间。通过计算分析可得,所述延时:t1=RDriverCDriver+(RDriver+Rleafcell)Cleafcell+(RDriver+2Rleafcell)Cleafcell+...+(RDriver+pRleafcell)Cleafcell=RDriverCDriver+pRDriverCleafcell+(p+1)p2RleafcellCleafcell]]>设上述长连线中驱动MOS的Fin的数目为nDriver,则所述CDriver=e*nDriver,所述d、e为常数。则上述公式可变形为:t1=d*e+pnDriverd*Cleafcell+(p+1)p2RleafcellCleafcell=f(nDriver,p);]]>通过上述公式,在所述在nDriver的取值范围内,求得满足延时要求的最小的驱动MOS的尺寸,并拼装成相对应的版图,从而使得上述长连线驱动的PPA就是优化的,这个求解过程可以用模拟仿真求解:在离散的nDriver的尺寸取值范围内,仿真测量对应尺寸的延时t值,比较时序要求,得到满足条件得最小尺寸的nDriver,并拼装相应的版图。因此追踪时序追踪电路的行数和列数的变化,生成的每个存储器的时序追踪电路都是自洽的,从而减小存储器的面积浪费。具体的,参见图8,本申请上述实施例中采用时序控制电路对所述存储器编译器的行数m和列数n进行追踪的方法,具体可为:步骤S801:确定存储器的时序控制电路的延时t1与反相器驱动的功能模块个数p以及反相器的Fin的数目nDriver之间的函数关系,其中所述nDriver为一离散数;步骤S802:求在所述nDriver的取值范围内,使得所述延时t1为满足预设条件时的Fin的最小数目,记为nDriver1,即使得所述t1小于预定值时Fin的最小数目;步骤S803:拼装Fin为nDriver1的时序控制电路版图。可以理解的是,对应于本申请上述实施例公开的方法,本申请还公开了一种采用上述任意一种方法制成的存储器。一种存储器,其特征在于,所述存储器为采用上述权利要求1-5任意一项存储器编译器拼接方法拼装而成的存储器。可以理解的是,本申请实施例公开的存储器可以采用存储器中的WLDriver对存储器的列数进行追踪和/或采用WriterDriver对存储器的行数进行追踪和/或采用时序控制电路对行数和列数都进行追踪,因此能够对存储器中的大尺寸器件进行追踪定制,从而使得每个存储器的整体PPA为最优。本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1