存储器版图和网表自动生成的软件实现方法技术

技术编号:26505735 阅读:25 留言:0更新日期:2020-11-27 15:33
本发明专利技术涉及一种存储器版图和网表自动生成的软件实现方法,实现了一种存储器拼接描述语言MCDL,使用该语言可以完成任意复杂结构的存储器拼接,最终得到版图和网表输出。用MCDL定义存储器拼接的特点是:1)版图拼接不需要定义绝对坐标,通过相邻单元之间的拓扑关系自动计算所有单元的坐标。2)自动从底层版图单元提取端口信息到顶层单元。3)自动生成版图圆环圈结构,把非关键部分的单元功能屏蔽,减少仿真运算量。4)网表拼接自动连接同名的端口。

【技术实现步骤摘要】
存储器版图和网表自动生成的软件实现方法
本专利技术涉及集成电路辅助设计软件工具中存储器设计领域。
技术介绍
存储器(Memory)设计是集成电路芯片(IC)开发过程中的一个专门领域,存储器包括SRAM,DRAM,ROM,RegisterFile,Flash等类型。为了能使存储器在多款芯片中使用,一般是将存储器划分成多个底层单元(LeafCell),再根据一定的拼接规则将其拼接成指定大小的存储器。其容量和结构一般由如下变量指定:字(Words)的容量,每个字的位(Bits)数,和多路复用器(Mux)的宽度。存储器版图和网表自动生成软件(MemoryCompiler)是根据用户指定的Words,Bits,和Mux完成对应存储器拼接的软件工具。其结果输出包括GDSII版图和CDL网表。本专利技术实现了一种存储器拼接描述语言(MemoryCompilerDescriptionLanguage),简称MCDL,使用该语言可以完成任意复杂结构的存储器拼接,最终得到版图和网表输出。
技术实现思路
附图1是使用本专利技术进行存储器编译的程序流程框图。程序首先读入MCDL语句描述的拼接定义,并从指定的标准GDS/CDL格式文件中加载leaf单元信息。然后,程序根据用户指定的容量大小(Word,Bits)和结构(Mux)参数,按照leaf单元信息和MCDL定义的拼接规则完成存储器的拼接。最终输出存储器的GDS和CDL文件。MCDL基于TCL语言,提供变量存取,表达式计算,和控制结构(if,while,for)等基本语法结构支持,并针对存储器拼接提供如下的扩展命令:1)MCDL_Place<cell>:<rotate><side>:拼接版图单元cell到当前单元。一个版图单元的放置由两个参数决定,坐标(x,y)和旋转方向rotate。旋转方向有8种,分别为R0(不旋转),R90(逆时针旋转90度),R180(旋转180度),R270(旋转270度),MX(沿Y轴镜像),MXR90(先沿Y轴镜像再旋转90度),MY(沿X轴镜像),MYR90(先沿X轴镜像再旋转90度),坐标需要根据旋转方向进行调整。MCDL_Place命令的特征是,单元放置不需要考虑坐标,只需要考虑放置在已有图形的上方,下方,左方,还是右方(side),程序会自动计算坐标,并保持当前单元的左下角坐标始终为(0,0)。3)MCDL_MapBorderLabel<pattern><pin-list>:提取版图底层单元的Label,将其映射为外部端口。普通存储器编译器只提供一层的Label映射,最终形成外部端口要经过多层Label映射,而本MCDL命令的特征是只要一次映射即可完成外部端口定义。命令首先根据pattern查找Leaf单元中的Label,pattern是一个正则表达式,例如,D*匹配D<0>,D<1>,D<2>...,D[0-3]匹配D0,D1,D2,D3。符合pattern的Label被提取后按坐标从小到大排列顺序,这样,位于存储器底部和顶部的Label按从左到右排列,位于存储器左部和右部的Label按从下到上排列。排列后的Label与pin-list按顺序一一对应,在相同位置生成外部端口。例如,Label提取结果A0,A1,A0,A1,A2,与A<3:4>,A<0:2>的pin-list对应,则在第一个A0处生成外部端口A<3>,在第一个A1处生成外部端口A<4>,在第二个A0处生成外部端口A<0>,在第二个A1处生成外部端口A<1>,在A2处生成外部端口A<2>。4)MCDL_Donutbitcell-row...-col...:生成版图的donut圆圈环。存储器的字位单元称为bitcell,一个存储器除控制译码电路外,主要部分是bitcell拼接成的bit阵列。对于容量较大的存储器,通过仿真提取其时序特征的过程会很耗时。由于时序特征只与bit阵列的外圈bitcell相关,所以在仿真使用的版图中,会将bit阵列的中间部分挖空,即去除中间部分的Mos管,只保留连线。MCDL_Donut命令就是为了处理这种情况而设计的,只需要一条命令即可形成版图的donut圆圈环。命令中的-row/col控制保留和挖空哪些单元,例如,-row151表示保留7行中的第1行和第7行,挖空中间的5行;-col171表示保留9列中的第1列和第9列,挖空中间的7列;两者合起来,就表示保留阵列中的外圈,挖空中间的bitcell。5)MCDL_Connect<cell>-pinpin=>net...:拼接网表单元cell。端口连接由-pinpin=>net指定,例如-pinDIN<0:3>=>d0d1d2d3,表示端口DIN<0>连到线网d0,端口DIN<1>连到线网d1,端口DIN<2>连到线网d2,端口DIN<3>连到线网d3。本命令的特征是,如果端口名与线网名相同,则可以忽略不写。在存储器系统中,大多数线网名与端口名都是相同的,例如CLK,WEB等,所以该特征大大简化了拼接定义。6)MCDL_DefPin<pin>...:定义网表单元的端口。7)MCDL_LoadLeafCell<gds>/<cdl>:加载指定的Lead单元版图或网表。版图单元以GDS格式存储,每个单元包括单元名,单元大小,包含的图形和Label等信息。网表单元以CDL格式存储,每个单元包括单元名,端口列表等信息。附图说明图1:存储器编译程序流程框图。图2:MCDL_Place命令示例。该图对应命令:MCDL_PlaceA:R0MCDL_PlaceB:MXRightMCDL_PlaceC:MYBottom首先放置单元A,不做任何旋转操作,操作后当前单元只包含单元A,左下角坐标(0,0)。之后在A的右侧放置单元B,放置前对单元B按Y轴旋转,程序检查单元B和单元A的高度一致,操作后当前单元包含单元A和单元B,高度与单元A的高度一致,宽度是单元A加单元B的宽度,左下角坐标(0,0)。之后在当前单元的下方放置单元C,放置前对单元C按X轴旋转,程序检查单元C和当前单元的宽度一致,操作后当前单元包含单元A,单元B,和单元C,高度等于单元A加单元B的高度,宽度等于单元A加单元B的宽度,左下角坐标仍是(0,0)。输出GDS后,单元A坐标(0,HC)(图中坐标1),旋转方向R0;单元B坐标(WA+WB,HC)(图中坐标2)旋转方向MX;单元C坐标(0,0)(图中坐标1),旋转方向MY。其中HC代表单元C的高度,WA和WB分别代表单元A和B的宽度。图3:MCDL_MapBorderLabel命令示例。该图对应命令:<本文档来自技高网...

【技术保护点】
1.定义了一种存储器拼接描述语言(Memory Compiler Description Language),简称mcdl的语法,软件工具通过该语法可按照需求拼接生成任意复杂结构的版图和网表,该语法的特征在于:/n1.1.单元的版图不需要定义绝对坐标,通过相邻单元之间的拓扑关系自动计算所有单元的坐标;/n1.2.版图中底层单元的端口信息可自动提取到顶层单元,并自动命名,作为存储器的对外接口;/n1.3为提高仿真效率,版图自动生成圆环圈的单元,把非关键部分的单元功能屏蔽,减少运算量;/n1.4网表拼接中自动连接同名的端口,减化网表定义。/n

【技术特征摘要】
1.定义了一种存储器拼接描述语言(MemoryCompilerDescriptionLanguage),简称mcdl的语法,软件工具通过该语法可按照需求拼接生成任意复杂结构的版图和网表,该语法的特征在于:
1.1.单元的版图不需要定义绝对坐标,通过相邻单元之间的拓扑关...

【专利技术属性】
技术研发人员:王勇侯劲松张萍李宁
申请(专利权)人:天津蓝海微科技有限公司
类型:发明
国别省市:天津;12

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1