首页> 中国专利> 三维集成电路的设计支持装置及设计支持方法

三维集成电路的设计支持装置及设计支持方法

摘要

提供一种在将多个半导体芯片层叠而成的三维集成电路的设计中,在发生了通孔的位置变更的情况下,也使得尽可能不发生其他部分的位置变更的三维集成电路的设计支持装置。设计支持装置(400)具备:TSV配置部(437),决定贯通一个半导体芯片而与其他半导体芯片连接的通孔的位置;TSV预留单元配置部(439),根据上述通孔的位置,决定作为配置上述通孔的预备的位置的预留单元的位置;以及掩模数据生成部(445),生成包括上述通孔的位置和上述预留单元的位置的布局数据。

著录项

  • 公开/公告号CN102754102A

    专利类型发明专利

  • 公开/公告日2012-10-24

    原文格式PDF

  • 申请/专利权人 松下电器产业株式会社;

    申请/专利号CN201180008804.0

  • 发明设计人 森本高志;桥本隆;

    申请日2011-11-10

  • 分类号G06F17/50(20060101);H01L21/82(20060101);H01L21/822(20060101);H01L27/04(20060101);

  • 代理机构72002 永新专利商标代理有限公司;

  • 代理人黄剑锋

  • 地址 日本大阪府

  • 入库时间 2023-12-18 07:11:56

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2016-04-06

    专利权的转移 IPC(主分类):G06F17/50 登记生效日:20160316 变更前: 变更后: 申请日:20111110

    专利申请权、专利权的转移

  • 2016-02-03

    授权

    授权

  • 2013-08-28

    实质审查的生效 IPC(主分类):G06F17/50 申请日:20111110

    实质审查的生效

  • 2012-10-24

    公开

    公开

说明书

技术领域

本发明涉及支持将多个半导体集成电路芯片以层状排列而构成的三维集成电路的设计的技术。

背景技术

为了将半导体集成电路更高集成化,使用将多个半导体集成电路芯片(以下,称作半导体芯片)层叠而形成一个封装的方法。将通过这样的方法制造的集成电路称作三维集成电路。在专利文献1及专利文献2中,分别公开了设计将多个半导体芯片上下重合地构成的半导体集成电路的各半导体芯片的布局的三维集成电路设计装置。

在三维集成电路中,被层叠的第1及第2半导体芯片之间通过将第1半导体芯片贯通而设置的称作硅通孔(Through-Silicon Via。以下,简称作TSV)的电极连接。在TSV的周围,设置不配置晶体管等的单元的配置禁止区域。此外,在第2半导体芯片中,在与设置在第1半导体芯片上的TSV的位置对置的位置上也设置配置禁止区域。这是为了使在将第1半导体芯片与第2半导体芯片贴合时发生的应力(stress)不对周边单元带来影响。

现有技术文献

专利文献

专利文献1:特开2007-250754号公报

专利文献2:特开2008-243993号公报

发明概要

发明要解决的问题

有时在三维集成电路的设计暂且结束后进行被配置的单元及布线的位置的变更。例如,在设计暂且结束后,进行DRC(Design Rule Check:设计规则检查)、LVS(Layout Versus Schematic:布局与电路对照验证)、天线规则检查等,由此验证三维集成电路的布局是否满足设计条件。如上述那样进行单元或布线的位置的变更是如在该验证中判断为不满足设计条件那样的情况。在判断为不满足设计条件的情况下,必须变更单元或布线的位置,但根据单元或布线的位置的变更,有时还变更TSV的位置。随着该TSV的位置的变更,必须变更半导体芯片的配置禁止区域的位置,所以如果这样,则发生作为新的配置禁止区域的区域中的布线或单元的位置变更。此外,在此情况下,设计的变更不仅限于第1半导体芯片。这是因为,如上所述,在第2半导体芯片中,需要在与TSV的位置对置的位置上设置配置禁止区域,随着第1半导体芯片上的TSV的位置变更,必须变更第2半导体芯片的配置禁止区域的位置。这样,随着第2半导体芯片上的配置禁止区域的位置变更,发生作为新配置禁止区域的区域中的布线或单元的位置变更。

这样,在半导体芯片中,如果变更TSV的位置,则配置位置的变更不仅限于该TSV的位置,也波及到其他单元等的配置位置,存在配置位置的变更变得很大的问题。

发明内容

为了解决上述问题,本发明的目的是提供在发生了TSV的位置变更的情况下也能够使得在其他电路部分中尽可能不发生配置位置的变更的三维集成电路的设计支持装置、设计支持方法、用于设计支持的计算机程序及记录有计算机程序的记录介质。

用于解决问题的手段

为了达到上述目的,本发明是一种设计支持装置,支持将多个半导体芯片以层状排列而构成的三维集成电路的设计,其特征在于,具备:通孔配置机构,决定贯通第1半导体芯片而与第2半导体芯片连接的通孔的配置位置;预留单元配置机构,在第1半导体芯片中,根据上述通孔的上述配置位置,决定作为上述通孔的配置的预备配置位置的预留单元的配置位置;以及生成机构,生成包括上述通孔的配置位置和上述预留单元的配置位置的布局数据。

发明效果

根据该结构,在三维集成电路的设计的中途发生TSV的配置位置的变更的情况下,能够使用作为应配置新TSV的位置而预先配置的预留单元的配置位置,所以起到能够使得不发生其他电路部分中的庞大的设计变更的良好的效果。

附图说明

图1是三维集成电路100的截面概念图及构成三维集成电路100的各半导体芯片的平面概念图。

图2是表示设计三维集成电路100的工序的流程图。

图3是在三维集成电路100中表示半导体芯片101a的块131与半导体芯片101b的块137的重复区域151的概念图。

图4是表示在构成三维集成电路100的半导体芯片101a的块131中随机地配置了多个预留单元的状况的平面概念图。

图5是表示在构成三维集成电路100的半导体芯片101a的块131与半导体芯片101b的块137的重复区域151中随机地配置了多个预留单元的状况的平面概念图。

图6是表示在构成三维集成电路100的半导体芯片101a的块131中等间隔地配置了多个预留单元的状况的平面概念图。

图7是表示在构成三维集成电路100的半导体芯片101a的块131与半导体芯片101b的块137的重复区域151中等间隔地配置了多个预留单元的状况的平面概念图。

图8是表示在构成三维集成电路100的半导体芯片101a的块131中,以块131的中心线211为对称轴,在与块131上的TSV的配置位置成为线对称的位置上配置了预留单元的状况的平面概念图。

图9是表示在构成三维集成电路100的半导体芯片101a的块131与半导体芯片101b的块137的重复区域151中,以重复区域151的中心线212为对称轴,在与重复区域151上的TSV的配置位置成为线对称的位置上配置了预留单元的状况的平面概念图。

图10是表示在构成三维集成电路100的半导体芯片101a的块131中,以块131的中心点215为对称点,在与块131上的TSV的配置位置成为点对称的位置上配置了预留单元的状况的平面概念图。

图11是表示在构成三维集成电路100的半导体芯片101a的块131与半导体芯片101b的块137的重复区域151中,以重复区域151的中心点218为对称点,在与重复区域151上的TSV的配置位置成为点对称的位置上配置了预留单元的状况的平面概念图。

图12是表示在构成三维集成电路100的半导体芯片101a的块131中,以块131的配置TSV161的位置为中心点,在相对于TSV161处于等距离的位置上配置了多个预留单元的状况的平面概念图。

图13是表示在构成三维集成电路100的半导体芯片101a的块131与半导体芯片101b的块137的重复区域151中,以配置TSV161的位置为中心点,在相对于TSV161处于等距离的位置上配置了多个预留单元的状况的平面概念图。

图14是表示在构成三维集成电路100的半导体芯片101a的块131中,块131的多个TSV分类为多个组,在各组中以配置包含在组中的多个TSV的位置为多边形的顶点,在作为该多边形的重心的位置上配置了预留单元的状况的平面概念图。

图15是将构成三维集成电路100的半导体芯片的块的一部分放大的平面概念图。这里,配置有TSV252、配置禁止区域251及预留单元250。

图16是将构成三维集成电路100的半导体芯片的块的一部分放大的平面概念图,是在图15所示的平面概念图中将TSV及配置禁止区域的配置位置移动到预留单元250的位置后的图。这里,配置有TSV262、配置禁止区域261及预备区域263。

图17是将构成三维集成电路100的半导体芯片的块的一部分放大的平面概念图,在图16所示的平面概念图中,在作为预备区域263的区域中,配置有修复单元271~275。

图18是将构成三维集成电路100的半导体芯片的块的一部分放大的平面概念图,在图16所示的平面概念图中,在作为预备区域263的区域中,配置有导热孔278及配置禁止区域277。

图19是表示设计支持装置400的结构的框图。

图20是表示配置布线部408的结构的框图。

图21表示作为由硬件记述语言(Hardware description language)记述的一例的HDL文件454。

图22表示TSV预留单元配置信息460的数据构造的一例。

图23表示作为网表的一例的HDL文件471。

图24表示版图规划表501的一例。

图25表示管脚配置表502的一例。

图26表示TSV配置表503的一例。

图27表示TSV预留单元表505的一例。

图28表示布线表508的一例。

图29是表示设计支持装置400的配置布线部408的动作的流程图。

图30是表示TSV预留单元配置部439的动作的流程图。

图31是表示将预留单元随机地配置的情况下的动作的流程图。

图32是表示将预留单元以等间隔配置的情况下的动作的流程图。后接图33。

图33是表示将预留单元以等间隔配置的情况下的动作的流程图。上接图32。

图34是表示将预留单元配置在对称位置的情况下的动作的流程图。

图35是表示将预留单元相对于TSV等间隔地配置的情况下的动作的流程图。

图36是表示对分组后的多个TSV配置预留单元的情况下的动作的流程图。后接图37。

图37是表示对分组后的多个TSV配置预留单元的情况下的动作的流程图。上接图36。

图38是表示作为变形例的设计支持装置400的配置布线部408的动作的流程图。

图39是表示作为变形例的块内的TSV381、配置禁止区域382及预留单元383、384的配置的一例。

具体实施方式

1.实施方式

对作为本发明的一实施方式的设计支持装置400进行说明。

1.1三维集成电路的构造

这里,对使用设计支持装置400设计的三维集成电路的构造进行说明。

另外,以下说明的三维集成电路的构造是使用设计支持装置400设计后的阶段中的构造,需要注意并不是说明现实制造出的集成电路的构造。以下的结构、形成、连接、设置等的用语不是说明现实制造出的集成电路的物理的构造的,而是在设计支持装置400上为了说明在逻辑性的三维空间中表现的集成电路的逻辑性的构造而使用的。

作为使用设计支持装置400设计的三维集成电路的一例的三维集成电路100如图1所示,由中间层102、3个半导体芯片101c、101b及101a、以及多个凸块103a、103b、103c、…、103d构成。在中间层102的上表面,3个半导体芯片101c、101b及101a被依次层叠,换言之以层状排列。此外,在中间层102的下表面配设有多个凸块103a、103b、103c、…、103d。三维集成电路100搭载在电路基板(未图示)上,半导体芯片101a、101b及101c经由中间层102及多个凸块103a、103b、103c、…、103d连接在电路基板上。

另外,在设计支持装置400中,将Z轴设定为相对于中间层102的上表面垂直的方向,在中间层102的上表面内设定X轴及垂直于X轴的方向的Y轴,来定义三维空间。

中间层102是用来在半导体芯片与电路基板之间变换布线的尺寸的薄型构造体。凸块103a、103b、103c、…、103d分别是用于中间层102与电路基板的连接的微小的连接管脚。

如图1所示,作为一例,半导体芯片101a由多个块131~135构成,半导体芯片101b由多个块136~140构成,半导体芯片101c由多个块141~144构成。各块如在图1中作为一例表示那样,具有一个集中的功能。例如,块131是将压缩图像数据解码的解码器,块132是将解码的图像数据编码的编码器,块137是进行这些图像数据的交换的图像IO单元。

半导体芯片101a通过贯通半导体芯片101a设置的1个以上的TSV而与半导体芯片101b连接,半导体芯片101b通过将半导体芯片101b贯通设置的1个以上的TSV与半导体芯片101c连接,半导体芯片101c通过贯通半导体芯片101c设置的1个以上的TSV与中间层102连接。

半导体芯片101a依次层叠poly-Si或阱等的层117、金属布线层3(113)、金属布线层2(112)及金属布线层1(111)而形成。在层117中形成各种单元(cell)。这里,所谓单元,例如是AND门、NOR门等的逻辑电路、外部端子、SRAM存储器、TSV等的电子部件。此外,在金属布线层1(111)、金属布线层2(112)及金属布线层3(113)各自中形成多个布线。

半导体芯片101b也与半导体芯片101a同样,依次层叠poly-Si或阱等的层118、金属布线层3(116)、金属布线层2(115)及金属布线层1(114)而形成。关于半导体芯片101c也是同样的。

在半导体芯片101a、101b及101c各自上,与1个以上的TSV对应地设定1个以上的配置禁止区域。各配置禁止区域以包围对应的TSV的方式贯通半导体芯片而设定,以使其将对应的TSV包围。此外,在TSV的连接对方的半导体芯片中也在与TSV对置的位置上设定配置禁止区域。

TSV作为一例而具有长方体形状,TSV的半导体芯片的面方向的截面的形状作为一例是正方形。以下,所谓配置TSV的位置,是指作为TSV的截面形状的该正方形的中心位置在半导体芯片内所被配置的位置。另外,所谓正方形的中心位置,是正方形的两条对角线的交点。此外,TSV的半导体芯片的面方向的截面的形状并不限定于正方形。例如也可以是长方形,也可以是多边形。此外,也可以是圆形或椭圆形。

配置禁止区域也作为一例而具有长方体形状,配置禁止区域的半导体芯片的面方向的截面的形状作为一例是正方形。以下,所谓配置配置禁止区域的位置,是指作为配置禁止区域的截面形状的该正方形的中心位置在半导体芯片内所被配置的位置。另外,所谓正方形的中心位置,是正方形的两条对角线的交点。此外,TSV的半导体芯片的面方向的截面的形状并不限定于正方形。例如也可以是长方形,也可以是多边形。此外,也可以是圆形或椭圆形。

此外,在半导体芯片101a、101b及101c各自上设定1个以上的TSV预留单元(以下,称作预留单元)的配置位置。预留单元在需要变更TSV的配置位置的情况下被利用为配置变更后的TSV的位置。即,是配置位置变更后的TSV的预备的配置位置。预留单元是用来配置TSV的预备的区域,所以至少具有与将TSV及配置禁止区域相加而得到的区域同等以上的面积。

在将TSV及配置禁止区域相加的区域作为一例是长方体形状的情况下,预留单元具有长方体形状,预留单元的半导体芯片面方向的截面的形状是正方形。将该截面的一边的长度称作预留单元的宽度。另外,以下所谓配置预留单元的位置,是指作为预留单元的截面形状的该正方形的中心位置在半导体芯片内所被配置的位置。

如在图1中作为一例表示的那样,在半导体芯片101a上,为了将半导体芯片101a与半导体芯片101b连接,在相对于半导体芯片101a的下表面垂直方向上,贯通半导体芯片101a的层117而设有TSV121。TSV121的一端与形成于金属布线层3(113)中的布线连接,TSV121的另一端与形成于半导体芯片101b的金属布线层1(114)中的布线连接。形成在半导体芯片101a上的块经由形成在金属布线层1(111)、金属布线层2(112)及金属布线层3(113)(或者某1个金属布线层、或某两个金属布线层)中的布线、TSV121、以及形成在金属布线层1(114)、金属布线层2(115)及金属布线层3(116)(或者某1个金属布线层、或某两个金属布线层)中的布线,与形成在半导体芯片101b上的块连接。

此外,在半导体芯片101a中,如图1中作为一例表示的那样,在与半导体芯片101a的下表面垂直的方向上以包围TSV121的方式贯通半导体芯片101a的金属布线层1(111)、金属布线层2(112)、金属布线层3(113)及层117而设定配置禁止区域122。

此外,在半导体芯片101b中,也如图1中作为一例表示的那样,设定配置禁止区域123。配置禁止区域123在与TSV121的下表面对置的位置上,从TSV121的下表面向半导体芯片101b侧在垂直方向上贯通半导体芯片101b的金属布线层1(114)、金属布线层2(115)、金属布线层3(116)及层118而被设定。配置禁止区域123的大小是将配置禁止区域122及TSV121相加的区域以上的大小。

进而,在半导体芯片101a中,如图1中作为一例表示的那样,预留单元124贯通半导体芯片101a、即贯通半导体芯片101a的金属布线层1(111)、金属布线层2(112)、金属布线层3(113)及层117而被设定。关于在半导体芯片101a上配置预留单元124的位置在后面叙述。

在图1中,对半导体芯片101a与半导体芯片101b的连接方法进行了图示,并在上述中进行了说明,但关于半导体芯片101b与半导体芯片101c的连接方法、以及半导体芯片101c与中间层102的连接方法也是同样的,所以省略说明。

如以上说明,三维集成电路100是多个半导体芯片(也称作小片(die))堆叠并垂直地相互连线而形成的1个集成电路,作为单体的电子部件发挥功能。

1.2三维集成电路的设计工序

这里,对三维集成电路的设计工序进行说明。

在三维集成电路中,一个半导体芯片与其他半导体芯片经由TSV连接。三维集成电路的设计除了关于TSV的配置等的设计以外,与由1个半导体芯片构成的集成电路(称作二维集成电路)的设计相比没有较大的差异。在三维集成电路的设计中可以使用二维集成电路的设计方法。

在图2中表示表现三维集成电路的设计工序的流程图。在图2中,假设三维集成电路是将半导体芯片1与半导体芯片2层叠而构成的结构来进行说明。

首先,在功能规格设计工序中,决定作为编解码器或高画质处理的种类等商品系统而使三维集成电路具有的处理功能(工序S101)。

接着,在功能分割、TSV端子的决定工序中,进行向构成三维集成电路的多个半导体芯片分别安装的功能的划分。这里,在将在功能规格设计工序S101中决定的功能用多个半导体芯片实现时,决定将哪个功能安装到哪个半导体芯片中、半导体芯片与半导体芯片之间的端子(TSV)数、怎样定义通信协议等的接口等的规格(工序S102)。

到目前为止,对于三维集成电路整体,在作为一个流程的工序群(工序S101~S102)中进行设计。从工序S102的下个工序起,按每个半导体芯片在一个流程中进行设计(但是,除了以下说明的工序S105以外)。

在逻辑设计工序中,使用Verilog-HDL(Hardware DescriptionLanguage)等的硬件记述语言,用能够电路映射的表现记述应在半导体芯片上实现的功能(工序S103a、工序S103b)。

在接着的逻辑合成工序中,将硬件记述语言解析,电路映射到AND门、NOR门等的作为逻辑电路的最小单位的标准单元(以下有时简单称作单元)(工序S104a、工序S104b)。

在对电源数等需要与外部的交换的端子进行决定的TSV端子的物理位置的决定工序中,决定半导体芯片间的数据信号用、电源用的TSV的位置(工序S105)。该工序管脚对三维集成电路整体是一个工序。该工序S105是在二维集成电路的设计中不存在的工序。需要在进行下个工序的配置布线之前事先决定TSV的位置。

接着,在配置布线工序中,进行单元的配置和单元彼此的布线。这里,以满足电路的动作频率的方式进行单元的配置、布线处理(工序S106a、工序S106b)。假如在该阶段中电路的频率不像设计规格那样呈现等的情况下,也有时回到逻辑设计工序S103a、S103b而进行修正。此外,有时也会回到TSV端子的物理位置的决定工序S 105。在配置布线工序中,首先读入作为逻辑合成工序的处理结果的网表、设计规格制约等的文件。接着,决定半导体芯片的布局的版图规划(floor plan)。接着,配置外部端子、SRAM存储器等的宏单元。进而,以使全部的电路的路径满足设计规格的定时制约的方式配置单元,来进行电源布线。然后,依次进行将单元彼此布线的概略布线、详细布线处理。另外,从芯片来看,TSV是端子的一种,但与通常的端子不同,作为宏单元设置。此外,为了将半导体芯片彼此直接贴合,需要在各个半导体芯片中将彼此的TSV的位置对准。

在配置布线工序中,需要满足单元间的定时制约及布线资源制约而设计。在不满足这些制约中1个的情况下,有可能不能作为半导体芯片正常地动作,所以需要修正。但是,实际上仅通过变更端子位置等而重新进行单元配置以后的处理就能够修正的情况也较多。

在布局验证工序中,进行DRC(Design Rule Check)、LVS(Layout VersusSchematic)、天线规则检查等掩模布局的验证、最终确认。如果验证的结果有不良状况,则回到需要的工序。

经由这些设计工序,最终生成表示三维集成电路的掩模布局的掩模数据400a、400b。

在上述中,设三维集成电路为将半导体芯片1与半导体芯片2层叠而构成的结构而进行了说明,但在进行将比3个多的数量的半导体芯片层叠而成的三维集成电路的设计的情况下,也经过与上述同样的工序。在此情况下,功能规格设计工序、功能划分、TSV端子的决定工序分别对于三维集成电路整体在作为一个工序流程的工序群中进行设计。在其后的工序中,除了上述的TSV端子的物理位置的决定工序以外,按每个半导体芯片在一个流程中进行设计。在TSV端子的物理位置的决定工序中,对于三维集成电路整体,在作为一个工序流程的工序群中进行设计。

1.3预留单元的配置

在构成三维集成电路的多个半导体芯片的各自上,如上述那样设定1个以上的预留单元的配置位置。预留单元在需要变更TSV的配置位置的情况下被利用为配置变更后的TSV的位置。即,是配置位置被变更后的TSV的预备的配置位置。

这里,对在各半导体芯片上怎样配置预留单元进行说明。

(1)配置预留单元的对象区域

作为一例,预留单元配置在图1所示的多个块131~135、136~140、141~144中的、配置TSV的块内。这里,将作为预留单元的配置的对象的区域称作对象区域。在此情况下,对象区域是配置TSV的块整体。另一方面,在不配置TSV的块中不配置预留单元。

如图3中作为一例表示的那样,假设在半导体芯片101a的块131上贯通块131而配置有TSV161~163,TSV161~163与半导体芯片101b的块137连接。这里,如果从三维集成电路100的上表面沿着Y轴方向透视三维集成电路100而观察,则半导体芯片101a的块131和半导体芯片101b的块137在一部分区域151中重叠。即,在使半导体芯片101a的块131所具有的一部分区域151的下表面与半导体芯片101b的块137的一部区域的上表面接触的状态下,块131和块137以层状排列。此外,也可以是,在使半导体芯片101a的块131所具有的一部分区域151的下表面与半导体芯片101b的块137的全部区域的上表面接触的状态下,块131和块137以层状排列。

另外,也可以是,在半导体芯片101a的下表面与半导体芯片101b的上表面之间设置1个以上的凸块,半导体芯片101a与半导体芯片101b经由这些凸块连接。关于半导体芯片101b的下表面与半导体芯片101c的上表面之间也是同样的。此外,半导体芯片101a的下表面与半导体芯片101b的上表面也可以通过粘接剂粘接。关于半导体芯片101b的下表面与半导体芯片101c的上表面之间也是同样的。

半导体芯片101a的块131具有与半导体芯片101b的块137的重复区域。重复区域是在该重复区域的面的垂直方向上存在块137的块的一部分或全部的区域。根据图3所示的例子,区域151是在该区域的面的垂直方向上存在块137的块的一部分或全部的区域,所以是重复区域。

TSV161~163将块131与块137连接,所以TSV161~163配置在重复区域151内。因而,用于TSV161~163的预留单元配置在重复区域151内即可。

这样,预留单元也可以配置在配置TSV的块与该TSV的连接目的地的块重叠的重复区域中。在此情况下,将重复区域作为对象区域。

(2)配置在对象区域内的预留单元的数量的决定方法

配置在对象区域内的预留单元的数量如以下这样决定。另外,通过以下所示的决定方法决定的预留单元的数量可以在后述的各种预留单元的配置方法中使用。

作为第一方法,可以通过由使用者指定预留单元数来决定。

作为第二方法,可以将预留单元数通过百分比规则决定。所谓百分比规则,是指以满足

[所配置的全部的预留单元的面积的合计值/对象区域的总面积]=预先指定的预留单元的面积比率

的方式决定预留单元的数量。换言之,使用在对象区域内配置的全部预留单元占用的面积的合计值相对于对象区域的总面积的面积比率(百分比),决定预留单元的数量。在此情况下,预留单元的数量通过下式计算。这里,面积比率由使用者指定。另外,该面积比率也可以不由使用者指定而总是固定值。

预留单元的数量=[对象区域的总面积×指定的面积比率(百分比)/1个预留单元的面积×100]

这里,[x]表示将x的小数点以下舍去的运算的结果。

另外,指定的面积比率优选的是10%以内,更优选的是1%以上且5%以下。这是因为,如果面积比率变大,则在块内较多地残留将来不被使用的浪费的区域的可能性变高。

作为第三方法,可以依存于在对象区域中配置的TSV的数量而决定预留单元的数量。例如,通过以下所示的式子,将对在对象区域中配置的TSV的数量乘以倍数而得到的数量决定为预留单元的数量,在对象区域整体中配置所决定的预留单元数的预留单元。这里,倍数作为一例是2~4倍。

预留单元的数量=TSV的数量×倍数

另外,这里,不是与在对象区域中配置的各TSV对应地配置2~4倍的数量的预留单元,而是依存于在对象区域中配置的全部的TSV的数量决定预留单元的数量,将所决定的数量的预留单元配置到对象区域中。根据该方法,由于对各TSV总是配置2~4倍的数量的预留单元作为预备,所以在发生了TSV的位置的变更的情况下能够灵活地对应。这里,倍数也可以由使用者指定。此外,倍数也可以总是固定值。

作为第四方法,可以依存于在对象区域中配置的TSV的位置及数量来决定预留单元的数量。例如,也可以是,将在对象区域中配置的全部的TSV以使接近配置的TSV属于相同的组的方式分类而划分为多个组,将组的数量的2~4倍的数量作为在对象区域中配置的预留单元的数量。此外,也可以按每个组设定依存于在组中包含的TSV的数量的倍数来计算预留单元的数量。这里,倍数也可以由使用者指定。此外,倍数也可以总是固定值。此外,在此情况下,也可以在接近于各组的位置上配置按每个组设定的数量的预留单元。

另外,有时不需要预先设定预留单元数的决定方法。例如是,如后所述采用在与TSV的配置位置成对称的位置上配置预留单元的方法的情况。在此情况下,对应于1个TSV而配置1个预留单元。即,配置与TSV的数量相同数量的预留单元,所以不需要预先设定预留单元数的决定方法。

(3)预留单元的配置方法

这里,作为预留单元的配置方法,说明预留单元的随机的配置、预留单元的等间隔的配置、使用者的指定位置上的预留单元的配置、向与TSV的配置位置成对称的位置的配置、距TSV为等距离的位置上的预留单元的配置、以及按TSV所属的组的预留单元的配置。

(a)冲突的排除

在想要配置各个预留单元的情况下(这里,将这些预留单元称作配置对象预留单元),在存在已经决定了配置的其他单元(这里,称作已决定单元)的情况下,需要考虑使得在同一半导体芯片上,配置对象预留单元的配置位置与已决定单元的配置位置不冲突,即使得配置对象预留单元的配置位置与已决定单元的配置位置不被重复地设定。此外,上述已决定单元还包括在该半导体芯片的贴合目的地的半导体芯片上配置的TSV。即,在将第1半导体芯片与第2半导体芯片贴合的情况下,还需要考虑使得第1半导体芯片上的配置对象预留单元与已经配置在第2半导体芯片上的TSV不被重复地设定。

因此,如果通过如下所述的预留单元的配置方法一旦暂且决定配置对象预留单元的配置位置,则判断配置对象预留单元的配置位置与已决定单元的配置位置是否重复,在判断为重复的情况下,使该配置对象预留单元的位置移动。移动的距离例如是预留单元的宽度量。在使配置对象预留单元的配置位置移动预留单元的宽度量之后,再次判断冲突,在冲突的情况下,再使配置对象预留单元的位置移动。重复进行移动及冲突判断直到不再有冲突。这样,在判断为不再有冲突时,将该位置决定为预留单元的配置位置。

在上述中,例如按X轴正方向、X轴负方向、Y轴正方向、Y轴负方向的顺序反复进行预留单元的配置位置的移动,每当移动时进行冲突判断。在即使这样也还发生冲突的情况下,将移动距离设为预留单元的宽度的2倍、3倍、…,反复进行预留单元的配置位置的移动,每当移动时进行冲突判断。

(b)预留单元的随机的配置

(向对象区域内的配置)

预留单元可以在配置TSV的对象区域内配置在随机决定的位置上。

在最初的设计一旦完成后,多个TSV中的某一个的配置位置被变更的情况下,在最初的设计阶段中难以预测TSV被变更到对象区域内的哪里的位置,所以通过将多个预留单元随机地配置到对象区域内,能够从随机配置的预留单元之中选择适当的变更目的地的TSV的配置位置的可能性变高。

(向块内的配置的例子)

预留单元也可以在配置TSV的块内配置到随机决定的位置上。

如在图4中作为一例表示的那样,假设在块131中贯通块131而配置有TSV161~163。在此情况下,对象区域是块131,预留单元171~179随机地配置在作为对象区域的块131内。

(向重复区域内的预留单元的配置的例子)

此外,预留单元也可以在配置TSV的块与该TSV的连接目的地的块的重复区域内配置在随机决定的位置上。

如在图5中作为一例表示的那样,假设在半导体芯片101a的块131中贯通块131而配置有TSV161~163、TSV161~163与半导体芯片101b的块137连接。半导体芯片101a的块131和半导体芯片101b的块137具有重复区域151。

在此情况下,对象区域是重复区域151,预留单元181~190随机地配置在作为对象区域的重复区域151内。

(c)预留单元的等间隔的配置

(向对象区域内的配置)

预留单元也可以在配置TSV的对象区域内配置在等间隔地决定的位置上。换言之,在对象区域内配置多个预留单元的情况下,在该对象区域内决定多个预留单元的配置位置,以使第1预留单元的配置位置与相邻于该预留单元的第2预留单元的配置位置之间的距离等于第1预留单元的配置位置与相邻于第1预留单元的第3预留单元的配置位置之间的距离。多个预留单元以矩阵状配置。

在对象区域内,与对象区域的一边平行地、且彼此离开距离L地描绘多个行线,并且与同一边垂直地、且彼此离开距离L地描绘多个列线。接着,在行线与列线的各交点的位置上配置预留单元。

这里,例如与上述一边最近的位置的行线描绘在从该一边离开距离L/2的位置上。此外,与正交于该一边的另一边最近的位置的列线描绘在从该另一边离开距离L/2的位置上。另外,它们各自的位置并不限定于离开距离L/2的位置。例如,也可以配置到由使用者指定的位置上。此外,也可以配置到预先设定的固定位置上。

这里,也可以将作为配置预留单元的间隔的距离L如以下这样决定。

在对象区域中,如以下这样计算对一个预留单元分配的单位面积。

单位面积=[对象区域的总面积/预留单元的数量]

接着,如以下这样计算作为配置预留单元的间隔的距离L。

距离L=[平方根(单位面积)]

通过这样配置预留单元,能够大致将指定的数量的预留单元以等距离配置在对象区域上。

在最初的设计一旦完成后,在多个TSV中的某一个的配置位置被变更的情况下,在最初的设计阶段中难以预测TSV被变更到对象区域内的哪里的位置,所以通过将多个预留单元等间隔地配置在对象区域内,能够从等间隔地配置的预留单元中选择适当的变更目的地的TSV的配置位置的可能性变高。

(块内的配置的例子)

预留单元也可以在配置TSV的块内配置在以等间隔决定的位置上。

如在图6中作为一例表示的那样,假设在块131中,贯通块131而配置有TSV161~163。在此情况下,对象区域是块131,预留单元191、192、…、193等间隔地配置在作为对象区域的块131内。

即,与块131的一边平行地以彼此离开距离L的方式描绘多个行线,与该一边垂直地以彼此离开距离L的方式描绘多个列线。接着,在行线与列线的各交点的位置上配置预留单元。

(向重复区域内的预留单元的配置的例子)

此外,预留单元也可以在配置TSV的块与该TSV的连接目的地的块的重复区域内配置在等间隔地决定的位置上。

如图7中作为一例表示的那样,假设在半导体芯片101a的块131中,贯通块131而配置有TSV161~163,TSV161~163与半导体芯片101b的块137连接。半导体芯片101a的块131和半导体芯片101b的块137具有重复区域151。

在此情况下,对象区域是重复区域151,预留单元194、195、…、196以等间隔配置在作为对象区域的重复区域151内。

(d)向对称位置的配置

(向对象区域内的基于线对称的配置)

预留单元也可以在配置TSV的对象区域内,配置在以对象区域的中心线为对称轴、与TSV的配置位置成线对称的位置上。

在对象区域内,设定与对象区域的Y轴方向的两边平行、且通过该两边的中间点的中心线。另外,在对象区域内,也可以设定与对象区域的X轴方向的两边平行、且通过该两边的中间点的中心线。

接着,在对象区域内选择1个TSV,求出以对象区域内的中心线为对称轴、与所选择的TSV的位置成线对称的位置,将预留单元配置在该位置上。接着,管脚对其他TSV也同样配置预留单元。

在最初的设计一旦完成后,在多个TSV中的某一个的配置位置被变更的情况下,在最初的设计阶段难以预测TSV被变更到对象区域内的哪里的位置,所以通过在与TSV成线对称的位置上配置预留单元,能够从这些预留单元中选择适当的变更目的地的TSV的配置位置的可能性变高。

(向块内的基于线对称的配置的例子)

预留单元也可以在配置TSV的块内,配置在以块的中心线为对称轴、与TSV的配置位置成线对称的位置上。

如在图8中作为一例表示的那样,假设在块131中,贯通块131而配置有TSV161~163。在此情况下,对象区域是块131,预留单元201、202、203被配置在作为对象区域的块131内。

在块131中,设定与块131的Y轴方向的两边131a及131b平行、且通过131a与131b的中间点的中心线211。

接着,选择TSV161,求出以中心线211为对称轴、与TSV161的位置成线对称的位置,在该位置上配置预留单元201。接着,管脚对TSV162及163也同样配置预留单元202及203。

(向重复区域内的基于线对称的配置的例子)

此外,预留单元也可以在配置TSV的块与该TSV的连接目的地的块的重复区域内,配置在以重复区域的中心线为对称轴、与TSV的配置位置成线对称的位置上。

如在图9中作为一例表示的那样,假设在半导体芯片101a的块131中,贯通块131而配置有TSV161~163,TSV161~163与半导体芯片101b的块137连接。半导体芯片101a的块131和半导体芯片101b的块137具有重复区域151。

在此情况下,对象区域是重复区域151,预留单元204、205、206配置在作为对象区域的重复区域151内。

在重复区域151中,设定与重复区域151的Y轴方向的两边131b及131c平行、且通过131b和131c的中间点的中心线212。

接着,选择TSV161,求出以中心线212为对称轴、与TSV161的位置成线对称的位置,在该位置上配置预留单元204。接着,这对TSV162及163也同样配置预留单元205及206。

(向对象区域内的基于点对称的配置)

预留单元也可以在配置TSV的对象区域内,配置在以对象区域的中心点为对称点、与TSV的配置位置成点对称的位置上。

在对象区域中设定中心点。中心点215是对象区域的两条对角线的交点。

接着,在对象区域中选择1个TSV,求出以中心点为对称点、与所选择的TSV的位置成点对称的位置,在该位置上配置预留单元。接着,关于其他TSV也同样配置预留单元。

在最初的设计一旦完成后,在多个TSV中的某一个的配置位置被变更的情况下,在最初的设计阶段难以预测TSV被变更到对象区域内的哪里的位置,所以通过在与TSV成点对称的位置上配置预留单元,能够从这些预留单元中选择适当的变更目的地的TSV的配置位置的可能性变高。

(向块内的基于点对称的配置的例子)

预留单元也可以在配置TSV的块内,配置在以块的中心点为对称点、与TSV的配置位置成点对称的位置上。

如在图10中作为一例表示的那样,假设在块131中贯通块131而配置有TSV161~163。在此情况下,对象区域是块131,预留单元221、222、223配置在作为对象区域的块131内。

在块131中,设定中心点215。中心点215是块131的两条对角线213及214的交点。

接着,选择TSV161,求出以中心点215为对称点、与TSV161的位置成点对称的位置,在该位置上配置预留单元223。接着,关于TSV162及163也同样分别配置预留单元222及221。

(向重复区域内的基于点对称的配置的例子)

此外,预留单元也可以在配置TSV的块与该TSV的连接目的地的块的重复区域内,配置在以重复区域的中心点为对称点、与TSV的配置位置成点对称的位置上。

如在图11中作为一例表示的那样,假设在半导体芯片101a的块131中,贯通块131而配置有TSV161~163,TSV161~163与半导体芯片101b的块137连接。半导体芯片101a的块131和半导体芯片101b的块137具有重复区域151。

在此情况下,对象区域是重复区域151,预留单元224、225、226被配置在作为对象区域的重复区域151内。

在重复区域151中,设定中心点218。中心点218是重复区域151的两条对角线216及217的交点。

接着,选择TSV161,求出以中心点218为对称点、与TSV161的位置成点对称的位置,在该位置上配置预留单元226。接着,关于TSV162及163也同样分别配置预留单元225及224。

(e)相对于TSV为等距离的位置上的预留单元的配置

(向对象区域内的配置)

也可以在配置TSV的对象区域内,在相对于配置1个TSV的位置处于等距离的多个位置上分配配置多个预留单元。

首先,计算在对象区域内配置的TSV的数量,接着,通过下式,计算作为管脚对1个TSV配置的预留单元的数量的配置数N。

配置数N=[预留单元的数量/TSV数]

接着,作为使用者的指定值而取得TSV的配置位置与预留单元的配置位置的距离M。另外,距离M的决定方法并不限定于此。例如,也可以通过下式计算。

距离M=[常数/形成在块内的电路的动作速度]

该计算式利用在距离M与形成在块内的电路的动作速度之间存在反比例的关系的性质。这里,常数是通过经验决定的值。

在对象区域中,对于各TSV,配置通过配置数N计算出的数量的预留单元。N个预留单元的配置如以下这样进行。

确定1个TSV,以所确定的TSV的配置位置为中心点,以使从中心点到顶点的距离等于距离M的方式描绘正N多边形。此时,例如如果最初设定为正N多边形的1个顶点的位置的Y坐标与所确定的TSV的配置位置的Y坐标相等,则能够唯一地确定正N多边形的其他顶点。接着,在正N多边形的N个顶点的位置上分别配置N个预留单元。

另外,配置预留单元的方法并不限定于此。也可以以TSV的配置位置为中心点,描绘N多边形,而不是正N多边形,且在其顶点上配置预留单元。此外,也可以以TSV的配置位置为中心点,描绘半径是距离M的圆,在描绘的圆的圆周上随机地配置N个预留单元。

此外,判断这样设定的预留单元的位置是对象区域的内侧还是外侧,当为外侧的情况下,使该预留单元的位置相内侧移动预留单元的宽度的量。接着,进行同样的判断,如果还是存在于外侧,则进一步使其向内侧移动预留单元的宽度的量。这样,重复判断和移动,直到该预留单元被配置到对象区域的内侧。

关于应配置在对象区域中的其他TSV,也同样配置预留单元。

这样,如果对全部的TSV配置N个预留单元,则配置在对象区域中的预留单元的数量的合计有时超过当初预定的预留单元的数量。在此情况下,也可以当作配置了与当初预定的预留单元的数量大致相等的数量的预留单元而保持原样。此外,在此情况下,也可以将预留单元的配置取消超过当初的预留单元的数量的量。

通过这样配置预留单元,在最初的设计一旦完成后在某一个TSV的配置位置被变更的情况下,在最初的设计阶段难以预测TSV被变更到对象区域内的哪里的位置,所以通过在距TSV处于等距离的位置上配置多个预留单元,能够从这些预留单元中选择适当的变更目的地的TSV的配置位置的可能性变高。

(向块内的配置的例子)

如在图12中作为一例表示的那样,假设在块131中贯通块131而配置有1个TSV161。在此情况下,对象区域是块131。在作为对象区域的块131内,预留单元231、232、233、234以配置TSV161的位置为中心点,配置在从中心点到顶点的距离是M的正方形的顶点的位置上。

(向重复区域内的配置的例子)

预留单元也可以配置在配置TSV的块与该TSV的连接目的地的块的重复区域内。

如在图13中作为一例表示的那样,假设在半导体芯片101a的块131中,贯通块131而配置有1个TSV161,TSV161与半导体芯片101b的块137连接。半导体芯片101a的块131和半导体芯片101b的块137具有重复区域151。

在此情况下,对象区域是重复区域151。在作为对象区域的重复区域151内,预留单元235、236、237、238以配置TSV161的位置为中心点,配置在从中心点到顶点的距离是M的正方形的顶点的位置上。

(f)按各TSV组的预留单元的配置

(向对象区域内的配置)

预留单元如以下说明的那样,也可以在配置TSV的对象区域内,管脚对构成1个组的多个TSV配置。换言之,将配置在对象区域内的多个TSV分类为组,基于在各组中包含的TSV的配置位置,决定预留单元的配置位置。此时,以接近配置的TSV属于同一组的方式分类TSV。此外,在一个组所包含的多个TSV的配置位置的中央,决定预留单元的配置位置。

首先,将配置在对象区域内的多个TSV分类为1个或多个组。向组的分类如以下这样进行。

将分组的距离G作为使用者的指定值而取得。

选择还没有分类为组的1个TSV,分类到第1组。接着,选择配置在与配置所选择的TSV的位置的距离为G以内的全部的TSV,将这些TSV分类到第1组。

接着,选择还没有分类为组的1个TSV,分类到第2组。接着,选择配置在与配置所选择的TSV的位置的距离为G以内的全部的TSV,将这些TSV分类到第2组。

以下,同样,将剩余的全部的TSV分类到某一个组。

另外,将配置在对象区域内的全部的TSV分类为组的方法并不限于上述。例如,也可以在对象区域内选择任意的一点,选择配置在与该点的距离为G以内的全部的TSV,将所选择的这些TSV作为1个组。接着,选择另一点,同样生成1个组。以下同样,将剩余的全部的TSV分类到某一个组。

这样,将配置在对象区域内的全部的TSV分类为1个或多个组。

接着,对各组求出包含在该组中的全部的TSV的位置,基于这些全部的TSV的位置,对该组求出1个位置,在所求出的位置上配置预留单元。

作为一例,也可以虚拟地描绘以求出的全部的TSV的位置为顶点的多边形,设定该多边形内的一点的位置,在该位置上配置预留单元。此时,也可以作为上述一点的位置而求出该多边形的重心的位置,在该重心的位置上配置预留单元。此外,也可以任意地选择将多边形的顶点连结的两条对角线,求出这两条对角线的交点,在该交点的位置上配置预留单元。此外,也可以以从上述一点到全部的顶点的距离的合计为最小的方式设定多边形内的一点。

这样,对配置在较近的位置而构成1个组的多个TSV配置1个预留单元,从而在最初的设计一旦完成后在某一个TSV的配置位置被变更的情况下,在最初的设计阶段中难以预测TSV被变更到对象区域内的哪里的位置,所以通过对配置在较近的位置上的多个TSV配置1个预留单元,在关于这些多个TSV发生了配置位置的变更的情况下,能够选择上述预留单元作为变更目的地的TSV的配置位置。

(向块内的配置的例子)

如在图14中作为一例表示的那样,假设在块131中贯通块131而配置有TSV281~297。在此情况下,对象区域是块131。

如该图所示,TSV281被分类为组311,TSV282~284被分类为组312,TSV285~286被分类为组313,TSV287~289被分类为组314,TSV290~293被分类为组315,TSV294~297被分类为组316。

管脚对组311,配置有预留单元301。组311仅包括1个TSV281,所以描绘以包含在组中的全部的TSV的位置为顶点的多边形的方法不能采用。此外,管脚对在组中包含两个TSV的情况也是同样的(参照图14的组313)。在这样的情况下,例如,管脚对组311,只要在与TSV281的位置的距离为G以内的位置上配置预留单元就可以。此外,管脚对组313,只要在相对于两个TSV285及286处于等距离的位置上配置预留单元就可以。

管脚对组312、313、314、315、316分别配置有预留单元302、303、304、305、306。

管脚对组312,预留单元302的位置存在于以TSV282、283、284的位置为顶点的多边形的内部中。管脚对组313、314、315、316也同样,预留单元配置在以多个TSV的位置为顶点的多边形的内部中。

(向重复区域内的配置)

与向块内的配置的例子同样,预留单元也可以配置在配置TSV的块与该TSV的连接目的地的块的重复区域内。

1.4TSV的配置的变更前和变更后的例子

在图15中表示将使用设计支持装置400设计的三维集成电路的半导体芯片的块的一部分放大表示的平面概念图。

如该图所示,在该块中,配置有TSV252、配置禁止区域251、预留单元250、标准单元253、布线254、255及其他单元、布线。另外,TSV252、配置禁止区域251、预留单元250被配置为宏单元。

TSV252经由布线255及254而与标准单元253连接。其他单元通过通孔(via)或纵横配置的布线连接。

这里,预留单元250是具有将TSV252和配置禁止区域251相加的大小的单元。配置该预留单元250的三维的区域整体是禁止单元的配置及布线的禁止区域(blockage,禁区),作为预留TSV的设置区域的功能单元使用。如果配置TSV,则影响到晶体管层,所以设置该禁区,以使得不仅是布线、单元也不能放置。通过在配置布线全部结束后配置该预留单元250,在TSV的位置变更的情况下,不需要进行用来重新确保TSV设置用的面积的单元的移动,能够使用预留单元250的区域作为TSV及配置禁止区域。

作为需要TSV的位置的移动的理由,可以考虑例如在图15中,从相当于一个逻辑的最后级的单元到TSV252的定时制约较严格、并且逻辑最后级的单元因与其他单元的制约而需要移动的情况等。在此情况下,需要使TSV的位置向最后级的单元的方向(图15的上方向)移动。

作为另一例,可以考虑因在贴合目的地的半导体芯片中发生布线的混杂而想要将TSV的位置移动到布线密度较低的部分的情形。在此情况下,由于在第1半导体芯片和该第1半导体芯片的贴合目的地的第2半导体芯片中需要对准TSV的位置,所以即使在第1半导体芯片中满足定时制约,也需要TSV的移动。

接着,在图16中表示将TSV252的配置位置变更后的平面概念图。如该图所示,在将TSV的配置位置变更后,在该块中,在配置有预留单元250的位置上配置TSV262及配置禁止区域261,代替布线254及255而将标准单元253与TSV262经由布线264及265连接。此外,配置有TSV252及配置禁止区域251的区域被替换为预备的区域263。

如图16所示,通过将预留单元替换为TSV及配置禁止区域,来移动TSV。这样,仅通过TSV及配置禁止区域的替换和布线的修正就能够进行TSV的移动。

在TSV的移动完成、全部的掩模布局设计的工序结束后,即在TSV的位置全部确定时,原来配置有TSV及配置禁止区域的区域成为预备的区域。为了有效利用该预备的区域,也可以在该预备的区域中配置修复单元或导热孔。另外,也可以不是这样的替换,而将预备的区域作为空闲区域而原样放置。

此外,在作为TSV的移动目的地而没有使用预留单元的情况下,也可以在该预留单元中配置修复单元或导热孔。此外,也可以不使用该预留单元而原样放置。

在图17中,在图16的预备的区域263中配置有修复单元271~276。修复单元是预备的单元,用于对逻辑设计的不良状况的ECO(EngineeringChange Order:工程变更命令)修正。修复单元例如是AND单元或INV单元。在由于掩模布局后的不良状况的发现而需要逻辑修正的情况下,选择具有所需逻辑的空闲单元并对它们进行布线,从而能够实现修正逻辑。由于需要的标准单元作为空闲单元已经存在于晶体管层以下的掩模布局中,所以能够将修正部位仅限定于布线层。因此,具有能够缩短掩模布局修正期间、削减修正掩模的成本的优点。

此外,在图18中,在图16的预备的区域263中,在导热孔278及导热孔278的周围配置有配置禁止区域277。导热孔是用来将半导体芯片与半导体芯片连接、在半导体芯片与半导体芯片之间传导热的通孔。在导热孔中使用铜等的金属。在导热孔中使用的铜等的金属由于热传导率比硅高,所以在半导体芯片与半导体芯片之间容易传热。特别是,在三维集成电路那样的具有芯片层叠构造的设备中,由于热容易充满在内部中,所以设置导热孔等的热对策变得重要。

1.5设计支持装置400的构造

设计支持装置400如图19所示,包括逻辑合成用库存储部401、源文件存储部402、逻辑合成部403、制约存储部404、网表存储部405、配置布线制约存储部406、配置布线用库存储部407、配置布线部408、布局数据存储部409、布局数据验证部410、验证用数据存储部411、掩模输出部412及编辑器413。

设计支持装置400具体而言是由微处理器、ROM、RAM、硬盘单元、显示器单元、键盘、鼠标等构成的计算机系统。在上述RAM或上述硬盘单元中存储有控制用的计算机程序。通过上述微处理器按照上述计算机程序动作,设计支持装置400的逻辑合成部403、配置布线部408、布局数据验证部410、掩模输出部412及编辑器413实现其功能。此外,逻辑合成用库存储部401、源文件存储部402、制约存储部404、网表存储部405、配置布线制约存储部406、配置布线用库存储部407、布局数据存储部409及验证用数据存储部411作为一例由硬盘单元构成。

逻辑合成用库存储部401如图19所示,存储有标准单元数据451、SRAM宏单元数据452、TSV宏单元数据453、…。它们分别是表示标准单元、SRAM宏单元、TSV宏单元、…的形状及这些单元的延迟值等的数据。另外,将外部端子及SRAM存储器等称作宏单元。TSV也又是宏单元。

源文件存储部402如图19所示,存储有使用HDL记述的HDL文件454、455、456、…。HDL文件对应于一个块等,定义该块(模块)等。在图21中表示HDL文件454的一例。HDL文件454如该图所示,包括定义模块名及端子(端口)的模块定义454a、输入输出信号的声明454b、下层模块的调用454c、记述在电路中使用的逻辑的assign语句454d等而构成。HDL文件454、455、456、…是由使用者使用编辑器413进行制作、追加、变更、删除等而生成的。

制约存储部404如图19所示,存储有表示电路的动作定时的制约的定时制约457、表示配置在电路中的区的制约的区制约458、…。定时制约457、区制约458…是由使用者使用编辑器413进行制作、追加、变更、删除等而生成的。

逻辑合成部403将硬件记述语言解析,电路映射到AND门、NOR门等的作为逻辑电路的最小单位的标准单元。具体而言,将在电路中使用的逻辑替换为AND门及NOR门等的基本的门的组合。逻辑合成部403使用存储在逻辑合成用库存储部401中的标准单元数据451、SRAM宏单元数据452、TSV宏单元数据453、…、存储在源文件存储部402中的HDL文件454、455、456、…、存储在制约存储部404中的定时制约457、区制约458、…进行逻辑合成,作为网表而生成HDL文件471、472、473、…,将HDL文件471、472、473、…向网表存储部405写入。

网表存储部405如图19所示,作为网表而存储有HDL文件471、472、473、…。HDL文件471、472、473、…由逻辑合成部403生成。在图23中表示HDL文件471的一例。HDL文件471如该图所示,包括定义模块名及端子(端口)的模块定义471a、输入输出信号的声明471b、下层模块的调用471c、下层模块的调用471d等而构成。下层模块的调用471d例如用于将A+B的逻辑替换为AND门或NOR门等的基本的门的组合。

配置布线制约存储部406如图19所示,存储有TSV配置信息459、TSV预留单元配置信息460、宏配置信息461、版图规划信息462、管脚(pin)信息463。TSV配置信息459定义在半导体芯片中配置TSV的位置。关于TSV预留单元配置信息460在后面叙述。宏配置信息461定义在半导体芯片中配置宏单元的位置。版图规划信息462定义半导体芯片的大小及配置在半导体芯片中的块的配置位置。管脚信息463定义配置在各块中的管脚(端子)的位置等。这里,TSV配置信息459、TSV预留单元配置信息460、宏配置信息461、版图规划信息462、管脚信息463是由使用者使用编辑器413进行制作、追加、变更、删除等而生成的。

配置布线用库存储部407如图19所示,存储有标准单元数据464、SRAM宏单元数据465、TSV预留单元数据466、TSV宏单元数据467、…。标准单元数据464、SRAM宏单元数据465、TSV预留单元数据466、TSV宏单元数据467、…表示标准单元、SRAM宏单元、TSV预留单元、TSV宏单元、…的形状。

配置布线部408决定宏单元、TSV单元、管脚、布线等的配置。关于配置布线部408在后面叙述。

布局数据存储部409如图19所示,存储有掩模数据481、482、483、…。掩模数据481、482、483、…分别对应于多个半导体芯片。掩模数据包括多个掩模布局数据。多个掩模布局数据分别对应于构成半导体芯片的多个层。各掩模布局数据是表示配置在半导体芯片中的单元及布线的、与该掩模布局数据对应的层中的各个部分的形状的数据。

验证用数据存储部411存储有设计规则491、定时信息492、…。设计规则491定义布线层间的距离、宽度等。例如,金属布线层1中的布线的宽度定义为不能细于100nm等。定时信息492定义配置在半导体芯片中的各单元的动作定时。

布局数据验证部410基于设计规则491、定时信息492、…,验证存储在布局数据存储部409中的掩模数据481、482、483、…。

掩模输出部412将存储在布局数据存储部409中的掩模数据481、482、483、…输出。

编辑器413通过使用者的操作,对存储在源文件存储部402中的HDL文件454、455、456、…、存储在制约存储部404中的定时制约457、区制约458、…、存储在配置布线制约存储部406中的TSV配置信息459、TSV预留单元配置信息460、宏配置信息461、版图规划信息462、管脚信息463,进行生成、追加、修正、删除等的编辑。

1.6配置布线部408的构造

配置布线部408如以下所示,按每个半导体芯片、并且按每个块决定单元及布线等的配置,按每个半导体芯片、并且按半导体芯片的每个层生成并输出掩模数据。

配置布线部408如图20所示,包括读入部431、存储部432、控制部433、版图规划生成部435、管脚配置部436、TSV配置部437、宏配置部438、TSV预留单元配置部439、单元配置部440、电源布线部441、概略布线部442、详细布线部443、TSV位置变更部444及掩模数据生成部445。

读入部431从网表存储部405读出HDL文件471、472、473、…,从配置布线制约存储部406读出TSV配置信息459、TSV预留单元配置信息460、宏配置信息461、版图规划信息462、管脚信息463,从配置布线用库存储部407读出标准单元数据464、SRAM宏单元数据465、TSV预留单元数据466、TSV宏单元数据467、…,将所读出的HDL文件471、472、473、…、TSV配置信息459、TSV预留单元配置信息460、宏配置信息461、版图规划信息462、管脚信息463、标准单元数据464、SRAM宏单元数据465、TSV预留单元数据466、TSV宏单元数据467、…向存储部432写入。

版图规划生成部435使用版图规划信息462生成版图规划表501,将所生成的版图规划表501向存储部432写入。在图24中表示版图规划表501的一例。如该图所示,版图规划表501包括定义半导体芯片的大小的数据501a、表示配置在半导体芯片中的多个块的配置位置的数据群501b。

管脚配置部436使用管脚信息463生成管脚配置表502,将所生成的管脚配置表502向存储部432写入。在图25中表示管脚配置表502的一例。如该图所示,管脚配置表502包括管脚配置数据502a、502b、…。管脚配置数据502a、502b、…分别对应于配置在块上的多个管脚(端子)。管脚配置数据502a表示表现管脚的管脚名称、配置管脚的层、管脚的尺寸、配置管脚的位置等。另外,在该图所示的例子中,“-100”表示管脚的尺寸和被配置的层被自动决定。此外,“left”表示沿着块的左侧的边配置管脚,其后面的数字“1”表示配置该管脚的顺序。

TSV配置部437使用TSV配置信息459生成TSV配置表503,将所生成的TSV配置表503向存储部432写入。在图26中表示TSV配置表503的一例。如该图所示,TSV配置表503包括TSV配置数据503a、…。TSV配置数据503a、…分别对应于配置在块内的多个TSV。TSV配置数据503a表示对应的TSV的实例名、配置该TSV的块内的配置位置、以及配置的朝向。这里,TSV配置数据503a的末尾的“N”作为一例而意味着朝北,表示在块内将TSV向指定的方向配置。

宏配置部438使用宏配置信息461生成宏配置表504,将所生成的宏配置表504向存储部432写入。

TSV预留单元配置部439使用TSV预留单元配置信息460生成TSV预留单元配置表505,将所生成的TSV预留单元配置表505向存储部432写入。关于TSV预留单元配置部439在后面叙述。在图27中表示TSV预留单元配置表505的一例。如该图所示,TSV预留单元配置表505包括TSV预留单元配置数据505a、…。TSV预留单元配置数据505a、…分别对应于配置在块内的多个预留单元。TSV预留单元配置数据505a表示对应的预留单元的实例名、配置该预留单元的块内的配置位置、以及配置的朝向。另外,TSV预留单元配置数据505a的数据构造与TSV配置数据503a的数据构造相同。

单元配置部440使用标准单元数据464、HDL文件471、472、473、…生成单元配置表506,将所生成的单元配置表506向存储部432写入。

电源布线部441生成电源布线表507,向存储部432写入。概略布线部442进行概略的布线,详细布线部443基于概略的布线生成布线表508,向存储部432写入。在图28中表示布线表508的一例。如该图所示,布线表508包括布线数据508a、…。布线数据508a、…分别与半导体芯片上的多个布线对应。布线数据508a包括层号、宽度、(起点及终点)。层号表示配置该布线的层。宽度表示该布线的宽度。(起点及终点)表示该布线的开始位置及结束位置。起点及终点分别用X坐标及Y坐标表示。

此外,直到不再有配置的变更为止,TSV位置变更部444变更TSV的位置,电源布线部441重新生成电源布线表507,概略布线部442重新进行概略的布线,详细布线部443重新生成布线表508。

此外,掩模数据生成部445使用写入在存储部432中的版图规划表501、管脚配置表502、TSV配置表503、宏配置表504、TSV预留单元配置表505、单元配置表506、电源布线表507、布线表508,生成用来生成光掩模的布局数据即掩模数据,将所生成的掩模数据输出。

1.7TSV预留单元配置信息460的数据构造

TSV预留单元配置信息460如图22所示,包括对象区域的指定方法460a、预留单元数的决定方法460b、预留单元的配置位置的决定方法460c及向TSV的依存方法460d。

(对象区域的指定方法460a)

对象区域的指定方法460a表示对象区域是块还是对象区域是重复区域。具体而言,作为一例,指定方法460a是“0”或“1”,指定方法460a“0”表示对象区域是块,指定方法460a“1”表示对象区域是重复区域。

(预留单元数的决定方法460b)

预留单元数的决定方法460b表示如何决定配置在块内或重复区域内的全部的预留单元的数量。决定方法460b取“0”、“1”、“2”、“3”及“4”中的某个值。

决定方法460b“0”表示没有预先设定预留单元数的决定方法。例如是对应于1个TSV而配置1个预留单元的情况等。

决定方法460b“1”是使用在上述中说明的第一方法的情况,表示预留单元数由使用者的指定来决定。在此情况下,决定方法460b带有使用者的指定数。

决定方法460b“2”是使用在上述中说明的第二方法的情况,表示预留单元数通过百分比规则来设定。在此情况下,决定方法460b带有预先指定的预留单元的面积比率。

决定方法460b“3”是使用在上述中说明的第三方法的情况,表示依存于配置在对象区域中的TSV的数量来决定预留单元的数量。在此情况下,决定方法460b带有预先指定的倍数。

决定方法460b“4”是使用在上述中说明的第四方法的情况,表示依存于配置在对象区域中的TSV的位置及数量来决定预留单元的数量。在此情况下,决定方法460b带有预先指定的倍数。

(预留单元的配置位置的决定方法460c)

预留单元的配置位置的决定方法460c表示如何在块内或重复区域内配置预留单元。决定方法460c取“0”、“1”、“2”及“3”中的某个值。

在决定方法460c是“1”的情况下,表示在块内或重复区域内随机地配置预留单元。在决定方法460c是“2”的情况下,表示在块内或重复区域内等间隔地配置预留单元。在决定方法460c是“3”的情况下,表示在块内或重复区域内将预留单元配置在由使用者指定的位置上。在此情况下,TSV预留单元配置信息460包括由使用者指定的预留单元的配置位置。在决定方法460c是“0”的情况下,表示其他的情况。例如,是如依存于TSV的配置的情况。

(向TSV的依存方法460d)

向TSV的依存方法460d表示在决定预留单元的配置位置的情况下是否依存于TSV,此外,表示在依存于TSV而决定预留单元的配置位置的情况下如何依存于TSV。依存方法460d取“0”、“1”、“2”及“3”中的某个值。

在依存方法460d是“0”的情况下,表示在决定预留单元的配置位置的情况下不依存于TSV。

另一方面,在依存方法460d是“0”以外的情况下,表示在决定预留单元的配置位置的情况下依存于TSV。这里,在依存方法460d是“1”的情况下,表示在决定预留单元的配置位置的情况下,以与TSV的配置位置成对称的方式配置预留单元。在此情况下,依存方法460d带有表示是以对象区域的中心点为对称点对称地配置、还是以对称区域的中心轴为对称轴对称地配置的中心信息。中心信息表示使用对称区域的中心点、关于对称区域纵向的中心轴、或者关于对称区域横向的中心轴的哪一个。此外,在依存方法460d是“2”的情况下,表示在决定预留单元的配置位置的情况下将预留单元配置在距TSV为等距离的位置上。进而,在依存方法460d是“3”的情况下,表示在决定预留单元的配置位置的情况下将TSV分类为组,并对各组配置预留单元。在此情况下,依存方法460d带有分组的距离G。

1.8TSV预留单元配置部439

TSV预留单元配置部439包括配置控制部439a、随机配置部439b、等间隔配置部439c、指定配置部439d、对称配置部439e、等距离配置部439f及组配置部439g(关于它们没有图示)。

(配置控制部439a)

配置控制部439a从TSV预留单元配置信息460中读出对象区域的指定方法460a、预留单元数的决定方法460b、预留单元的配置位置的决定方法460c及向TSV的依存方法460d。

此外,配置控制部439a从存储在存储部432中的TSV配置表503中读出全部的TSV配置数据,计算所读出的TSV配置数据的数量,由此计算TSV的数量,判断计算出的TSV的数量是否是“0”。在计算出的TSV的数量是“0”的情况下,由于不存在配置于对象区域中的TSV,所以配置控制部439a不进行预留单元的配置而结束处理。

在计算出的TSV的数量不是“0”的情况下,配置控制部439a判断对象区域的指定方法460a是“0”及“1”的哪一个。在对象区域的指定方法460a是“0”的情况下,将对象区域设为块。此外,在对象区域的指定方法460a是“1”的情况下,计算作为配置TSV的块与这些TSV被连接的目的地的块的重叠部分的重复区域的位置,将对象区域设为由计算出的位置表示的重复区域。

接着,配置控制部439a判断预留单元数的决定方法460b是“0”、“1”、“2”、“3”及“4”中的哪一个。

在决定方法460b是“0”的情况下,配置控制部439a什么都不做。

在决定方法460b是“1”的情况下,配置控制部439a将要配置的预留单元数设为由使用者指定的指定数。

在决定方法460b是“2”的情况下,配置控制部439a计算对象区域的总面积,计算1个预留单元的面积,通过下式计算要配置的预留单元的数量。

要配置的预留单元的数量=[对象区域的总面积×指定的面积比率(百分比)/1个预留单元的面积×100]

在决定方法460b是“3”的情况下,配置控制部439a通过下式计算配置的预留单元的数量。

要配置的预留单元的数量=TSV的数量×指定的倍数

在决定方法460b是“4”的情况下,配置控制部439a通过下式计算要配置的预留单元的数量。

要配置的预留单元的数量=TSV的数量×指定的倍数

接着,配置控制部439a判断预留单元的配置位置的决定方法460c是“0”、“1”、“2”及“3”中的哪一个,在决定方法460c是“1”的情况下,通过随机配置部439b将预留单元随机地配置在块内或重复区域内。在决定方法460c是“2”的情况下,通过等间隔配置部439c将预留单元以等间隔配置在块内或重复区域内。在决定方法460c是“3”的情况下,通过指定配置部439d在块内或重复区域内将预留单元配置在被指定的位置上。

在决定方法460c是“0”的情况下,配置控制部439a判断向TSV的依存方法460d是“1”、“2”及“3”中的哪一个,在依存方法460d是“1”的情况下,在由对称配置部439e决定预留单元的配置位置时,以与TSV的配置位置成对称的方式配置预留单元。此外,在依存方法460d是“2”的情况下,在决定预留单元的配置位置时,由等距离配置部439f将预留单元配置在距TSV为等距离的位置上。进而,在依存方法460d是“3”的情况下,在决定预留单元的配置位置时,由组配置部439g将TSV分类为组,并对各组配置预留单元。

这样,结束TSV预留单元配置部439的处理。

(随机配置部439b)

随机配置部439b首先判断预留单元数的决定方法460b是“0”还是其他的值。在判断为预留单元数的决定方法460b是“0”的情况下结束处理。

在判断为预留单元数的决定方法460b是其他的值的情况下,随机配置部439b将以下的(a)~(d)重复与由配置控制部439a决定的预留单元数的量。

(a)生成比0大、且比1小的随机数,所生成的随机数乘以对象区域的横宽,作为坐标值X。

坐标值X=对象区域的横宽×随机数

(b)生成比0大、且比1小的随机数,所生成的随机数乘以对象区域的纵宽,作为坐标值Y。

坐标值Y=对象区域的纵宽×随机数

(c)将坐标(X,Y)临时设定为预留单元的位置。这里,坐标(X,Y)表示预留单元的截面的中心点存在于半导体芯片上的位置。判断由坐标(X,Y)决定的预留单元是否与已经决定的其他单元重复。在重复的情况下,回到(a),重复处理。这样,如上述那样排除冲突。

(d)在不重复的情况下,将坐标(X,Y)作为预留单元的配置位置,向TSV预留单元配置表505写入。

随机配置部439b如此配置所决定的预留单元数量的预留单元。

(等间隔配置部439c)

等间隔配置部439c首先判断预留单元数的决定方法460b是“0”还是其他值。在判断为预留单元数的决定方法460b是“0”的情况下结束处理。

在判断为预留单元数的决定方法460b是其他值的情况下,等间隔配置部439c通过下式计算单位面积。

单位面积=[对象区域的总面积/预留单元的数量]

接着,等间隔配置部439c通过下式计算距离L。

距离L=[平方根(单位面积)]

接着,等间隔配置部439c设定配置最初的预留单元的初始位置(X0,Y0)。这里,假设(X0,Y0)=(L/2,L/2)。

接着,等间隔配置部439c计算满足

X0+m×L<(对象区域的横宽)

的最大的整数m。此外,等间隔配置部439c计算满足

Y0+n×L<(对象区域的纵宽)的最大的整数n。

接着,在Y轴方向上,对于变量j=0、1、2、…、n重复以下的(a)。

(a)在X轴方向上,对于变量i=0、1、2、…、m,重复以下的(a-1)~(a-4)。

(a-1)计算(X,Y)=(X0+i×L,Y0+j×L)。

(a-2)将坐标(X,Y)临时设定为预留单元的位置。这里,坐标(X,Y)表示预留单元的截面的中心点存在于半导体芯片上的位置。判断由坐标(X,Y)决定的预留单元是否与已经决定的其他单元重复。在重复的情况下将预留单元的位置偏移,直到不再有重复。

(a-3)在没有重复的情况下,将坐标(X,Y)作为预留单元的配置位置向TSV预留单元配置表505写入。

(a-4)判断是否向TSV预留单元配置表505写入了预留单元数的量,在已写入的情况下,结束由等间隔配置部439c进行的处理。

等间隔配置部439c如此配置所决定的预留单元数的预留单元。

(指定配置部439d)

指定配置部439d从存储在存储部432中的TSV预留单元配置信息460读出由使用者指定的预留单元的配置位置,将所读出的配置位置作为预留单元的配置位置向TSV预留单元配置表505写入。

(对称配置部439e)

对称配置部439e将以下的(a)~(e)重复与在对象区域中配置的TSV的数量相当的量。

(a)从TSV配置表503读出1个TSV配置数据。

(b)取得中心信息,使用所取得的中心信息判断是线对称还是点对称。

(c)

(c-1)是点对称的情况下,计算对象区域的中心点(或重心),以计算出的中心点为对称点,计算关于由所读出的TSV配置数据决定的TSV的配置位置成对称的位置(X,Y)。另外,对称点并不限于中心点。也可以选择对象区域内的任意的点作为对称点。此外,也可以选择由使用者预先指定的对象区域内的点作为对称点。此外,也可以选择从对象区域内随机选择的点作为对称点。

(c-2)是线对称的情况下,计算对象区域的中心线(中心轴),以计算出的中心线为对称轴,计算关于由所读出的TSV配置数据决定的TSV的配置位置成对称的位置(X,Y)。另外,对称线并不限于中心线。也可以选择对象区域内的任意的线(轴)作为对称线。此外,也可以选择由使用者预先指定的对象区域内的线(轴)作为对称线。此外,也可以选择从对象区域内随机选择的线(轴)作为对称线。此外,也可以选择对象区域的对角线(对角轴)作为对称线。

(d)将坐标(X,Y)临时设定为预留单元的位置。这里,坐标(X,Y)表示预留单元的截面的中心点存在于半导体芯片上的位置。判断由坐标(X,Y)决定的预留单元是否与已经决定的其他单元重复。在重复的情况下将预留单元的位置偏移,直到不再有重复。

(e)在没有重复的情况下,将坐标(X,Y)作为预留单元的配置位置,向TSV预留单元配置表505写入。

对称配置部439e如此配置所决定的预留单元数的预留单元。

(等距离配置部439f)

等距离配置部439f从存储在存储部432中的TSV配置表503读出全部的TSV配置数据,计算所读出的TSV配置数据的数量,由此计算TSV的数量。

接着,等距离配置部439f判断预留单元数的决定方法460b是“0”还是其他值。在判断为预留单元数的决定方法460b是“0”的情况下结束处理。

在判断为预留单元数的决定方法460b是“0”以外的情况下,等距离配置部439f通过下式计算配置数N。

配置数N=[预留单元的数量/TSV数]

配置数N表示针对1个TSV配置的预留单元的数量。

接着,等距离配置部439f将以下的(a)~(e)重复与配置在对象区域中的TSV的数量相当的量。

(a)从存储在存储部432中的TSV配置表503读出1个TSV配置数据。

(b)取得距离M。例如,作为使用者的指定值而取得距离M。此外,如上述那样,可以通过距离M=[常数/形成在块内的电路的动作速度]来计算距离M。

(c)以由读出的TSV配置数据表示的TSV的配置位置为中心点,计算以从中心点离开距离M的N个位置为顶点的正N多边形的N个顶点的坐标(X,Y)。

(d)将N个坐标(X,Y)临时设定为预留单元的位置。这里,N个坐标(X,Y)分别表示N个预留单元各自的截面的中心点存在于半导体芯片上的位置。判断分别由坐标(X,Y)决定的预留单元是否与已经决定的其他单元重复。在重复的情况下,将预留单元的位置偏移,直到不再有重复。

(e)在没有重复的情况下,将各坐标(X,Y)作为预留单元的配置位置,向TSV预留单元配置表505写入。

等距离配置部439f如此配置所决定的预留单元数的预留单元。

(组配置部439g)

组配置部439g如以下所示,将配置在对象区域中的1个或多个TSV分类为组,以使相对于1个TSV存在于距离G的范围内的TSV属于一个组。

(a)取得分组的距离G。

(b)将变量i设定为“1”的值。

(c)从TSV配置表503读出与还没有分类为组的TSV对应的1个TSV配置数据,将由读出的TSV配置数据表示的TSV Ti分类到第i组,将TSVTi与第i组建立对应而存储。

(d)关于TSV配置表503内的TSV配置数据中的、与没有分类为组的TSV对应的TSV配置数据,将相对于Ti存在于距离G以内的全部的TSV分类到第i组,与组i建立对应而存储。

(e)判断是否全部的TSV都被分类到某一个组。

(f)在没有被分类的情况下,对变量i加1,重复上述(a)~(e)。

(g)在已被分类的情况下,对全部的组重复以下的(h)~(j)。

(h)计算包含在1个组中的全部的TSV的中央的位置。作为中央的位置的一例,假想地描绘以全部的TSV的配置位置为顶点的多边形,计算作为该多边形的重心的位置(X,Y)。另外,中央的位置并不限定于多边形的重心。例如,也可以计算多边形内的任意的一点的位置作为TSV的中央的位置。

(i)将坐标(X,Y)临时设定为预留单元的位置。这里,坐标(X,Y)表示预留单元的截面的中心点存在于半导体芯片上的位置。判断由坐标(X,Y)决定的预留单元是否与已经决定的其他单元重复。在重复的情况下,将预留单元的位置偏移,直到不再有重复。

(j)在没有重复的情况下,将坐标(X,Y)作为预留单元的配置位置,向TSV预留单元配置表505写入。

组配置部439g如此配置所决定的预留单元数的预留单元。

1.9设计支持装置400的动作

(1)设计支持装置400的配置布线部408的动作

对于设计支持装置400的配置布线部408的动作,使用图29所示的流程图进行说明。

在该图中,在步骤S111~S120中,先生成掩模布局,然后,在步骤S121~S124中,进行TSV的位置变更,再次将掩模布局修正。

配置布线部408通过控制部433的控制,按每个半导体芯片重复以下的S110~S126(步骤S109~S127)。

此外,配置布线部408通过控制部433的控制,按每个块重复以下的S111~S124(步骤S110~S125)。

读入部431读入网表等(步骤S111),版图规划生成部435生成版图规划表501(步骤S112),管脚配置部436生成管脚配置表502(步骤S113),TSV配置部437生成TSV配置表503(步骤S114),宏配置部438生成宏配置表504(步骤S115),TSV预留单元配置部439生成TSV预留单元配置表505(步骤S116),单元配置部440生成单元配置表506(步骤S117),电源布线部441生成电源布线表507(步骤S118),概略布线部442进行概略的布线(步骤S119),详细布线部443生成布线表508(步骤S120)。

接着,直到不再有变更部位为止,TSV位置变更部444将TSV的位置变更,(步骤S121),电源布线部441重新生成电源布线表507(步骤S122),概略布线部442重新进行概略的布线(步骤S123),详细布线部443重新生成布线表508(步骤S124)。

掩模数据生成部445生成掩模数据并输出(步骤S126)。

另外,在表示配置布线部408的动作的图29的流程图中,步骤S111~S113与二维集成电路设计的设计方法相同。TSV的配置的步骤S114是将TSV作为宏单元配置的用于三维集成电路的设计工序。在所配置的TSV的宏单元中只要仅有端子信息(端口信息)就可以,在该阶段中宏单元的构造也可以是黑盒子(black box)。此外,在TSV的周围,必须同时设置根据设计制约而禁止标准单元及晶体管的配置的配置禁止区域103。TSV以外的宏单元的配置的步骤S115在TSV宏单元的设置后进行。

此外,在进行单元配置的步骤S117之前,有设置预留单元的步骤S116。

如果预留单元的设置的步骤S116结束,则接着与二维集成电路设计的情况同样,进行考虑到定时制约的(Timing-Driven)标准单元的配置(步骤S117)、各种布线(步骤S118~S120)。

如果以上说明的配置布线工序完成,则进行是否全部的电路路径满足定时制约的验证。在使用TSV的三维集成电路的情况下,存在与贴合目的地的半导体芯片的连接关系。因此,即使单方的半导体芯片满足定时制约,如果另一方的半导体芯片不满足该制约,则作为三维集成电路整体也不正常地动作。因为这样的理由,变更TSV的位置,直到在配置布线设计的阶段中满足所贴合的两者的定时制约。

(2)TSV预留单元配置部439的配置控制部439a的动作

使用图30所示的流程图说明TSV预留单元配置部439的配置控制部439a的动作。

配置控制部439a从存储在存储部432中的TSV配置表503读出全部的TSV配置数据,计算所读出的TSV配置数据的数量,由此计算TSV的数量(步骤S131)。在计算出的TSV的数量是“0”的情况下(步骤S132),由于不存在配置在对象区域中的TSV,所以配置控制部439a不进行预留单元的配置而结束处理。

在计算出的TSV的数量不是“0”的情况下(步骤S132),配置控制部439a判断对象区域的指定方法460a是“0”及“1”中的哪一个(步骤S133)。在对象区域的指定方法460a是“0”的情况下(步骤S133),将对象区域设为块(步骤S136)。此外,在对象区域的指定方法460a是“1”的情况下(步骤S133),计算配置TSV的块与这些TSV被连接的目的地的块的重叠部分(步骤S134),将对象区域设为计算出的重叠部分(步骤S135)。

接着,配置控制部439a判断预留单元的决定方法460b是“0”、“1”、“2”、“3”及“4”中的哪一个(步骤S137)。

在决定方法460b是“0”的情况下(步骤S137),配置控制部439a什么都不做。

在决定方法460b是“1”的情况下(步骤S137),配置控制部439a将要配置的预留单元数设为由使用者指定的指定数(步骤S140)。

在决定方法460b是“2”的情况下(步骤S137),配置控制部439a计算对象区域的总面积,计算预留单元的面积(步骤S138),计算要配置的预留单元的数量=[对象区域的总面积×指定的面积比率(百分比)/1个预留单元的面积×100](步骤S139)。

在决定方法460b是“3”的情况下、或者决定方法460b是“4”的情况下,配置控制部439a通过对应的方法计算预留单元的数量。

接着,配置控制部439a判断预留单元的配置位置的决定方法460c是“0”、“1”、“2”及“3”中的哪一个(步骤S141),在决定方法460c是“1”的情况下(步骤S141),通过随机配置部439b将预留单元随机地配置在块内或重复区域内(步骤S142)。在决定方法460c是“2”的情况下(步骤S141),通过等间隔配置部439c将预留单元以等间隔配置在块内或重复区域内(步骤S143)。在决定方法460c是“3”的情况下(步骤S141),通过指定配置部439d在块内或重复区域内将预留单元配置在指定的位置上(步骤S144)。

在决定方法460c是“0”的情况下(步骤S141),配置控制部439a判断向TSV的依存方法460d是“1”、“2”及“3”中的哪一个(步骤S145),在依存方法460d是“1”的情况下(步骤S145),在决定预留单元的配置位置时,由对称配置部439e以与TSV的配置位置成对称的方式配置预留单元(步骤S146)。此外,在依存方法460d是“2”的情况下(步骤S145),在决定预留单元的配置位置时,由等距离配置部439f将预留单元配置在相对于TSV为等距离的位置上(步骤S147)。进而,在依存方法460d是“3”的情况下(步骤S145),在决定预留单元的配置位置时,由组配置部439g将TSV分类为组,并对各组配置预留单元(步骤S148)。

这样,结束TSV预留单元配置部439的处理。

(3)TSV预留单元配置部439的随机配置部439b的动作

使用图31所示的流程图说明TSV预留单元配置部439的随机配置部439b的动作。这里说明的动作是图30的步骤S142的详细情况。

随机配置部439b判断预留单元数的决定方法460b是“0”还是其他的值(步骤S161)。在判断为预留单元数的决定方法460b是“0”的情况下,结束处理。

在判断为预留单元数的决定方法460b是其他的值的情况下(步骤S161),随机配置部439b将以下的步骤S163~S168重复由配置控制部439a决定的预留单元数的量(步骤S162~S169)。

生成比0大、且比1小的随机数(步骤S163),所生成的随机数乘以对象区域的横宽,作为坐标值X(步骤S164)。接着,生成比0大、且比1小的随机数(步骤S165),所生成的随机数乘以对象区域的纵宽,作为坐标值Y(步骤S166)。接着,判断由坐标(X,Y)决定的预留单元是否与已经决定的其他单元重复(步骤S167)。在重复的情况下(步骤S167),回到步骤S163而重复处理。在不重复的情况下(步骤S167),将坐标(X,Y)作为预留单元的配置位置,向TSV预留单元配置表505写入(步骤S168)。

随机配置部439b如此配置所决定的预留单元数的预留单元。

(4)TSV预留单元配置部439的等间隔配置部439c的动作

使用图32~图33所示的流程图说明TSV预留单元配置部439的等间隔配置部439c的动作。这里说明的动作是图30的步骤S143的详细情况。

等间隔配置部439c首先判断预留单元数的决定方法460b是“0”还是其他的值(步骤S181)。在判断为预留单元数的决定方法460b是“0”的情况下(步骤S181),结束处理。

在判断为预留单元数的决定方法460b是其他的值的情况下(步骤S181),等间隔配置部439c计算单位面积=[对象区域的总面积/预留单元的数量](步骤S182),接着,计算距离L=[平方根(单位面积)](步骤S183),设为配置最初的预留单元的初始位置(X0,Y0)=(L/2,L/2)(步骤S184)。

接着,等间隔配置部439c计算满足X0+m×L<(对象区域的横宽)的最大的整数m(步骤S185),计算满足Y0+n×L<(对象区域的纵宽)的最大的整数n(步骤S186)。

接着,等间隔配置部439c在Y轴方向上,对于变量j=0、1、2、…、n,重复步骤S188~S194(步骤S187~S195)。

此外,等间隔配置部439c在X轴方向上,对于变量i=0、1、2、…、m,重复步骤S189~S193(步骤S188~S194)。

等间隔配置部439c计算(X,Y)=(X0+i×L,Y0+j×L)(步骤S189)。接着,判断由坐标(X,Y)决定的预留单元是否与已经决定的其他单元重复(步骤S190)。在重复的情况下(步骤S190),将预留单元的位置偏移,直到不再有重复(步骤S191)。

在没有重复的情况下(步骤S190),将坐标(X,Y)作为预留单元的配置位置,向TSV预留单元配置表505写入(步骤S192)。判断是否向TSV预留单元配置表505写入了预留单元数的量(步骤S193),在已写入的情况下(步骤S193),结束由等间隔配置部439c进行的处理。在没有写入的情况下(步骤S193),重复处理。

等间隔配置部439c如此配置所决定的预留单元数的预留单元。

(5)TSV预留单元配置部439的对称配置部439e的动作

使用图34所示的流程图说明TSV预留单元配置部439的对称配置部439e的动作。这里说明的动作是图30的步骤S146的详细情况。

对称配置部439e将步骤S202~S210重复与在对象区域中配置的TSV的数量相当的量(步骤S201~S211)。

从TSV配置表503读出1个TSV配置数据(步骤S202),取得中心信息,使用所取得的中心信息判断是线对称还是点对称(步骤S203)。在是点对称的情况下(步骤S203),计算对象区域的中心点(步骤S204),以计算出的中心点为对称点,计算关于由读出的TSV配置数据决定的TSV的配置位置成对称的位置(X,Y)(步骤S205)。在是线对称的情况下(步骤S203),计算对象区域的中心线(步骤S206),以计算出的中心线为对称轴,计算关于由读出的TSV配置数据决定的TSV的配置位置成对称的位置(X,Y)(步骤S207)。接着,判断由坐标(X,Y)决定的预留单元是否与已经决定的其他单元重复(步骤S208)。在重复的情况下(步骤S208),将预留单元的位置偏移,直到不再有重复(步骤S209)。

在没有重复的情况下(步骤S208),将坐标(X,Y)作为预留单元的配置位置,向TSV预留单元配置表505写入(步骤S210)。

对称配置部439e如此配置所决定的预留单元数的预留单元。

(6)TSV预留单元配置部439的等距离配置部439f的动作

使用图35所示的流程图说明TSV预留单元配置部439的等距离配置部439f的动作。这里说明的动作是图30的步骤S147的详细情况。

等距离配置部439f从存储在存储部432中的TSV配置表503读出全部的TSV配置数据,并计算所读出的TSV配置数据的数量,由此计算TSV的数量(步骤S231)。

接着,等距离配置部439f判断预留单元数的决定方法460b是“0”还是其他的值(步骤S232)。在判断为预留单元数的决定方法460b是“0”的情况下(步骤S232),结束处理。

在判断为预留单元数的决定方法460b是“0”以外的情况下(步骤S232),等距离配置部439f计算配置数N=[预留单元的数量/TSV数量](步骤S233)。

接着,等距离配置部439f将步骤S235~S240重复与在对象区域中配置的TSV数量相当的量(步骤S234~S241)。

从存储在存储部432中的TSV配置表503读出1个TSV配置数据(步骤S235),取得距离M(步骤S236),将由读出的TSV配置数据表示的TSV的配置位置作为中心点,计算以从中心点离开距离M的N个位置为顶点的正N多边形的N个顶点的坐标(X,Y)(步骤S237)。接着,判断分别由坐标(X,Y)决定的预留单元是否与已经决定的其他单元重复(步骤S238)。在重复的情况下(步骤S238),将重复的预留单元的位置偏移,直到不再有重复(步骤S239)。

在没有重复的情况下(步骤S238),将各坐标(X,Y)作为预留单元的配置位置,向TSV预留单元配置表505写入(步骤S240)。

等距离配置部439f如此配置所决定的预留单元数的预留单元。

(7)TSV预留单元配置部439的组配置部439g的动作

使用图36~图37所示的流程图说明TSV预留单元配置部439的组配置部439g的动作。这里说明的动作是图30的步骤S148的详细情况。

组配置部439g取得分组的距离G(步骤S261),将变量i设定为“1”的值(步骤S262)。

接着,组配置部439g从TSV配置表503中读出与还没有被分类为组的TSV对应的1个TSV配置数据(步骤S263),将由读出的TSV配置数据表示的TSV Ti分类为第i组,将TSV Ti与第i组建立对应而存储(步骤S264),对于TSV配置表503内的TSV配置数据中的、与没有被分类为组的TSV对应的TSV配置数据,将相对于Ti存在于距离G以内的全部的TSV分类到第i组,与组i建立对应而存储(步骤S265)。

组配置部439g判断是否全部的TSV都被分类到某个组(步骤S266)。在没有被分类的情况下(步骤S266),对变量i加1(步骤S267),接着,返回步骤S263,重复处理。

在已被分类的情况下(步骤S266),对全部的组重复步骤S269~S272(步骤S268~S273)。

组配置部439g计算包含在1个组中的全部的TSV的中央的位置,作为一例,假想地描绘以全部的TSV的配置位置为顶点的多边形,计算作为该多边形的重心的位置(X,Y)(步骤S269),判断由坐标(X,Y)决定的预留单元是否与已经决定的其他单元重复(步骤S270)。在重复的情况下(步骤S270),将预留单元的位置偏移,直到不再有重复(步骤S271)。

在没有重复的情况下(步骤S270),将坐标(X,Y)作为预留单元的配置位置,向TSV预留单元配置表505写入(步骤S272)。

组配置部439g如此配置所决定的预留单元数的预留单元。

1.10总结

如以上说明,根据设计支持装置400,在需要TSV的位置修正的情况下,也能够通过进行选择处于想要移动的位置上的预留单元并将所选择的预留单元与TSV及配置禁止区域替换的处理、以及用于将它们连接的布线的修正,来移动TSV。此时,不发生预留单元和TSV以外的单元的移动。

如果不预先配置预留单元,则在进行配置布线的全部工序后、即在图29所示的步骤S111~S120完成后,如果想要变更TSV位置,则需要在TSV位置的变更后重新进行图29所示的宏单元的配置的步骤S115到详细布线的步骤S120为止的工序的全部。这是因为,TSV在周边需要如配置禁止区域那样的较大的区域,为了确保该区域而必须使周边的标准单元或宏单元移动。因此,在不预先配置预留单元的情况下,需要重新进行从宏单元的配置的步骤S115到详细布线的步骤S120的工序的全部,导致修正所需要的时间变长。

2.其他变形例

另外,基于上述实施方式说明了本发明,但本发明当然并不限定于上述实施方式。以下这样的情况也包含在本发明中。

(1)设计支持装置400的配置布线部408的动作的变形例

使用图38所示的流程图说明设计支持装置400的配置布线部408的动作的变形例。

在图38中,与图29相比,TSV预留单元配置表505的生成、和单元配置表506的生成的顺序被替换。

即,在图38中,单元配置部440生成单元配置表506(步骤S116a),然后,TSV预留单元配置部439生成TSV预留单元配置表505(步骤S117a)。

这样,在图29所示的流程图和图38所示的流程图中,从网表读入的步骤S111到宏单元的配置的步骤S115的顺序是相同的。在步骤S115后,在该变形例中,先进行单元配置的步骤S116a,在步骤S116a后进行预留单元的配置的步骤S117a。

在该变形例的情况下,在配置标准单元后,将预留单元设置到不存在标准单元的空闲区域中。这样,由于在配置准单元后配置预留单元,所以预留单元不会成为阻碍标准单元与标准单元之间的定时制约的原因。

关于步骤S118以后的配置布线处理及TSV位置的变更处理,与实施方式是相同的。

此外,在该变形例的情况下,在全部的掩模布局设计的工序结束后、即在TSV的位置全部确定时,原本配置有TSV及配置禁止区域的区域成为预备的区域。为了有效地利用该预备的区域,与实施方式同样,可以在该预备的区域中配置修复单元或导热孔,或者也可以设为空闲区域。此外,在作为TSV的移动目的地而没有使用预留单元的情况下,也可以在该预留单元上配置修复单元或导热孔。此外,也可以不使用该预留单元而原样搁置。

(2)块内的TSV和预留单元的配置的变形例

如图39所示,也可以是,在块385内配置TSV381、在TSV381的周围配置配置禁止区域382后,在从配置禁止区域382离开距离L的位置上配置预留单元383,进而在从预留单元383离开距离L的位置上配置预留单元384。

(3)在上述实施方式中,设计支持装置400对于由对象区域的指定方法460a指定的块或重复区域配置预留单元。但是,并不限定于此。设计支持装置400也可以不具有对象区域的指定方法460a,而仅在配置TSV的块上配置预留单元。此外,也可以仅在重复区域中配置预留单元。

(4)在上述实施方式中,设计支持装置400通过由预留单元数的决定方法460b指定的方法决定预留单元数。但是并不限定于此。设计支持装置400也可以不具有预留单元数的决定方法460b,而仅使用上述说明的决定方法中的1个来决定预留单元数。

(5)在上述实施方式中,设计支持装置400通过由预留单元的配置位置的决定方法460c指定的方法配置预留单元。但是并不限定于此。设计支持装置400也可以不具有预留单元的配置位置的决定方法460c,而仅使用上述说明的配置方法中的1个来决定预留单元的配置位置。此外,也可以组合使用上述说明的配置方法中的两个以上来决定预留单元的配置位置。

(6)在上述实施方式中,设计支持装置400通过由向TSV的依存方法460d指定的方法配置预留单元。但是并不限定于此。设计支持装置400也可以不具有向TSV的依存方法460d,而仅使用上述说明的依存于TSV的配置方法中的1个来配置预留单元。此外,也可以组合使用上述说明的依存于TSV的配置方法中的两个以上来配置预留单元。

(7)在上述实施方式中,三维集成电路将包括第1及第2半导体芯片的多个半导体芯片以层状排列而构成,被设置成第1半导体芯片与第2半导体芯片接触。设计支持装置400在第1半导体芯片上决定贯通第1半导体芯片而与第2半导体芯片连接的通孔的配置位置,根据上述通孔的上述配置位置,在第1半导体芯片上决定作为配置上述通孔的预备的配置位置的预留单元的配置位置。但是,并不限定于该结构。也可以如以下这样构成。

三维集成电路将包括第1、第2及第3半导体芯片的多个半导体芯片以层状排列而构成,被设置成第1半导体芯片与第2半导体芯片接触,并且被设置成第2半导体芯片与第3半导体芯片接触。设计支持装置400具备:通孔配置机构,在第1及第2半导体芯片上决定贯通第1及第2半导体芯片与第3半导体芯片连接的通孔的配置位置;以及预留单元配置机构,根据上述通孔的上述配置位置,在第1及第2半导体芯片上决定作为配置上述通孔的预备的配置位置的预留单元的配置位置。在此情况下,也可以采用在实施方式中说明的各个预留单元的配置方法。

此外,也可以是,设计支持装置400具备:通孔配置机构,在3个以上的半导体芯片上,决定贯通上述3个以上的半导体芯片而与下个半导体芯片连接的通孔的配置位置;以及预留单元配置机构,根据上述通孔的上述配置位置,在上述3个以上的半导体芯片上决定作为配置上述通孔的预备的配置位置的预留单元的配置位置。在此情况下,也可以采用在实施方式中说明的各个预留单元的配置方法。

此外,也可以是,设计支持装置400具备:通孔配置机构,在由多个半导体芯片构成的芯片群上,决定贯通上述芯片群而与下个半导体芯片连接的通孔的配置位置;以及预留单元配置机构,根据上述通孔的上述配置位置,在上述芯片群上决定作为配置上述通孔的预备的配置位置的预留单元的配置位置。在此情况下,也可以采用在实施方式中说明的各个预留单元的配置方法。

(8)在上述实施方式中,设为基于单元的设计方法进行了说明,但也可以作为将全部的工序自动化的掩模布局设计程序实现。

(9)也可以如以下这样构成。

三维集成电路将包括第1及第2半导体芯片的多个半导体芯片以层状排列而构成。设计支持装置具备:通孔配置机构,决定贯通第1半导体芯片而与第2半导体芯片连接的通孔的配置位置;以及预留单元配置机构,在第1半导体芯片上,根据上述通孔的上述配置位置,决定作为配置上述通孔的预备的配置位置的预留单元的配置位置。

这里,也可以是,第1半导体芯片包括配置上述通孔的对象区域、和不配置上述通孔的非对象区域,上述通孔配置机构在上述对象区域内决定通孔的配置位置,上述预留单元配置机构在上述对象区域内决定预留单元的配置位置,在上述非对象区域内抑制或禁止预留单元的配置。

这里,也可以是,第1半导体芯片包括配置上述通孔的对象区域、和不配置上述通孔的非对象区域,上述通孔配置机构在上述对象区域内决定通孔的配置位置,上述预留单元配置机构判断第1半导体芯片的一部分区域是上述对象区域还是非对象区域,在是对象区域的情况下,在该区域内决定预留单元的配置位置,在是非对象区域的情况下,在该区域内抑制或禁止预留单元的配置。

这里,也可以是,第1半导体芯片包括配置上述通孔的区域、和不配置上述通孔的区域,上述通孔配置机构在配置上述通孔的上述区域内决定通孔的配置位置,上述预留单元配置机构判断在第1半导体芯片的一部分区域中是否配置通孔,在判断为配置通孔的情况下,在该区域内决定预留单元的配置位置,在判断为不配置通孔的情况下,在该区域内抑制或禁止预留单元的配置。

(10)也可以如以下这样构成。

三维集成电路将包括第1及第2半导体芯片的多个半导体芯片以层状排列而构成。第1半导体芯片由多个块构成。设计支持装置具备:通孔配置机构,决定贯通第1半导体芯片而与第2半导体芯片连接的通孔的配置位置;以及预留单元配置机构,在第1半导体芯片中,根据上述通孔的上述配置位置,决定作为配置上述通孔的预备的配置位置的预留单元的配置位置。上述预留单元配置机构也可以在第1半导体芯片中按每个块切换预留单元的配置方法。即,上述预留单元配置机构也可以在第1半导体芯片中按每个块从多个预留单元的配置方法中选择一个配置方法,并使用所选择的配置方法。这里,多个预留单元的配置方法如在实施方式中说明那样,是预留单元的随机的配置、预留单元的等间隔的配置、使用者的指定位置处的预留单元的配置、向与TSV的配置位置对称的位置的配置、相对于TSV为等距离的位置处的预留单元的配置、以及按TSV所属的组的预留单元的配置。

(11)也可以如以下这样构成。

支持将多个半导体芯片以层状排列而构成的三维集成电路的设计的计算机系统具备:存储器,存储有由多个计算机命令组合而构成的计算机程序;以及处理器,从存储在上述存储器中的上述计算机程序,将计算机命令一个个读出并解读,根据该解读结果进行动作。上述计算机程序包括:通孔配置程序,决定贯通第1半导体芯片而与第2半导体芯片连接的通孔的配置位置;预留单元配置程序,在第1半导体芯片中,根据上述通孔的上述配置位置,决定作为配置上述通孔的预备的配置位置的预留单元的配置位置;以及生成程序,生成包括上述通孔的配置位置和上述预留单元的配置位置的布局数据。在此情况下,也可以采用在实施方式中说明的各个预留单元的配置方法。

此外,也可以如以下这样构成。

支持将多个半导体芯片以层状排列而构成的三维集成电路的设计的设计支持装置具备:通孔配置机构,决定贯通第1半导体芯片而与第2半导体芯片连接的通孔的配置位置;预留单元配置机构,在第1半导体芯片中,根据上述通孔的上述配置位置,决定作为配置上述通孔的预备的配置位置的预留单元的配置位置;单元布线配置机构,在第1半导体芯片中决定其他单元及布线的配置位置;以及生成结构,生成包括上述通孔的配置位置、上述预留单元的配置位置和其他单元及布线的配置位置的布局数据。

此外,也可以如以下这样构成。

一种设计支持方法,在支持将多个半导体芯片以层状排列而构成的三维集成电路的设计、并且具备通孔配置机构、预留单元配置机构及生成机构的设计支持装置中使用,包括:通孔配置步骤,由上述通孔配置机构决定贯通第1半导体芯片而与第2半导体芯片连接的通孔的配置位置;预留单元配置步骤,由上述预留单元配置机构在第1半导体芯片中,根据上述通孔的上述配置位置,决定作为配置上述通孔的预备的配置位置的预留单元的配置位置;以及生成步骤,由上述生成机构生成包括上述通孔的配置位置和上述预留单元的配置位置的布局数据。

此外,也可以如以下这样构成。

一种设计支持用的计算机程序,在支持将多个半导体芯片以层状排列而构成的三维集成电路的设计、并且具备通孔配置机构、预留单元配置机构及生成机构的设计支持装置中使用,其特征在于,使作为计算机的设计支持装置执行如下步骤:通孔配置步骤,由上述通孔配置机构决定贯通第1半导体芯片而与第2半导体芯片连接的通孔的配置位置;预留单元配置步骤,由上述预留单元配置机构在第1半导体芯片中,根据上述通孔的上述配置位置,决定作为配置上述通孔的预备的配置位置的预留单元的配置位置;以及生成步骤,由上述生成机构生成包括上述通孔的配置位置和上述预留单元的配置位置的布局数据。

此外,也可以如以下这样构成。

一种计算机可读取的记录介质,记录有在支持将多个半导体芯片以层状排列而构成的三维集成电路的设计、并且具备通孔配置机构、预留单元配置机构及生成机构的设计支持装置中使用的设计支持用的计算机程序,其特征在于,记录有使作为计算机的设计支持装置执行如下步骤的计算机程序,即:通孔配置步骤,由上述通孔配置机构决定贯通第1半导体芯片而与第2半导体芯片连接的通孔的配置位置;预留单元配置步骤,由上述预留单元配置机构在第1半导体芯片中,根据上述通孔的上述配置位置,决定作为配置上述通孔的预备的配置位置的预留单元的配置位置;以及生成步骤,由上述生成机构生成包括上述通孔的配置位置和上述预留单元的配置位置的布局数据。

(12)也可以如以下这样构成。

本发明的一技术方案,一种设计支持装置,支持将多个半导体芯片以层状排列而构成的三维集成电路的设计,其特征在于,具备:通孔配置机构,决定贯通第1半导体芯片而与第2半导体芯片连接的通孔的配置位置;预留单元配置结构,在第1半导体芯片中,根据上述通孔的上述配置位置,决定作为配置上述通孔的预备的配置位置的预留单元的配置位置;以及生成机构,生成包括上述通孔的配置位置和上述预留单元的配置位置的布局数据。

根据该结构,在三维集成电路的设计的中途发生TSV的配置位置的变更的情况下,可以使用作为应新配置TSV的位置而预先配置的预留单元的配置位置,所以起到能够使得不发生其他的电路部分中的庞大的设计变更的良好的效果。

这里,也可以是,第1半导体芯片包括配置上述通孔的对象区域;上述通孔配置机构在上述对象区域内决定通孔的配置位置;上述预留单元配置机构在上述对象区域内决定预留单元的配置位置。

根据该结构,由于在与配置通孔的对象区域相同的区域内配置预留单元,所以配置预留单元的位置被作为应新配置TSV的位置使用的可能性变高。

这里,也可以是,上述半导体芯片包括一个块,上述对象区域是上述块;上述通孔配置机构在作为上述对象区域的上述块内决定通孔的配置位置;上述预留单元配置机构在作为上述对象区域的上述块内决定上述预留单元的配置位置。

根据该结构,由于在与配置通孔的块相同的块内配置预留单元,所以配置预留单元的位置被作为应新配置TSV的位置使用的可能性变高。

这里,也可以是,第1半导体芯片包括第1块,第2半导体芯片包括第2块,第1块具有与第2块的重复区域,上述重复区域是在该重复区域的面的垂直方向上存在第2块的一部分或全部的区域,上述对象区域是上述重复区域;上述通孔配置机构作为上述对象区域而在第1块的上述重复区域内决定通孔的配置位置;上述预留单元配置机构作为上述对象区域而在上述重复区域内决定上述预留单元的配置位置。

根据该结构,由于在与配置通孔的重复区域相同的重复区域内配置预留单元,所以配置预留单元的位置被作为应新配置TSV的位置使用的可能性变高。

这里,也可以是,上述预留单元配置机构在上述对象区域内随机地决定上述预留单元的配置位置。

根据该结构,由于在配置通孔的对象区域内随机地配置预留单元,所以配置有预留单元的位置被作为应新配置TSV的位置使用的可能性变高。

这里,也可以是,上述预留单元配置机构决定预留单元的配置数,以使在上述对象区域内配置的预留单元的面积的合计相对于上述对象区域的面积的比率成为指定的面积比率。

根据该结构,由于在配置通孔的对象区域内配置满足指定的面积比率的数量的预留单元,所以配置有预留单元的位置被作为应新配置TSV的位置使用的可能性变高。

这里,也可以是,上述面积比率是1%以上、且5%以下。

这里,也可以是,上述预留单元配置机构在上述对象区域内将相对于上述通孔的配置位置成对称的位置决定为上述预留单元的配置位置。

根据该结构,配置有预留单元的位置被作为应新配置TSV的位置使用的可能性变高。

这里,也可以是,上述预留单元配置机构在上述对象区域内决定一根轴,以所决定的轴为对称轴,在上述对象区域内决定相对于上述通孔的配置位置成线对称的位置,作为上述预留单元的配置位置。

这里,也可以是,上述预留单元配置机构在上述对象区域内决定一个点,以所决定的点为对称点,在上述对象区域内决定相对于上述通孔的配置位置成点对称的位置,作为上述预留单元的配置位置。

这里,也可以是,上述预留单元配置机构在上述对象区域内,决定相对于一个通孔的配置位置处于等距离的多个位置,作为多个预留单元的配置位置。

根据该结构,由于在相对于一个通孔处于等距离的多个位置上配置多个预留单元,所以配置有预留单元的位置被作为应新配置TSV的位置使用的可能性变高。

这里,也可以是,上述预留单元配置机构决定上述距离,以在上述对象区域内配置的电路的动作速度与上述距离具有反比例的关系。

这里,也可以是,上述预留单元配置机构在上述对象区域内决定多个预留单元的配置位置,以使一个预留单元的配置位置与相邻于该预留单元的多个预留单元的配置位置之间的多个距离相等。

根据该结构,由于将多个预留单元隔开一定间隔配置,所以配置有预留单元的位置被作为应新配置TSV的位置使用的可能性变高。

这里,也可以是,上述预留单元配置机构将配置在上述对象区域内的多个TSV分类为组,基于包含在各组中的TSV的配置位置决定预留单元的配置位置。

根据该结构,由于基于包含在各组中的TSV的配置位置来配置预留单元,所以配置有预留单元的位置被作为应新配置TSV的位置使用的可能性变高。

这里,也可以是,上述预留单元配置机构对TSV进行分类,以使接近配置的TSV属于同一组。

这里,也可以是,上述预留单元配置机构在包含在一个组中的多个TSV的配置位置的中央决定预留单元的配置位置。

此外,本发明的一技术方案,一种设计支持方法,在支持将多个半导体芯片以层状排列而构成的三维集成电路的设计的设计支持装置中使用,包括:通孔配置步骤,决定贯通第1半导体芯片而与第2半导体芯片连接的通孔的配置位置;预留单元配置步骤,在第1半导体芯片中,根据上述通孔的上述配置位置,决定作为配置上述通孔的预备的配置位置的预留单元的配置位置;以及生成步骤,生成包括上述通孔的配置位置和上述预留单元的配置位置的布局数据。

根据该方法,在三维集成电路的设计的中途发生TSV的配置位置的变更的情况下,可以使用作为应新配置TSV的位置而预先配置的预留单元的配置位置,所以起到能够使得不发生其他的电路部分中的庞大的设计变更的良好的效果。

此外,本发明的一技术方案,一种设计支持用的计算机程序,在支持将多个半导体芯片以层状排列而构成的三维集成电路的设计的设计支持装置中使用,其特征在于,使作为计算机的设计支持装置执行如下步骤:通孔配置步骤,决定贯通第1半导体芯片而与第2半导体芯片连接的通孔的配置位置;预留单元配置步骤,在第1半导体芯片中,根据上述通孔的上述配置位置,决定作为配置上述通孔的预备的配置位置的预留单元的配置位置;以及生成步骤,生成包括上述通孔的配置位置和上述预留单元的配置位置的布局数据。

根据该计算机程序,在三维集成电路的设计的中途发生TSV的配置位置的变更的情况下,可以使用作为应新配置TSV的位置而预先配置的预留单元的配置位置,所以起到能够使得不发生其他的电路部分中的庞大的设计变更的良好的效果。

此外,本发明的一技术方案,一种计算机可读取的记录介质,记录有在支持将多个半导体芯片以层状排列而构成的三维集成电路的设计的设计支持装置中使用的设计支持用的计算机程序,记录有使作为计算机的设计支持装置执行如下步骤的计算机程序,即:通孔配置步骤,决定贯通第1半导体芯片而与第2半导体芯片连接的通孔的配置位置;预留单元配置步骤,在第1半导体芯片中,根据上述通孔的上述配置位置,决定作为配置上述通孔的预备的配置位置的预留单元的配置位置;以及生成步骤,生成包括上述通孔的配置位置和上述预留单元的配置位置的布局数据。

根据记录在该记录介质中的计算机程序,在三维集成电路的设计的中途发生TSV的配置位置的变更的情况下,可以使用作为应新配置TSV的位置而预先配置的预留单元的配置位置,所以起到能够使得不发生其他的电路部分中的庞大的设计变更的良好的效果。

(13)本发明是一种三维集成电路的掩模布局设计方法,其特征在于,在单元库中具有硅通孔用的预留单元,在标准单元的配置处理前配置上述预留单元,在上述预留单元以外的标准单元的配置处理后变更硅通孔的位置的情况下,将上述预留单元除去,配置上述硅通孔来代替,由此将修正范围仅设为布线层。

此外,本发明是一种三维集成电路的掩模布局设计程序和记录有该程序的记录介质,其特征在于,在单元库中具有硅通孔用的预留单元,在标准单元的配置处理前配置上述预留单元,在上述预留单元以外的标准单元的配置处理后变更硅通孔的位置的情况下,将上述预留单元除去,配置上述硅通孔来代替,由此将修正范围仅设为布线层。

这里,也可以是,在上述预留单元中硅通孔的位置确定后,关于未被使用的上述预留单元,替换为逻辑修正用的修复单元。

这里,也可以是,在上述预留单元中硅通孔的位置确定后,关于未被使用的上述预留单元,替换为散热用的导热孔。

此外,本发明是一种三维集成电路的掩模布局设计方法,其特征在于,在单元库中具有硅通孔用的预留单元,在标准单元的配置后的空闲区域上配置上述预留单元,在上述预留单元以外的标准单元的配置处理后变更硅通孔的位置的情况下,将上述预留单元除去,配置上述硅通孔来代替,由此将修正范围仅设为布线层。

此外,本发明是一种三维集成电路的掩模布局设计程序和记录有该程序的记录介质,其特征在于,在单元库中具有硅通孔用的预留单元,在标准单元的配置后的空闲区域中配置上述预留单元,在上述预留单元以外的标准单元的配置处理后变更硅通孔的位置的情况下,将上述预留单元除去,配置上述硅通孔来代替,由此将修正范围仅设为布线层。

这里,也可以是,在上述预留单元中硅通孔的位置确定后,关于未被使用的上述预留单元,替换为逻辑修正用的修复单元。

这里,也可以是,在上述预留单元中硅通孔的位置确定后,关于未被使用的上述预留单元,替换为散热用的导热孔。

(14)上述的各装置具体而言是由微处理器、ROM、RAM、硬盘单元、显示器单元、键盘、鼠标等构成的计算机系统。在上述RAM或上述硬盘单元中存储有计算机程序。这里,计算机程序是为了达到规定的功能而将多个表示对计算机的指令的命令代码组合而构成的。通过上述微处理器按照上述计算机程序动作,各装置达到其功能。即,上述微处理器将包含在上述计算机程序中的各命令1个个读出,将所读出的命令解读,按照解读结果动作。

另外,各装置并不限于包括微处理器、ROM、RAM、硬盘单元、显示器单元、键盘、鼠标等的全部的计算机系统,也可以是由它们的一部分构成的计算机系统。

此外,通过由微处理器按照存储在RAM或硬盘单元中的计算机程序中包含的命令进行动作,该计算机程序和微处理器宛如构成一个硬件电路,能够看作该硬件电路动作。

(15)构成上述各装置的构成要素的一部分或全部可以由1个系统LSI(Large Scale Integration:大规模集成电路)构成。系统LSI是将多个构成部集成在1个芯片上而制造的超多功能LSI,具体而言是包括微处理器、ROM、RAM等而构成的计算机系统。在上述RAM中存储有计算机程序。通过由上述微处理器按照上述计算机程序进行动作,系统LSI达到其功能。

此外,构成上述各装置的构成要素的各部既可以单独地形成1个芯片,也可以包括一部分或全部形成1个芯片。此外,这里设为LSI,但根据集成度的差异,也有称作IC、系统LSI、超级LSI、超大规模LSI的情况。

此外,集成电路化的方法并不限于LSI,也可以由专用电路或通用处理器实现。也可以利用在LSI制造后能够编程的FPGA(Field ProgrammableGate Array)或能够重构LSI内部的电路单元的连接及设定的可重构处理器。

进而,如果因半导体技术的进步或派生的其他技术而出现代替LSI的集成电路化的技术,则当然也可以使用该技术进行功能块的集成化。有可能是生物技术的应用等。

(16)构成上述各装置的构成要素的一部分或全部可以由相对于各装置能够拆装的IC卡或单体的模块构成。上述IC卡或上述模块是由微处理器、ROM、RAM、等构成的计算机系统。上述IC卡或上述模块也可以包括上述超多功能LSI。通过由微处理器按照计算机程序动作,上述IC卡或上述模块达到其功能。该IC卡或该模块也可以具有防篡改性。

(17)本发明也可以是上述所示的方法。此外,也可以是通过计算机实现这些方法的计算机程序,也可以是由上述计算机程序构成的数字信号。

此外,本发明也可以是将上述计算机程序或上述数字信号记录到计算机可读取的记录介质、例如软盘、硬盘、CD―ROM、MO、DVD、DVD-ROM、DVD-RAM、BD(Blu-ray Disc)、半导体存储器等中的产品。此外,也可以是记录在这些记录介质中的上述计算机程序或上述数字信号。

此外,本发明也可以是将上述计算机程序或上述数字信号经由电气通信线路、无线或有线通信线路、以因特网为代表的网络、数据广播等传送的系统。

此外,本发明也可以是具备微处理器和存储器的计算机系统,上述存储器存储有上述计算机程序,上述微处理器按照上述计算机程序动作。

此外,也可以通过将上述程序或上述数字信号记录到上述记录介质中并移送、或者通过将上述程序或上述数字信号经由上述网络等移送,由独立的其他计算机系统实施。

(18)也可以将上述实施方式及上述变形例分别组合。

工业实用性

有关本发明的三维集成电路的设计支持装置及设计支持方法在三维集成电路的设计的中途发生TSV的配置位置的变更的情况下,能够使用作为新的TSV的配置位置而预先配置的预留单元的配置位置,所以能够使得不会发生其他的电路部分中的庞大的设计变更,作为支持将多个半导体集成电路芯片层叠而构成的三维集成电路的设计的技术具有实用性。

符号说明

400 设计支持装置

401 逻辑合成用库存储部

402 源文件存储部

403 逻辑合成部

404 制约存储部

405 网表存储部

406 配置布线制约存储部

407 配置布线用库存储部

408 配置布线部

409 布局数据存储部

410 布局数据验证部

411 验证用数据存储部

412 掩模输出部

413 编辑器

431 读入部

432 存储部

433 控制部

435 版图规划生成部

436 管脚配置部

437 TSV配置部

438 宏配置部

439 TSV预留单元配置部

440 单元配置部

441 电源布线部

442 概略布线部

443 详细布线部

444 TSV位置变更部

445 掩模数据生成部

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号