发明内容
本发明要解决的技术问题是提供一种简化存储器后仿网表来实现大容量存储器仿真的方法,该方法通过产生简化网表来实现大SRAM(存储器)的仿真,解决了MemoryCompiler设计过程中大SRAM仿真难的问题,并提高了仿真速度,以及减小了因为估算方法而给客户带来的设计风险。
为解决上述技术问题,本发明的简化存储器后仿网表来实现大容量存储器仿真的方法,包括步骤:
1)制定关键路径(CriticalPath,CP),生成关键路径的网表;
2)在Memorygds上对全局连线进行标注,并从中抽取含全局连线寄生信息的网表;
3)利用含全局连线寄生信息的网表,对关键路径网表进行电容及负载的反标;
4)抽取Memorygds中全局连线的电阻信息;
5)对关键路径网表,进行电阻的反标及∏形网络的处理;
6)将完成的新简化网表用于仿真。
所述步骤1)中,关键路径为利用SRAMCell(单元,电路模块)中重复利用单元较多的特性,只保留用SRAMCell这些单元中的最佳单元与最差单元、SRAM中控制结构、以及添加了虚拟负载的简化的电路,如关键路径可由以下部分组成:结构块1,结构块2中离结构块1最近的一个cell和最远的cell,结构块3中最左边和最右边的YDEC+SENSA+IOcell,结构块5四个角的cell;其中,生成关键路径的网表中,将关键路径中的各个结构块的输入输出信号连接好,即全局连线,并在连线上挂上表示负载的虚拟管子,输出成关键路径网表,其中,虚拟管子,包括:电容、MOS管、电阻。
所述步骤4)中,全局连线的电阻信息,包括:gds中全局连线的长度L和宽度信息W。
所述步骤5)的电阻的反标中,根据提取的电阻信息和提供的全局连线对应的金属层的方块电阻RPSQ信息,计算出电阻R=RPSQ*L/W,反标到关键路径上。
本发明通过制定Memory(存储体)的关键路径,全局连线的负载反标,电阻反标及∏形网络的处理等步骤,在保证仿真精度的前提下,最大程度压缩了网表大小,即生成一个简化了的后仿网表,且该网表比未做简化的网表能减少至少大约50%的时间,从而大大提高仿真的速度,使得大SRAM的仿真成为可能,并降低软件仿真难度。
具体实施方式
本发明的简化存储器后仿网表来实现大容量存储器仿真的方法,其流程图如图1所示,步骤包括:
1)制定关键路径,生成关键路径的网表;其中,该关键路径的产生办法如下:
根据一股的SRAM结构框图(如图2所示),图中将SRAM分为6个结构块(图中的最粗黑色线所围成的结构块),并分别对每个块进行编号:
结构块1是控制信号产生电路,如时钟信号产生,输入信号如地址,写使能(writeenable)信号锁存,还包括地址预译码电路;结构块1的电路结构没什么规则;
结构块2是X方向的译码电路XDEC,由一个个相同的XDEC堆成一列,结构比较规整;
结构块3和结构块4是一种基本对称的结构,包含了Y方向的译码电路YDEC、灵敏放大器SENSA和输入输出电路IO,对于每个IO就有一个对应的单元;结构块3和结构块4结构比较规整;
结构块5和结构块6是两个对称的块,是存储单元所在的位置,是由一个个相同的存储单元排列而成,水平方向与XDEC对齐,垂直方向与YDEC+SENSA+IO对齐;结构块5和结构块6的结构比较规整。
由以上可知,SRAMcell电路中存在很多重复利用的cell。当存储容量变化时,在电路中各个块的表现分别为:结构块5和结构块6中BITCELL数目的增多,结构块3和结构块4中的IO列数增多,结构块2中的XDEC行数增多,而结构块1中GlobalControl+Predecoder的电路在某个存储容量范围内基本不变。
基于对Memorycell结构的分析,用网表绘制工具画出Memorycell的关键路径(CP)图,并输出网表文件,具体操作如下:
首先,由于左右两边是对称的,所以只需要画出一边的电路图,要求该边的IO数目比较多,能反映最坏的情况;假设图2中右边IO比较多,则在关键路径中只需要画出结构块1、2、3、5;
其次,对于结构块1,因为其包含重要的控制信息,且结构是唯一的,将其保留。对于结构块2,由于是重复的XDECcell组成的一列,就电路寄生效应来讲,离结构块1最近的一个cell和最远的cell的timing(时序)分别是最短和最长的,如果这两个cell的功能都满足要求,则其他的cell也能满足要求,因此将它们选为关键的组成cell,其他的cell则不需要考虑。对于结构块3,同理,保留最左边和最右边的YDEC+SENSA+IOcell。对于结构块5,四个角的cell都需要保留。
经过上面两步,关键路径中要保留的cell基本上确定,即:结构块1,结构块2中离结构块1最近的一个cell和最远的cell,结构块3中最左边和最右边的YDEC+SENSA+IOcell,结构块5四个角的cell;但是由于中间去掉了一些cell,所以需要考虑连线的问题,由于Memorycell的读写是控制是非常有规律的,所以只要BITCELL相关的XDEC以及YDEC+SENSA+IOcell得到保留,电路的控制就不会存在问题,而且不存在控制信号由省略的电路产生的情况。将各个模块(结构块1-3、5)的输入输出信号连接好,这些都是全局的控制线,即全局连线。这些控制线也连接到省略掉的cell中,所以要在连线上挂上表示负载的管子,如电容、MOS管、电阻等,等待下一步反标。
2)在Memorygds上对全局连线,如字线、位线、译码后的地址线、预充电控制线、SENSA控制线等进行标注,并从中抽取含全局连线寄生信息(主要包含连线的电容和负载的MOS管信息)的网表,抽取采用专门的抽取工具,如Synopsys的STAR-rcxt,Mentor的CalibrexRC等;
3)利用含全局连线寄生信息的网表,对关键路径网表进行电容及负载的反标,即将全局连线上省略的MOS管和电容反标到关键路径网表中,具体方法是:
比较步骤1)产生的网表和步骤2)产生的网表,将全局连线上的差值反标到步骤1)中网表的全局连线上;
4)抽取Memorygds中全局连线的电阻信息:根据步骤2)中gds上全局连线的标注,找到全局连线对应的金属层,计算出全局连线的长度L和宽度W;
5)对关键路径网表,进行电阻的反标及∏形网络的处理;
其中,根据提取的电阻信息(包括全局连线的长度L和宽度W),和提供的全局连线对应的金属层的方块电阻RPSQ信息,计算出电阻R=RPSQ*L/W,反标到关键路径上。
由于电阻是整段反标上去的,而关键路径上的负载、电阻都是均匀分布的。所以需要对关键路径进行∏形网络处理。其中,耦合电容∏形网络处理的例子,如图3所示:
ac_net1_*和ac_net2_*是两条全局连线,中间挂了耦合电容C4;处理后,两条全局连线的电阻都被均匀的分为3段,同时电容被分为4个,均匀的挂在连线上。其它的负载,如对地电容、MOS管等采用相同的处理方式。一股情况下,将电阻分成3-5段就能达到仿真精度的要求。
6)将完成的新简化网表用于仿真。
按照上述方法得到的简化网表,包含了由版图抽取的寄生参数,并且它的大小可以被仿真器接受。将本方法应用于HHNECEF130(上海华虹NEC电子有限公司)平台上的SRAM,对于1k×4大小的SRAM,压缩前网表大小为540k,压缩后网表大小为210k,压缩后网表大小为以前的38.9%,仿真时间减为原来的一半。对于大的SRAM,压缩效果更明显。本发明通过生成的简化的后仿网表,从而大大提高SRAM仿真的速度,降低软件仿真难度。