建立标准单元库的方法与系统、芯片设计方法与系统与流程

专利2022-06-29  63


本发明涉及集成电路设计自动化技术领域,尤其涉及一种建立标准单元库的方法与系统、芯片设计方法与系统及计算机存储介质。



背景技术:

目前,基于标准单元库的半定制芯片设计方法已经被广泛应用于集成电路设计中,即目前的集成电路版图设计包括基于标准单元库的设计。标准单元库是集成电路设计所需单元符号库、电路结构库、功能描述库、版图库、时序功耗库、物理视图库、设计规则和互连寄生参数模型库的总称。标准单元库的设计是指把电路设计中的一些标准单元(如组合逻辑、时序逻辑、物理单元等),按照最佳设计的原则设计,并作为标准单元存入标准单元库中,在进行集成电路设计时,根据电路要求从标准单元库中调用所需标准单元,进行逻辑综合及自动布局布线,逐步构成各级功能模块,直至整个系统。因此,标准单元库是集成电路设计的基础,从系统行为描述、逻辑综合、逻辑功能模拟,到时序分析、验证,直至物理设计中的自动布局布线都必须有一个内容丰富、功能完整的标准单元库的支持。

目前,建立标准单元库的最常见的方法有以下几种:

(1),一种从零开始建立标准单元库的方法,具体地,从每个标准单元的线路设计开始一直到该标准单元的版图设计完成的流程均执行一遍,例如发明专利cn103559352b(即申请号cn201310537891.x)提出的建立标准单元的方法;这种从零开始的建立标准单元库的方法存在以下缺陷:由于标准单元库的种类和包含的标准单元的个数众多,每一个新的标准单元都从零开始来建立的话,费时费力;

(2),一种利用已有的标准单元库去建立新的标准单元库的方法,例如发明专利申请cn108846160a(即申请号cn201810413218.8)公开了一种标准单元库电路设计方法,其公开的就是一种基于旧工艺对应的已有标准单元库如何自动产生新工艺对应的新的标准单元库的方法,这种以旧建新的建立标准单元库的方法存在以下缺陷:因为新工艺和旧工艺要求的标准并不相同,所以会造成标准单元的设计规则不相同,进而没有办法通过直接简单的转换来将已有标准单元库转换为新工艺对应的新的标准单元库,具体举例来说,假如新工艺需要做opc的检测,如发明专利申请cn105868449a(即申请号cn201610173678.9)所公开的那样,需要在进行电路级别的光学仿真之前,先进行标准单元的版图布局,但旧工艺不需要做光学仿真,如旧工艺对应的已有标准单元库是采用发明专利申请cn103559352b所公开的方法建立起来的,那么利用发明专利申请cn108846160a所公开的建立标准单元库的方法,直接将旧工艺对应的已有标准单元库转换到新工艺对应的标准单元库时,就会出现全部的标准单元均要返工的情况,这样的话,利用旧工艺对应的已有标准单元库来自动建立新工艺对应的标准单元库的方法,就没有什么意义,而且全部返工和从头做起是一样费时费力的;另外,除了工艺有新旧之分外,产品的应用环境也可能不同,尤其是在物联网,应用环境是多样多变,也会造成设计的要求并不相同,也会产生同样的问题,即也是无法利用旧的已有标准单元库去自动化产生新的标准单元库,一样得要从头开始来做。



技术实现要素:

本发明的目的之一在于提供一种建立标准单元库的方法与系统及计算机存储介质,能够針对新的工艺或新的产品应用环境,快速产生新的标准单元库。

本发明的目的之二在于提供一种芯片设计方法与系统及计算机存储介质,能够将建立标准单元库的过程嵌入在芯片设计流程中,在进行芯片设计的同时还建立了符合新工艺或新应用环境需要的标准单元库,不会影响当前芯片设计的时间,还能提高后续芯片设计的效率。

为了实现上述目的,本发明提供一种建立标准单元库的方法,包括以下步骤:

进行行为级别描述,以确定待设计的芯片的功能、性能及面积;

依据所述行为级别描述进行硬件级别描述;

制定配合所述芯片的工艺需求的固定布局方式,并根据所述固定布局方式设计一具有原始单元的原始单元库;

根据所述硬件级别描述、原始单元库、所述芯片对应的工艺设计表格以及所述芯片应用在设计上的限制条件进行逻辑合成,以形成标准单元库。

可选地,进行所述逻辑合成以形成所述标准单元库的步骤包括:

根据所述硬件级别描述,从所述原始单元库中选取出逻辑功能符合需求的原始单元;

检查所述原始单元对应所述工艺设计表格中的数据是否符合所述限制条件,在不符合时,通过在所述原始单元串联相应数量的晶体管以及调整所述原始单元的高度和/或最大驱动强度,来产生新的标准单元,所述原始单元库和所述新的标准单元组成所述标准单元库。

可选地,所述工艺设计表格包括参数表格、速度表格和漏电流表格,所述参数表格用于记录所述原始单元库中各个原始单元的固定布局参数,所述速度表格用于记录所述原始单元库中各个原始单元的延迟时间,所述漏电流表格用于记录所述原始单元库中各个原始单元的漏电流。

可选地,检查所述原始单元对应所述工艺设计表格中的数据是否符合所述限制条件的步骤包括:

通过查所述漏电流表格来检查所述原始单元的漏电流是否符合所述限制条件,若不符合,则通过漏电流参数的算法确定在所述原始单元上串联多少数量的晶体管后的漏电流才能符合所述限制条件,并将串联有所述数量的原始单元创建为一个新的标准单元;以及,

通过查所述速度表格来检查所述原始单元的延迟时间是否符合同步时钟速度的要求,若不符合,则通过速度延迟的算法对所述原始单元的高度进行变化,以找到能够符合所述要求且高度最小和驱动强度最大的状态,并将所述状态的原始单元创建为一个新的标准单元。

可选地,所述固定布局方式中,所有p型晶体管的几何大小都是相同的;所有n型晶体管的几何大小都是相同的,且所有p型晶体管和所有n型晶体管的长度都是相同的。

基于同一发明构思,本发明还提供一种建立标准单元库的系统,包括:

行为级描述模块,其被配置为进行行为级别描述,以确定待设计的芯片的功能、性能及面积;

硬件级别描述模块,其被配置为依据所述行为级别描述进行硬件级别描述;

原始单元库设计模块,其被配置为制定配合所述芯片的工艺需求的固定布局方式,并根据所述固定布局方式设计一具有原始单元的原始单元库;

工艺设计表格模块,其被配置为根据所述芯片的工艺设计需求制定所述芯片对应的工艺设计表格;

应用限制条件模块,其被配置为根据所述芯片的应用需求制定所述芯片应用在设计上的限制条件;以及,

合成引擎,其被配置为将所述硬件级别描述、原始单元库、所述工艺设计表格以及所述限制条件进行逻辑合成,以形成新的标准单元;

标准单元库模块,其被配置为存放所述原始单元库中的所有原始单元以及所述合成引擎产生的所有的新的标准单元,以形成标准单元库。

可选地,所述合成引擎进一步被配置为:

根据所述硬件级别描述,从所述原始单元库中选取出逻辑功能符合需求的原始单元;

检查所述原始单元对应所述工艺设计表格中的数据是否符合所述限制条件,在不符合时,通过在所述原始单元串联相应数量的晶体管以及调整所述原始单元的高度和/或最大驱动强度,来产生新的标准单元。

可选地,所述工艺设计表格包括参数表格、速度表格和漏电流表格,所述参数表格用于记录所述原始单元库中各个原始单元的固定布局参数,所述速度表格用于记录所述原始单元库中各个原始单元的延迟时间,所述漏电流表格用于记录所述原始单元库中各个原始单元的漏电流。

可选地,所述合成引擎进一步被配置为:

通过查所述漏电流表格来检查所述原始单元的漏电流是否符合所述限制条件,若不符合,则通过漏电流参数的算法确定在所述原始单元上串联多少数量的晶体管后的漏电流才能符合所述限制条件,并将串联有所述数量的原始单元创建为一个新的标准单元;以及,

通过查所述速度表格来检查所述原始单元的延迟时间是否符合同步时钟速度的要求,若不符合,则通过速度延迟的算法对所述原始单元的高度进行变化,以找到能够符合所述要求且高度最小和驱动强度最大的状态,并将所述状态的原始单元创建为一个新的标准单元。

基于同一发明构思,本发明还提供一种芯片设计方法,包括以下步骤:

采用本发明所述的建立标准单元库的方法形成标准单元库,并在形成标准单元库的同时形成元件级别描述;以及,

基于所述元件级别描述或所述标准单元库生成芯片版图。

基于同一发明构思,本发明还提供一种芯片设计系统,包括:

本发明所述的建立标准单元库的系统;

元件级别描述模块,其被配置为根据所述建立标准单元库的系统中的合成引擎的逻辑合成结果来形成元件级别描述;以及,

版图级别描述模块,其被配置为基于所述元件级别描述或所述标准单元库生成芯片版图。

基于同一发明构思,本发明还提供一种计算机存储介质,其上存储有计算机程序,所述计算机程序被一处理器执行时能实现本发明所述的建立标准单元库的方法。

基于同一发明构思,本发明还提供一种计算机存储介质,其上存储有计算机程序,所述计算机程序被一处理器执行时能实现本发明所述的芯片的设计方法。

与现有技术相比,本发明的技术方案具有以下有益效果:

1、由于本方案中将建立标准单元库的方法嵌入到了传统的芯片设计流程中,因此解决了事先准备好的标准单元库和后来才知道的新工艺/应用不配合的问题。

2、由于本方案中所使用的原始单元库是依据芯片工艺要求的固定布局方式来设计完成,所以不会有因工艺变化所造成违反设计规则的现象,也就避免了需要人工参与来解决违反设计规则的问题,进而解决了如何快速的自动化产生标准单元库的版图问题。

3、由于本方案中所使用的原始单元库是根据芯片工艺要求的固定布局方式来设计,所以可以直接组合来形成标准单元库,解决了如何快速的自动化产生标准单元库的线路问题。

4、由于本方案中所使用了相关的工艺设计表格(参数表格/速度表格/漏电流表格),因此能够利用查表的方式,解决了如何快速的自动化产生标准单元库的线路仿真问题;

5、由于本方案中能够基于原始单元库、硬件级别描述、工艺设计表格以及芯片应用在设计上的限制条件来逻辑合成标准单元库,尤其是根据工艺条件表格中数据来判断选取的原始单元是否能符合所述限制条件,进而依据工艺设计表格的数据算法对原始单元进行调整,产生了包括不同的串联管子数、不同的高度和最大驱动强度的标准单元库,因此解决了如何快速地自动化产生标准单元库的完整性问题。

6、本方案可以克服针对新的工艺/新的产品应用环境而如何快速产生标准单元库的挑战。

7、由于本方案中建立完整的标准单元库和芯片设计一起准备,因此不影响当前芯片设计开发时间,而且建立好的标准单元库还能提高后续的芯片设计的效率。

附图说明

图1为传统的芯片的设计方法流程图;

图2为本发明具体实施例的嵌入有建立标准单元库的方法的芯片设计流程图;

图3为本发明具体实施例的芯片设计流程中进行逻辑合成的流程图;

图4为本发明具体实施例嵌入有建立标准单元库的系统的芯片设计系统的框图。

具体实施方式

请参考图1,一种传统的芯片设计流程包括以下步骤:

s11,进行级别描述行为级别描述,以确定待设计的芯片的功能、性能及面积;

s12,提供所需的逻辑合成条件,即包括:s121,依据所述行为级别描述进行硬件级别描述;s122,提供标准单元库;s123,提供表示所述芯片应用环境(即应用需求)的限制条件(即产品应用在设计上的限制条件);

s13,进行逻辑合成,即根据硬件级别描述,加上所述限制条件,从标准单元库中选择适合的标准单元来产生芯片电路;

s14,对所述芯片电路进行元件级别描述(即门级别描述),即描述出芯片电路中的门或与此同级别的元件相互之间连接关系;

s15,依据所述元件级别描述产生所述芯片的版图。

在上述的传统的芯片设计流程中,所述标准单元库是事先准备好的,正如背景技术中所述,这种方法会产生“事先准备好的标准单元库”和“后来才知道的芯片工艺/芯片应用”不配合的问题,进而导致标准单元库的返工重建和芯片设计的时间浪费。

基于此,本发明提出一种建立标准单元库的方法与系统、芯片设计方法与系统及计算机存储介质,能够将标准单元库的自动化建立过程嵌入到传统的芯片设计流程,并将传统的芯片设计流程中使用的标准单元库改成原始单元库,该原始单元库是依据芯片工艺要求的固定布局方式,事先设计完成,不会有因工艺变化而造成违反设计规则的现象,本发明的技术方案中,利用原始单元库、硬件级描述、工艺设计表格以及应用的限制条件,进行逻辑合成,不仅产生了原有的门级别描述,还产生了符合新工艺和新的应用环境的完整的标准单元库,有了完整的标准单元库和门级别描述自然就可以利用与传统的芯片设计流程相同的方式,来产生最后的芯片版图。也就是说,本发明的技术方案会先依照工艺的需求来定义出固定布局方式,并依照这个固定布局方式产生的芯片版图,不会违反设计规则,同时还能直接自动化产生完整的标准单元库,克服了针对新的工艺和新的产品应用环境而如何快速产生标准单元库的挑战。

为使本发明的目的、特征更明显易懂,下面结合附图对本发明的技术方案作详细的说明,然而,本发明可以用不同的形式实现,不应只是局限在所述的实施例。此外,需要说明的是,本公开的技术可以硬件和/或软件(包括固件、微代码等)的形式来实现。

请参考图2,本发明一实施例提供一种建立标准单元库的方法,包括以下步骤:

s21,进行行为级别描述,以确定待设计的芯片的功能、性能及面积;

s22,提供所需的逻辑合成条件,即包括:s221,依据所述行为级别描述进行硬件级别描述;s222,制定配合所述芯片的工艺需求的固定布局方式,并根据所述固定布局方式设计一具有原始单元的原始单元库;s223,提供所述芯片的制作工艺相关的工艺设计表格;s224,提供表示所述芯片的应用环境(即应用需求)的限制条件(即芯片应用在设计上的限制条件);

s23,根据所述硬件级别描述、原始单元库、所述芯片对应的工艺设计表格以及所述芯片应用在设计上的限制条件进行逻辑合成,以形成新的标准单元;

s241,所述原始单元库和所有的所述新的标准单元组成标准单元库。

在步骤s21中,行为级别描述的任务主要是用c 等语言定义出待设计的芯片的电路功能、性能指标以及外部特性(包括芯片面积、成本等),为后续的硬件级描述提供一个理论层次的依据;进一步地,可以将芯片的整个电路拆解为若干个抽象的功能模块,并将各个功能模块的逻辑功能定义清楚。

在步骤s221中,根据步骤s21中的行为级别描述的内容(即芯片的特点),利用hdl等语言,将芯片的整个电路拆解并描述为相互连接关系明确的、尽可能简单的若干个典型的单元(即若干个典型的逻辑部件和控制这些逻辑部件的数据传输的状态机),这些单元通过相应的布线相互连接后,能组合得到芯片的总体硬件结构,这些单元可能包括逻辑门(包括与门、与非门、或门,或非门、与或门、与或非门、或与门、或与否门及异或非门等)、逻辑运算单元、控制单元、驱动单元、时序单元(触发器、锁存器、移位寄存器、时钟门控电路以及各种时序状态机等)、数据通道(例如i/o单元、计数器、加法器、减法器、乘法器、寄存器、选择器及算数运算单元等)、缓冲单元(包括缓冲器、驱动电平转换电路单元、保护电路单元等)以及其他单元(例如存储单元、连线单元、电源单元、地单元等)。

在步骤s222中,会先依照工艺的需求来定义出固定布局方式,依照这个固定布局方式产生的版图,自然不会违反设计规则;换言之,用固定布局方式所产生的芯片版图,可以利用步骤s23中的合成引擎直接自动化产生,不会因违反设计规则而需要人工去处理其中违反设计规则的电路。因为所有的芯片线路(即原始单元库和标准单元库中的单元)都是由p型晶体管和n型晶体管来组成,为方便举例,本实施例中,将固定布局方式定义为:所有p型晶体管的几何大小都是相同的,宽度为pw,长度为l;所有n型晶体管的几何大小都是相同的,n型晶体管的宽度为nw,长度和p型晶体管相同,也为l。利用这种简单单一的布局方式,不但方便步骤s23中的合成引擎来产生标准单元库,而且产生的标准单元库也都会符合设计规则,不需要人工去处理其中违反设计规则的部分。在步骤s222中,通过具有所述固定布局方式的至少一个p型晶体管和/或至少一个n型晶体管直接组合成各具有相应的功能的原始单元,进而组成原始单元库,该原始单元库和一般标准单元库相同,包含一套完整逻辑,不相同的是,每一种逻辑(即原始单元)的布局方式已经固定,没有不同的驱动强度,即每一种逻辑(即原始单元)是一种具有固定布局的线路(即一小块芯片电路),每一种逻辑(即原始单元)中的p型晶体管其只能由若干个上述固定布局方式中定义出的p型晶体管串联而成,每一种逻辑(即原始单元)中的n型晶体管其只能由若干个上述固定布局方式中定义出的n型晶体管串联而成,也就是说,每一种逻辑(即原始单元)中的p型晶体管的长度都固定为l,宽度为pw的整数倍(倍数等于组合的所述固定布局方式中定义出的p型晶体管的数量);每一种逻辑(即原始单元)中的n型晶体管的长度都固定为l,宽度为nw的整数倍(倍数等于组合的所述固定布局方式中定义出的n型晶体管的数量)。

在步骤s223中,根据所述芯片的工艺设计需求制定出工艺相关的工艺设计表格,具体包含三种不同的工艺设计表格:第一个工艺设计表格是参数表格,用于记录固定布局参数(即固定布局方式的p型晶体管和n型晶体管的高度l和宽度/pw/nw);第二个工艺设计表格是速度表格,用于记录每种逻辑(即原始单元)的延迟时间,是一个二维的表格,第一个维度是驱动晶体管的倍数,第二个维度是被驱动晶体管的倍数,记载的内容是相对应的延迟时间,不同的布局高度、工艺状况、电压值、温度等等都会有相对应的二维速度表格,第三个工艺设计表格是漏电流表格,用于记录具有固定布局格式的晶体管的漏电流,具体地,不同的布局高度、工艺状况、电压值、温度都会有相对应的漏电流,所述漏电流表格包括单个具有固定布局格式的p型晶体管和单个具有固定布局格式的n型晶体管的漏电流以及串联两个或三个具有固定布局格式的p型晶体管或具有固定布局格式的n型晶体管时的漏电流值。

在步骤s224中,会根据所述芯片的应用需求(即应用环境要求)制定出所述芯片应用在设计上的限制条件,即芯片的应用需求体现在芯片电路设计上的限制条件。

步骤s23的目的是将在步骤s224的限制条件的限制下,利用原始单元库中的原始单元将芯片的各个逻辑部件或功能模块转换为逻辑电路图,其中,同一功能模块可能可以通过多种逻辑设计加以实现,因此在这一步中,需要尽可能采用原始单元库中的原始单元来实现芯片的各个逻辑部件或功能模块。请参考图3,步骤s23的具体过程包括:

首先,执行s231,即根据所述硬件级别描述,从所述原始单元库中选取出逻辑功能符合需求的原始单元;

接着,检查选取的所述原始单元对应所述工艺设计表格中的数据是否符合所述限制条件,包括s232检查漏电流是否符合应用设计的要求,并在不符合时,通过漏电流参数的算法决定原始单元额外串联的管子数,以及,s233检查选取的原始单元速度是否符合应用设计的要求,并在不符合时,通过速度延迟的算法获得单元的高度/驱动强度。

具体地,在步骤s232中,首先可以通过查漏电流表格的方式,检查步骤s231选取出的原始单元的漏电流是否符合应用设计,具体算法为:应用限制条件中的漏电流的要求leak小于选取的原始单元中的具有固定布局格式的p型晶体管总数s(pw)和漏电流表格对应的单个具有固定布局格式的p型晶体管的漏电流lk(p)的乘积与所述原始单元中的具有固定布局格式的n型晶体管总数s(nw)和漏电流表格对应的单个具有固定布局格式的n型晶体管的漏电流lk(n)的乘积之和,即leak<s(pw)*lk(p) s(nw)*lk(n);如果不符合要求,通过漏电流算法确定能够满足要求的单元中应当含有依次串联的具有固定布局格式的p型晶体管的总数和/或依次串联的具有固定布局格式的n型晶体管的总数,具体地,例如当某一个仅由依次串联的具有固定布局格式的p型晶体管组成的原始单元的漏电流不符合要求时,先尝试在该原始单元上串联两个具有固定布局格式的p型晶体管,并判断串联两个后的单元的漏电流值是否能够符合要求,如果能符合要求,则将所述串联两个后的单元创建为一个新的标准单元,如果不符合要求,则进一步尝试在所述原始单元上串联三个具有固定布局格式的p型晶体管,并判断串联三个后的单元的漏电流值是否能符合要求,如果能符合要求,则将所述串联三个后的单元创建为一个新的标准单元,如果还是不符合要求,则显示无法自动化产生。在本发明的其他实施例中,当选取的原始单元不符合要求时,也可以通过将两个或三个原始单元直接串联在一起,并进一步判断串联后的漏电流值是否满足限制条件,并在满足限制条件时,将串联的原始单元创建为一个新的标准单元。

因为本实施例中使用原始单元库、工艺设计表格以及应用限制条件来同步产生芯片逻辑电路图和标准单元库,所以可以以时钟时序来对芯片的整个电路设计进行切割,变成一小块一小块的线路设计,在步骤s233中,只需要检查每一小块的线路设计所使用的原始单元是不是符合同步时钟速度的要求即可。也就是说,1/时钟频率>每一小块线路所对应的原始单元的延迟时间;可以通过查表的方式从速度表格中得到所述原始单元的延迟时间,如果不符合要求,就在所述原始单元的基础上进行高度变化(即具有固定布局格式的晶体管的长度的变化),以找到延迟时间能符合要求、高度最小且驱动强度最大的状态,将找到的所述状态对应的原始单元创建为一个新的标准单元。

由此,在步骤s234中,将步骤s232和步骤s23产生的所有的新的标准单元以及步骤s222中的原始单元库中的所有原始单元合并成一个新的单元库,即标准单元库,该标准单元库中除了原来的原始单元库中所有的原始单元之外,还有因为不符合应用要求而产生的新的标准单元,这些标准单元中串联的晶体管的个数、单元的高度以及驱动强度均与相应的原始单元不同,因此标准单元库相对原始单元库更加完整,更能符合新工艺和指定应用环境的需求。在本实施例中,可以依据串联的晶体管的数量、单元的高度和驱动强度来基于每一个根原始单元创建新的标准单元,即基于原始单元库的每个原始单元进行能适应新工艺、新应用环境需求的单元补足,以产生一个完整的、符合应用和工艺需求的标准单元库。

之后可以利用该标准单元库进行芯片设计。

需要说明的是,上述实施例中,步骤s232和步骤s233没有先后顺序,因为这两个步骤要得到的参数是不一样的,步骤s232要得到的是串联晶体管的个数,步骤s233要得到的是基于原始单元而调整得到的高度和强度,互不相斥。此外,本发明所描述的固定布局方式并不仅仅限于上述实施例的步骤s222中举例的这一种固定布局方式,只要能够使得晶体管的相关参数能够固定的固定布局方式,均可以应用于本发明的步骤s222,均属于本发明所要保护的权利范围中。上述实施例中原始单元各个位置上的晶体管均需要根据其漏电流和延迟时间来做匹配,而在本发明另一实施例的固定布局方式中,可以仅设定原始单元的输入端和输出端需要根据其漏电流和延迟时间来做匹配(即具体需要串联几个晶体管),而原始单元的其他部分是固定不变的(即不会根据漏电流和延迟时间来调整串联的晶体管数量),这时,步骤s23中对应的算法可以适应性改变,也属于本发明所述的固定布局方式,本领域技术人员可以在本发明举例的固定布局方式的基础上对这些固定布局方式进行组合或者变型而得到新的固定布局方式,本发明也意图将这些固定布局方式的变型也包含在内。

应当认识到,上述实施例的步骤s232和步骤s233中关于漏电流和速度延迟的算法也仅仅是本发明技术方案中的一种举例,本发明的技术方案并不仅仅限定于此,只要是利用漏电流和速度延迟来产生的新的标准单元的方案都属于本发明要保护的权利范围,不论这些方案中的漏电流和速度延迟的具体算法是不是相同。

此外,对比图1和图2,可以看出,传统的芯片设计流程中的合成引擎主要是根据硬件级别描述,加上芯片应用在设计上的限制条件,从标准单元库中选择适合的标准单元来产生一合成结果以用于进一步产生芯片设计所需的元件级别描述,而本发明中,将标准单元库的建立过程嵌入到芯片设计流程中,不仅可以利用合成引擎来产生芯片设计所需的元件级别描述,还可以利用合成引擎来去产生标准单元库,因此,只要是利用合成引擎去产生标准单元库的方案,以及,将标准单元库的建立过程嵌入到芯片设计流程中的方案,均属于本发明意图的保护范围,其中具体的合成算法并不能限定本发明的权利保护范围。

因此,请继续参考图2,本发明一实施例还提供一种嵌入有建立标准单元库的方法的芯片设计方法,具体包括:

s21,进行行为级别描述,以确定待设计的芯片的功能、性能及面积;

s22,提供所需的逻辑合成条件,即包括:s221,依据所述行为级别描述进行硬件级别描述;s222,制定配合所述芯片的工艺需求的固定布局方式,并根据所述固定布局方式设计一具有原始单元的原始单元库;s223,提供所述芯片的制作工艺相关的工艺设计表格;s224,提供表示所述芯片的应用环境(即应用需求)的限制条件(即芯片应用在设计上的限制条件);

s23,根据所述硬件级别描述、原始单元库、所述芯片对应的工艺设计表格以及所述芯片应用在设计上的限制条件进行逻辑合成,以形成新的标准单元;

s24,形成标准单元库,同时形成元件级别描述,具体包括:s241,所述原始单元库和所有的所述新的标准单元组成标准单元库;s242,根据步骤s23对基于硬件级别描述选取出的原始单元加上工艺条件表格和应用的限制条件而逻辑合成的结果来形成元件级别描述(即门级别描述),所述元件级别描述(即门级别描述)用于描述芯片的门(gate)或与此同级别的电路元件相互之间连接关系,由此获得完整的芯片的逻辑电路图;

s25,进行版图级别描述,即将步骤s24中获得的完整的芯片的逻辑电路图转换为完整的版图,其中可以体现各个电路元件的几个图形与工艺规则。由于步骤s24中的标准单元库和元件级别描述是可以同时产生的,两者所能形成的逻辑电路图都能够符合新工艺和新的应用环境的要求,因此,本步骤中即可基于所述元件级别描述来生成芯片版图,又可基于所述标准单元库来生成芯片版图。

之后,可以对所述版图进行设计规则检查(drc)、版图与逻辑电路图一致性校验(lvs校验)、仿真和测试等操作,通过测试的版图可以用于正式生产芯片。

基于同一发明构思,请参考图4,本发明一实施例还提供一种建立标准单元库的系统40,包括:行为级描述模块401、硬件级别描述模块402、原始单元库设计模块403、工艺设计表格模块404、应用限制条件模块405、合成引擎406以及标准单元库模块407。

所述行为级描述模块401被配置为用c 等语言进行行为级别描述,以定义出待设计的芯片的电路功能、性能指标以及外部特性(包括芯片面积、成本等),为后续的硬件级描述提供一个理论层次的依据;进一步地,还可以将芯片的整个电路拆解为若干个抽象的功能模块,并将各个功能模块的逻辑功能定义清楚。

硬件级别描述模块402,其被配置为依据所述行为级别描述,利用hdl等语言进行硬件级别描述,将芯片的整个电路拆解并描述为相互连接关系明确的、尽可能简单的若干个典型的单元(即若干个典型的逻辑部件和控制这些逻辑部件的数据传输的状态机),这些单元通过相应的布线相互连接后,能组合得到芯片的总体硬件结构,这些单元可能包括逻辑门(包括与门、与非门、或门,或非门、与或门、与或非门、或与门、或与否门及异或非门等)、逻辑运算单元、控制单元、驱动单元、时序单元(触发器、锁存器、移位寄存器、时钟门控电路以及各种时序状态机等)、数据通道(例如i/o单元、计数器、加法器、减法器、乘法器、寄存器、选择器及算数运算单元等)、缓冲单元(包括缓冲器、驱动电平转换电路单元、保护电路单元等)以及其他单元(例如存储单元、连线单元、电源单元、地单元等)。

原始单元库设计模块403被配置为制定配合所述芯片的工艺需求的固定布局方式,并根据所述固定布局方式设计一具有原始单元的原始单元库。其中,固定布局方式定义为:所有p型晶体管的几何大小都是相同的,宽度为pw,长度为l;所有n型晶体管的几何大小都是相同的,n型晶体管的宽度为nw,长度和p型晶体管相同,也为l。原始单元库中的每个原始单元都是由相应的具有所述固定布局方式的至少一个p型晶体管和/或至少一个n型晶体管直接组合而成,以具有相应的功能,即每个原始单元中的一个p型晶体管由若干个上述固定布局方式中定义出的p型晶体管串联而成,每一个原始单元中的一个n型晶体管由若干个上述固定布局方式中定义出的n型晶体管串联而成,也就是说,每一个原始单元中的一个p型晶体管的长度都固定为l,宽度为pw的整数倍(倍数等于组合的所述固定布局方式中定义出的p型晶体管的数量);每一原始单元中的一个n型晶体管的长度都固定为l,宽度为nw的整数倍(倍数等于组合的所述固定布局方式中定义出的n型晶体管的数量)。

工艺设计表格模块404被配置为根据所述芯片的工艺设计需求制定所述芯片对应的工艺设计表格。工艺设计表格模块404具体包含三种不同的工艺设计表格:第一个工艺设计表格是参数表格,用于记录固定布局参数(即固定布局方式的p型晶体管和n型晶体管的高度l和宽度/pw/nw);第二个工艺设计表格是速度表格,用于记录每种逻辑(即原始单元)的延迟时间,是一个二维的表格,第一个维度是驱动晶体管的倍数,第二个维度是被驱动晶体管的倍数,记载的内容是相对应的延迟时间,不同的布局高度、工艺状况、电压值、温度等等都会有相对应的二维速度表格,第三个工艺设计表格是漏电流表格,用于记录具有固定布局格式的晶体管的漏电流,具体地,不同的布局高度、工艺状况、电压值、温度都会有相对应的漏电流,所述漏电流表格包括单个具有固定布局格式的p型晶体管和单个具有固定布局格式的n型晶体管的漏电流以及串联两个或三个具有固定布局格式的p型晶体管或具有固定布局格式的n型晶体管时的漏电流值。

应用限制条件模块405被配置为根据所述芯片的应用需求制定所述芯片应用在设计上的限制条件。

合成引擎406被配置为将所述硬件级别描述、原始单元库、所述工艺设计表格以及所述限制条件进行逻辑合成,以形成新的标准单元。本实施例中,合成引擎406能实现上述的步骤s231~步骤s233的内容,即所述合成引擎进一步被配置为:根据所述硬件级别描述,从所述原始单元库中选取出逻辑功能符合需求的原始单元(即步骤s231);检查所述原始单元对应所述工艺设计表格中的数据是否符合所述限制条件,在不符合时,通过在所述原始单元上串联相应数量的晶体管以及调整所述原始单元的高度和/或最大驱动强度,来产生新的标准单元,包括:通过查所述漏电流表格来检查所述原始单元的漏电流是否符合所述限制条件,若不符合,则通过漏电流参数的算法确定在所述原始单元上串联多少数量的晶体管后的漏电流才能符合所述限制条件,并将串联有所述数量的原始单元创建为一个新的标准单元(即步骤s232),例如先在所述原始单元上串联两个晶体管,并判断相应的漏电流是否符合所述限制条件,当符合时,将串联有两个晶体管的所述原始单元创建为一个新的标准单元,当不符合时,再在所述原始单元上串联三个晶体管,并判断相应的漏电流是否符合所述限制条件,若符合,则将串联有三个晶体管的所述原始单元创建为一个新的标准单元;若还不符合,则显示无法自动化产生;以及,通过查所述速度表格来检查所述原始单元的延迟时间是否符合同步时钟速度的要求,若不符合,则通过速度延迟的算法对所述原始单元的高度进行变化,以找到能够符合所述要求且高度最小和驱动强度最大的状态,并将所述状态的原始单元创建为一个新的标准单元(即步骤s233)。

标准单元库模块407被配置为存放所述原始单元库中的所有原始单元以及所述合成引擎产生的所有的新的标准单元,以形成标准单元库。该标准单元库中除了原来的原始单元库中所有的原始单元之外,还有因为不符合应用要求而产生的新的标准单元,这些标准单元中串联的晶体管的个数、单元的高度以及驱动强度均与相应的原始单元不同,因此标准单元库相对原始单元库更加完整,更能符合新工艺和指定应用环境的需求。在本实施例中,合成引擎406可以依据串联的晶体管的数量、单元的高度和驱动强度来基于每一个根原始单元创建新的标准单元,即基于原始单元库的每个原始单元进行能适应新工艺、新应用环境需求的单元补足,以产生一个完整的、符合应用和工艺需求的标准单元库。

可以理解的是,行为级描述模块401、硬件级别描述模块402、原始单元库设计模块403、工艺设计表格模块404、应用限制条件模块405、合成引擎406以及标准单元库模块407可以合并在一个装置中实现,或者其中的任意一个模块可以被拆分成多个子模块,或者,行为级描述模块401、硬件级别描述模块402、原始单元库设计模块403、工艺设计表格模块404、应用限制条件模块405、合成引擎406以及标准单元库模块407中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个功能模块中实现。根据本发明的实施例,行为级描述模块401、硬件级别描述模块402、原始单元库设计模块403、工艺设计表格模块404、应用限制条件模块405、合成引擎406以及标准单元库模块407中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(fpga)、可编程逻辑阵列(pla)、片上系统、基板上的系统、封装上的系统、专用集成电路(asic),或可以以对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式的适当组合来实现。或者,行为级描述模块401、硬件级别描述模块402、原始单元库设计模块403、工艺设计表格模块404、应用限制条件模块405、合成引擎406以及标准单元库模块407中的至少一个可以至少被部分地实现为计算机程序模块,当该程序被计算机运行时,可以执行相应模块的功能。

请继续参考图4,基于同一发明构思,本发明一实施例还提供一种芯片设计系统,包括:本发明所述的建立标准单元库的系统40、元件级别描述模块41和版图级别描述模块42。

本发明所述的建立标准单元库的系统40用于提供标准单元库和/或提供将硬件级别描述、原始单元库、所述芯片对应的工艺设计表格以及所述芯片应用在设计上的限制条件逻辑合成后的结果。

元件级别描述模块41被配置为根据所述建立标准单元库的系统40中的合成引擎的逻辑合成结果来形成元件级别描述。所述元件级别描述(即门级别描述)用于描述芯片的门(gate)或与此同级别的电路元件相互之间连接关系,由此获得完整的芯片的逻辑电路图。

版图级别描述模块42被配置为基于所述的元件级别描述模块41产生的元件级别描述或所述的建立标准单元库的系统40建立的标准单元库来生成芯片版图。将依据标准单元库获得的完整的芯片的逻辑电路图或所述元件级别描述模块41获得的完整的芯片的逻辑电路图转换为完整的版图,所述版图中可以体现各个电路元件的几个图形与工艺规则。

可以理解的是,所述的建立标准单元库的系统40、元件级别描述模块41和版图级别描述模块42可以合并在一个装置中实现,或者其中的任意一个模块可以被拆分成多个子模块,或者,所述的建立标准单元库的系统40、元件级别描述模块41和版图级别描述模块42中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个功能模块中实现。根据本发明的实施例,所述的建立标准单元库的系统40、元件级别描述模块41和版图级别描述模块42中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(fpga)、可编程逻辑阵列(pla)、片上系统、基板上的系统、封装上的系统、专用集成电路(asic),或可以以对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式的适当组合来实现。或者,所述的建立标准单元库的系统40、元件级别描述模块41和版图级别描述模块42中的至少一个可以至少被部分地实现为计算机程序模块,当该程序被计算机运行时,可以执行相应模块的功能。

基于同一发明构思,本发明一实施例还提供一种计算机存储介质,其上存储有计算机程序,所述计算机程序被一处理器执行时能实现本发明所述的建立标准单元库的方法。

基于同一发明构思,本发明一实施例还提供一种计算机存储介质,其上存储有计算机程序,所述计算机程序被一处理器执行时能实现本发明所述的芯片的设计方法。

所述计算机存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备,例如可以是但不限于电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、静态随机存取存储器(sram)、便携式压缩盘只读存储器(cd-rom)、数字多功能盘(dvd)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所描述的计算机程序可以从计算机存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收所述计算机程序,并转发该计算机程序,以供存储在各个计算/处理设备中的计算机存储介质中。用于执行本发明操作的计算机程序可以是汇编指令、指令集架构(isa)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如smalltalk、c 等,以及常规的过程式编程语言—诸如“c”语言或类似的编程语言。所述计算机程序可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络,包括局域网(lan)或广域网(wan),连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机程序的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(fpga)或可编程逻辑阵列(pla),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。

这里参照根据本发明实施例的方法、系统和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序实现。这些计算机程序可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些程序在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机程序存储在计算机存储介质中,这些计算机程序使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有该计算机程序的计算机存储介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。

也可以把计算机程序加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的计算机程序实现流程图和/或框图中的一个或多个方框中规定的功能/动作。

综上所述,本发明的技术方案将建立标准单元库的方法,嵌入到传统的芯片设计流程中,在合成引擎时引入了具有固定布局方式的原始单元的原始单元库、工艺设计表格以及应用限制条件,在合成后不只是产生了原有的门级别描述,还合成了完整的标准单元库,进而在有了符合应用和工艺需求的门级别描述和标准单元库,可以继续利用传统的芯片设计流程去产生版图了。其中制定配合新的工艺要求的固定布局方式可以解决因工艺变化所造成的不能够快速、自动化地建立标准单元库的问题,本发明的技术方案可以克服就针对新的工艺、新的产品应用环境而无法快速产生标准单元库的问题。

显然,本领域的技术人员可以对发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。


技术特征:

1.一种建立标准单元库的方法,其特征在于,包括以下步骤:

进行行为级别描述,以确定待设计的芯片的功能、性能及面积;

依据所述行为级别描述进行硬件级别描述;

制定配合所述芯片的工艺需求的固定布局方式,并根据所述固定布局方式设计一具有原始单元的原始单元库;以及,

根据所述硬件级别描述、原始单元库、所述芯片对应的工艺设计表格以及所述芯片应用在设计上的限制条件进行逻辑合成,以形成标准单元库。

2.如权利要求1所述的建立标准单元库的方法,其特征在于,进行所述逻辑合成以形成所述标准单元库的步骤包括:

根据所述硬件级别描述,从所述原始单元库中选取出逻辑功能符合需求的原始单元;

检查所述原始单元对应所述工艺设计表格中的数据是否符合所述限制条件,在不符合时,通过在所述原始单元串联相应数量的晶体管以及调整所述原始单元的高度和/或最大驱动强度,来产生新的标准单元,所述原始单元库和所述新的标准单元组成所述标准单元库。

3.如权利要求2所述的建立标准单元库的方法,其特征在于,所述工艺设计表格包括参数表格、速度表格和漏电流表格,所述参数表格用于记录所述原始单元库中各个原始单元的固定布局参数,所述速度表格用于记录所述原始单元库中各个原始单元的延迟时间,所述漏电流表格用于记录所述原始单元库中各个原始单元的漏电流;

检查所述原始单元对应所述工艺设计表格中的数据是否符合所述限制条件的步骤包括:

通过查所述漏电流表格来检查所述原始单元的漏电流是否符合所述限制条件,若不符合,则通过漏电流参数的算法确定在所述原始单元上串联多少数量的晶体管后的漏电流才能符合所述限制条件,并将串联有所述数量的原始单元创建为一个新的标准单元;以及,

通过查所述速度表格来检查所述原始单元的延迟时间是否符合同步时钟速度的要求,若不符合,则通过速度延迟的算法对所述原始单元的高度进行变化,以找到能够符合所述要求且高度最小和驱动强度最大的状态,并将所述状态的原始单元创建为一个新的标准单元。

4.如权利要求1至3中任一项所述的建立标准单元库的方法,其特征在于,所述固定布局方式中,所有p型晶体管的几何大小都是相同的;所有n型晶体管的几何大小都是相同的,且所有p型晶体管和所有n型晶体管的长度都是相同的。

5.一种建立标准单元库的系统,其特征在于,包括:

行为级描述模块,其被配置为进行行为级别描述,以确定待设计的芯片的功能、性能及面积;

硬件级别描述模块,其被配置为依据所述行为级别描述进行硬件级别描述;

原始单元库设计模块,其被配置为制定配合所述芯片的工艺需求的固定布局方式,并根据所述固定布局方式设计一具有原始单元的原始单元库;

工艺设计表格模块,其被配置为根据所述芯片的工艺设计需求制定所述芯片对应的工艺设计表格;

应用限制条件模块,其被配置为根据所述芯片的应用需求制定所述芯片应用在设计上的限制条件;以及,

合成引擎,其被配置为将所述硬件级别描述、原始单元库、所述工艺设计表格以及所述限制条件进行逻辑合成,以形成新的标准单元;以及,

标准单元库模块,其被配置为存放所述原始单元库中的所有原始单元以及所述合成引擎产生的所有的新的标准单元,以形成标准单元库。

6.如权利要求5所述的建立标准单元库的系统,其特征在于,所述合成引擎进一步被配置为:

根据所述硬件级别描述,从所述原始单元库中选取出逻辑功能符合需求的原始单元;

检查所述原始单元对应所述工艺设计表格中的数据是否符合所述限制条件,在不符合时,通过在所述原始单元上串联相应数量的晶体管以及调整所述原始单元的高度和/或最大驱动强度,来产生新的标准单元。

7.如权利要求6所述的建立标准单元库的系统,其特征在于,所述固定布局方式中,所有p型晶体管的几何大小都是相同的;所有n型晶体管的几何大小都是相同的,且所有p型晶体管和所有n型晶体管的长度都是相同的;

所述工艺设计表格包括参数表格、速度表格和漏电流表格,所述参数表格用于记录所述原始单元库中各个原始单元的固定布局参数,所述速度表格用于记录所述原始单元库中各个原始单元的延迟时间,所述漏电流表格用于记录所述原始单元库中各个原始单元的漏电流;

所述合成引擎进一步被配置为:

通过查所述漏电流表格来检查所述原始单元的漏电流是否符合所述限制条件,若不符合,则通过漏电流参数的算法确定在所述原始单元上串联多少数量的晶体管后的漏电流才能符合所述限制条件,并将串联有所述数量的原始单元创建为一个新的标准单元;以及,

通过查所述速度表格来检查所述原始单元的延迟时间是否符合同步时钟速度的要求,若不符合,则通过速度延迟的算法对所述原始单元的高度进行变化,以找到能够符合所述要求且高度最小和驱动强度最大的状态,并将所述状态的原始单元创建为一个新的标准单元。

8.一种芯片设计方法,其特征在于,包括以下步骤:

采用权利要求1至4中任一项所述的建立标准单元库的方法形成标准单元库,并在形成标准单元库的同时形成元件级别描述;以及,

基于所述元件级别描述或所述标准单元库生成芯片版图。

9.一种芯片设计系统,其特征在于,包括:

权利要求5至7中任一项所述的建立标准单元库的系统;

元件级别描述模块,其被配置为根据所述建立标准单元库的系统中的合成引擎的逻辑合成结果来形成元件级别描述;以及,

版图级别描述模块,其被配置为基于所述元件级别描述或所述标准单元库生成芯片版图。

10.一种计算机存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被一处理器执行时能实现权利要求1至4中任一项所述的建立标准单元库的方法,或者,能实现权利要求8所述的芯片设计方法。

技术总结
本发明提供一种建立标准单元库的方法与系统、芯片设计方法与系统及计算机存储介质,将建立标准单元库的方法,嵌入到传统的芯片设计流程中,在合成引擎时引入了具有固定布局方式的原始单元的原始单元库、工艺设计表格以及应用限制条件,在合成后不只是产生了原有的门级别描述,还合成了完整的标准单元库,进而在有了符合应用和工艺需求的门级别描述和标准单元库,可以继续利用传统的芯片设计流程去产生版图了。本方案中制定的配合新的工艺要求的固定布局方式可以解决因工艺变化所造成的不能够快速、自动化地建立标准单元库的问题,本发明的技术方案可以克服就针对新的工艺、新的产品应用环境而无法快速产生标准单元库的问题。

技术研发人员:叶惠玲
受保护的技术使用者:叶惠玲
技术研发日:2019.01.29
技术公布日:2020.06.05

转载请注明原文地址: https://bbs.8miu.com/read-55061.html

最新回复(0)