一种基于神经网络的芯片版图设计方法和系统及制作方法与流程

文档序号:21849788发布日期:2020-08-14 17:25阅读:418来源:国知局
一种基于神经网络的芯片版图设计方法和系统及制作方法与流程

本发明属于数字集成电路技术领域,涉及一种基于神经网络的芯片版图设计方法和系统以及基于该方法设计得到的集成电路版图的芯片制作方法。



背景技术:

随着科技的进步,集成电路技术已经进入了纳米时代。集成电路设计方法涉及面广,内容复杂,其中版图设计是集成电路物理实现的基础技术。版图设计的质量好坏直接会影响到集成电路的功耗、性能和面积。在系统芯片设计中,集成了接口单元、标准逻辑单元、模拟与混合信号模块,存储器和多种ip模块。所有这些模块的物理实现,全都离不开基本的版图设计。

伴随着集成电路内部集成的晶体管数量的成倍增加和产品迭代速度的逐渐加快,在集成电路技术中,eda工具已成为必备基础手段,一系列集成电路版图设计方法的研究成果在其中得以体现,并在设计过程中发挥作用,ip核复用技术也已被广泛使用。但是,在数字芯片设计生产过程中,往往需要人工摆放各种物理单元,不仅会增加大量的人力成本,而且在人为摆放过程中,需要花费大量的精力进行不断迭代摆放,大幅降低数字芯片的设计效率,且流片成功率的大小受数字集成电路版图摆放人员经验的高低影响巨大。还因为宏单元数量过多而导致系统自动摆放功能不能满足目标版图设计规则,不能达到预设性能。

因此,本发明针对上述问题,提出了一种基于神经网络的芯片版图设计方法和系统及芯片制作方法。



技术实现要素:

本发明的目的在于:提供了一种基于神经网络的芯片版图设计方法和系统及制作方法,解决了现有数字集成电路版图设计需要人为摆放物理单元和人为进行迭代摆放,导致人力成本较大,设计效率较低,以及影响流片成功率的问题。

本发明采用的技术方案如下:

一种基于神经网络的芯片版图设计方法,包括:

s1:采集数字集成电路的rtl代码,识别得到rtl代码所代表的物理单元,再获取每个物理单元对应的物理版图效应相关参数;

s2:分类步骤s1中识别得到的物理单元,分类类别包括基本逻辑单元和宏单元,并读入数字集成电路目标版图的设计规则数据,所述设计规则数据包括数字集成电路每一层金属的基本属性;

s3:设置数字集成电路目标版图的性能,得到数字集成电路目标版图的设计参数,根据该设计参数设置放置阻隔层和布线阻隔层;

s4:训练神经网络,根据训练好的神经网络对步骤s2中分类后的物理单元进行预摆放,输出预摆放后各物理单元的位置坐标,再进行实际摆放,并添加包括阱单元的特殊物理单元;

s5:对步骤s4中摆放好的物理单元设置电源和接地网络,然后检查设计规则并仿真,得到满足预设性能的目标版图。

进一步地,所述步骤s2中的基本属性包括最小宽度、最大宽度、最小间距和最大密度。

进一步地,所述步骤s4中训练神经网络包括:

s41:收集各种常用物理单元的尺寸信息、形状信息、引脚信息、功能属性并将其作为待训练神经网络的原始数据集;

s42:选择流片成功率较高的数字集成电路版图制作标注数据集,标注原始数据集中的宏单元的位置优先级,根据数字集成电路版图的面积大小和利用率将数字集成电路版图中相互间连接引脚较多的宏单元一起摆放在数字集成电路版图的外围,再将流片成功率较高的数字集成电路版图各物理单元的相对位置信息作为目标集,与步骤s41的原始数据集一起作为待训练神经网络的训练集,并将训练集的五分之一作为测试集;

s43:根据训练集的数据大小维度确定待训练神经网络的输入端口数目,并根据特定需求搭建对应的神经网络;

s44:将训练集数据传输到待训练神经网络中计算更新权重值,并在迭代训练到神经网络的输出数据集与目标数据集一致时,使用测试集进行测试,直到神经网络的准确率达到目标要求时停止训练,便得到训练好的神经网络。

进一步地,所述步骤s4中根据训练好的神经网络对步骤s2中分类后的物理单元进行预摆放包括:

采用已训练好的神经网络,对宏单元进行分类,分类包括存储单元和ip核,根据尺寸大小、所属金属层以及不同功能优先摆放宏单元,且根据需求不同每个宏单元之间保留适当的间距,再进行基本逻辑单元的摆放,完成预摆放。

进一步地,所述步骤s5中进行仿真包括:

通过仿真工具对预摆放完成的数字集成电路版图的版图效应进行仿真,所述版图效应包括i/o的摆放顺序、版图功耗大小、版图内部不同位置物理单元的电压降、模拟信号和数字信号的隔离度、内部数据通路是否最短、关键时间路径的模块距离是否最短、走线能否绕通、是否达到版图最优利用率以及时序是否收敛。

一种基于神经网络的芯片版图设计系统,基于上述数字集成电路版图设计方法的系统,包括

数据采集模块:采集数字集成电路的rtl代码,并将其转化为rtl代码对应的物理单元;

分类模块:将数据采集模块转化的物理单元进行分类,并读入数字集成电路目标版图的设计规则数据;

版图生成模块:训练神经网络并根据训练好的神经网络对分类后的物理单元进行预摆放,智能化生成满足设定性能的数字集成电路版图并进行实际摆放;

版图仿真模块:对版图生成模块已摆放的物理单元设置电源和接地网络,检查设计规则并仿真,得到满足预设性能的目标版图。

进一步地,所述版图生成模块包括神经网络训练子模块和冗余单元增加子模块;

所述神经网络训练子模块根据数据采集模块和分类模块得到的物理单元,得到训练集和测试集,根据训练集搭建并训练神经网络,得到训练好的神经网络,并根据训练好的神经网络对分类模块得到的物理单元进行智能预摆放后输出各物理单元的位置坐标;

所述冗余单元增加子模块根据各物理单元的位置坐标进行实际摆放,并添加包括阱单元的特殊物理单元。

一种基于神经网络的芯片制作方法,采用上述的数字集成电路版图设计方法设计得到的目标版图来制作数字集成电路芯片。

综上所述,由于采用了上述技术方案,本发明的有益效果是:

一种基于神经网络的芯片版图设计方法和系统及制作方法,引入了神经网络结构,大幅度增强了数字集成电路版图设计方法的智能化程度,通过数字集成电路版图的智能化摆放,大幅减轻了数字集成电路版图设计工程师的工作量,为后期数字集成电路版图的后仿及验证提供了更充足的时间,并且提高了数字集成电路的设计效率以及数字集成电路的流片良率。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图,其中:

图1是一种基于神经网络的芯片版图设计方法的流程图;

图2是一种基于神经网络的芯片版图设计系统的连接框图;

图3是本发明实施例一中数字集成电路目标版图的示意图;

图4是本发明实施例一中搭建的神经网络的运算模型示意图;

图5是本发明实施例一中训练神经网络的训练流程图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明,即所描述的实施例只是本发明的一部分实施例,而不是全部的实施例。通常在此处描述和附图中示出的本发明实施例的组件可以以各种不同的配置来布置和设计。

因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

需要说明的是,术语“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

下面结合实施例对本发明的特征和性能作进一步的详细描述。

实施例一

本发明的较佳实施例,提供了一种基于神经网络的芯片版图设计方法,如图1所示,包括:

s1:采集数字集成电路的rtl代码,识别得到rtl代码所代表的物理单元,再获取每个物理单元对应的物理版图效应相关参数;

s2:分类步骤s1中识别得到的物理单元,分类类别包括基本逻辑单元和宏单元,并读入数字集成电路目标版图的设计规则数据,所述设计规则数据包括数字集成电路每一层金属的基本属性,所述基本属性包括最小宽度、最大宽度、最小间距和最大密度;

s3:设置如图3所示的数字集成电路目标版图的性能,图中的数字集成电路版图包括i/o端和内部模块core,i/o端包括输入输出单元和电源地单元,为了后续封装的便利,在i/o的引脚处加有i/opad,内部模块core包括基本逻辑单元(logic)和宏单元(macrocell),所述宏单元包括存储模块(sram)和ip核,所述ip核包括锁相环(pll)、数模转换模块(dac)和数字信号处理模块(dsp),图中的数字集成电路目标版图有4n个端口,其中“pi”代表输入端口,“po”代表输出端口,“pvdd”代表电源端口,“pgnd”代表接地端口,四个角落具有特殊的角落i/opad,形成数字集成电路版图外围的电源环和接地环,电源环可以平均分布电流,缩短电流回路,更有效的减小电压降与电迁移问题,p1corner、p2corner、p3corner和p4corner均为角落i/opad;根据预设性能得到数字集成电路目标版图的设计参数,根据该设计参数设置放置阻隔层(placementblockage)和布线阻隔层(routingblockage);

s4:训练神经网络,根据训练好的神经网络对步骤s2中分类后的物理单元进行预摆放,输出预摆放后各物理单元的位置坐标,再进行实际摆放,并添加包括阱单元(welltaps)的特殊物理单元;

s41:收集各种常用物理单元的尺寸信息、形状信息、引脚信息、功能属性并将其作为待训练神经网络的原始数据集;

s42:选择流片成功率较高的数字集成电路版图制作标注数据集,标注原始数据集中的宏单元的位置优先级,根据数字集成电路版图的面积大小和利用率将数字集成电路版图中相互间连接引脚较多的宏单元一起摆放在数字集成电路版图的外围,再将流片成功率较高的数字集成电路版图各物理单元的相对位置信息作为目标集,与步骤s41的原始数据集一起作为待训练神经网络的训练集,并将训练集的五分之一作为测试集;

s43:根据训练集的数据大小维度确定待训练神经网络的输入端口数目,并根据特定需求搭建对应的神经网络,本实施例中搭建的神经网络的运算模型示意图如图4所示,包括三层,输入层x1、x2,隐藏层l1、l2,和输出层,图中每个圆圈代表一个神经元,包括信号输入求和,求和后的信号经过激活函数处理得到输出,其中,激活函数包括sigmoid函数、tanh函数、relu函数等,以其中一个神经元为例,其运算为:

f1(e)=f1(w(x1)1x1+w(x2)1x2,

其中,f1(e)代表激活函数,按上述运算公式计算得到激活函数f2(e)、f3(e)、f4(e)、f5(e)、f6(e)、f7(e);

s44:对图4的神经网络进行训练,训练流程图如图5所示,将训练集数据传输到待训练神经网络中通过反向传播算法计算更新权重值,输出目标结果y,并在迭代训练到神经网络的输出数据集与目标数据集一致时,即多组训练数据同时达到目标结果y时,可以默认神经网络已经训练完成,然后使用测试集进行测试,直到神经网络的准确率达到目标要求时停止训练,便得到训练好的神经网络;

s45:采用已训练好的神经网络,对宏单元进行分类,分类包括存储单元和ip核,根据尺寸大小、所属金属层以及不同功能优先摆放宏单元,且根据需求不同每个宏单元之间保留适当的间距,再进行基本逻辑单元的摆放,完成预摆放;

s46:输出预摆放后各物理单元的位置坐标,再进行实际摆放,并添加包括阱单元的特殊物理单元;

s5:对步骤s4中摆放好的物理单元设置电源和接地网络,然后检查设计规则并仿真,得到满足预设性能的目标版图,其中仿真通过仿真工具对预摆放完成的数字集成电路版图的版图效应进行仿真,所述版图效应包括

i/o的摆放顺序:包括信号i/o、电源i/o和接地i/o的摆放顺序,所述信号i/o包括高频信号i/o和常规电信号i/o;合格的i/o摆放顺序为整个数字集成电路芯片的供电保持平衡,不会导致数字集成电路芯片内部连线产生堵塞或增加冗余路径的连线;

版图功耗大小:保证数字集成电路版图预摆放后芯片的整体功耗处于最低状态;

版图内部不同位置物理单元的电压降:数字集成电路芯片中电源和地网络上不同位置电压下降或升高,该压降的大小决定于从电源pad到所计算的逻辑门单元之间等效电阻的大小,经过数字集成电路版图智能预摆放后芯片的整体ir-drop要保证最小,且不能低于数字集成电路芯片内部任何一个物理单元的工作电压;

模拟信号和数字信号的隔离度:数字集成电路版图预摆放后,模拟信号物理单元和数字信号物理单元要按照一定的区域范围智能摆放,保证各物理单元的模拟信号和数字信号互不干扰正常工作;

内部数据通路是否最短:数字集成电路版图预摆放后,内部物理单元之间有数据通路的地方尽量保证物理单元之间连线最短,且不发生绕线堵塞状况;

走线能否绕通:数字集成电路版图预摆放后,内部物理单元的摆放密集度要保证每一个物理单元的外部连线都可以正常连接;

是否达到版图最优利用率:数字集成电路版图预摆放后,内部宏单元和物理逻辑单元的分布密度达到最优,保证了单位面积芯片的利用率,节约了整体的流片成本;

时序是否收敛:数字集成电路版图预摆放后,数字集成电路芯片中的每一个宏单元和物理单元的建立时间和保持时间要满足芯片本身的目标工作频率。

实施例二

本实施例在实施例一的基础上,提出了一种基于神经网络的芯片版图设计系统,如图2所示,包括

数据采集模块:采集数字集成电路的rtl代码,并将其转化为rtl代码对应的物理单元;

分类模块:将数据采集模块转化的物理单元进行分类,并读入数字集成电路目标版图的设计规则数据,保证生成的数字集成电路版图符合现实生产工艺的要求;

版图生成模块:训练神经网络并根据训练好的神经网络对分类后的物理单元进行预摆放,智能化生成满足设定性能的数字集成电路版图并进行实际摆放;

版图仿真模块:对版图生成模块已摆放的物理单元设置电源和接地网络,检查设计规则并仿真,得到满足预设性能的目标版图。

进一步地,所述版图生成模块包括神经网络训练子模块和冗余单元增加子模块;

所述神经网络训练子模块根据数据采集模块和分类模块得到的物理单元,得到训练集和测试集,根据训练集搭建并训练神经网络,得到训练好的神经网络,并根据训练好的神经网络对分类模块得到的物理单元进行智能预摆放后输出各物理单元的位置坐标;

所述冗余单元增加子模块根据各物理单元的位置坐标进行实际摆放,并添加包括阱单元的特殊物理单元,可提高流片成功率。

实施例三

本实施例在实施例一的基础上,提出了一种基于神经网络的芯片制作方法,采用实施例一的数字集成电路版图设计方法设计得到的目标版图制作数字集成电路芯片。

本发明引入了神经网络结构,大幅度增强了数字集成电路版图设计方法的智能化程度,通过数字集成电路版图的智能化摆放,大幅减轻了数字集成电路版图设计工程师的工作量,为后期数字集成电路版图的后仿及验证提供了更充足的时间,并且提高了数字集成电路的设计效率以及数字集成电路的流片良率。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明的保护范围,任何熟悉本领域的技术人员在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1