本发明涉及一种集成电路(IC)在工程修改(ECO)时减少重新制版层数的方法。
背景技术:
ECO(Engineering Change Order,工程修改)是指在集成电路(IC)设计流程后期阶段或者集成电路流片(IC tape out)之后对电路和版图进行小幅度修改的过程。当IC tape out后发现问题需要修改时,为了节约成本,通常只做metal only ECO(金属层修改),即不修改底层的标准单元(standard cell),只改变metal(金属层)连接关系,从而实现电路功能的改变。制版时,只需要代工厂 (Foundry) 替换掉需进行修改的几层金属的掩膜(mask),便可以方便的修正掉芯片初始流片中所发现的各种问题。相比于重新设计、重新流片,这种方法设计周期大大减少,其设计的成本也显著降低。
由于需要对修改的金属层的mask进行替换,所以其所涉及到的mask的层 数,直接决定了这一修改的成本。如何获得最小的金属层数改动,是ECO调整所面临的核心问题。目前的处理方法一般是在电路中增加冗余单元(spare cell) ,将 spare cell 的输入、输出端与电源或地端相连,然后利用EDA(Electronics Design Automation)工具完成这一连接的布线。EDA工具的处理方式,通常都是将输入、输出端与其附近的电源轨(power rail)或地线轨(ground rail)相连。由于power rail或ground rail一般由底层金属实现,所以这一连接布线,通常只涉及底层金属的少量布线。当芯片需要 ECO 调整时,需首先将这一连接切断,然后选择合适的金属层,以及合适的走线位置,将spare cell的端口与目标端口相连。这一方式存在的问题是,由于EDA工具对于spare cell端口与power/ground rail之间的布线采用了很底层的金属走线完成,那么当此处的spare cell需要进行ECO调整时,这一调整很有可能需要从顶层金属一路向下跳到底层金属才能完成从spare cell端口到目标端口的走线,这将涉及到大量的金属及通孔层重新制版的工作,所付出的费用和成本是巨大的。
在IC设计过程中,会有很多地方需要用到寄存器(register),在模拟(analog)模块中可能会用到很多参数。这些register或analog参数需要一个default值(缺省值)。但是在IC tape out前可能无法确定default值设为何值比较好,往往需要拿到实际IC后系统调试完才能最终确定。对于这类问题,可以通过EFUSE(电子熔丝)或者EEPROM(电可擦写存储器)等方式修改default值,但是这无疑增加了成本。而且对于PLL(锁相环)相关的参数,用这类方式不一定能解决问题。若对这些default值做ECO,如前面提到的,可能需要动到多层金属层和通孔层,改版的成本也会很高。
技术实现要素:
本发明旨在提供一种集成电路工程修改时减少改动层数的方法,以解决现有ECO修改时需要对多个金属层和通孔层的版图进行修改,改版费用高、耗时长的问题。
具体方案如下:
一种集成电路工程修改时减少改动层数的方法,所述方法包括以下步骤:
1)在集成电路设计中引入一个或者多个硬模块(hard block)单元,所述硬模块单元包括至少一个拉低单元(tie0 cell)及与之相连的金属线、至少一个拉高单元(tie1 cell)及与之相连的金属线和至少一组缺省值修改单元,所述缺省值修改单元包括output H[n]、output L[n]、input I[n]和output O[n]四条线路,n为所在组的索引号,其中output H[n]线路与拉高单元(tie1 cell)的金属线相连接,output L[n]线路与拉低单元(tie0 cell)的金属线相连接,所述output O[n]线路为该硬模块单元的输出端口,连接到寄存器(register)的缺省值(default)端口或者模拟(analog)模块的参数端口,与拉低单元(tie0 cell)相连的金属线和与拉高单元(tie1 cell)相连的金属线都位于集成电路的同一金属层上,属于同一个硬模块单元的所有output H[n]、output L[n]、input I[n]和output O[n]线路位于集成电路的同一金属层上;
2)在集成电路设计时,根据寄存器的缺省值或者模拟模块的参数为高电平‘1’或者低电平‘0’的需要,分别将对应的input I[n]线路与output H[n]线路相连接,或者分别将对应的input I[n]线路与output L[n]线路相连接;
3)在进行工程修改(ECO)时,根据需要修改的缺省值或者模拟模块的参数确定需要修改的output O[n],如果设计时为高电平‘1’,而工程修改(ECO)时需要修改为低电平‘0’,则将相对应的output H[n]线路与tie1 cell的金属线断开,并将相对应的input I[n]线路与tie0 cell的金属线相连接;如果设计时为低电平‘0’,而工程修改(ECO)时需要修改为高电平‘1’,则将相对应的output L[n]线路与tie0 cell的金属线断开,并将相对应的input I[n]线路与tie1 cell的金属线相连接;
4)根据步骤3)中修改的缺省值或者模拟模块的参数,对相应金属层或者通孔层进行重新制版。
优选的,所述缺省值单元的output H[n]、output L[n]、input I[n]和output O[n]线路所在的金属层和与tie0 cell相连的金属线、与tie1 cell相连的金属线所在的金属层相邻。
优选的,output H[n]线路通过通孔(VIA)与拉高单元(tie1 cell)的金属线相连接,output L[n]线路通过通孔(VIA)与拉低单元(tie0 cell)的金属线相连接。
优选的,所述input I[n]线路和output O[n]线路在同一条线段上。
优选的,所述output H[n]线路和output L[n]线路相互平行,input I[n]线路和output O[n]线路位于output H[n]线路和output L[n]线路之间,并且与output H[n]线路和output L[n]线路平行。
优选的,所述硬模块单元包括多组缺省值修改单元,每组缺省值修改单元之间等间距平行阵列分布在同一金属层上。
优选的,所述硬模块单元的输出位宽为4bit、8bit、16bit、32bit、64bit、128bit、256bit中的一种或者多种。
本发明提供的一种集成电路工程修改时减少改动层数的方法,与现有技术相比较,具有以下有益效果:
1、在集成电路设计时引入了硬模块单元,通过硬模块单元为寄存器提供缺省值或者为模拟模块提供参数,硬模块单元的所有缺省值修改单元都位于同一金属层上,与拉低单元(tie0 cell)相连的金属线和与拉高单元(tie1 cell)相连的金属线都位于集成电路的同一金属层上,因此在ECO时,只需要修改较少金属层或者通孔层即可实现对寄存器的缺省值或者模拟模块参数的修改,可以大幅减少因重新制版所增加的费用,并且还能减少代工厂修改掩膜的时间,提高ECO的效率。
2、在硬模块单元的优选设计中,缺省值修改单元的output H[n]、output L[n]、input I[n]和output O[n]线路所在的金属层和与tie0 cell相连的金属线和与tie1 cell相连的金属线所在的金属层相邻,并且output H[n]线路通过通孔(VIA)与拉高单元(tie1 cell)的金属线相连接,output L[n]线路通过通孔(VIA)与拉低单元(tie0 cell)的金属线相连接,因此在ECO修改缺省值或者模拟模块的参数时,只需要对一个通孔层修改就可以实现,大幅减少了重新制版的费用。
附图说明
图1示出了Metal only ECO前的逻辑电路图。
图2示出了Metal only ECO后的逻辑电路图。
图3示出了CMOS集成电路的版图剖面示意图。
图4示出了tie0和tie1输出net都在Metal3情况下的Metal only ECO的示意图。
图5示出了tie0输出net在Metal2,tie1输出net在Metal3情况下的Metal only ECO的示意图。
图6示出了硬模块单元的示意图。
图7示出了利用硬模块单元实现metal only ECO的示意图。
具体实施方式
为进一步说明各实施例,本发明提供有附图。这些附图为本发明揭露内容的一部分,其主要用以说明实施例,并可配合说明书的相关描述来解释实施例的运作原理。配合参考这些内容,本领域普通技术人员应能理解其他可能的实施方式以及本发明的优点。图中的组件并未按比例绘制,而类似的组件符号通常用来表示类似的组件。
现结合附图和具体实施方式对本发明进一步说明。
当IC tape out后发现问题需要修改时,为了节约成本,通常只做metal only ECO,即不修改底层的standard cell,只改变metal连接关系,从而实现电路功能的改变。图1和图2示出是metal only ECO的一个例子。如图1所示,D类型触发器(DFF)的D 引脚(pin)接到一个数据选择器(mux),该mux的选择端由sync_rst_b信号决定。当sync_rst_b为‘0’时,mux接到一个tie1 cell,即该sync_rst_b会将DFF的缺省值(default值)设定为‘1’。现在假设default值为‘1’有问题,需要将default值改为‘0’。图2所示的是metal only ECO后的图,将mux和tie1 cell断开(即net1断开),然后将mux和tie0 cell的输出连接(即接上net2)。这样只修改metal连接,就实现了电路功能的改变。图1和图2只是描述了逻辑上的修改方式。图3示出的是CMOS集成电路的版图剖面示意图。在实际物理版图中net1和net2有可能需要经过多层金属层(metal),因此需要对多层的物理版图进行重新制版。
图4示出的是tie0和tie1输出的net都在Metal3的情况,由于tie0和tie1的net在Metal3都能找到,且距离靠近,可以只要修改Metal3一层就可以完成metal only ECO。图5示出的是tie0输出的net在Metal2,tie1输出的net在Metal3的情况,修改时需将Metal3和tie1断开、增加VIA2、Metal2和tie0连接,总共需要修改三层。可见修改同样的逻辑,物理版图可能需要修改不同的metal层数。当工艺越来越先进,改版费用也越来越贵,修改metal层数越多,改版费用也越高。因此减少修改metal层数可以大幅降低ECO的成本。
图6示出的是本发明提出的硬模块(hard block)单元的示意图。本发明提供了一种集成电路工程修改时减少改动层数的方法,具有以下步骤:
1)在集成电路设计中引入一个或者多个硬模块(hard block)单元,所述硬模块单元包括至少一个拉低单元(tie0 cell)及与之相连的金属线、至少一个拉高单元(tie1 cell)及与之相连的金属线和至少一组缺省值修改单元,所述缺省值修改单元包括output H[n]、output L[n]、input I[n]和output O[n]四条线路,n为所在组的索引号,其中output H[n]线路与拉高单元(tie1 cell)的金属线相连接,output L[n]线路与拉低单元(tie0 cell)的金属线相连接,所述output O[n]线路为该硬模块单元的输出端口,连接到寄存器(register)的缺省值(default)端口或者模拟(analog)模块的参数端口,与拉低单元(tie0 cell)相连的金属线和与拉高单元(tie1 cell)相连的金属线都位于集成电路的同一金属层上,属于同一个硬模块单元的所有output H[n]、output L[n]、input I[n]和output O[n]线路位于集成电路的同一金属层上;图6中将output H[n]简写为H[n]、output L[n]简写为 L[n]、input I[n]简写为I[n]、output O[n]简写为O[n];图6中示出的硬模块单元中的与tie0相连接的金属线和与tie1相连接的金属线位于金属层2(metal 2),缺省值修改单元的output H[n]、output L[n]、input I[n]和output O[n]线路位于金属层3(metal 3),但所在金属层根据需求进行设置,并不限定于此;
2)在集成电路设计时,根据寄存器的缺省值或者模拟模块的参数为高电平‘1’或者低电平‘0’的需要,分别将对应的input I[n]线路与output H[n]线路相连接,或者分别将对应的input I[n]线路与output L[n]线路相连接;优选的,所述缺省值修改单元的output H[n]、output L[n]、input I[n]和output O[n]线路所在的金属层和与tie0 cell相连的金属线和与tie1 cell相连的金属线所在的金属层相邻,output H[n]线路通过通孔(VIA)与拉高单元(tie1 cell)的金属线相连接,output L[n]线路通过通孔(VIA)与拉低单元(tie0 cell)的金属线相连接。
3)在进行工程修改(ECO)时,根据需要修改的缺省值或者模拟模块的参数确定需要修改的output O[n],如果设计时为高电平‘1’,而工程修改(ECO)时需要修改为低电平‘0’,则将相对应的output H[n]线路与tie1 cell的金属线断开,并将相对应的input I[n]线路与tie0 cell的金属线相连接;如果设计时为低电平‘0’,而工程修改(ECO)时需要修改为高电平‘1’,则将相对应的output L[n]线路与tie0 cell的金属线断开,并将相对应的input I[n]线路与tie1 cell的金属线相连接;
4)根据步骤3)中修改的缺省值或者模拟模块的参数,对相应金属层或者通孔层进行重新制版。
由于硬模块单元的所有缺省值修改单元都位于同一金属层上,与拉低单元(tie0 cell)相连的金属线和与拉高单元(tie1 cell)相连的金属线都位于同一金属层上,因此在ECO时,只需要修改较少金属层或者通孔层即可实现对寄存器的缺省值或者模拟模块参数的修改,优选的,当所述两个金属层相邻时,只需要对一个通孔层修改就可以实现对寄存器的缺省值或者模拟模块参数的修改,不需要对多个金属层进行重新制版,可以大幅减少因重新制版所增加的费用,并且还能减少代工厂修改掩膜的时间,提高ECO的效率。
图7示出的是采用本发明提供的方法在ECO时的示意图,与tie0相连接的金属线和与tie1相连接的金属线位于金属层2(metal 2),缺省值修改单元的output H[n]、output L[n]、input I[n]和output O[n]线路都位于金属层3(metal 3)。图7中将output H[n]简写为H[n]、output L[n]简写为 L[n]、input I[n]简写为I[n]、output O[n]简写为O[n]。O的任意位(bit)都可以独立设定为低电平‘0’或高电平‘1’,所以对于任意寄存器的缺省值或者模拟模块的参数都可以调用含有相应组数缺省值修改单元的硬模块单元,或者调用缺省值修改单元组数大于所需位(bit)数的硬模块单元,并使用其中的一部分缺省值修改单元。
本实施例示出了5组缺省值修改单元,假设设计时O[4:0]的输出是5’b00111,现在需要ECO成5’b10101,因此需要对O[4]和O[1]进行修改,也就是需要将O[4]从低电平‘0’改成高电平‘1’,将O[1]从高电平‘1’改成低电平‘0’。对O[4]修改的具体方法为,在A1处将连接output L[4]和与tie0 cell相连接的金属线的通孔(VIA)断开,并在A2处增加一个通孔(VIA)将input I[4]和与tie1 cell相连接的金属线相连接;对O[1]修改的具体方法为,在B2处将连接output H[1]和与tie1 cell相连接的金属线的通孔(VIA)断开,并在B1处增加一个通孔(VIA)将input I[1]和与tie0 cell相连接的金属线相连接。所有修改的通孔(VIA)都在同一层。通过本实施例说明,在同一个硬模块单元中,无论有多少组缺省值修改单元需要被修改,也无论是从高电平‘1’修改为低电平‘0’或者是从低电平‘0’修改为高电平‘1’,都只需修改同一通孔层上相对应的通孔就可以实现,而不会涉及到多层金属层,因此可以大幅减少因改版带来的成本。
参考图6和图7,为了减少硬模块单元布图所占用的面积,优选的将input I[n]和output O[n]布在同一条线段上,并且output H[n]和output L[n]相互平行,input I[n]和output O[n]位于output H[n]和output L[n]之间,并且与output H[n]和output L[n]平行。其中优选的硬模块单元的输出位宽为4bit、8bit、16bit、32bit、64bit、128bit、256bit中的一种或者多种。硬模块单元的输出位宽根据需求进行选择,可以选择一个或者多个进行组合。
尽管结合优选实施方案具体展示和介绍了本发明,但所属领域的技术人员应该明白,在不脱离所附权利要求书所限定的本发明的精神和范围内,在形式上和细节上可以对本发明做出各种变化,均为本发明的保护范围。