一种构造存储器编译软件的流程方法.pdf

上传人:b*** 文档编号:1635330 上传时间:2018-06-30 格式:PDF 页数:7 大小:424.01KB
返回 下载 相关 举报
摘要
申请专利号:

CN201310356112.6

申请日:

2013.08.15

公开号:

CN104376137A

公开日:

2015.02.25

当前法律状态:

撤回

有效性:

无权

法律详情:

发明专利申请公布后的视为撤回IPC(主分类):G06F 17/50申请公布日:20150225|||实质审查的生效IPC(主分类):G06F 17/50申请日:20130815|||公开

IPC分类号:

G06F17/50; G06F9/44

主分类号:

G06F17/50

申请人:

天津蓝海微科技有限公司

发明人:

王勇; 侯劲松; 张萍; 李宁

地址:

300457天津市开发区第四大街80号天大科技园A1楼二层213室

优先权:

专利代理机构:

代理人:

PDF下载: PDF下载
内容摘要

本发明涉及集成电路辅助设计软件工具中存储器设计领域。存储器设计中,由于硬件设计人员一般不具备软件开发能力,所以存储器编译软件的开发一般是委托给软件设计公司,价格昂贵。本发明设计并实现了一种适用于硬件工程师的存储器编译器描述语言,通过该语言可以有效地描述版图拼接,网表连接,和仿真测量。这些程序经过打包后就生成了存储器编译器。使用该编译器最终产生存储器的GDSII版图,CDL网表,和Lib时延文件。本发明可以极大降低存储器编译器的开发难度,从而使硬件工程师自身就能完成编译器的开发,这极大加速了存储器设计的收敛过程,缩减了开发周期与成本。

权利要求书

权利要求书
1.  一种构造存储器编译软件的流程方法,基本含义是:设计并实现一种适用于硬件工程师的存储器编译器描述语言。硬件工程师可以用其来描述版图拼接,网表连接,和仿真测量,这些程序经过打包后生成存储器的编译器,并最终产生存储器的GDSII版图,CDL网表,和Lib时延文件。使用该语言可以极大降低存储器编译器的开发难度,从而使硬件工程师自身就能完成编译器的开发,加速存储器设计的收敛过程,缩减开发周期与成本。
具有如下特点:
1)定义并实现了用于生成存储器编译器的一种脚本语言,使用其可以方便的定义版图的拼接,网表的连接,和仿真测量的提取。
2)版图拼接使用相对位置替代绝对坐标,极大简化了拼接中的计算工作量;对齐检查则保证拼接正确性,加速拼接过程的收敛。
3)支持多维插值运算,对插值结果可以进行Margin修正以保证电路的稳定工作。
4)编译器内对程序及底层单元数据库进行加密,并且对最终拼接结果进行打散处理,有效保护了存储器的设计思想。

说明书

说明书一种构造存储器编译软件的流程方法
技术领域
本发明涉及集成电路辅助设计软件工具中存储器设计领域。
背景技术
存储器设计(Memory)是集成电路开发过程中的一个专门领域,存储器包括SRAM,DRAM,ROM,Register File,Flash等类型。为了能使存储器在多款IC芯片中使用,一般是将存储器划分成多个底层单元(Leaf Cell),再根据一定的拼接规则将底层单元拼接成指定大小的存储器,例如字(Words)的容量,每个字有多少位(Bits),以及多路复用器(Mux)的宽度。除了GDSII版图外,一个存储器的完整开发还包括CDL网表,LEF端口描述,以及LIB时序性能表等。
手工拼接存储器既费时又容易出错,所以每一存储器最终都会配套一款自动编译软件,叫做存储器编译器(Memory Compiler),可以根据用户指定的Words,Bits,和Mux产生对应的存储器。由于硬件设计人员一般不具备软件开发能力,所以存储器编译软件的开发一般是委托给软件设计公司。也有专门从事存储器开发的IP服务公司,他们根据存储器的规格说明完成硬件及软件的所有开发,价格昂贵。
本发明设计了一种适用于硬件工程师的存储器编译器描述语言(Memory Compiler Description Language),简称MCDL。使用该语言可以极大降低存储器编译器的开发难度,从而使硬件工程师自身就能完成编译器的开发;同时也极大加速了存储器设计的收敛过程,缩减了开发周期与成本。
发明内容
附图1是使用本发明进行存储器编译器开发的系统框图。其中MCDL语言库是已经实现的一组计算机程序库,存储器底层单元和拼接规则也已经定义完成。在此基础上,硬件工程师使用MCDL语言编写版图拼接程序,网表连接程序,和仿真测量程序。由于MCDL语言的简单性,硬件工程师完全可以自主完成程序的编制。连接到MCDL实现库后,这些程序就可以分别产生GDSII版图,CDL网表,延时插值数据库等一系列结果文件。在验证上述程序结果的正确性后,通过MCDL可以打包产生一个适用于该处储器的编译器。IC芯片设计人员使用该编译器,指定相关参数,例如Words,Bits,Mux,就可以马上产生需要的存储器设计了。
MCDL语言是一种脚本语言,采用TCL(Toolkit Command Language)语言作为基础实现,即支持的变量存取,表达式计算,和控制结构(if,while,for)等都与TCL语言一致。MCDL语言的核心是提供了一组函数,用以方便的定义版图的拼接,网表的连接,和仿真测量的提取。下面列出主要的函数。
1)MCDL_CreateCell:该函数生成一个单元。一个存取器设计是从底向上由层次化的多个单元构建的,最底层的称为Leaf Cell。例如,一个BitCell单元由4个CELL_6T单元拼接而成,多个BitCell单元拼接生成RowCol单元,多个RowCol单元再拼接生成ArrayLeft单元。MCDL_CreateCell函数就用于创建这种层次化的结构。
2)MCDL_Place:该函数用于版图单元拼接。一个版图单元的放置由两个参数决定,一个是其坐标(x,y),一个是其旋转方向,有8种旋转方向,分别为R0,R90,R180,R270,MX,MXR90,MY,MYR90。坐标需要根据旋转方向进行调整。在MCDL中,单元放置不需要考虑坐标,而只需要考虑放置在已有图形的上方,下方,左方,还是右方,大大简化了拼接过程。如附图2所示,先放置一个R0的单元A,再在A的上方放置一个MX的单元B,最后在AB的右方放置R90的单元C。3条MCDL语句如下:
MCDL_Place Left A R0
MCDL_Place Top B MX
MCDL_Place Right C R90
每一次放置,MCDL都会检查拼接的单元是否对齐,例如检查A和B的宽度是否一致,C的高度是否等于A加B的高度。
3)MCDL_Connect:该函数用于网表单元连接。格式采用硬件设计人员熟悉的Verilog连接语句形式,支持按名连接和按位置连接两种形式,支持数据向量连接,并且,当局部信号和端口同名时,可以忽略连接不写,这极大简化了连接过程,据统计代码量平均要比Verilog减少60%。
4)MCDL_PromapLabel:该函数用于产生顶层单元的端口名及图形。
5)MCDL_AddStimus:该函数用于产生仿真激励。支持Pulse,Sin,和PWL等多种格式的波形定义。
6)MCDL_Meas:该函数用于从仿真结果数据中提取相应的测量值,对一组指定大小的存储器运行该函数就可以形成最终的插值数据库。测量类型包括:建立时间(如附图3),即在时钟信号有效前,数据信号必须已有效的时间;保持时间(如附图3),即在时钟信号有效后,数据信号必须保持有效的时间;传输时间,即在输入信号有效后到输出信号有效的时间等等。根据上升沿和下降沿以及有效百分比,上述测量有多种组合。
7)MCDL_GenLib:该函数用于从插值数据库中根据指定的存储器参数,例如Words,Bits,Mux,温度,频率等,综合出描述存储器时延和功率的LIB文件。这里插值的意义在于:由于存储器可取值的大小范围很大,例如Words可取值范围在8至4096,Bits可取值范围在2至64,Mux可取值范围在8,16,32。所以,我们不可能对每一种大小都进行仿真得到其时延特性。我们只选取几个边界和中间值的存储器实例进行仿真,用它们的结果构成插值数据库。每当我们需要一个特定大小的存储器性能时,就通过插值算法根据数据库中的已有数据综合出该需求存储器的性能。除了实现多维插值外,MCDL还可以对插值数据进行缩放(Margin)操作,例如将数据统一增加20%的余量,以确保电路工作稳定。
打包后的编译器具有如下特点:1)所有程序及底层单元数据库都进行加密;2)产生的版图和网表都进行了打散处理。上述两点用于有效保护存储器的设计思想。
附图说明
图1:生成存储器编译器的系统框图。
图2:MCDL_Place命令示例。
图3:建立时间与保持时间的时序图。
图4:存储器编译器生成流程。
具体实施方式:
参见附图4:
第一步:硬件工程师设计存储器底层单元与拼接规则。
第二步:使用MCDL语言编写版图拼接程序,执行该程序,即可得到指定Words,Bits,Mux的存储器GDSII版图以及描述存储器端口的LEF文件。
第三步:使用MCDL语言编写网表连接程序,执行该程序,即可得到指定Words,Bits,Mux的存储器CDL网表。这一步可以和第二步并行执行。
第四步:使用MCDL语言编写仿真激励及测量程序,执行该程序,程序会自动对特定的存储器例化器件调用SPICE仿真,并提取得到各类时序和功耗的插值数据库。
第五步:对特定大小的存储器例化器件调用LVS比较产生的GDSII版图和CDL网表是否一致,验证版图拼接程序和网表连接程序的正确性。
第六步:将版图拼接程序,网表连接程序,插值数据库,以及底层单元GDSII文件打包生成该存储器的编译器。包中各种文件进行加密,以保护存储器的设计思想。
最后,生成的编译器可以发布给IC芯片设计人员,由其根据芯片需要产生不同大小的存储器供使用。

一种构造存储器编译软件的流程方法.pdf_第1页
第1页 / 共7页
一种构造存储器编译软件的流程方法.pdf_第2页
第2页 / 共7页
一种构造存储器编译软件的流程方法.pdf_第3页
第3页 / 共7页
点击查看更多>>
资源描述

《一种构造存储器编译软件的流程方法.pdf》由会员分享,可在线阅读,更多相关《一种构造存储器编译软件的流程方法.pdf(7页珍藏版)》请在专利查询网上搜索。

1、(10)申请公布号 (43)申请公布日 (21)申请号 201310356112.6(22)申请日 2013.08.15G06F 17/50(2006.01)G06F 9/44(2006.01)(71)申请人天津蓝海微科技有限公司地址 300457 天津市开发区第四大街80号天大科技园A1楼二层213室(72)发明人王勇 侯劲松 张萍 李宁(54) 发明名称一种构造存储器编译软件的流程方法(57) 摘要本发明涉及集成电路辅助设计软件工具中存储器设计领域。存储器设计中,由于硬件设计人员一般不具备软件开发能力,所以存储器编译软件的开发一般是委托给软件设计公司,价格昂贵。本发明设计并实现了一种适用于。

2、硬件工程师的存储器编译器描述语言,通过该语言可以有效地描述版图拼接,网表连接,和仿真测量。这些程序经过打包后就生成了存储器编译器。使用该编译器最终产生存储器的GDSII版图,CDL网表,和Lib时延文件。本发明可以极大降低存储器编译器的开发难度,从而使硬件工程师自身就能完成编译器的开发,这极大加速了存储器设计的收敛过程,缩减了开发周期与成本。(51)Int.Cl.(19)中华人民共和国国家知识产权局(12)发明专利申请权利要求书1页 说明书3页 附图2页(10)申请公布号 CN 104376137 A(43)申请公布日 2015.02.25CN 104376137 A1/1页21.一种构造存储。

3、器编译软件的流程方法,基本含义是:设计并实现一种适用于硬件工程师的存储器编译器描述语言。硬件工程师可以用其来描述版图拼接,网表连接,和仿真测量,这些程序经过打包后生成存储器的编译器,并最终产生存储器的GDSII版图,CDL网表,和Lib时延文件。使用该语言可以极大降低存储器编译器的开发难度,从而使硬件工程师自身就能完成编译器的开发,加速存储器设计的收敛过程,缩减开发周期与成本。具有如下特点:1)定义并实现了用于生成存储器编译器的一种脚本语言,使用其可以方便的定义版图的拼接,网表的连接,和仿真测量的提取。2)版图拼接使用相对位置替代绝对坐标,极大简化了拼接中的计算工作量;对齐检查则保证拼接正确性。

4、,加速拼接过程的收敛。3)支持多维插值运算,对插值结果可以进行Margin修正以保证电路的稳定工作。4)编译器内对程序及底层单元数据库进行加密,并且对最终拼接结果进行打散处理,有效保护了存储器的设计思想。权 利 要 求 书CN 104376137 A1/3页3一种构造存储器编译软件的流程方法技术领域0001 本发明涉及集成电路辅助设计软件工具中存储器设计领域。背景技术0002 存储器设计(Memory)是集成电路开发过程中的一个专门领域,存储器包括SRAM,DRAM,ROM,Register File,Flash等类型。为了能使存储器在多款IC芯片中使用,一般是将存储器划分成多个底层单元(Le。

5、af Cell),再根据一定的拼接规则将底层单元拼接成指定大小的存储器,例如字(Words)的容量,每个字有多少位(Bits),以及多路复用器(Mux)的宽度。除了GDSII版图外,一个存储器的完整开发还包括CDL网表,LEF端口描述,以及LIB时序性能表等。0003 手工拼接存储器既费时又容易出错,所以每一存储器最终都会配套一款自动编译软件,叫做存储器编译器(Memory Compiler),可以根据用户指定的Words,Bits,和Mux产生对应的存储器。由于硬件设计人员一般不具备软件开发能力,所以存储器编译软件的开发一般是委托给软件设计公司。也有专门从事存储器开发的IP服务公司,他们根据。

6、存储器的规格说明完成硬件及软件的所有开发,价格昂贵。0004 本发明设计了一种适用于硬件工程师的存储器编译器描述语言(Memory Compiler Description Language),简称MCDL。使用该语言可以极大降低存储器编译器的开发难度,从而使硬件工程师自身就能完成编译器的开发;同时也极大加速了存储器设计的收敛过程,缩减了开发周期与成本。发明内容0005 附图1是使用本发明进行存储器编译器开发的系统框图。其中MCDL语言库是已经实现的一组计算机程序库,存储器底层单元和拼接规则也已经定义完成。在此基础上,硬件工程师使用MCDL语言编写版图拼接程序,网表连接程序,和仿真测量程序。由。

7、于MCDL语言的简单性,硬件工程师完全可以自主完成程序的编制。连接到MCDL实现库后,这些程序就可以分别产生GDSII版图,CDL网表,延时插值数据库等一系列结果文件。在验证上述程序结果的正确性后,通过MCDL可以打包产生一个适用于该处储器的编译器。IC芯片设计人员使用该编译器,指定相关参数,例如Words,Bits,Mux,就可以马上产生需要的存储器设计了。0006 MCDL语言是一种脚本语言,采用TCL(Toolkit Command Language)语言作为基础实现,即支持的变量存取,表达式计算,和控制结构(if,while,for)等都与TCL语言一致。MCDL语言的核心是提供了一组。

8、函数,用以方便的定义版图的拼接,网表的连接,和仿真测量的提取。下面列出主要的函数。0007 1)MCDL_CreateCell:该函数生成一个单元。一个存取器设计是从底向上由层次化的多个单元构建的,最底层的称为Leaf Cell。例如,一个BitCell单元由4个CELL_6T单元拼接而成,多个BitCell单元拼接生成RowCol单元,多个RowCol单元再拼接生成说 明 书CN 104376137 A2/3页4ArrayLeft单元。MCDL_CreateCell函数就用于创建这种层次化的结构。0008 2)MCDL_Place:该函数用于版图单元拼接。一个版图单元的放置由两个参数决定,一。

9、个是其坐标(x,y),一个是其旋转方向,有8种旋转方向,分别为R0,R90,R180,R270,MX,MXR90,MY,MYR90。坐标需要根据旋转方向进行调整。在MCDL中,单元放置不需要考虑坐标,而只需要考虑放置在已有图形的上方,下方,左方,还是右方,大大简化了拼接过程。如附图2所示,先放置一个R0的单元A,再在A的上方放置一个MX的单元B,最后在AB的右方放置R90的单元C。3条MCDL语句如下:0009 MCDL_Place Left A R00010 MCDL_Place Top B MX0011 MCDL_Place Right C R900012 每一次放置,MCDL都会检查拼接。

10、的单元是否对齐,例如检查A和B的宽度是否一致,C的高度是否等于A加B的高度。0013 3)MCDL_Connect:该函数用于网表单元连接。格式采用硬件设计人员熟悉的Verilog连接语句形式,支持按名连接和按位置连接两种形式,支持数据向量连接,并且,当局部信号和端口同名时,可以忽略连接不写,这极大简化了连接过程,据统计代码量平均要比Verilog减少60。0014 4)MCDL_PromapLabel:该函数用于产生顶层单元的端口名及图形。0015 5)MCDL_AddStimus:该函数用于产生仿真激励。支持Pulse,Sin,和PWL等多种格式的波形定义。0016 6)MCDL_Meas。

11、:该函数用于从仿真结果数据中提取相应的测量值,对一组指定大小的存储器运行该函数就可以形成最终的插值数据库。测量类型包括:建立时间(如附图3),即在时钟信号有效前,数据信号必须已有效的时间;保持时间(如附图3),即在时钟信号有效后,数据信号必须保持有效的时间;传输时间,即在输入信号有效后到输出信号有效的时间等等。根据上升沿和下降沿以及有效百分比,上述测量有多种组合。0017 7)MCDL_GenLib:该函数用于从插值数据库中根据指定的存储器参数,例如Words,Bits,Mux,温度,频率等,综合出描述存储器时延和功率的LIB文件。这里插值的意义在于:由于存储器可取值的大小范围很大,例如Wor。

12、ds可取值范围在8至4096,Bits可取值范围在2至64,Mux可取值范围在8,16,32。所以,我们不可能对每一种大小都进行仿真得到其时延特性。我们只选取几个边界和中间值的存储器实例进行仿真,用它们的结果构成插值数据库。每当我们需要一个特定大小的存储器性能时,就通过插值算法根据数据库中的已有数据综合出该需求存储器的性能。除了实现多维插值外,MCDL还可以对插值数据进行缩放(Margin)操作,例如将数据统一增加20的余量,以确保电路工作稳定。0018 打包后的编译器具有如下特点:1)所有程序及底层单元数据库都进行加密;2)产生的版图和网表都进行了打散处理。上述两点用于有效保护存储器的设计思。

13、想。附图说明0019 图1:生成存储器编译器的系统框图。0020 图2:MCDL_Place命令示例。0021 图3:建立时间与保持时间的时序图。说 明 书CN 104376137 A3/3页50022 图4:存储器编译器生成流程。具体实施方式 :0023 参见附图4:0024 第一步:硬件工程师设计存储器底层单元与拼接规则。0025 第二步:使用MCDL语言编写版图拼接程序,执行该程序,即可得到指定Words,Bits,Mux的存储器GDSII版图以及描述存储器端口的LEF文件。0026 第三步:使用MCDL语言编写网表连接程序,执行该程序,即可得到指定Words,Bits,Mux的存储器C。

14、DL网表。这一步可以和第二步并行执行。0027 第四步:使用MCDL语言编写仿真激励及测量程序,执行该程序,程序会自动对特定的存储器例化器件调用SPICE仿真,并提取得到各类时序和功耗的插值数据库。0028 第五步:对特定大小的存储器例化器件调用LVS比较产生的GDSII版图和CDL网表是否一致,验证版图拼接程序和网表连接程序的正确性。0029 第六步:将版图拼接程序,网表连接程序,插值数据库,以及底层单元GDSII文件打包生成该存储器的编译器。包中各种文件进行加密,以保护存储器的设计思想。0030 最后,生成的编译器可以发布给IC芯片设计人员,由其根据芯片需要产生不同大小的存储器供使用。说 明 书CN 104376137 A1/2页6图1图2图3说 明 书 附 图CN 104376137 A2/2页7图4说 明 书 附 图CN 104376137 A。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1