CN111241768B - 建立标准单元库的方法与系统、芯片设计方法与系统 - Google Patents
建立标准单元库的方法与系统、芯片设计方法与系统 Download PDFInfo
- Publication number
- CN111241768B CN111241768B CN201910086921.7A CN201910086921A CN111241768B CN 111241768 B CN111241768 B CN 111241768B CN 201910086921 A CN201910086921 A CN 201910086921A CN 111241768 B CN111241768 B CN 111241768B
- Authority
- CN
- China
- Prior art keywords
- chip
- original
- cell library
- design
- standard cell
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/30—Computing systems specially adapted for manufacturing
Landscapes
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本发明提供一种建立标准单元库的方法与系统、芯片设计方法与系统及计算机存储介质,在本方案中事先设计了固定布局方式,并依据该固定布局方式来设计原始单元库,以避免当将得到的标准单元库应用于芯片设计时因待设计的芯片的工艺变化而造成违反设计规则的现象;同时本发明除了考虑标准单元库本身线路特性和ASIC设计过程中使用标准单元库的状况以外,还增加考量工艺要求以及各种产品应用端的要求,利用查表方式以及合成引擎的逻辑合成功能,来对原始单元库中的相应原始单元进行调整,从而可以快速、自动化得到相对完整的且更能符合新工艺、新应用要求的芯片设计需求的标准单元库,同时解决SPICE级别的线路仿真造成缓慢的问题,节约了时间和人力成本。
Description
技术领域
本发明涉及集成电路设计自动化技术领域,尤其涉及一种建立标准单元库的方法与系统、芯片设计方法与系统及计算机存储介质。
背景技术
目前,基于标准单元库的半定制芯片设计方法已经被广泛应用于集成电路设计中,即目前的集成电路版图设计包括基于标准单元库的设计。标准单元库是集成电路设计所需单元符号库、电路结构库、功能描述库、版图库、时序功耗库、物理视图库、设计规则和互连寄生参数模型库的总称。标准单元库的设计是指把电路设计中的一些标准单元(如组合逻辑、时序逻辑、物理单元等),按照最佳设计的原则设计,并作为标准单元存入标准单元库中,在进行集成电路设计时,根据电路要求从标准单元库中调用所需标准单元,进行逻辑综合及自动布局布线,逐步构成各级功能模块,直至整个系统。因此,标准单元库是集成电路设计的基础,从系统行为描述、逻辑综合、逻辑功能模拟,到时序分析、验证,直至物理设计中的自动布局布线都必须有一个内容丰富、功能完整的标准单元库的支持。
目前,建立标准单元库的最常见的方法有以下几种:
(1),一种从零开始建立标准单元库的方法,具体地,从每个标准单元的线路设计开始一直到该标准单元的版图设计完成的流程均执行一遍,例如发明专利申请CN103559352B提出的建立标准单元的方法;这种从零开始的建立标准单元库的方法存在以下缺陷:由于标准单元库的种类和包含的标准单元的个数众多,每一个新的标准单元都从零开始来建立的话,费时费力;
(2),利用标准单元库线路特性,加快建立新的标准单元库,例如发明专利申请CN105373668B公开了一种标准单元库电路设计方法,是针对逻辑综合形成各功能模块,事先做分块处理,再进行组合,由于分块处理完的分块数量(对应所需的标准单元库的数量),比原先的功能模块要少,所以能够节省一定的时间和人力;但是这种方法存在以下缺陷:虽然做分块处理,但个别分块仍然要进行CN 103559352 B SPICE级别的线路仿真,以及物理版图的重新制作和微调,依旧费时费力,不能满足快速高效的芯片设计需求;
(3),考虑ASIC(Application Specific Integrated Circuit,一种为专门目的而设计的集成电路)设计过程中使用标准单元库的状况,只产生需要用的标准单元来加快建立新的标准单元库,例如发明专利申请CN107784136A公开了一种标准单元库的创建方法及系统,先进行标准单元库的分类,生成基本的分类单元,然后决定驱动强度的数量和驱动能力的种类,如此可以避免产生不必要的标准单元,进而节省一定的时间和人力。但是这种方法存在以下缺陷:虽然考虑ASIC设计过程中使用标准单元库的状况,但是其没有考虑产品的应用要求,因为各芯片的应用要求往往不同,所以需要的标准单元库也不同,比如低功耗的应用,只需要纯粹是CMOS类别的设计,驱动强度也是偏小的,而高速的应用,会使用动态逻辑类别的设计,其驱动能力是偏大的,可见,这种方法不考虑产品的应用要求,会产生出许多不需要的标准单元,在造成资源浪费的同时,还存在不能满足多种应用要求以及通用的芯片设计的需求。
发明内容
本发明的目的之一在于提供一种建立标准单元库的方法与系统及计算机存储介质,能够基于以往的芯片设计,在不需要SPICE级别的线路仿真以及物理版图的重新制作和微调的前提下,自动且快速地产生标准单元库,能够节约时间和人力。
本发明的目的之二在于提供一种芯片设计方法与系统及计算机存储介质,能够基于本发明建立的标准单元库,来自动且快速地设计出更能符合新工艺及应用环境的芯片版图,节约时间和人力。
为了实现上述目的,本发明提供一种建立标准单元库的方法,包括以下步骤:
获取以往的相同应用要求的多种不同的芯片设计;
获取各所述应用要求在设计上的限制条件;
设计具有固定布局方式的原始单元库;
制定对应所述原始单元库的工艺设计表格;
将所述芯片设计、原始单元库、工艺设计表格以及所述应用要求在设计上的限制条件进行逻辑合成,以形成标准单元库。
可选地,进行所述逻辑合成以形成所述标准单元库的步骤包括:
根据所述芯片设计,从所述原始单元库中选取出逻辑功能符合需求的原始单元;
检查所述原始单元对应所述工艺设计表格中的数据是否符合所述限制条件,在不符合时,通过在所述原始单元串联相应数量的晶体管以及调整所述原始单元的高度和/或最大驱动强度,来产生新的标准单元,所述原始单元库和所述新的标准单元组成所述标准单元库。
可选地,所述固定布局方式中,所有P型晶体管的几何大小都是相同的;所有N型晶体管的几何大小都是相同的,且所有P型晶体管和所有N型晶体管的长度都是相同的;
所述工艺设计表格包括参数表格、速度表格和漏电流表格,所述参数表格用于记录所述原始单元库中各个原始单元的固定布局参数,所述速度表格用于记录所述原始单元库中各个原始单元的延迟时间,所述漏电流表格用于记录所述原始单元库中各个原始单元的漏电流;
检查所述原始单元对应所述工艺设计表格中的数据是否符合所述限制条件的步骤包括:
通过查所述漏电流表格来检查所述原始单元的漏电流是否符合所述限制条件,若不符合,则通过漏电流参数的算法确定在所述原始单元上串联多少数量的晶体管后的漏电流才能符合所述限制条件,并将串联有所述数量的原始单元创建为一个新的标准单元;以及,
通过查所述速度表格来检查所述原始单元的延迟时间是否符合同步时钟速度的要求,若不符合,则通过速度延迟的算法对所述原始单元的高度进行变化,以找到能够符合所述要求且高度最小和驱动强度最大的状态,并将所述状态的原始单元创建为一个新的标准单元。
基于同一发明构思,本发明还提供一种建立标准单元库的系统,包括:
芯片设计获取模块,其被配置为获取以往的相同应用要求的多种不同的芯片设计;
第一应用限制模块,其被配置为获取各所述应用要求在设计上的限制条件;
原始单元库设计模块,其被配置为设计具有固定布局方式的原始单元库;
工艺设计表格模块,其被配置为制定对应所述原始单元库的工艺设计表格;
第一合成引擎,其被配置为将所述芯片设计、原始单元库、所述工艺设计表格以及所述限制条件进行逻辑合成,以形成新的标准单元;以及,
标准单元库模块,其被配置为存放所述原始单元库中的所有原始单元以及所述合成引擎产生的所有的新的标准单元,以形成标准单元库。
可选地,所述第一合成引擎进一步被配置为:
根据所述芯片设计,从所述原始单元库中选取出逻辑功能符合需求的原始单元;
检查所述原始单元对应所述工艺设计表格中的数据是否符合所述限制条件,在不符合时,通过在所述原始单元上串联相应数量的晶体管以及调整所述原始单元的高度和/或最大驱动强度,来产生新的标准单元。
可选地,所述固定布局方式中,所有P型晶体管的几何大小都是相同的;所有N型晶体管的几何大小都是相同的,且所有P型晶体管和所有N型晶体管的长度都是相同的;
所述工艺设计表格包括参数表格、速度表格和漏电流表格,所述参数表格用于记录所述原始单元库中各个原始单元的固定布局参数,所述速度表格用于记录所述原始单元库中各个原始单元的延迟时间,所述漏电流表格用于记录所述原始单元库中各个原始单元的漏电流;
所述第一合成引擎进一步被配置为:
通过查所述漏电流表格来检查所述原始单元的漏电流是否符合所述限制条件,若不符合,则通过漏电流参数的算法确定在所述原始单元上串联多少数量的晶体管后的漏电流才能符合所述限制条件,并将串联有所述数量的原始单元创建为一个新的标准单元;以及,
通过查所述速度表格来检查所述原始单元的延迟时间是否符合同步时钟速度的要求,若不符合,则通过速度延迟的算法对所述原始单元的高度进行变化,以找到能够符合所述要求且高度最小和驱动强度最大的状态,并将所述状态的原始单元创建为一个新的标准单元。
基于同一发明构思,本发明还提供一种芯片设计方法,包括以下步骤:
提供标准单元库,所述标准单元库采用本发明所述的建立标准单元库的方法形成或者由本发明所述的建立标准单元库的系统提供;
对待设计的芯片进行行为级别描述,以获得所述待设计的芯片的功能、性能以及面积;
根据所述行为级别描述进行所述待设计芯片的硬件级别描述;
根据所述标准单元库、硬件级别描述以及所述待设计的芯片的应用要求在设计上的限制条件,进行逻辑合成,以形成所述待设计的芯片对应的芯片电路;
对所述芯片电路进行元件级别描述;以及,
基于所述元件级别描述生成所述待设计芯片的芯片版图。
基于同一发明构思,本发明还提供一种芯片设计系统,包括:
标准单元库,其被配置为采用本发明所述的建立标准单元库的方法形成或由本发明所述的建立标准单元库的系统提供;
行为级别描述模块,其被配置为对一待设计的芯片进行行为级别描述,以获得所述芯片设计需求;
硬件级别描述模块,其被配置为根据芯片设计需求进行硬件级别描述;
第二应用限制模块,其被配置为制定所述待设计的芯片的应用要求在设计上的限制条件;
第二合成引擎,其被配置为将所述硬件级别描述、标准单元库以及所述待设计的芯片的应用在设计上的限制条件进行逻辑合成,以形成所述待设计的芯片对应的芯片电路;
元件级别描述模块,其被配置为对所述芯片电路进行元件级别描述;以及,
版图级别描述模块,其被配置为基于所述元件级别描述生成所述待设计的芯片的版图。
基于同一发明构思,本发明还提供一种计算机存储介质,其上存储有计算机程序,所述计算机程序被一处理器执行时能实现本发明所述的建立标准单元库的方法。
基于同一发明构思,本发明还提供一种计算机存储介质,其上存储有计算机程序,所述计算机程序被一处理器执行时能实现本发明所述的芯片设计方法。
与现有技术相比,本发明的技术方案具有以下有益效果:
1、由于本方案中所使用的原始单元库是依据符合工艺要求的固定布局方式来设计完成的,所以不会有因工艺变化所造成违反设计规则的现象,也就避免了需要人工参与来解决违反设计规则的问题,进而解决了如何快速的自动化产生标准单元库的版图问题。
2、由于本方案中所使用的原始单元库是根据符合工艺要求的固定布局方式来设计完成的,所以可以根据收集的以往的相同应用要求的不同芯片设计来对原始单元进行直接组合来形成标准单元,进而得到标准单元库,解决了如何快速的自动化产生标准单元库的线路问题。
3、由于本方案中所使用了相关的工艺设计表格(参数表格/速度表格/漏电流表格),因此能够利用查表的方式,来确定选取的原始单元是否符合对应的芯片设计的应用限制条件,进而可以进一步调整原始单元以得到符合应用限制条件的标准单元,也就是说,本方案除了考虑标准单元库本身线路特性和ASIC设计过程中使用标准单元库的状况以外,还增加考量工艺要求(SPICE级别的线路仿真以及物理版图的制作)以及各种产品应用端的要求,利用查表方式,解决SPICE级别的线路仿真造成缓慢的问题,由此解决了如何快速的自动化产生标准单元库的问题,节约了时间和人力成本;
4、由于本方案中能够基于原始单元库、工艺设计表格、以往的相同应用要求的多种不同设计以及各应用要求在设计上的限制条件来逻辑合成标准单元库,尤其是根据工艺条件表格中数据来判断各个原始单元是否能符合所述限制条件,进而依据工艺设计表格的数据算法对原始单元进行调整,以产生了包括不同的串联管子数、不同的高度和最大驱动强度的标准单元库,因此解决了如何快速地自动化产生标准单元库的完整性问题,能够满足多种应用要求的芯片设计需求,且具有更高的普遍适用性。
5、由于本方案可以考虑以往的相同应用要求的多种不同设计来建立标准单元库,因此可以在芯片设计之前快速产生符合新的工艺/新的产品应用环境需求的标准单元库,进而可以基于该标准单元库来通过传统的芯片设计流程来实现符合新的工艺/新的产品应用环境的芯片设计,从而能提高后续的芯片设计的效率。
附图说明
图1为本发明具体实施例的建立标准单元库的方法流程图;
图2为本发明具体实施例的建立标准单元库的方法中进行逻辑合成的流程图;
图3为本发明具体实施例的建立标准单元库的系统的框图;
图4为本发明具体实施例的芯片设计方法的流程图;
图5为本发明具体实施例的芯片设计系统的框图。
具体实施方式
为使本发明的目的、特征更明显易懂,下面结合附图对本发明的技术方案作详细的说明,然而,本发明可以用不同的形式实现,不应只是局限在所述的实施例。此外,需要说明的是,本公开的技术可以硬件和/或软件(包括固件、微代码等)的形式来实现。
请参考图2,本发明一实施例提供一种建立标准单元库的方法,包括以下步骤:
S11,获取以往的相同应用要求的多种不同的芯片设计;
S12,获取各所述应用要求在设计上的限制条件;
S13,设计具有固定布局方式的原始单元库;
S14,制定对应所述原始单元库的工艺设计表格;
S15,将所述芯片设计、原始单元库、工艺设计表格以及所述应用要求在设计上的限制条件进行逻辑合成,以形成标准单元库。
由于目前有很多芯片的设计虽然不同,但是这些芯片的应用环境的要求规则是相同,因此,在步骤S11中,可以收集大量的以往的相同应用要求的多种不同的芯片设计,这些以往的芯片设计是后续建立标准单元库的基础,可以用于在新的芯片设计之前事先产生能够符合其设计需求的标准单元库。在步骤S11中可以利用HDL等语言,将各个芯片设计的电路拆解并描述为相互连接关系明确的、尽可能简单的若干个典型的单元(即若干个典型的逻辑部件和控制这些逻辑部件的数据传输的状态机),这些单元通过相应的布线相互连接后,能组合得到相应的芯片的总体硬件结构,这些单元可能包括逻辑门(包括与门、与非门、或门,或非门、与或门、与或非门、或与门、或与否门及异或非门等)、逻辑运算单元、控制单元、驱动单元、时序单元(触发器、锁存器、移位寄存器、时钟门控电路以及各种时序状态机等)、数据通道(例如I/O单元、计数器、加法器、减法器、乘法器、寄存器、选择器及算数运算单元等)、缓冲单元(包括缓冲器、驱动电平转换电路单元、保护电路单元等)以及其他单元(例如存储单元、连线单元、电源单元、地单元等)。
步骤S12和步骤S11的顺序实质上是不分先后的,可以同时进行,即在获取芯片设计的过程中,同时收集这些芯片设计对应的应用要求(即应用环境需求)在设计上的限制条件,即芯片的应用需求体现在芯片电路设计上的限制条件。这些限制条件用作后续对原始单元库中原始单元进行调整以得到标准单元的依据。
在步骤S13中,可以先依照以往的芯片设计的工艺需求来定义出合适的固定布局方式,依照这个固定布局方式产生的版图,自然不会违反设计规则,进而不会出现因违反设计规则而需要人工去处理其中违反设计规则的电路的问题,这具体是因为所有的芯片线路(即原始单元库和标准单元库中的单元)都是由P型晶体管和N型晶体管来组成,为方便举例,本实施例中,将固定布局方式定义为:所有P型晶体管的几何大小都是相同的,宽度为pw,长度为l;所有N型晶体管的几何大小都是相同的,N型晶体管的宽度为nw,长度和P型晶体管相同,也为l。利用这种简单单一的布局方式,不但方便步骤S15中的合成引擎来产生标准单元库,而且产生的标准单元库也都会符合设计规则,不需要人工去处理其中违反设计规则的部分。在步骤S13中,通过具有所述固定布局方式的至少一个P型晶体管和/或至少一个N型晶体管直接组合成各具有相应的功能的原始单元,进而组成原始单元库,该原始单元库和一般标准单元库相同,包含一套完整逻辑,不相同的是,每一种逻辑(即原始单元)的布局方式已经固定,没有不同的驱动强度,即每一种逻辑(即原始单元)是一种具有固定布局的线路(即一小块芯片电路),每一种逻辑(即原始单元)中的P型晶体管其只能由若干个上述固定布局方式中定义出的P型晶体管串联而成,每一种逻辑(即原始单元)中的N型晶体管其只能由若干个上述固定布局方式中定义出的N型晶体管串联而成,也就是说,每一种逻辑(即原始单元)中的P型晶体管的长度都固定为l,宽度为pw的整数倍(倍数等于组合的所述固定布局方式中定义出的P型晶体管的数量);每一种逻辑(即原始单元)中的N型晶体管的长度都固定为l,宽度为nw的整数倍(倍数等于组合的所述固定布局方式中定义出的N型晶体管的数量)。也就是说,本实施例中的原始单元库是使用固定的PMOS、NMOS尺寸,再依据收集的芯片工艺要求的设计规则,形成了固定布局方式,该原始单元库是在后续待设计的芯片版图设计之前事先设计完成,所以不会有因后续待设计的芯片工艺变化所造成违反设计规则的现象。
在步骤S14中,根据各个所述芯片设计的工艺需求制定出工艺相关的工艺设计表格,该工艺设计表格即与原始单元库相对应,具体包含三种不同的工艺设计表格:第一个工艺设计表格是参数表格,用于记录固定布局参数(即固定布局方式的P型晶体管和N型晶体管的高度l和宽度/pw/nw);第二个工艺设计表格是速度表格,用于记录每种逻辑(即原始单元)的延迟时间,是一个二维的表格,第一个维度是驱动晶体管的倍数,第二个维度是被驱动晶体管的倍数,记载的内容是相对应的延迟时间,不同的布局高度、工艺状况、电压值、温度等等都会有相对应的二维速度表格,第三个工艺设计表格是漏电流表格,用于记录具有固定布局格式的晶体管的漏电流,具体地,不同的布局高度、工艺状况、电压值、温度都会有相对应的漏电流,所述漏电流表格包括单个具有固定布局格式的P型晶体管和单个具有固定布局格式的N型晶体管的漏电流以及串联两个或三个具有固定布局格式的P型晶体管或具有固定布局格式的N型晶体管时的漏电流值。
步骤S15的目的是将在步骤S12的限制条件的限制下,利用步骤S13中设计的原始单元库中的原始单元将步骤S11中收集的各个芯片设计的各个逻辑部件或功能模块转换为逻辑电路图,其中,同一功能模块可能可以通过多种逻辑设计加以实现,因此在这一步中,需要尽可能采用原始单元库中的原始单元来实现芯片的各个逻辑部件或功能模块。请参考图2,步骤S15的具体过程包括:
首先,执行S151,即根据步骤S11中收集的各个芯片设计,从所述原始单元库中选取出逻辑功能符合需求的原始单元;
接着,检查选取的所述原始单元对应所述工艺设计表格中的数据是否符合所述限制条件,包括S152检查漏电流是否符合应用设计的要求,并在不符合时,通过漏电流参数的算法决定原始单元额外串联的管子数,以及,S153检查选取的原始单元速度是否符合应用设计的要求,并在不符合时,通过速度延迟的算法获得单元的高度/驱动强度。
具体地,在步骤S152中,首先可以通过查漏电流表格的方式,检查步骤S151选取出的原始单元的漏电流是否符合应用设计,具体算法为:应用限制条件中的漏电流的要求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型晶体管,并判断串联三个后的单元的漏电流值是否能符合要求,如果能符合要求,则将所述串联三个后的单元创建为一个新的标准单元,如果还是不符合要求,则显示无法自动化产生。在本发明的其他实施例中,当选取的原始单元不符合要求时,也可以通过将两个或三个原始单元直接串联在一起,并进一步判断串联后的漏电流值是否满足限制条件,并在满足限制条件时,将串联的原始单元创建为一个新的标准单元。
因为本实施例中使用原始单元库、工艺设计表格以及应用限制条件来产生标准单元库,所以可以以时钟时序来对步骤S11中收集的芯片设计的整个电路设计进行切割,变成一小块一小块的线路设计,在步骤S153中,只需要检查每一小块的线路设计所使用的原始单元是不是符合同步时钟速度的要求即可。也就是说,1/时钟频率>每一小块线路所对应的原始单元的延迟时间;可以通过查表的方式从速度表格中得到所述原始单元的延迟时间,如果不符合要求,就在所述原始单元的基础上进行高度变化(即具有固定布局格式的晶体管的长度的变化),以找到延迟时间能符合要求、高度最小且驱动强度最大的状态,将找到的所述状态对应的原始单元创建为一个新的标准单元。
由此,在步骤S15中,将步骤S154产生的所有的新的标准单元以及步骤S13的原始单元库中的所有原始单元合并成一个新的单元库,即标准单元库,该标准单元库中除了原来的原始单元库中所有的原始单元之外,还有因为不符合应用要求而产生的新的标准单元,这些标准单元中串联的晶体管的个数、单元的高度以及驱动强度均与相应的原始单元不同,因此标准单元库相对原始单元库更加完整,更能符合新工艺和指定应用环境的需求。在本实施例中,可以依据串联的晶体管的数量、单元的高度和驱动强度来基于每一个根原始单元创建新的标准单元,即基于原始单元库的每个原始单元进行能适应新工艺、新应用环境需求的单元补足,以产生一个完整的、符合应用和工艺需求的标准单元库。
之后可以利用该标准单元库进行芯片设计。
需要说明的是,步骤S152和步骤S153没有先后顺序,因为这两个步骤要得到的参数是不一样的,步骤S152要得到的是串联晶体管的个数,步骤S153要得到的是基于原始单元而调整得到的高度和强度,互不相斥。此外,本发明所描述的固定布局方式并不仅仅限于上述实施例的步骤S13中举例的这一种固定布局方式,只要能够使得晶体管的相关参数能够固定的固定布局方式,均可以应用于本发明的步骤S13,均属于本发明所要保护的权利范围中。上述实施例中原始单元各个位置上的晶体管均需要根据其漏电流和延迟时间来做匹配,而在本发明另一实施例的固定布局方式中,可以仅设定原始单元的输入端和输出端需要根据其漏电流和延迟时间来做匹配(即具体需要串联几个晶体管),而原始单元的其他部分是固定不变的(即不会根据漏电流和延迟时间来调整串联的晶体管数量),这时,步骤S15中对应的算法可以适应性改变,也属于本发明所述的固定布局方式,本领域技术人员可以在本发明举例的固定布局方式的基础上对这些固定布局方式进行组合或者变型而得到新的固定布局方式,本发明也意图将这些固定布局方式的变型也包含在内。
应当认识到,上述实施例的步骤S152和步骤S153中关于漏电流和速度延迟的算法也仅仅是本发明技术方案中的一种举例,本发明的技术方案并不仅仅限定于此,只要是利用漏电流和速度延迟来产生的新的标准单元的方案都属于本发明要保护的权利范围,不论这些方案中的漏电流和速度延迟的具体算法是不是相同。
此外,从图1中可以看出,本发明主要是利用具有固定布局方法的原始单元库以及合成引擎去产生标准单元库的方案,其中具体的合成算法并不能限定本发明的权利保护范围,因此,本发明意图将所有利用具有固定布局方法的原始单元库以及合成引擎去产生标准单元库的方案包含在内。
综上所述,在本实施例的建立标准单元库的方法中,首先,可以在步骤S13中能制定出配合各种的工艺要求的基本元器件PMOS、NMOS固定尺寸布局方式,以解决后续因待设计的芯片的工艺变化所造成的不能够利用产生的标准单元库去自动化进行芯片设计的问题;然后,在步骤S13中还能根据此固定布局方式来设计原始单元库;在步骤S15中,在原始单元库的基础上,加上工艺相关的三种设计资料表格(参数表格/速度表格/漏电流表格)以及收集的各种芯片设计应用的限制条件,就可以利用本实施例提出的第一合成引擎的流程,快速地产生新的标准单元库,所以,本实施例的建立标准单元库的方法,不再需要SPICE(Simulation Program with Integrated Circuit Emphasis,以集成电路为重点的仿真)级别的线路仿真,以及物理版图的重新制作和微调,可以省去产生不需要应用的标准单元。
基于同一发明构思,请参考图3,本发明一实施例还提供一种建立标准单元库的系统3,包括:芯片设计收集模块31、第一应用限制模块32、原始单元库设计模块33、工艺设计表格模块34、第一合成引擎35以及标准单元库模块36。
芯片设计收集模块31被配置为收集(或者说获取)大量的以往的相同应用要求的多种不同的芯片设计,并利用HDL等语言对收集的各个芯片设计进行硬件级别描述,将各个芯片设计的整个电路拆解并描述为相互连接关系明确的、尽可能简单的若干个典型的单元(即若干个典型的逻辑部件和控制这些逻辑部件的数据传输的状态机),这些单元通过相应的布线相互连接后,能组合得到芯片的总体硬件结构,这些单元可能包括逻辑门(包括与门、与非门、或门,或非门、与或门、与或非门、或与门、或与否门及异或非门等)、逻辑运算单元、控制单元、驱动单元、时序单元(触发器、锁存器、移位寄存器、时钟门控电路以及各种时序状态机等)、数据通道(例如I/O单元、计数器、加法器、减法器、乘法器、寄存器、选择器及算数运算单元等)、缓冲单元(包括缓冲器、驱动电平转换电路单元、保护电路单元等)以及其他单元(例如存储单元、连线单元、电源单元、地单元等)。
第一应用限制模块32被配置为根据收集到的各个所述芯片设计的应用要求制定(或者说获取)各个应用要求(即应用环境需求)在设计上的限制条件。
原始单元库设计模块33被配置为制定配合各个所述芯片设计的工艺需求的固定布局方式,并根据所述固定布局方式设计一具有原始单元的原始单元库。其中,固定布局方式定义为:所有P型晶体管的几何大小都是相同的,宽度为pw,长度为l;所有N型晶体管的几何大小都是相同的,N型晶体管的宽度为nw,长度和P型晶体管相同,也为l。原始单元库中的每个原始单元都是由相应的具有所述固定布局方式的至少一个P型晶体管和/或至少一个N型晶体管直接组合而成,以具有相应的功能,即每个原始单元中的一个P型晶体管由若干个上述固定布局方式中定义出的P型晶体管串联而成,每一个原始单元中的一个N型晶体管由若干个上述固定布局方式中定义出的N型晶体管串联而成,也就是说,每一个原始单元中的一个P型晶体管的长度都固定为l,宽度为pw的整数倍(倍数等于组合的所述固定布局方式中定义出的P型晶体管的数量);每一原始单元中的一个N型晶体管的长度都固定为l,宽度为nw的整数倍(倍数等于组合的所述固定布局方式中定义出的N型晶体管的数量)。
工艺设计表格模块34被配置为根据各个所述芯片设计的工艺需求制定出工艺相关的工艺设计表格,该工艺设计表格即与原始单元库相对应。工艺设计表格模块34具体包含三种不同的工艺设计表格:第一个工艺设计表格是参数表格,用于记录固定布局参数(即固定布局方式的P型晶体管和N型晶体管的高度l和宽度/pw/nw);第二个工艺设计表格是速度表格,用于记录每种逻辑(即原始单元)的延迟时间,是一个二维的表格,第一个维度是驱动晶体管的倍数,第二个维度是被驱动晶体管的倍数,记载的内容是相对应的延迟时间,不同的布局高度、工艺状况、电压值、温度等等都会有相对应的二维速度表格,第三个工艺设计表格是漏电流表格,用于记录具有固定布局格式的晶体管的漏电流,具体地,不同的布局高度、工艺状况、电压值、温度都会有相对应的漏电流,所述漏电流表格包括单个具有固定布局格式的P型晶体管和单个具有固定布局格式的N型晶体管的漏电流以及串联两个或三个具有固定布局格式的P型晶体管或具有固定布局格式的N型晶体管时的漏电流值。
第一合成引擎35被配置为将芯片设计收集模块31收集到的所有的所述芯片设计、原始单元库设计模块33设计的原始单元库、工艺设计表格模块34制定的工艺设计表格以及第一应用限制模块32制定的限制条件进行逻辑合成,以形成新的标准单元。本实施例中,第一合成引擎35能实现上述的步骤S151~步骤S153的内容,即所述第一合成引擎35进一步被配置为:根据所述芯片设计收集模块31收集到的所有的所述芯片设计的硬件级描述,从所述原始单元库中选取出逻辑功能符合需求的原始单元(即步骤S151);检查所述原始单元对应所述工艺设计表格中的数据是否符合所述应用限制模块32制定的限制条件,在不符合时,通过在所述原始单元上串联相应数量的晶体管以及调整所述原始单元的高度和/或最大驱动强度,来产生新的标准单元,包括:通过查所述漏电流表格来检查所述原始单元的漏电流是否符合所述限制条件,若不符合,则通过漏电流参数的算法确定在所述原始单元上串联多少数量的晶体管后的漏电流才能符合所述限制条件,并将串联有所述数量的原始单元创建为一个新的标准单元(即步骤S152),例如先在所述原始单元上串联两个晶体管,并判断相应的漏电流是否符合所述限制条件,当符合时,将串联有两个晶体管的所述原始单元创建为一个新的标准单元,当不符合时,再在所述原始单元上串联三个晶体管,并判断相应的漏电流是否符合所述限制条件,若符合,则将串联有三个晶体管的所述原始单元创建为一个新的标准单元;若还不符合,则显示无法自动化产生;以及,通过查所述速度表格来检查所述原始单元的延迟时间是否符合同步时钟速度的要求,若不符合,则通过速度延迟的算法对所述原始单元的高度进行变化,以找到能够符合所述要求且高度最小和驱动强度最大的状态,并将所述状态的原始单元创建为一个新的标准单元(即步骤S153)。
标准单元库模块36被配置为存放原始单元库设计模块33设计的原始单元库中的所有原始单元以及所述第一合成引擎35产生的所有的新的标准单元,以形成标准单元库。该标准单元库中除了原来的原始单元库中所有的原始单元之外,还有因为不符合应用要求而产生的新的标准单元,这些标准单元中串联的晶体管的个数、单元的高度以及驱动强度均与相应的原始单元不同,因此标准单元库相对原始单元库更加完整,更能符合新工艺和指定应用环境的需求。在本实施例中,第一合成引擎35可以依据串联的晶体管的数量、单元的高度和驱动强度来基于每一个根原始单元创建新的标准单元,即基于原始单元库的每个原始单元进行能适应新工艺、新应用环境需求的单元补足,以产生一个完整的、更能符合新的应用和工艺的需求的标准单元库。
可以理解的是,芯片设计收集模块31、应用限制模块32、原始单元库设计模块33、工艺设计表格模块34、第一合成引擎35以及标准单元库模块36可以合并在一个装置中实现,或者其中的任意一个模块可以被拆分成多个子模块,或者,芯片设计收集模块31、应用限制模块32、原始单元库设计模块33、工艺设计表格模块34、第一合成引擎35以及标准单元库模块36中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个功能模块中实现。根据本发明的实施例,芯片设计收集模块31、应用限制模块32、原始单元库设计模块33、工艺设计表格模块34、第一合成引擎35以及标准单元库模块36中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以以对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式的适当组合来实现。或者,芯片设计收集模块31、应用限制模块32、原始单元库设计模块33、工艺设计表格模块34、第一合成引擎35以及标准单元库模块36中的至少一个可以至少被部分地实现为计算机程序模块,当该程序被计算机运行时,可以执行相应模块的功能。
综上所述,本发明的建立标准单元库的方法及系统,事先设计了固定布局方式,并依据该固定布局方式来设计原始单元库,以避免当将得到的标准单元库应用于芯片设计时因待设计的芯片的工艺变化而造成违反设计规则的现象;同时本发明利用合成引擎的逻辑合成功能,来根据收集的各个芯片设计的应用限制条件以及工艺设计表格来对原始单元库中的相应原始单元进行调整,从而可以得到相对完整的且更能符合新工艺、新应用的芯片设计需求的标准单元库。
基于同一发明构思,请参考图4,本发明一实施例还提供一种芯片设计方法,具体包括:
S41,提供标准单元库,所述标准单元库由本发明所述的建立标准单元库的方法形成;
S42,进行行为级别描述,以确定待设计的芯片的功能、性能及面积;
S43,依据所述行为级别描述进行硬件级别描述;
S44,将所述硬件级别描述、标准单元库以及所述待设计的芯片应用要求在设计上的限制条件进行逻辑合成,以形成所述待设计的芯片对应的芯片电路;
S45,对所述芯片电路进行元件级别描述;以及,
S46,基于所述元件级别描述生成所述待设计芯片的芯片版图。
在步骤S41中,通过如图1至2所示的建立标准单元库的方法或图3所示的建立标准单元库的系统来提供芯片设计所需的标准单元库。
在步骤S42中,行为级别描述的任务主要是用C++等语言定义出待设计的芯片的电路功能、性能指标以及外部特性(包括芯片面积、成本等),为后续的硬件级描述提供一个理论层次的依据;进一步地,可以将芯片的整个电路拆解为若干个抽象的功能模块,并将各个功能模块的逻辑功能定义清楚。
在步骤S43中,根据步骤S42中的行为级别描述的内容(即芯片的特点),利用HDL等语言,将芯片的整个电路拆解并描述为相互连接关系明确的、尽可能简单的若干个典型的单元(即若干个典型的逻辑部件和控制这些逻辑部件的数据传输的状态机),这些单元通过相应的布线相互连接后,能组合得到芯片的总体硬件结构,这些单元可能包括逻辑门(包括与门、与非门、或门,或非门、与或门、与或非门、或与门、或与否门及异或非门等)、逻辑运算单元、控制单元、驱动单元、时序单元(触发器、锁存器、移位寄存器、时钟门控电路以及各种时序状态机等)、数据通道(例如I/O单元、计数器、加法器、减法器、乘法器、寄存器、选择器及算数运算单元等)、缓冲单元(包括缓冲器、驱动电平转换电路单元、保护电路单元等)以及其他单元(例如存储单元、连线单元、电源单元、地单元等)。
应当认识到,上述的步骤S41和步骤S43均是为了提供步骤S44所需的逻辑合成条件,这两个步骤的顺序不分先后,即本发明并不限定于上述的步骤S41在前而步骤S43在后的顺序,可以是步骤S42和步骤S43依次在步骤S41之前执行,还可以是步骤S41与步骤S42~S43同时执行。
步骤S44中需要进行逻辑合成,即根据步骤S43的硬件级别描述,加上待设计的芯片的应用要求在设计上的限制条件,从步骤S41提供的标准单元库中选择适合的标准单元来产生所述待设计的芯片的芯片电路;
在步骤S45中,对所述待设计的芯片的芯片电路进行元件级别描述(即门级别描述),即描述出所述待设计的芯片的芯片电路中的门(gate)或与此同级别的元件相互之间连接关系,得到所述待设计的芯片的完整的逻辑电路图。
在步骤S46中,依据所述元件级别描述产生所述待设计的芯片的版图,即将步骤S45中所述待设计的芯片的完整的逻辑电路图转换为完整的芯片版图,在该芯片版图中可以体现各个电路元件的几个图形与工艺规则。
之后,可以对所述版图进行设计规则检查(DRC)、版图与逻辑电路图一致性校验(LVS校验)、仿真和测试等操作,通过测试的版图可以用于正式生产芯片。
综上所述,本实施例的芯片设计方法,因为利用了本发明的标准单元库,并考虑了芯片应用的限制条件等因素,来进行芯片版图设计,因此不会产生因待设计的芯片的工艺变化所造成的不能够自动化设计芯片版图的问题,而且不需要对选择的标准单元进行SPICE级别的线路仿真以及物理版图的重新制作和微调,因此能够提高芯片设计的效率,节约时间和人力。
请参考图5,基于同一发明构思,本发明一实施例还提供一种芯片设计系统,包括:本发明所提供的标准单元库41、行为级别描述模块42、硬件级别描述模块43、第二应用限制模块44、第二合成引擎模块45、元件级别描述模块46和版图级别描述模块47。
标准单元库41其被配置为由图3所示的建立标准单元库的系统3或者图1所示的建立标准单元库的方法提供。
所述行为级描述模块42被配置为用C++等语言进行行为级别描述,以定义出待设计的芯片的电路功能、性能指标以及外部特性(包括芯片面积、成本等),为后续的硬件级描述提供一个理论层次的依据;进一步地,还可以将芯片的整个电路拆解为若干个抽象的功能模块,并将各个功能模块的逻辑功能定义清楚。
硬件级别描述模块43被配置为依据所述行为级别描述,利用HDL等语言进行硬件级别描述,将待设计的芯片的整个电路拆解并描述为相互连接关系明确的、尽可能简单的若干个典型的单元(即若干个典型的逻辑部件和控制这些逻辑部件的数据传输的状态机),这些单元通过相应的布线相互连接后,能组合得到芯片的总体硬件结构,这些单元可能包括逻辑门(包括与门、与非门、或门,或非门、与或门、与或非门、或与门、或与否门及异或非门等)、逻辑运算单元、控制单元、驱动单元、时序单元(触发器、锁存器、移位寄存器、时钟门控电路以及各种时序状态机等)、数据通道(例如I/O单元、计数器、加法器、减法器、乘法器、寄存器、选择器及算数运算单元等)、缓冲单元(包括缓冲器、驱动电平转换电路单元、保护电路单元等)以及其他单元(例如存储单元、连线单元、电源单元、地单元等)。
第二应用限制模块44被配置为根据所述待设计的芯片的应用要求制定所述待设计的芯片的应用要求在设计上的限制条件。
第二合成引擎45被配置为将所述硬件级别描述模块43的硬件级别描述、标准单元库41以及第二应用限制模块44中的所述待设计的芯片的应用要求在设计上的限制条件进行逻辑合成,以形成所述待设计的芯片对应的芯片电路。具体地,根据硬件级别描述模块43的硬件级别描述,加上第二应用限制模块44中的待设计的芯片的应用要求在设计上的限制条件,从标准单元库中选择适合的标准单元来产生所述待设计的芯片的芯片电路。
元件级别描述模块46被配置为根据所述第二合成引擎45的逻辑合成结果来形成元件级别描述。所述元件级别描述(即门级别描述)用于描述芯片的门(gate)或与此同级别的电路元件相互之间连接关系,由此获得完整的芯片的逻辑电路图。
版图级别描述模块47被配置为基于所述的元件级别描述模块46产生的元件级别描述来生成待设计的芯片的芯片版图。具体地,将所述元件级别描述模块46获得的完整的芯片的逻辑电路图转换为完整的版图,所述版图中可以体现各个电路元件的几个图形与工艺规则。
可以理解的是,标准单元库41、行为级别描述模块42、硬件级别描述模块43、第二应用限制模块44、第二合成引擎模块45、元件级别描述模块46和版图级别描述模块47可以合并在一个装置中实现,或者其中的任意一个模块可以被拆分成多个子模块,或者,标准单元库41、行为级别描述模块42、硬件级别描述模块43、第二应用限制模块44、第二合成引擎模块45、元件级别描述模块46和版图级别描述模块47中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个功能模块中实现。根据本发明的实施例,标准单元库41、行为级别描述模块42、硬件级别描述模块43、第二应用限制模块44、第二合成引擎模块45、元件级别描述模块46和版图级别描述模块47中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以以对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式的适当组合来实现。或者,标准单元库41、行为级别描述模块42、硬件级别描述模块43、第二应用限制模块44、第二合成引擎模块45、元件级别描述模块46和版图级别描述模块47中的至少一个可以至少被部分地实现为计算机程序模块,当该程序被计算机运行时,可以执行相应模块的功能。
基于同一发明构思,本发明一实施例还提供一种计算机存储介质,其上存储有计算机程序,所述计算机程序被一处理器执行时能实现本发明所述的建立标准单元库的方法。
基于同一发明构思,本发明一实施例还提供一种计算机存储介质,其上存储有计算机程序,所述计算机程序被一处理器执行时能实现本发明所述的芯片的设计方法。
所述计算机存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备,例如可以是但不限于电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所描述的计算机程序可以从计算机存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收所述计算机程序,并转发该计算机程序,以供存储在各个计算/处理设备中的计算机存储介质中。用于执行本发明操作的计算机程序可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。所述计算机程序可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机程序的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。
这里参照根据本发明实施例的方法、系统和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序实现。这些计算机程序可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些程序在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机程序存储在计算机存储介质中,这些计算机程序使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有该计算机程序的计算机存储介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机程序加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的计算机程序实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
综上所述,本发明的芯片设计方法及系统中,由于其使用的标准单元库是本发明的建立标准单元库的方法或系统提供的,该标准单元库相对完整,且是基于具有固定布局格式的原始单元库形成的,因此不会出现因待设计的芯片的工艺变化而造成违反设计规则的现象,而且在利用标准单元库进行芯片设计时,还考虑了待设计的芯片的应用要求在设计上的限制条件,因此不会产生“事先准备好的标准单元库”和“后来才知道的芯片工艺/芯片应用”不配合的问题,产生的芯片版图,不会违反设计规则,由此节约了芯片设计的时间,提高了芯片设计的效率,能够满足新的工艺和新的产品应用环境的芯片设计的需求。
显然,本领域的技术人员可以对发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (8)
1.一种建立标准单元库的方法,其特征在于,包括以下步骤:
获取以往的相同应用要求的多种不同的芯片设计;
获取各所述应用要求在设计上的限制条件;
设计具有固定布局方式的原始单元库;
制定对应所述原始单元库的工艺设计表格;
将所述芯片设计、原始单元库、工艺设计表格以及所述应用要求在设计上的限制条件进行逻辑合成,以形成标准单元库;
其中,进行所述逻辑合成以形成所述标准单元库的步骤包括:
根据所述芯片设计,从所述原始单元库中选取出逻辑功能符合需求的原始单元;
检查所述原始单元对应所述工艺设计表格中的数据是否符合所述限制条件,在不符合时,通过在所述原始单元串联相应数量的晶体管以及调整所述原始单元的高度和/或最大驱动强度,来产生新的标准单元,所述原始单元库和所述新的标准单元组成所述标准单元库。
2.如权利要求1所述的建立标准单元库的方法,其特征在于,所述固定布局方式中,所有P型晶体管的几何大小都是相同的;所有N型晶体管的几何大小都是相同的,且所有P型晶体管和所有N型晶体管的长度都是相同的;
所述工艺设计表格包括参数表格、速度表格和漏电流表格,所述参数表格用于记录所述原始单元库中各个原始单元的固定布局参数,所述速度表格用于记录所述原始单元库中各个原始单元的延迟时间,所述漏电流表格用于记录所述原始单元库中各个原始单元的漏电流;
检查所述原始单元对应所述工艺设计表格中的数据是否符合所述限制条件的步骤包括:
通过查所述漏电流表格来检查所述原始单元的漏电流是否符合所述限制条件,若不符合,则通过漏电流参数的算法确定在所述原始单元上串联多少数量的晶体管后的漏电流才能符合所述限制条件,并将串联有所述数量的原始单元创建为一个新的标准单元;以及,
通过查所述速度表格来检查所述原始单元的延迟时间是否符合同步时钟速度的要求,若不符合,则通过速度延迟的算法对所述原始单元的高度进行变化,以找到能够符合所述要求且高度最小和驱动强度最大的状态,并将所述状态的原始单元创建为一个新的标准单元。
3.一种建立标准单元库的系统,其特征在于,包括:
芯片设计获取模块,其被配置为获取以往的相同应用要求的多种不同的芯片设计;
第一应用限制模块,其被配置为获取各所述应用要求在设计上的限制条件;
原始单元库设计模块,其被配置为设计具有固定布局方式的原始单元库;
工艺设计表格模块,其被配置为制定对应所述原始单元库的工艺设计表格;
第一合成引擎,其被配置为将所述芯片设计、原始单元库、所述工艺设计表格以及所述限制条件进行逻辑合成,以形成新的标准单元;以及,
标准单元库模块,其被配置为存放所述原始单元库中的所有原始单元以及所述合成引擎产生的所有的新的标准单元,以形成标准单元库;
其中,所述第一合成引擎进一步被配置为:
根据所述芯片设计,从所述原始单元库中选取出逻辑功能符合需求的原始单元;
检查所述原始单元对应所述工艺设计表格中的数据是否符合所述限制条件,在不符合时,通过在所述原始单元上串联相应数量的晶体管以及调整所述原始单元的高度和/或最大驱动强度,来产生新的标准单元。
4.如权利要求3所述的建立标准单元库的系统,其特征在于,所述固定布局方式中,所有P型晶体管的几何大小都是相同的;所有N型晶体管的几何大小都是相同的,且所有P型晶体管和所有N型晶体管的长度都是相同的;
所述工艺设计表格包括参数表格、速度表格和漏电流表格,所述参数表格用于记录所述原始单元库中各个原始单元的固定布局参数,所述速度表格用于记录所述原始单元库中各个原始单元的延迟时间,所述漏电流表格用于记录所述原始单元库中各个原始单元的漏电流;所述第一合成引擎进一步被配置为:
通过查所述漏电流表格来检查所述原始单元的漏电流是否符合所述限制条件,若不符合,则通过漏电流参数的算法确定在所述原始单元上串联多少数量的晶体管后的漏电流才能符合所述限制条件,并将串联有所述数量的原始单元创建为一个新的标准单元;以及,
通过查所述速度表格来检查所述原始单元的延迟时间是否符合同步时钟速度的要求,若不符合,则通过速度延迟的算法对所述原始单元的高度进行变化,以找到能够符合所述要求且高度最小和驱动强度最大的状态,并将所述状态的原始单元创建为一个新的标准单元。
5.一种芯片设计方法,其特征在于,包括以下步骤:
提供标准单元库,所述标准单元库采用权利要求1至2中任一项所述的建立标准单元库的方法形成或者由权利要求3至4中任一项所述的建立标准单元库的系统提供;
对待设计的芯片进行行为级别描述,以获得所述待设计的芯片的功能、性能以及面积;
根据所述行为级别描述进行所述待设计芯片的硬件级别描述;
根据所述标准单元库、硬件级别描述以及所述待设计的芯片的应用要求在设计上的限制条件,进行逻辑合成,以形成所述待设计的芯片对应的芯片电路;
对所述芯片电路进行元件级别描述;以及,
基于所述元件级别描述生成所述待设计芯片的芯片版图。
6.一种芯片设计系统,其特征在于,包括:
标准单元库,其被配置为采用权利要求1至2中任一项所述的建立标准单元库的方法形成或者由权利要求3至4中任一项所述的建立标准单元库的系统提供;
行为级别描述模块,其被配置为对一待设计的芯片进行行为级别描述,以获得所述芯片设计需求;
硬件级别描述模块,其被配置为根据芯片设计需求进行硬件级别描述;
第二应用限制模块,其被配置为制定所述待设计的芯片的应用要求在设计上的限制条件;
第二合成引擎,其被配置为将所述硬件级别描述、标准单元库以及所述待设计的芯片应用在设计上的限制条件进行逻辑合成,以形成所述待设计的芯片对应的芯片电路;
元件级别描述模块,其被配置为对所述芯片电路进行元件级别描述;以及,
版图级别描述模块,其被配置为基于所述元件级别描述生成所述待设计的芯片的版图。
7.一种计算机存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被一处理器执行时能实现权利要求1至2中任一项所述的建立标准单元库的方法。
8.一种计算机存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被一处理器执行时能实现权利要求5所述的芯片设计方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910086921.7A CN111241768B (zh) | 2019-01-29 | 2019-01-29 | 建立标准单元库的方法与系统、芯片设计方法与系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910086921.7A CN111241768B (zh) | 2019-01-29 | 2019-01-29 | 建立标准单元库的方法与系统、芯片设计方法与系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111241768A CN111241768A (zh) | 2020-06-05 |
CN111241768B true CN111241768B (zh) | 2023-06-30 |
Family
ID=70869327
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910086921.7A Active CN111241768B (zh) | 2019-01-29 | 2019-01-29 | 建立标准单元库的方法与系统、芯片设计方法与系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111241768B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112307707B (zh) * | 2020-09-22 | 2022-09-27 | 中国电子科技集团公司第二十九研究所 | 一种用于多芯片组件的可制造性审查方法及系统 |
CN112149377B (zh) * | 2020-11-04 | 2022-11-18 | 深圳华大九天科技有限公司 | 一种快速生成fpd版图的方法、设备及可读存储介质 |
CN112380809B (zh) * | 2020-11-16 | 2021-08-03 | 成都海光微电子技术有限公司 | 标准单元、标准单元库的物理规则验证方法、装置及设备 |
CN112487751B (zh) * | 2020-11-18 | 2024-01-26 | 江苏科大亨芯半导体技术有限公司 | 带自检查功能的io pad自动化布局的方法 |
CN113158618A (zh) * | 2021-05-25 | 2021-07-23 | 杨家奇 | 产生标准单元库版图的方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS63167973A (ja) * | 1986-12-29 | 1988-07-12 | Toshiba Corp | 回路設計支援システム |
CN101320395A (zh) * | 2007-06-05 | 2008-12-10 | 联华电子股份有限公司 | 集成电路设计决定标准单元的方法 |
CN107784136A (zh) * | 2016-08-24 | 2018-03-09 | 中国科学院微电子研究所 | 一种标准单元库的创建方法及系统 |
CN108647390A (zh) * | 2018-01-31 | 2018-10-12 | 深圳大学 | 标准单元库设计方法、设计装置、标准单元库和cmos图像传感芯片 |
-
2019
- 2019-01-29 CN CN201910086921.7A patent/CN111241768B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS63167973A (ja) * | 1986-12-29 | 1988-07-12 | Toshiba Corp | 回路設計支援システム |
CN101320395A (zh) * | 2007-06-05 | 2008-12-10 | 联华电子股份有限公司 | 集成电路设计决定标准单元的方法 |
CN107784136A (zh) * | 2016-08-24 | 2018-03-09 | 中国科学院微电子研究所 | 一种标准单元库的创建方法及系统 |
CN108647390A (zh) * | 2018-01-31 | 2018-10-12 | 深圳大学 | 标准单元库设计方法、设计装置、标准单元库和cmos图像传感芯片 |
Also Published As
Publication number | Publication date |
---|---|
CN111241768A (zh) | 2020-06-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111241768B (zh) | 建立标准单元库的方法与系统、芯片设计方法与系统 | |
Chang et al. | A review of 0.18-/spl mu/m full adder performances for tree structured arithmetic circuits | |
US7941776B2 (en) | Method of IC design optimization via creation of design-specific cells from post-layout patterns | |
US8484602B2 (en) | Optimizing integrated circuit design based on cell library | |
US7949987B1 (en) | Method and system for implementing abstract layout structures with parameterized cells | |
US8607184B1 (en) | Cell uniquification | |
CN107784136B (zh) | 一种标准单元库的创建方法及系统 | |
JP5127935B2 (ja) | 集積回路設計およびライブラリの最適化 | |
US10031996B2 (en) | Timing based net constraints tagging with zero wire load validation | |
US10803224B2 (en) | Propagating constants of structured soft blocks while preserving the relative placement structure | |
US20170046470A1 (en) | Process design kit for efficient and accurate mismatch simulation of analog circuits | |
US8898610B1 (en) | Creating cell libraries with a large number of cells | |
US7814452B1 (en) | Function symmetry-based optimization for physical synthesis of programmable integrated circuits | |
CN114036884A (zh) | 时序库的生成方法及装置、电子设备 | |
CN111241771B (zh) | 建立标准单元库的方法与系统、芯片设计方法与系统 | |
Vansteenkiste et al. | Analyzing the divide between FPGA academic and commercial results | |
Alif et al. | Design and implementation of sorting algorithms based on FPGA | |
US10169518B1 (en) | Methods for delaying register reset for retimed circuits | |
US20160055287A1 (en) | Method for decomposing a hardware model and for accelerating formal verification of the hardware model | |
US8595668B1 (en) | Circuits and methods for efficient clock and data delay configuration for faster timing closure | |
Brisk et al. | Enhancing FPGA performance for arithmetic circuits | |
US10963620B1 (en) | Buffer insertion technique to consider edge spacing and stack via design rules | |
Pistorius et al. | PartGen: A generator of very large circuits to benchmark the partitioning of FPGAs | |
Mehdipour et al. | Reducing reconfiguration time of reconfigurable computing systems in integrated temporal partitioning and physical design framework | |
US20240176943A1 (en) | Auto-creation of custom standard cells |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |