一种集成电路的Memory集成方法与流程
未命名
09-15
阅读:55
评论:0

一种集成电路的memory集成方法
技术领域
1.本发明涉及集成电路领域,特别涉及一种集成电路的memory集成方法。
背景技术:
2.在集成电路设计中,会经常使用memory(存储器),其实现与芯片工艺、eda厂商强相关,芯片设计过程中,需要使用供应商提供的工具来进行配置memory的width(宽度)、depth(深度)、bank(分块)、mux(多路选择器)、type(类型)以及其他一些参数,完成合适的配置后,再生成具体的memory。受制于step(步长)、mux、depth、width等限制,生成的memory不一定满足用户的需求,也可能造成面积的浪费,时序也可能不满足,还有个原因,不同厂商提供的memory生成工具使用方法、参数都不太一致,对于一般的设计人员来说,生成memory是一件繁琐、容易出错,且容易迭代的工作。亟需一种高效的方法来产生、封装、集成集成电路设计中的memory工作。
技术实现要素:
3.针对现有技术中存在的问题,提供了一种集成电路的memory集成方法,通过建立通用的memory需求界面并结合最小面积筛选思想,减少项目工作迭代,在封装时,采用分层次封装,每一层完成不同功能分工,有利于屏蔽memory的工艺,供应商等底层细节。
4.本发明采用的技术方案如下:一种集成电路的memory集成方法,包括:
5.建立通用用户需求表与实例化memory通用接口;
6.对通用用户需求表中用户需求进行分解,确定总面积最小的物理memory;
7.通过功能分工对memory进行层次化封装。
8.作为一种优选方案,所述通用用户需求表将memory涉及的需求特性形成配置项,包括深度、宽度、byte写使能、pg使能、冗余参数以及memory的类型。
9.作为一种优选方案,在实例化memory通用接口时,配置好接口信号及参数,做到与工艺无关;同时还提供eda仿真和fpga验证接口。
10.作为一种优选方案,所述分解过程为:
11.s1、针对建立的用户需求表,按照配置项顺序,对每个配置项进行拆分筛选处理;
12.s2、在一个配置项拆分筛选结束后,判断其筛选结果是否满足要求,若满足则记录该配置项,同时比较该配置项与之前的筛选结果,记录最优的配置项;
13.s3、依次遍历完所有的配置项,若拆分筛选成功,记录最优结果与所有满足条件的配置项;若没有找到满足的配置项,则记录相应拆分筛选信息,在后续过程中调整筛选的拆分粒度。
14.作为一种优选方案,所述调整筛选的拆分粒度方法包括:调整宽度拆分粒度、深度拆分力度、宽长比、时序裕量。
15.作为一种优选方案,所述步骤s2中,配置项拆分筛选的具体方法为:
16.s21、根据用户需求和该配置项的深度、宽度要求,计算得到最小拆分基数,再结合
深度和宽度的拆分粒度,计算出具体的拆分表项;
17.s22、依次对拆分表项进行拆分,利用拆分后的配置生成对应的memory,根据用户要求的频率,计算该配置项生成的memory时序是否满足,如果满足,则跳出该子函数,进入下一个memory配置项;如果遍历完针对该配置选项的拆分,也没找到满足条件的memory,同样退出该子函数,进入下一个memory配置项。
18.作为一种优选方案,所述步骤s22中,对拆分表项进行拆分时,若存在拆分后配置为小数,则需要进行向上取整处理。
19.作为一种优选方案,所述通过功能分工对memory进行层次化封装过程为:
20.第一层:物理层封装,针对不同的物理memory进行封装,并屏蔽物理层细节;
21.第二层:物理层面到用户需求层面的封装,将拆分的物理memory调整为用户需求对应的第第三层:将同类型的memory通过不同参数进行实例化,所有同类型memory调用同一个文件模块;
22.第四层:封装fpga和eda仿真模型文件,并宏定义隔开。
23.作为一种优选方案,在物理层封装时,增加自动门控。
24.与现有技术相比,采用上述技术方案的有益效果为:本发明能够针对工艺、供应商不同的memory工具,结合项目的具体memory需求,屏蔽底层实现,建立通用memory的顶层,在项目中方便明了调用通用顶层,提高项目的memory集成效率,满足项目在前期验证、后期综合的使用,提升集成电路项目的研发管理水平。本发明可以应用在所有芯片开发项目中。
附图说明
25.图1为本发明提出了集成电路的memory集成方法示意图。
26.图2为本发明一实施例中具体的通用用户需求表示意图。
具体实施方式
27.下面详细描述本技术的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的模块或具有相同或类似功能的模块。下面通过参考附图描述的实施例是示例性的,仅用于解释本技术,而不能理解为对本技术的限制。相反,本技术的实施例包括落入所附加权利要求书的精神和内涵范围内的所有变化、修改和等同物。
28.针对现有技术中生成的memory不一定满足用户的需求,也可能造成面积的浪费,时序也可能不满足,以及不同厂商提供的memory生成工具使用方法、参数都不太一致的问题,本发明实施例提出一种集成电路的memory集成方法,结合项目的具体memory需求,屏蔽底层实现,采用通用memory的顶层,在项目中方便明了调用通用顶层,提高项目的memory集成效率。具体方案如下:
29.如图1所示,一种集成电路的memory集成方法,包括:
30.建立通用用户需求表与实例化memory通用接口;
31.对通用用户需求表中用户需求进行分解,确定总面积最小的物理memory;
32.通过功能分工对memory进行层次化封装。
33.在一个实施例中,通过通用用户需求表与memory通用接口组成了通用的memory需
求界面。
34.其中,通用用户需求表考虑了大部分项目memory需求特性,包括了深度、宽度、byte写使能、pg使能、redundancy等常见用户特性,通用化了memory的类型:sp、dp、tp、rom,将各个特性形成memory的配置项。在实际使用过程中,用户按照自身需求配置通用用户需求表,将该表作为用户的需求接口,来管理项目的memory需求。图2为一实施例中具体的通用用户需求表示意图。
35.而定义用户通用接口的目的主要是方便用户使用,通过归纳整理接口信号及参数,实例化通用接口,做到与工艺无关,同时考虑了前期eda仿真和fpga验证接口,可在项目早期开展工作开发验证工作,不受制于真实memory是否生成。
36.在完成用户需求配置后,在本实施例中,采用了基于项目时序要求的memory筛选方法对满足的memory进行筛选,即在满足时序要求的基础上,使用脚本对用户需求进行分解,采用“冒泡法”在满足时序要求的基础上筛选总面积最小的物理memory,以达到减少芯片整体面积的目的,同时在拆分过程中,不是基于常规的二分法进行,而是采用自然数拆分法则。基于时序优先下的最小面积筛选思想,能够有效减少项目工作迭代。具体的:
37.针对用户需求,遍历所有的memory配置项找到一个最优的拆分结果。按照配置项的顺序,对每个配置项进行拆分筛选处理,在一个memory配置项拆分筛选结束后,判断其筛选结果,若筛选得到的配置项满足要求,则记录该配置项,同时将该配置项的结果与之前的筛选结果进行比较,记录最优的筛选结果,同时记录所有满足条件的配置项,便于后续查询使用。而如果没有找到合适的拆分配置项,则记录该次的拆分筛选信息,在后续过程中可以调整筛选的拆分粒度。在一个实施例中,调整筛选的拆分粒度方法包括:调整宽度拆分粒度(拆分的更细)、深度拆分力度(拆分的更细)、宽长比、时序裕量等。
38.针对单个配置项的具体拆分方法包括:
39.根据用户需求和该配置项的深度、宽度要求,计算出最小的拆分基数,在最小拆分基数的基础上,根据深度和宽度的拆分粒度,计算出具体的拆分表项;依次对拆分表项进行拆分,利用拆分后的配置生成对应的memory,根据用户要求的频率,计算该配置项生成的memory时序是否满足,如果满足,则跳出该子函数,进入下一个memory配置项;如果遍历完针对该配置选项的拆分,也没找到满足条件的memory,同样退出该子函数,进入下一个memory配置项。
40.下面以一个具体拆分实例对该过程进行进一步说明:
41.用户配置参数(sp、1024x800、500m),针对rfsp(sp ram的类型,寄存器文件的单端口memory)下compiler(memory生成工具)配置项,计算最小拆分基数:需要将1024x800拆分为256x160的20个memory,生成该配置的memory信息,基数如下:深度1024/256=4,宽度800/160=5。
42.若拆分粒度配置为深度3,宽度2。则深度方向拆成[1024/4,
[0043]
1024/5,1024/7]=[256,204.8,146.28],宽度方向拆成[800/5,800/6]=[160,133.333],因此针对该配置项,生成如下6个配置的memory:
[0044]
memory1(256,160),memory2(204.8,160),memory3(146.28,160),memory4(256,133.333),memor y5(204.8,133.333),memory6(146.28,133.333)。在实际处理时,上述小数需要向上取整,同时需要考虑memory的深度和宽度的步长step。
[0045]
在完成memory的生成之后,需要进行封装。本实施例中,提出分层次封装memory,每一层完成不同功能分工,有利于屏蔽memory的工艺、供应商等底层细节,该封装分为了四层:
[0046]
第一层:物理层的封装,针对不同的物理memory进行分装,在该层总屏蔽了物理层的细节,提炼出功能意义的信号,同时在该层面考虑了低功耗,增加了自动门控,减少功耗。
[0047]
第二层:从物理层面到用户需求层面的封装,将拆分的物理memory变成用户需求对应的memory。
[0048]
第三层:将同类型的memory通过不同的参数进行实例化,这样将所有的同类型的memory可以调用同一个文件模块。
[0049]
第四层:增加了fpga和仿真模型文件,用宏定义隔开,以便于项目展开eda验证或者fpga验证;
[0050]
通过以上四层封装,屏蔽了与工艺,供应商无关的细节,也有利于项目早期开展工作,尽快进度。
[0051]
本发明能够针对工艺、供应商不同的memory工具,结合项目的具体memory需求,屏蔽底层实现,实现通用memory的顶层,在项目中方便明了调用通用顶层,提高项目的memory集成效率,满足项目在前期验证、后期综合的使用,提升集成电路项目的研发管理水平。本发明可以应用在所有芯片开发项目中。
[0052]
实施例1
[0053]
本实施例提出了一种集成电路的memory集成方法,包括:
[0054]
建立通用用户需求表与实例化memory通用接口;
[0055]
对通用用户需求表中用户需求进行分解,确定总面积最小的物理memory;
[0056]
通过功能分工对memory进行层次化封装。
[0057]
实施例2
[0058]
在实施例1的基础上,本实施例中通用用户需求表将memory涉及的需求特性形成配置项,包括深度、宽度、byte写使能、pg使能、冗余参数以及memory的类型。
[0059]
实施例3
[0060]
在实施例1或2的基础上,本实施例中在实例化memory通用接口时,配置好接口信号及参数,做到与工艺无关;同时还提供eda仿真和fpga验证接口。
[0061]
实施例4
[0062]
在实施例1的基础上,本实施例中所述分解过程为:
[0063]
s1、针对建立的用户需求表,按照配置项顺序,对每个配置项进行拆分筛选处理;
[0064]
s2、在一个配置项拆分筛选结束后,判断其筛选结果是否满足要求,若满足则记录该配置项,同时比较该配置项与之前的筛选结果,记录最优的配置项;
[0065]
s3、依次遍历完所有的配置项,若拆分筛选成功,记录最优结果与所有满足条件的配置项;若没有找到满足的配置项,则记录相应拆分筛选信息,在后续过程中调整筛选的拆分粒度。
[0066]
实施例5
[0067]
在实施例4的基础上,本实施例中所述调整筛选的拆分粒度方法包括:调整宽度拆分粒度、深度拆分力度、宽长比、时序裕量。
[0068]
实施例6
[0069]
在实施例4的基础上,本实施例中所述步骤s2中,配置项拆分筛选的具体方法为:
[0070]
s21、根据用户需求和该配置项的深度、宽度要求,计算得到最小拆分基数,再结合深度和宽度的拆分粒度,计算出具体的拆分表项;
[0071]
s22、依次对拆分表项进行拆分,利用拆分后的配置生成对应的memory,根据用户要求的频率,计算该配置项生成的memory时序是否满足,如果满足,则跳出该子函数,进入下一个memory配置项;如果遍历完针对该配置选项的拆分,也没找到满足条件的memory,同样退出该子函数,进入下一个memory配置项。
[0072]
实施例7
[0073]
在实施例6的基础上,本实施例中所述步骤s22中,对拆分表项进行拆分时,若存在拆分后配置为小数,则需要进行向上取整处理。
[0074]
实施例8
[0075]
在实施例4的基础上,本实施例中所述通过功能分工对memory进行层次化封装过程为:
[0076]
第一层:物理层封装,针对不同的物理memory进行封装,并屏蔽物理层细节;
[0077]
第二层:物理层面到用户需求层面的封装,将拆分的物理memory调整为用户需求对应的第第三层:将同类型的memory通过不同参数进行实例化,所有同类型memory调用同一个文件模块;
[0078]
第四层:封装fpga和eda仿真模型文件,并宏定义隔开。
[0079]
实施例9
[0080]
在实施例8的基础上,本实施例中在物理层封装时,增加自动门控。
[0081]
通过上述实施例1~实施例9可较好地实现本发明。
[0082]
需要说明的是,在本发明实施例的描述中,除非另有明确的规定和限定,术语“设置”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是直接连接,也可以通过中间媒介间接连接。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义;实施例中的附图用以对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
[0083]
尽管上面已经示出和描述了本技术的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本技术的限制,本领域的普通技术人员在本技术的范围内可以对上述实施例进行变化、修改、替换和变型。
技术特征:
1.一种集成电路的memory集成方法,其特征在于,包括:建立通用用户需求表与实例化memory通用接口;对通用用户需求表中用户需求进行分解,确定总面积最小的物理memory;通过功能分工对memory进行层次化封装。2.根据权利要求1所述的集成电路的memory集成方法,其特征在于,所述通用用户需求表将memory涉及的需求特性形成配置项,包括深度、宽度、byte写使能、pg使能、冗余参数以及memory的类型。3.根据权利要求1或2所述的集成电路的memory集成方法,其特征在于,在实例化memory通用接口时,配置好接口信号及参数,做到与工艺无关;同时还提供eda仿真和fpga验证接口。4.根据权利要求1所述的集成电路的memory集成方法,其特征在于,所述分解过程为:s1、针对建立的用户需求表,按照配置项顺序,对每个配置项进行拆分筛选处理;s2、在一个配置项拆分筛选结束后,判断其筛选结果是否满足要求,若满足则记录该配置项,同时比较该配置项与之前的筛选结果,记录最优的配置项;s3、依次遍历完所有的配置项,若拆分筛选成功,记录最优结果与所有满足条件的配置项;若没有找到满足的配置项,则记录相应拆分筛选信息,在后续过程中调整筛选的拆分粒度。5.根据权利要求4所述的集成电路的memory集成方法,其特征在于,所述调整筛选的拆分粒度方法包括:调整宽度拆分粒度、深度拆分力度、宽长比、时序裕量。6.根据权利要求4或5所述的集成电路的memory集成方法,其特征在于,所述步骤s2中,配置项拆分筛选的具体方法为:s21、根据用户需求和该配置项的深度、宽度要求,计算得到最小拆分基数,再结合深度和宽度的拆分粒度,计算出具体的拆分表项;s22、依次对拆分表项进行拆分,利用拆分后的配置生成对应的memory,根据用户要求的频率,计算该配置项生成的memory时序是否满足,如果满足,则跳出该子函数,进入下一个memory配置项;如果遍历完该配置选项的拆分,也没找到满足条件的memory,同样退出该子函数,进入下一个memory配置项。7.根据权利要求6所述的集成电路的memory集成方法,其特征在于,所述步骤s22中,对拆分表项进行拆分时,若存在拆分后配置为小数,则需要进行向上取整处理。8.根据权利要求4所述的集成电路的memory集成方法,其特征在于,所述通过功能分工对memory进行层次化封装过程为:第一层:物理层封装,针对不同的物理memory进行封装,并屏蔽物理层细节;第二层:物理层面到用户需求层面的封装,将拆分的物理memory调整为用户需求对应的第第三层:将同类型的memory通过不同参数进行实例化,所有同类型memory调用同一个文件模块;第四层:封装fpga和eda仿真模型文件,并宏定义隔开。9.根据权利要求8所述的集成电路的memory集成方法,其特征在于,在物理层封装时,增加自动门控。
技术总结
本发明提供了一种集成电路的Memory集成方法,包括:建立通用用户需求表与实例化Memory通用接口;对通用用户需求表中用户需求进行分解,确定总面积最小的物理Memory;通过功能分工对Memory进行层次化封装。本发明能够针对工艺、供应商不同的Memory工具,结合项目的具体Memory需求,屏蔽底层实现,建立通用Memory的顶层,在项目中方便明了调用通用顶层,提高项目的Memory集成效率,满足项目在前期验证、后期综合的使用,提升集成电路项目的研发管理水平。本发明可以应用在所有芯片开发项目中。项目中。项目中。
技术研发人员:秦思林
受保护的技术使用者:成都电科星拓科技有限公司
技术研发日:2023.06.25
技术公布日:2023/9/13
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/