布局设计系统及布局设计方法与流程

文档序号:20361526发布日期:2020-04-10 23:43阅读:487来源:国知局
本发明的一个方式涉及一种布局设计系统及布局设计方法。注意,本发明的一个方式不局限于上述
技术领域
:。作为本说明书等所公开的本发明的一个方式的
技术领域
:的一个例子,可以举出半导体装置、显示装置、发光装置、蓄电装置、存储装置、显示系统、电子设备、照明装置、输入装置、输入输出装置以及上述装置的驱动方法或制造方法。此外,在本说明书等中,半导体装置是指能够通过利用半导体特性而工作的所有装置。晶体管、半导体电路、运算装置及存储装置等都是半导体装置的一个方式。另外,摄像装置、电光装置、发电装置(包括薄膜太阳能电池或有机薄膜太阳能电池等)及电子设备有时包括半导体装置。
背景技术
::随着半导体技术的进步,集成电路的规模越来越大,电路设计者需要在短时间内设计大规模电路。在设计集成电路时自动进行数字电路的布局设计的cad工具已实现实用化。另一方面,对于模拟电路等,电路设计者手动进行布局设计工作,有时需要长的工作时间。此外,在布局设计中,由于必须满足所需的电路特性及设计规则,因此要求电路设计者有高水平的技术。另外,在各种用途中,正在研究人工智能的应用。尤其是,被期待着通过应用人工神经网络的构成可以实现比现有的诺依曼型计算机更高性能的计算机,近年来,已开展对在电子电路上构建人工神经网络的各种研究工作。例如,在专利文献1中,公开了如下发明:由使用在沟道形成区域中包含氧化物半导体的晶体管的存储装置保持利用人工神经网络的计算中需要的权重数据(weightdata)。[现有技术文献][专利文献][专利文献1]美国专利申请公开第2016/0343452号公报技术实现要素:发明所要解决的技术问题在模拟电路设计中,电路设计者要经常手动进行布局设计工作,并且用于作业的时间长,因此需要减少布局设计的工作时间。另外,在模拟电路的布局设计中,为了降低制造成本并提高工作速度,需要使布局面积最小化,同时还需要考虑到布线和导体所具有的寄生电容等而满足设计规则。鉴于上述问题,本发明的一个方式的目的之一是提供一种能够在短时间内进行布局设计的布局设计系统。或者,本发明的一个方式的目的之一是提供一种能够进行布局面积小的布局设计的布局设计系统。或者,本发明的一个方式的目的之一是提供一种新颖的布局设计系统。或者,本发明的一个方式的目的之一是提供一种能够在短时间内进行布局设计的布局设计方法。或者,本发明的一个方式的目的之一是提供一种能够进行布局面积小的布局设计的布局设计方法。或者,本发明的一个方式的目的之一是提供一种新颖的布局设计方法。注意,这些目的的记载不妨碍其他目的的存在。本发明的一个方式并不需要实现所有上述目的。可以从说明书、附图、权利要求书的记载中抽取上述目的以外的目的。解决技术问题的手段本发明的一个方式是一种布局设计系统,该布局设计系统包括处理部,其中,处理部被输入电路图及布局设计信息,处理部具有根据电路图及布局设计信息进行q学习来生成布局数据的功能,处理部具有输出布局数据的功能,处理部包括第一神经网络,并且,第一神经网络在q学习中估算动作值函数。本发明的一个方式是一种布局设计系统,该布局设计系统包括终端及服务器,其中,终端包括输入输出部及第一通信部,服务器包括处理部及第二通信部,输入输出部被输入电路图及布局设计信息,第一通信部具有利用有线通信和无线通信中的一个或两个对服务器供应电路图及布局设计信息的功能,处理部具有根据电路图及布局设计信息进行q学习来生成布局数据的功能,处理部具有对第二通信部供应布局数据的功能,第二通信部具有利用有线通信和无线通信中的一个或两个对终端供应布局数据的功能,处理部包括第一神经网络,并且,第一神经网络在q学习中估算动作值函数。在上述布局设计系统中,优选的是,第一神经网络为卷积神经网络。在上述布局设计系统中,优选的是,处理部还包括第二神经网络,第二神经网络估算动作值函数的示教数据,根据从示教数据算出的损失函数更新第一神经网络的权重系数。在上述布局设计系统中,优选的是,第二神经网络为卷积神经网络。在上述布局设计系统中,处理部也可以包括晶体管。晶体管也可以在沟道形成区域中包含金属氧化物。或者,晶体管也可以在沟道形成区域中包含硅。本发明的一个方式是一种布局设计方法,包括如下步骤:输入电路图及布局设计信息;根据电路图及布局设计信息进行q学习来生成布局数据;在q学习中使用第一神经网络估算动作值函数;输出布局数据。在上述布局设计方法中,优选的是,第二神经网络估算动作值函数的示教数据,根据从示教数据算出的损失函数更新第一神经网络的权重系数。发明效果通过本发明的一个方式,可以提供一种能够在短时间内进行布局设计的布局设计系统。或者,通过本发明的一个方式,可以提供一种能够进行布局面积小的布局设计的布局设计系统。或者,通过本发明的一个方式,可以提供一种新颖的布局设计系统。或者,通过本发明的一个方式,可以提供一种能够在短时间内进行布局设计的布局设计方法。或者,通过本发明的一个方式,可以提供一种能够进行布局面积小的布局设计的布局设计方法。或者,通过本发明的一个方式,可以提供一种新颖的布局设计方法。注意,这些效果的记载不妨碍其他效果的存在。本发明的一个方式并不一定必须具有所有上述效果。可以从说明书、附图、权利要求书的描述中抽取上述效果外的效果。附图说明[图1]是示出布局设计系统的例子的方框图。[图2]是示出集成电路的开发的例子的流程图。[图3]是示出集成电路的例子的方框图。[图4]是示出布局设计系统的例子的方框图。[图5]是示出布局设计的例子的流程图。[图6]是示出布局设计的例子的流程图。[图7]是示出布局设计的例子的流程图。[图8]是示出网格及基本单元的例子的图。[图9]是示出连接区域及连接点的例子的图。[图10]是示出基本单元及抽象体(abstract)的例子的图。[图11]是示出区块及奖励的设定例子的图。[图12]是示出抽象体及布局的图像数据的例子的图。[图13]是示出布局例子的图。[图14]是示出图像数据的例子的图。[图15]是示出布局例子的图。[图16]是示出图像数据的例子的图。[图17]是示出神经网络的结构例子的图。[图18]是示出抽象体的移动例子的图。[图19]是示出抽象体的移动例子的图。[图20]是电路图及示出抽象体的例子的图。[图21]是示出抽象体及连接点的例子的图。[图22]是示出连接点及布线的例子的图。[图23]是示出布局数据的例子的图。[图24]是示出布局例子的图。[图25]是示出抽象体的移动例子的图。[图26]是示出布局设计系统的例子的方框图。[图27]是示出神经网络的结构例子的图。[图28]是示出半导体装置的结构例子的图。[图29]是示出存储单元的结构例子的图。[图30]是示出偏置电路的结构例子的图。[图31]是时序图。[图32]是示出奖励的推移的图。具体实施方式参照附图对实施方式进行详细说明。注意,本发明不局限于以下说明,所属
技术领域
:的普通技术人员可以很容易地理解一个事实就是其方式及详细内容在不脱离本发明的宗旨及其范围的情况下可以被变换为各种各样的形式。因此,本发明不应该被解释为仅局限在以下所示的实施方式所记载的内容中。注意,在以下说明的发明的结构中,在不同的附图中共同使用相同的附图标记来表示相同的部分或具有相同功能的部分,而有时省略其重复说明。此外,当表示具有相同功能的部分时有时使用相同的阴影线,而不特别附加附图标记。另外,为了便于理解,有时附图中示出的各构成的位置、大小及范围等并不表示其实际的位置、大小及范围等。因此,所公开的发明不一定局限于附图所公开的位置、大小、范围等。注意,根据情况或状况,可以互相替换用语“膜”和“层”。例如,有时可以将“导电层”变换为“导电膜”。此外,有时可以将“绝缘膜”变换为“绝缘层”。(实施方式1)在本实施方式中,参照图1至图26说明本发明的一个方式的布局设计系统。本发明的一个方式的布局设计系统具有根据电路图及布局设计信息生成布局数据的功能。本发明的一个方式的布局设计系统可以用于集成电路的布局设计。在本说明书等中,布局设计是指根据电路图及布局设计信息生成布局数据。电路图是以图形及线表示晶体管、二极管等有源元件以及电容器、电阻器等无源元件的连接方式的图。布局数据是指转录于掩模(也称为掩模版(reticle))的半导体层、导电体层等的形状及配置的信息。在本说明书等中,有时将有源元件及无源元件称为元件。布局设计信息包括单元库、设计规则及网格信息。后面说明布局设计信息的详细内容。本发明的一个方式的布局设计系统包括处理部。处理部被输入电路图及布局设计信息。处理部具有根据电路图及布局设计信息生成布局数据的功能。通过改变电路图及布局设计信息,本实施方式的布局设计系统可以应用于各种各样的布局设计。通过使用本发明的一个方式的布局设计系统,可以生成不但满足通过电路设计生成的电路图及设计规则而且集成电路的面积小的布局数据。布局设计系统优选至少在其一部分的处理中利用人工智能(ai:artificialintelligence)生成布局数据。布局设计系统尤其优选使用人工神经网络(ann:artificialneuralnetwork,以下有时简称为神经网络)生成输出数据。在本说明书等中,有时将人工神经网络简称为神经网络(nn:neuralnetwork)。神经网络可以由电路(硬件)或程序(软件)实现。在布局设计中,可以使用强化学习(reinforcementlearning)。作为强化学习,例如可以使用td学习(temporaldifferencelearning:时间差分学习)、q学习(q-learning)等。此外,尤其优选在q学习中使用利用深度学习的学习算法。q学习是在时刻t,环境为状态s1下智能体(agent)学习选择行动at的价值的方法。智能体是指行动的主体,环境是指被行动的对象。通过智能体的行动at,环境从状态st变为状态st+1,智能体接收奖励rt+1。在q学习中,以使可以获得的奖励总量最终成为最大的方式学习行动at。可以由动作值函数q(st,at)表示在状态st下选择行动at的价值。在本说明书等中,有时将动作值函数q称为q函数,将动作值函数q(st,at)的值称为q值。例如,动作值函数q(st,at)的更新式可以由算式1表示。[算式1]这里,α表示学习率(α大于0且为1以下),γ表示折扣率(γ为0以上且1以下)。学习率α表示要重视的是现在的价值还是通过行动获得的结果。学习率α越接近1,越重视获得的结果,价值的变化越大。学习率α越接近0,越重视现在的价值,价值的变化越小。折扣率γ表示要重视的是现在的奖励还是未来的奖励。折扣率γ越接近0,越重视现在的奖励。折扣率γ越接近1,越重视未来的奖励。例如,可以将学习率α及折扣率γ分别设定为0.10及0.90。可以在上述动作值函数q(st,at)的估算中使用深度学习。有时将在动作值函数q(st,at)的估算中使用深度学习的学习算法称为deepq-learning(深度q学习),将在deepq-learning中使用的神经网络称为deepq-network(dqn)(深度q网络)。在本发明的一个方式的布局设计系统中,优选的是,在布局设计中使用deepq-learning,并且deepq-network具有卷积神经网络(cnn:convolutionalneuralnetwork)的结构。在本说明书等中,有时将deepq-network简称为神经网络。一般而言,在q学习中,预先以查找表(lut:lookuptable)储存动作值函数q(st,at)的状态st及行动at的组合的数据。然而,由于状态st和行动at的组合很多,有时需要大量的存储器。另一方面,在作为本发明的一个方式的布局设计系统中,通过在动作值函数q(st,at)的估算中使用神经网络,可以减少所需的存储器的数量。在本说明书等中,神经网络是指模拟生物的神经回路网,通过学习决定神经元之间的结合强度,由此获得问题解决能力的所有模型。神经网络包括输入层、输出层、输入层与输出层之间的一层以上的中间层(隐藏层)。在本说明书等中,在说明神经网络时,有时将根据已经有的信息决定神经元之间的结合强度(也称为权重系数)称为“学习”。另外,在本说明书等中,有时将使用通过学习得到的结合强度构成神经网络,从该结构导出新的结论称为“推论”。神经网络使用庞大的积和运算执行。这些运算处理可以通过使用数字电路及模拟电路中的一个或两个而进行。在使用数字电路的情况下,所需要的晶体管数庞大,效率低功耗大。因此,上述积和运算优选使用模拟积和运算电路(以下,将其称为aps(analogproduct-sumcircuit))进行。另外,aps优选包括模拟存储器。通过将利用学习获得的权重系数储存于上述模拟存储器中,aps可以直接对模拟数据进行积和运算。其结果是,通过利用aps,可以以少量的晶体管高效地构建神经网络。另外,在本说明书等中,模拟存储器是指能够储存模拟数据的存储装置。另外,在本说明书中,模拟数据是指具有3比特(8值)以上的分辨率的数据。有时将多值数据称为模拟数据。作为上述模拟存储器,可以使用多值快闪存储器、reram(resistiverandomaccessmemory:电阻随机存取存储器)、mram(magnetoresistiverandomaccessmemory:磁阻随机存取存储器)或者使用os晶体管的存储器(将其称为os存储器)。另外,在本说明书等中,将在沟道形成区域中使用氧化物半导体或金属氧化物的晶体管称为oxidesemiconductor(氧化物半导体)晶体管或os晶体管。os晶体管的沟道形成区域优选包含金属氧化物。此外,在本说明书等中,金属氧化物(metaloxide)是指广义上的金属的氧化物。金属氧化物被分类为氧化物绝缘体、氧化物导电体(包括透明氧化物导电体)和氧化物半导体(oxidesemiconductor,也可以简称为os)等。例如,在将金属氧化物用于晶体管的半导体层的情况下,有时将该金属氧化物称为氧化物半导体。换言之,在金属氧化物具有放大作用、整流作用和开关作用中的至少一个的情况下,可以将该金属氧化物称为金属氧化物半导体(metaloxidesemiconductor),或者可以将其缩称为os。沟道形成区域所具有的金属氧化物优选包含铟(in)。在沟道形成区域所具有的金属氧化物包含铟的情况下,os晶体管的载流子迁移率(电子迁移率)得到提高。另外,沟道形成区域所具有的金属氧化物优选为包含元素m的氧化物半导体。元素m优选是铝(al)、镓(ga)或锡(sn)等。作为可用作元素m的其他元素,有硼(b)、硅(si)、钛(ti)、铁(fe)、镍(ni)、锗(ge)、钇(y)、锆(zr)、钼(mo)、镧(la)、铈(ce)、钕(nd)、铪(hf)、钽(ta)、钨(w)等。注意,作为元素m,有时也可以组合多个上述元素。元素m例如是与氧的键能高的元素。元素m例如是与氧的键能高于铟的元素。此外,沟道形成区域所具有的金属氧化物优选包含锌(zn)。包含锌的金属氧化物有时容易晶化。沟道形成区域所具有的金属氧化物不局限于包含铟的金属氧化物。半导体层例如也可以是锌锡氧化物或镓锡氧化物等不包含铟且包含锌、镓或锡的金属氧化物等。<1.布局设计系统的结构>对布局设计系统100的结构进行说明。图1示出布局设计系统100的方框图。布局设计系统100至少包括处理部103。图1所示的布局设计系统100还包括输入部101、传送通道102、存储部105、数据库107及输出部109。[输入部101]对输入部101从布局设计系统100的外部供应信息。供应到输入部101的信息通过传送通道102供应给处理部103、存储部105或数据库107。作为供应给输入部101的信息,例如有电路图、布局设计信息等。[传送通道102]传送通道102具有传送信息的功能。输入部101、处理部103、存储部105、数据库107及输出部109间的信息的发送及接收可以通过传送通道102进行。[处理部103]处理部103具有使用从输入部101、存储部105、数据库107等供应的信息进行布局设计来生成布局数据的功能。处理部103可以将布局数据等供应给存储部105、数据库107、输出部109等。在处理部103中优选使用在沟道形成区域中包含金属氧化物的晶体管。由于该晶体管的关态电流极低,所以通过将该晶体管用作保持流入被用作存储元件的电容器的电荷(数据)的开关,可以确保长期的数据保持期间。通过将该特性应用于处理部103所包括的寄存器及高速缓冲存储器中的至少一个,可以仅在必要时使处理部103工作,而在其他情况下使之前的处理信息储存在该存储元件,从而实现常闭运算(normallyoffcomputing),由此可以实现布局设计系统的低功耗化。处理部103例如包括运算电路或中央处理器(cpu:centralprocessingunit)等。处理部103也可以包括dsp(digitalsignalprocessor:数字信号处理器)、gpu(graphicsprocessingunit:图形处理器)等微处理器。微处理器也可以由fpga(fieldprogrammablegatearray:现场可编程门阵列)、fpaa(fieldprogrammableanalogarray:现场可编程模拟阵列)等pld(programmablelogicdevice:可编程逻辑器件)实现。处理部103通过由处理器解释且执行来自各种程序的指令,可以进行各种数据处理及程序控制。可由处理器执行的程序储存在处理器所包括的存储器区域及存储部105中的至少一个。处理部103也可以包括主存储器。主存储器包括ram(randomaccessmemory:随机存取存储器)等易失性存储器及rom(readonlymemory:只读存储器)等非易失性存储器中的至少一个。作为ram,例如使用dram(dynamicrandomaccessmemory:动态随机存取存储器)、sram(staticrandomaccessmemory:静态随机存取存储器)等,该ram分配有虚拟存储空间作为处理部103的工作空间,并用于处理部103。储存在存储部105中的操作系统、应用程序、程序模块、程序数据及查找表等在执行时被加载于ram中。处理部103直接存取并操作被加载于ram中的这些数据、程序及程序模块。rom可以储存不需要改写的bios(basicinput/outputsystem:基本输入/输出系统)及固件等。作为rom,可以举出遮罩式rom、otprom(onetimeprogrammablereadonlymemory:一次可编程只读存储器)、eprom(erasableprogrammablereadonlymemory:可擦除可编程只读存储器)等。作为eprom,可以举出通过紫外线照射可以消除存储数据的uv-eprom(ultra-violeterasableprogrammablereadonlymemory:紫外线-可擦除可编程只读存储器)、eeprom(electricallyerasableprogrammablereadonlymemory:电子式可抹除可编程只读存储器)、快闪存储器等。[存储部105]存储部105具有储存处理部103执行的程序的功能。此外,存储部105也可以具有储存处理部103所生成的布局数据及输入到输入部101的信息等的功能。存储部105包括易失性存储器及非易失性存储器中的至少一个。存储部105例如可以包括dram、sram等易失性存储器。存储部105例如也可以包括以reram(resistiverandomaccessmemory:电阻随机存取存储器)等为代表的阻变式存储器、pram(phasechangerandomaccessmemory:相变存储器)、feram(ferroelectricrandomaccessmemory:铁电随机存取存储器)、以mram(magnetoresistiverandomaccessmemory:磁阻随机存取存储器)等为代表的磁阻式存储器或快闪存储器等非易失性存储器。另外,存储部105也可以包括硬盘驱动器(harddiscdrive:hdd)及固态驱动器(solidstatedrive:ssd)等记录媒体驱动器。[数据库107]数据库107具有储存单元库及设计规则的功能。此外,数据库107也可以具有储存处理部103所生成的布局数据及输入到输入部101的信息等的功能。存储部105及数据库107可以不被分离。例如,布局设计系统也可以包括具有存储部105及数据库107的双方的功能的存储单元。[输出部109]输出部109具有将信息供应给布局设计系统100的外部的功能。例如,可以将处理部103所生成的布局数据等供应给外部。<2.布局设计方法1>对布局设计方法进行说明。在说明布局设计方法之前,首先,在图2中示出集成电路的开发流程。图2示出作为集成电路的一个例子的模拟电路的开发流程,其中示出决定模拟电路的规格的步骤至布局数据的生成结束的步骤。步骤s11是决定所希望的集成电路的规格的步骤。作为集成电路的规格,例如有集成电路的特性、大小等。步骤s12是进行电路设计的步骤。在电路设计中,主要参照单元库115、储存在工序信息111中的晶体管参数113生成满足通过步骤s11决定的规格的电路图119。通过改变所使用的单元库115,可以以各种各样的方式实现相同规格的电路。单元库是基本单元的数据库。在模拟电路的设计中,基本单元有时是指晶体管、电容器等的每一个元件。在数字电路设计中,基本单元有时是指逻辑运算元件的and门、nand门、or门、nor门等逻辑门。晶体管参数是用于集成电路的元件的信息。作为晶体管参数,例如有晶体管的沟道长度、沟道宽度及迁移率。步骤s13是进行模拟的步骤。在步骤s13中,确认通过步骤s12的电路设计生成的电路图119是否满足通过步骤s11决定的规格。当不满足规格时,再次进行步骤s12的电路设计。步骤s14是进行布局设计的步骤。在布局设计中,主要参照通过步骤s12生成的电路图119、单元库115、储存在工序信息111中的设计规则117生成布局数据121。在步骤s14的布局设计中可以使用本发明的一个方式的布局设计系统100。设计规则是指各元件的构成要素(半导体层、导电体层等)的尺寸及间隔的最小值等,且是设计布局时的制约事项。设计规则例如包括布线的宽度、布线与邻接布线的间隔、布线与邻接元件的间隔、接触孔的大小等的最大值、最小值。步骤s15是进行drc(designrulecheck:设计规则检查)及lvs(layoutversusschematic:电路布局验证)的步骤。在drc中,确认通过s14的布局设计生成的布局数据121是否满足设计规则117。当不满足设计规则时,再次进行步骤s14的布局设计。在lvs中,确认通过步骤s14的布局设计生成的布局数据121是否满足通过步骤s12生成的电路图119的连接关系。当不满足电路图119的连接关系时,再次进行步骤s14的布局设计。注意,有时不进行lvs。虽然图2示出模拟电路作为例子,但是本发明的一个方式的布局设计系统100也可以应用于数字电路或者数字/模拟电路。此外,布局设计系统100也可以应用于电路的一部分,而不是电路整体。以上是集成电路的开发流程的说明。对可以应用本发明的一个方式的布局设计系统100的集成电路进行说明。作为集成电路的例子使用存储电路的结构进行说明。图3示出存储电路的方框图。在图3所示的方框图中示出存储单元阵列90、字线驱动电路91及位线驱动电路92。存储单元阵列90包括被配置为m行n列(m和n为自然数)的矩阵状的存储单元mc。存储单元mc与字线wl_1至wl_m及位线bl_1至bl_n连接。除了位线及字线之外,存储单元mc也可以与用来使电流流过的源极线、用来将电压供应到晶体管的背栅极的布线或者用来固定电容器的一个电极的电位的电容线等连接。字线驱动电路91是输出用来选择各行的存储单元mc的信号的电路。作为字线wl_1至wl_m,也可以分别设置写入用字线和读出用字线。位线驱动电路92是用来对各列的存储单元mc写入数据、或者从存储单元mc读出数据的电路。作为位线bl_1至bl_n,也可以分别设置写入用位线和读出用位线。存储单元mc包括晶体管、电容器等多个元件。本发明的一个方式的布局设计系统100可以应用于存储单元mc中的元件的布局设计。对使用本发明的一个方式的布局设计系统100的布局设计方法进行说明。本发明的一个方式的布局设计系统100具有根据电路图及布局设计信息生成布局数据121的功能。布局设计信息包括单元库115、设计规则117及网格信息123。图4是示出布局设计系统100的例子的方框图。如图4所示,本发明的一个方式的布局设计系统100被输入电路图119、单元库115、设计规则117及网格信息123,并输出布局数据121。图5及图6示出使用布局设计系统100的布局设计方法的流程。图5及图6所示的流程相当于图2的步骤s14所示的布局设计,且是根据电路图119及布局设计信息生成布局数据121的流程。在本发明的一个方式中,首先决定元件的配置,接着决定元件间的布线的路径。通过使用本发明的一个方式的布局设计系统,可以生成不但满足通过电路设计生成的电路图及设计规则且集成电路的面积小的布局数据。在本说明书等中,有时将步骤s26的布局状态的观察至步骤s33及步骤s36的动作值函数q(st,at)的更新的1次流程称为1个回合(episode)。此外,有时将动作值函数q(st,at)的更新次数称为回合次数。[步骤s21]步骤s21是取得电路图及布局设计信息的步骤。作为电路图,可以使用通过上述步骤s12生成的电路图119。电路图119及布局信息从布局设计系统100的外部输入到输入部101。然后,电路图119从输入部101通过传送通道102供应给处理部103。或者,电路图119及布局信息也可以通过传送通道102储存在存储部105或数据库107中,并从存储部105或数据库107通过传送通道102供应给处理部103。作为电路图,可以使用由硬件描述语言(hdl:hardwaredescriptionlanguage)记载元件间的连接关系的网表(netlist)。或者,作为电路图,也可以使用由spice(simulationprogramwithintegratedcircuitemphasis:集成电路通用模拟程序)记载元件间的连接关系的网表。布局设计信息包括单元库、设计规则及网格信息。网格信息是网格框的大小及网格间隔的值。网格是多个直线周期性地交叉而构成的格子。网格框是指设置网格的区域的外周,并具有矩形。网格间隔是指构成网格的直线的间隔。网格间隔优选等于或小于设计规定所规定的布线宽度的最小值。网格框的大小为网格间隔的整数倍。在本说明书等中,矩形是指其4个内角都为直角的四角形,包括正方形。[步骤s22]步骤s22是在处理部103中生成网格的步骤。根据通过步骤s21取得的网格信息生成网格框601及网格603。图8a示出网格框601及网格603的例子。在本实施方式中示出使用正方形的网格的例子,其中构成网格的直线各自以相等的间隔正交。[步骤s23]步骤s23是在处理部103中将基本单元及抽象体生成于网格框内的步骤。根据通过步骤s21取得的电路图119生成基本单元。图8b及图8c示出基本单元的例子。图8b示出包括半导体层301、栅电极303、源电极305、漏电极307的晶体管元件。图8c示出包括上部电极309、具有与上部电极309重叠的区域的下部电极311的电容器。虽然作为模拟电路的例子,图8b及图8c示出作为基本单元使用元件的例子,但是本发明的一个方式不局限于此。在采用模拟电路的情况下,可以作为基本单元使用逻辑门等。元件有时与其他元件电连接。此外,元件有时与字线或位线等(以下称为信号线)电连接。元件与元件间的连接关系、元件与信号线间的连接关系基于电路图119。将元件或信号线与其他元件或信号线电连接的区域称为连接区域。在图8b所示的晶体管元件中,栅电极303、源电极305及漏电极307这三个区域可以为连接区域。在图8c所示的电容器中,上部电极309及下部电极311可以为连接区域。将元件或信号线与其他元件或信号线电连接的位置称为连接点。连接点可以设置在上述连接区域内。元件或信号线所具有的连接点表示可与其他元件或信号线所具有的连接点电连接的位置。此外,连接点有时相当于接触孔的位置。使用图8b及图8c所示的晶体管元件及电容器具体地说明连接区域及连接点。在图8b所示的晶体管元件中,将栅电极303、源电极305及漏电极307的区域分别记为连接区域331_1至连接区域331_3。图9a示出连接区域331_1至连接区域331_3。在连接区域331_1至连接区域331_3中分别可以设置连接点。图9b示出设置在连接区域331_1至连接区域331_3中的连接点的例子。在图9b中示出设置在连接区域331_1中的连接点cp_11、设置在连接区域331_2中的连接点cp_12、设置在连接区域331_3中的连接点cp_13。注意,图9b所示的连接点cp_11至连接点cp_13仅是一个例子而已,连接点的位置不局限于此。在图8c所示的电容器中,将上部电极309及下部电极311的区域分别记为连接区域331_4及连接区域331_5。图9c示出连接区域331_4,图9d示出连接区域331_5。在连接区域331_4及连接区域331_5中分别可以设置连接点cp_14及连接点cp_15。图9e示出连接区域331_4中的连接点cp_14的例子,图9f示出连接区域331_5中的连接点cp_15的例子。注意,图9e及图9f所示的连接点cp_14及连接点cp_15只是一个例子而已,连接点的位置不局限于此。图10a示出在网格框601内配置基本单元的例子。在图10a中示出基本单元elm_1至基本单元elm_3这三个基本单元。基本单元elm_1及基本单元elm_2表示晶体管元件,基本单元elm_3表示电容器。根据基本单元生成抽象体。以覆盖一个基本单元整体的最小矩形为抽象体,该抽象体的外周仅生成在网格603上。使用图10a所示的基本单元elm_1至基本单元elm_3这三个基本单元具体地说明抽象体。图10b示出基本单元elm_1至基本单元elm_3以及分别与基本单元elm_1至基本单元elm_3对应的抽象体abs_1至抽象体abs_3的例子。覆盖基本单元elm_1整体且在网格603上具有外周的最小矩形为抽象体abs_1。覆盖基本单元elm_2整体且在网格603上具有外周的最小矩形为抽象体abs_2。覆盖基本单元elm_3整体且在网格603上具有外周的最小矩形为抽象体abs_3。在图10b中,为了明确表示基本单元与抽象体的位置关系,对抽象体abs_1至抽象体abs_3附加透视阴影线。虽然在图10a及图10b中示出三个基本单元的基本单元elm_1至基本单元elm_3,但是本发明的一个方式不局限于此。当电路图所包括的基本单元的总数为k时,生成抽象体abs_1至抽象体abs_k的k个抽象体。[步骤s24]步骤s24是在处理部103中设定奖励rt的步骤。以覆盖配置在网格框601内的所有抽象体的最小矩形为区块,算出该区块的面积。区块的外周仅生成在网格603上。图11a示出图10b所示的抽象体abs_1至抽象体abs_3以及与它们对应的区块blk的例子。根据区块blk的面积决定奖励rt。图11b示出区块blk的面积与奖励rt的关系。在图11b中,横轴表示区块blk的面积,纵轴表示奖励rt。如图11b所示,在该设定中,区块blk的面积越小,奖励rt越高,而区块blk的面积越大,奖励rt越小。通过采用区块blk的面积越小奖励rt越高的设定方式,可以以区块blk的面积变小的方式使神经网络学习,而可以进行面积小的布局设计。此外,奖励rt的值优选为有限值。当奖励rt的值为有限值时,可以防止算法不收敛而布局设计不结束。例如,奖励rt可以为-1以上且1以下。虽然在图11b中示出奖励rt相对于区块blk的面积以指数函数的方式减少的例子,但是本发明的一个方式不局限于此。奖励rt也可以相对于区块blk的面积以线形减少。此外,虽然作为奖励rt的设定方式示出了区块blk的面积越小奖励rt越高的例子,但是本发明的一个方式不局限于此。[步骤s25]步骤s25是在处理部103中将抽象体随机地配置在布局框内的步骤。通过步骤s22生成的k个抽象体abs_1至抽象体abs_k都随机地配置在网格框601内。可以将随机地配置的状态称为初始配置。图12a示出抽象体abs_1至抽象体abs_k的初始配置的例子。[步骤s26]步骤s26是在处理部103中观察抽象体的布局状态st的步骤。布局状态st作为布局的图像数据limgt储存在存储部105中。图12b示出与图12a所示的抽象体abs_1至抽象体abs_k的布局状态st对应的布局的图像数据limgt的例子。如图12b所示,图像数据limgt可以仅包括抽象体,不包括网格。布局的图像数据limgt可以为灰度、黑白或彩色的图像。在本实施方式中,作为布局的图像数据limgt使用灰度图像。在图12b中,对抽象体abs_1至抽象体abs_k附加阴影线,该阴影线区域为灰度区域。图13a示出包括三个抽象体abs_1至抽象体abs_3的布局例子。图13b示出沿着图13a的点划线a-b的截面图。在图13a及图13b中示出与抽象体abs_1至抽象体abs_3对应的元件elm_1至元件elm_3形成在同一层的例子。由于元件elm_1至元件elm_3形成在同一层,所以优选采用抽象体abs_1至抽象体abs_3彼此不重叠的布局。图14示出与图13a所示的布局对应的图像数据limgt。对多个元件分别形成在不同的层的例子进行说明。图15a示出包括三个抽象体abs_1至抽象体abs_3的布局例子。图15b示出沿着图15a的点划线c-d的截面图。在图15a及图15b中示出与抽象体abs_1及抽象体abs_2对应的元件elm_1及元件elm_2形成在同一层,并且与抽象体abs_3对应的元件elm_3形成在与元件elm_1及元件elm_2不同的层的例子。由于元件elm_1及元件elm_2与元件elm_3形成在不同的层,所以可以采用抽象体abs_1及抽象体abs_2与抽象体abs_3重叠的配置。此外,在图15b中示出区域320,该区域320包括用来使元件elm_1及元件elm_2中的一个以上与元件elm_3电连接的布线。图16a及图16b示出与图15a所示的布局对应的图像数据。图16a所示的图像数据limgt_1包括形成在同一层的抽象体abs_1及抽象体abs_2。图16b所示的图像数据limgt_2包括形成在与抽象体abs_1及抽象体abs_2不同的层的抽象体abs_3。可以以形成在相同的层的抽象体为一个图像数据,而以形成在不同的层的抽象体为不同的图像数据。例如,当抽象体形成在p个层时,可以为图像数据limgt_1至图像数据limgt_p的p个图像数据。[步骤s27]步骤s27是在处理部103中估算动作值函数q(st,at)的步骤。处理部103包括第一神经网络520,通过第一神经网络520估算动作值函数q(st,at)。在第一神经网络520中,以通过步骤s26生成的布局的图像数据limgt为输入数据,并以动作值函数q(st,at)为输出数据。作为第一神经网络520,优选使用卷积神经网络(cnn)的结构。图17a示出第一神经网络520的结构。图17a示出作为神经网络使用卷积神经网络(cnn)的结构的例子。图17a所示的第一神经网络520由输入层521、中间层522及输出层523构成。在输入层521中示出作为输入数据的布局的图像数据limgt以及作为输出数据的动作值函数q(st,a1)至动作值函数q(st,am)。在布局状态st下,可选择的移动有移动a1至移动am的m种,将对应于各移动的动作值函数记为动作值函数q(st,a1)至动作值函数q(st,am)。可以选择动作值函数q(st,a1)至动作值函数q(st,am)中q值最高的移动a作为下一个抽象体的移动。在图17a中,中间层522由卷积层524、池化层525、卷积层526、池化层527、卷积层528及全连接层529构成。注意,中间层522的结构只是一个例子而已,中间层522只要为一层以上即可,对层的数量及构成没有特别的限制。例如,也可以采用利用更多的层或者通过填充(padding)和步长(stride)等运算处理进行池化处理及卷积运算处理的结构。注意,在图17a中未图示滤波器。另外,在通过步骤s25取得的布局的图像数据limgt为彩色图像的情况下,也可以将彩色图像转换为灰度图像,将该灰度图像用作输入图像。作为彩色到灰度的转换,可以利用ntsc加权平均法等。此外,在将彩色(多通道)的图像用作输入数据的情况下,也可以在第一神经网络520的卷积层中使用对应于各通道的多种滤波器。此外,在将多个图像数据limgt用作输入数据的情况下,可以对各图像数据limgt使用不同的滤波器。对抽象体可选择的移动at进行说明。一个抽象体abs可选择的移动at可以为:在x轴方向移动+1;在x轴方向移动-1;在y轴方向移动+1;在y轴方向移动-1;当场旋转90°;不移动,这6种。图18a示出抽象体abs在x轴方向移动+1的例子。图18b示出抽象体abs在x轴方向移动-1的例子。图18c示出抽象体abs在y轴方向移动+1的例子。图19a示出抽象体abs在y轴方向移动-1的例子。图19b示出抽象体abs当场旋转90°的例子。图19c示出抽象体abs不移动的例子。当在x轴方向及y轴方向移动时,以网格间隔为1单位。此外,以抽象体abs所具有的4个顶点中x坐标及y坐标最小的顶点为基准点。在图18a至图18c、图19a及图19c中,以黑色圆点表示基准点。在本实施方式中,作为图19b所示的当场旋转90°的移动,将抽象体在左旋转方向(逆时针方向)旋转90°,并使旋转前的基准点与旋转后的基准点为相同的坐标。此外,在本实施方式中,由于使用构成的直线彼此正交的网格,所以抽象体的旋转角度为90°。在构成网格的直线不正交的情况下,可以以直线所形成的角度为抽象体的旋转角度。例如,在使用构成网格的直线以30°交叉的网格的情况下,作为抽象体可选择的行动,抽象体的旋转角度可以为30°及150°这2种。表1示出包括k个抽象体的输出数据的例子。抽象体abs_1至抽象体abs_k的可选择的移动是:在x轴方向移动+1、在x轴方向移动-1、在y轴方向移动+1、在y轴方向移动-1、当场旋转90°,这5种移动;以及任一抽象体都不移动,这1种。如表1所示,抽象体abs_1至抽象体abs_k的可选择的移动为移动a1至移动a5k+1的(5k+1)种,由此输出数据可以为动作值函数q(st,a1)至动作值函数q(st,a5k+1)的(5k+1)个。可以选择这些动作值函数q(st,a1)至动作值函数q(st,a5k+1)中q值最高的移动a作为下一个抽象体的移动。例如,在包括抽象体abs_1至抽象体abs_3这3个抽象体的情况下,输出数据可以为动作值函数q(st,a1)至动作值函数q(st,a16)这16个。可以选择这些动作值函数q(st,a1)至动作值函数q(st,a16)中q值最高的移动a作为下一个抽象体的移动。[表1]另外,移动a的选择也可以采用ε-greedy算法。在ε-greedy算法中,以(1-ε)的概率选择q值最高的移动a,以ε的概率随机地选择移动a(ε大于0且为1以下)。例如,可以以0.95(95%)的概率选择q值最高的移动a,以0.05(5%)的概率随机地选择移动a。通过采用ε-greedy算法,可以防止被选择的行动a的偏差,而可以学习更佳的动作值函数q。此外,也可以在学习的初期阶段将ε设定为大,随着学习的进展使ε变小。通过在学习的初始阶段将ε设定为大,可以降低抽象体的初始配置的影响,并通过随着学习的进展使ε变小,可以高效地进行学习。[步骤s28]步骤s28是在处理部103中判定是否能够将连接点连接的步骤。判定对象是执行通过步骤s27选择的移动at时的布局。判定在移动后的状态的抽象体abs的布局中是否能够将对应于抽象体abs的基本单元elm所具有的连接点以满足电路图119的连接关系的方式连接。使用包括两个元件的电路的例子说明步骤s28的连接点的连接方法。图20a示出由一个晶体管元件tr51及一个电容器c52构成的存储电路的电路图341。在图20a中,除了元件之外,还包括字线wl、位线bl、接地电位线gnd。注意,为了简化说明,示出包括两个元件的电路例子,但是本发明的一个方式不局限于此。图20b示出执行通过步骤s27选择的移动at时的布局的例子。图20b示出对应于晶体管元件tr51的抽象体abs_51及对应于电容器c52的抽象体abs_52。图21a示出晶体管元件tr51、对应于晶体管元件tr51的抽象体abs_51、电容器c52、对应于电容器c52的抽象体abs_52。在图21a中,为了明确表示位置关系,对抽象体abs_51及抽象体abs_52附加透视阴影线。图21b示出晶体管元件tr51及电容器c52的连接点的例子。晶体管元件tr51在栅电极的区域、源电极的区域、漏电极的区域分别包括连接点cp_2、连接点cp_1、连接点cp_4。电容器c52在上部电极的区域、下部电极的区域分别包括连接点cp_1、连接点cp_3。连接点设置在连接区域内的网格上。为了容易理解连接关系,在图21b中对相互电连接的连接点附加相同符号。附有相同符号的连接点通过布线彼此连接。例如,晶体管元件tr51的连接点cp_1与电容器c52的连接点cp_1通过布线连接。接着,将信号线的连接点配置在网格上。信号线的连接点可以配置在网格上的任意位置。图22a示出相对于图21b所示的元件的字线wl、接地电位线gnd及位线bl各自的连接点的例子。图22a示出字线wl的连接点cpl_2、接地电位线gnd的连接点cpl_3、位线bl的连接点cpl_4。字线wl的连接点cpl_2是通过布线与晶体管元件tr51的连接点cp_2连接的连接点。接地电位线gnd的连接点cpl_3是通过布线与电容器c52的连接点cp_3连接的连接点。位线bl的连接点cpl_4是通过布线与晶体管元件tr51的连接点cp_4连接的连接点。将连接点间连接的布线仅设置在网格上。图22b示出相对于图22a所示的连接点的布线。在图22b中以实线表示布线,并示出完全满足基于电路图341的连接关系的布线配置例子。作为决定布线路径的算法,可以使用线搜索算法、迷宫算法、通道分配算法等。在本实施方式中,优选使用线搜索算法。线搜索算法是如下方法:从要连接的两点在x轴方向及y轴方向依次形成线段,当来自始点的线段与来自终点的线段交叉时,从该点向相反方向返回来确定路径。当能够实现完全满足基于电路图的连接关系的布线配置时(yes),进入步骤s29。当不能配置布线时(no),进入步骤s36。[步骤s29]步骤s29是在处理部103中判定是否满足设计规则的步骤。判定对象是将通过步骤s28生成的元件及布线的配置转换为元件及布线的图案而成的布局。判定基准是设计规则。图23示出将图22b所示的元件及布线的配置转换为元件及布线的图案而成的图。图23是布局数据的一个例子。布线的图案可以在设计规则所规定的布线的宽度的最大值及最小值的范围内。此外,连接点的一部分被转换为接触孔。接触孔的大小可以在设计规则所规定的接触孔的大小的最大值及最小值的范围内。图23示出连接点的一部分被转换为接触孔co_1至接触孔co_6的图。当图案的布局满足设计规则时(yes),进入步骤s30。当不满足设计规则时(no),进入步骤s36。图24b示出以立体的方式描述图23所示的布局的示意图。此外,图24a示出以立体的方式描述电路结构的示意图。通过使用本发明的一个方式的布局设计系统,可以生成不但满足通过电路设计生成的电路图及设计规则且集成电路的面积小的布局数据。[步骤s30]步骤s30是在处理部103中移动抽象体的步骤。该移动取决于通过步骤s27选择的移动at。图25示出在包括抽象体abs_1至抽象体abs_3这三个抽象体的布局中进行移动的例子。图25示出作为通过步骤s27选择的移动at选择抽象体abs_2在x轴方向移动-1的例子。虽然在本实施方式中如图25所示在一个回合中移动一个抽象体,但是不局限于此。也可以移动多个抽象体。[步骤s31]步骤s31是在处理部103中观察抽象体的布局状态st+1的步骤。布局状态st+1是步骤s25的布局状态st通过步骤s27的移动at变化成的布局状态。布局状态st+1作为布局的图像数据limgt+1储存在存储部105中。[步骤s32]步骤s32是在处理部103估算动作值函数q(st+1,at+1)的步骤。一般而言,在深度学习的学习时,以输出数据与示教数据间的误差变小的方式更新神经网络的权重系数。权重系数的更新直到输出数据与示教数据间的误差成为恒定为止反复进行。强化学习之一种的q学习的学习目的是最佳q函数的搜索,但是在学习期间最佳q函数是未知的。于是,估算下一时刻t+1的动作值函数q(st+1,at+1),并将rt+1+maxq(st+1,at+1)视为示教数据。通过将该示教数据用作损失函数,进行第一神经网络520的学习。处理部103包括第二神经网络530,通过第二神经网络530估算动作值函数q(st+1,at+1)。在第二神经网络530中,以通过步骤s31生成的布局的图像数据limgt+1为输入数据,并以动作值函数q(st+1,at+1)为输出数据。作为第二神经网络530,优选使用卷积神经网络(cnn)的结构。图17b示出第二神经网络530的结构。图17b示出作为神经网络使用卷积神经网络(cnn)的结构的例子。图17b所示的第二神经网络530由输入层531、中间层532及输出层533构成。在输入层531中示出作为输入数据的布局的图像数据limgt+1以及作为输出数据的动作值函数q(st+1,a1)至动作值函数q(st+1,am)。在布局状态st下,可选择的移动有移动a1至移动am的m种,将对应于各移动的动作值函数记为动作值函数q(st,a1)至动作值函数q(st+1,am)。可以将动作值函数q(st+1,a1)至动作值函数q(st+1,am)中最高的q值与奖励rt+1的和用作第一神经网络的推论的示教数据。在图17b中,中间层532由卷积层534、池化层535、卷积层536、池化层537、卷积层538及全连接层539构成。注意,中间层532的结构仅是一个例子而已,也可以采用利用更多的层或者通过填充(padding)和步长(stride)等运算处理进行池化处理及卷积运算处理的结构。注意,在图17b中未图示滤波器。在步骤s27及步骤s32中可以使用一个神经网络。此外,在步骤s27及步骤s32中也可以使用彼此不同的神经网络。[步骤s33]步骤s33是在处理部103中接收奖励rt+1,并更新动作值函数q(st,at)的步骤。奖励rt+1是对步骤s30的抽象体的移动at的奖励。算出进行移动at后的区块blk的面积,根据通过步骤s24设定的奖励设定,决定基于区块blk的面积的奖励rt+1。此外,也可以在步骤s33中不给予奖励,即可以为奖励rt+1=0。使用通过第一神经网络520求得的动作值函数q(st,at)的推论结果及通过第二神经网络530生成的示教数据算出损失函数。使用随机梯度下降法(sgd:stochasticgradientdescent)以该损失函数的值变小的方式更新第一神经网络520的权重系数。除了随机梯度下降法之外,也可以使用adam(adaptivemomentestimation)、动量(momentum)、adagrad(adaptivesubgradientmethods)、rmsprop等。[步骤s34]步骤s34是在处理部103中判定是否满足结束条件a的步骤。当满足结束条件a时(yes),进入步骤s35。当不满足结束条件a时(no),进入步骤s26的布局状态的观察。以后,通过反复进行步骤s26至步骤s33,更新第一神经网络520及第二神经网络530的权重系数,使第一神经网络520及第二神经网络530最优化。通过使第一神经网络520及第二神经网络530最优化,可以实现在短时间内进行不但满足设计规则且面积小的布局设计的布局设计系统100。作为结束条件a,可以使用图5及图6所示的布局设计流程的开始后的经过时间。通过设定结束条件a,可以防止算法不收敛而布局设计不结束。[步骤s35]步骤s35是在处理部103中判定是否满足结束条件b的步骤。当满足结束条件b时(yes),结束布局设计,并输出布局数据。作为布局数据,例如可以输出图23所示的布局数据。当不满足结束条件b时(no),进入步骤s25的抽象体的配置,并从抽象体的初始配置进行学习。以后,通过反复进行步骤s26至步骤s33,更新第一神经网络520及第二神经网络530的权重系数,使第一神经网络520及第二神经网络530最优化。通过使第一神经网络520及第二神经网络530最优化,可以实现在短时间内进行不但满足设计规则且面积小的布局设计的布局设计系统100。作为结束条件b,例如可以使用回合次数。[步骤s36]当在步骤s28中不能将连接点连接时,或者当在步骤s29中不满足设计规则时,进入步骤s36。在步骤s36,在处理部103中接收奖励rt,并更新动作值函数q(st,at)。步骤s36的奖励rt小于步骤s33的奖励rt。作为奖励rt也可以使用负值。例如,奖励rt可以为-1。通过上述步骤,可以进行布局设计。另外,通过使用彼此不同的电路图及设计规则进行布局设计,可以实现通用性高的布局设计系统。<3.布局设计方法2>对与上述<2.布局设计方法1>所示的布局设计方法不同的布局设计方法进行说明。与<2.布局设计方法1>不同之处是步骤s27的动作值函数q(st,at)的估算方法。关于其他步骤可以参照上述记载,所以省略详细的说明。[步骤s27]在步骤s27,在处理部103估算动作值函数q(st,at)。处理部103包括第一神经网络520,通过第一神经网络520估算动作值函数q(st,at)。在第一神经网络520中,以通过步骤s26生成的布局的图像数据limgt为输入数据,并以动作值函数q(st,at)为输出数据。作为第一神经网络520,优选使用卷积神经网络(cnn)的结构。关于第一神经网络520的结构可以参照上述记载,所以省略详细的说明。对抽象体可选择的移动at进行说明。在1个回合中,估算动作值函数q(st,at)的对象为一个抽象体abs。一个抽象体可选择的移动at可以为:在x轴方向移动+1;在x轴方向移动-1;在y轴方向移动+1;在y轴方向移动-1;当场旋转90°;不移动,这6种。将在k个抽象体abs_1至抽象体abs_k中成为移动对象的一个抽象体记为抽象体abs_i。表2示出抽象体abs_i可以选择上述6种移动的情况下的输出数据的例子。一个抽象体abs_i的可选择的移动为移动a1至移动a6这6种,由此输出数据可以为动作值函数q(st,a1)至动作值函数q(st,a6)这6个。[表2]在一个回合中以一个抽象体abs_i为移动对象,在下一个回合中以与上一个回合不同的一个抽象体abs_(i+1)为移动对象。通过在一个回合中以一个抽象体为移动对象,可以固定神经网络的输出数据数,所以可以实现通用性高的神经网络。<4.布局设计方法3>在上述<2.布局设计方法1>及<3.布局设计方法2>中示出了通过反复更新第一神经网络520及第二神经网络530的权重系数来使神经网络学习的方法。对使用这些已完成学习的神经网络进行布局设计的方法进行说明。图7示出布局设计的流程。[步骤s101]步骤s101是取得电路图及布局设计信息的步骤。关于步骤s101可以参照上述步骤s21的记载,所以省略详细的说明。[步骤s102]步骤s102是在处理部103中生成网格的步骤。关于步骤s102可以参照上述步骤s22的记载,所以省略详细的说明。[步骤s103]步骤s103是在处理部103中将基本单元及抽象体生成于网格框内的步骤。关于步骤s103可以参照上述步骤s23的记载,所以省略详细的说明。[步骤s104]步骤s104是在处理部103中将抽象体随机地配置在布局框内的步骤。关于步骤s104可以参照上述步骤s25的记载,所以省略详细的说明。[步骤s105]步骤s105是在处理部103中观察抽象体的布局状态st的步骤。关于步骤s105可以参照上述步骤s26的记载,所以省略详细的说明。[步骤s106]步骤s106是在处理部103中估算动作值函数q(st,at)的步骤。关于步骤s106可以参照上述步骤s27的记载,所以省略详细的说明。[步骤s107]步骤s107是在处理部103中判定是否能够将连接点连接的步骤。关于步骤s107可以参照上述步骤s28的记载,所以省略详细的说明。当能够实现完全满足基于电路图的连接关系的布线配置时(yes),进入步骤s108。当不能配置布线时(no),进入步骤s104。在步骤s104中,将抽象体设置为初始配置,从初始配置再次进行布局处理。[步骤s108]步骤s108是在处理部103中判定是否满足设计规则的步骤。关于步骤s108可以参照上述步骤s29的记载,所以省略详细的说明。当图案的布局满足设计规则时(yes),进入步骤s109。当不满足设计规则时(no),进入步骤s104。在步骤s104中,将抽象体设置为初始配置,从初始配置再次进行布局处理。[步骤s109]步骤s109是在处理部103中移动抽象体的步骤。该移动取决于通过步骤s106选择的移动at。关于步骤s109可以参照上述步骤s30的记载,所以省略详细的说明。[步骤s110]步骤s110是在处理部103中判定是否满足结束条件c的步骤。当满足结束条件c时(yes),结束布局设计。当不满足结束条件c时(no),进入步骤s105的布局状态的观察。作为结束条件c,例如可以使用回合次数或布局处理开始后的经过时间。通过使用本发明的一个方式的包括最优化过的神经网络的布局设计系统,可以在短时间内进行不但满足设计规则且面积小的布局设计。<5.布局设计系统的例子>对与图1所示的布局设计系统100不同的布局设计系统进行说明。图26示出布局设计系统150的方框图。布局设计系统150包括服务器151及终端152(个人计算机等)。服务器151包括通信部161a、传送通道162、处理部163a及数据库167。虽然在图26中未图示,但是服务器151也可以还包括存储部、输入输出部等。终端152包括通信部161b、传送通道168、处理部163b、存储部165及输入输出部169。虽然在图26中未图示,但是终端152也可以还包括数据库等。布局设计系统150的使用者从终端152将用于布局设计的电路图及布局设计信息输入到服务器151。该数据从通信部161b传送到通信部161a。通信部161a接收的数据通过传送通道162储存在数据库167或存储部(未图示)中。或者,该数据也可以从通信部161a直接供应到处理部163a。上述布局设计在处理部163a中进行。这些处理需要高处理能力,所以优选在服务器151所包括的处理部163a中进行。然后,通过处理部163a生成布局数据。布局数据通过传送通道162储存在数据库167或存储部(未图示)中。或者,该数据也可以从处理部163a直接供应到通信部161a。然后,布局数据从服务器151输出到终端152。该数据从通信部161a传送到通信部161b。[输入输出部169]对输入输出部169从布局设计系统150的外部供应信息。输入输出部169具有将信息供应给布局设计系统150的外部的功能。注意,如布局设计系统100那样,输入部与输出部也可以彼此分离。[传送通道162及传送通道168]传送通道162及传送通道168具有传送信息的功能。通信部161a、处理部163a及数据库167间的信息的发送及接收可以通过传送通道162进行。通信部161b、处理部163b、存储部165及输入输出部169间的信息的发送及接收可以通过传送通道168进行。[处理部163a及处理部163b]处理部163a具有通过使用从通信部161a及数据库167等供应的信息进行运算、推论等的功能。处理部163b具有通过使用从通信部161b、存储部165及输入输出部169等供应的信息进行运算等的功能。关于处理部163a及处理部163b可以参照处理部103的说明。尤其是,处理部163a可以进行上述布局设计处理。因此,处理部163a的处理能力优选高于处理部163b。[存储部165]存储部165具有储存处理部163b执行的程序的功能。此外,存储部105具有储存处理部163b所生成的运算结果、输入到通信部161b的信息以及输入到输入输出部169的信息等的功能。[数据库167]数据库167具有储存布局设计信息的功能。此外,数据库167也可以具有储存处理部163a所生成的运算结果以及输入到通信部161a的信息等的功能。或者,服务器151也可以包括数据库167以外的存储部,该存储部具有储存处理部163a所生成的运算结果以及输入到通信部161a的信息等的功能。[通信部161a及通信部161b]通过使用通信部161a及通信部161b可以在服务器151与终端152之间进行信息的发送及接收。作为通信部161a及通信部161b可以使用集线器(hub)、路由器、调制解调器等。信息的发送及接收可以为有线也可以为无线(例如,电波、红外线等)。如上所述,本实施方式的布局设计系统可以根据预先准备的布局设计信息基于被输入的电路图生成布局数据。本实施方式可以与其他实施方式适当地组合。在本说明书中,在一个实施方式中示出多个结构实例的情况下,可以适当地组合该结构实例。(实施方式2)在本实施方式中,说明能够用于在上述实施方式中说明的神经网络的半导体装置的结构例子。如图27a所示,神经网络nn可以由输入层il、输出层ol及中间层(隐藏层)hl构成。输入层il、输出层ol及中间层hl都包括一个或多个神经元(单元)。注意,中间层hl可以为一层或两层以上。包括两层以上的中间层hl的神经网络可以被称为dnn(深度神经网络),使用深度神经网络的学习可以被称为深度学习。输入层il的各神经元被输入输入数据,中间层hl的各神经元被输入前一层或后一层的神经元的输出信号,输出层ol的各神经元被输入前一层的神经元的输出信号。注意,各神经元既可以与前一层和后一层的所有神经元连结(全连结),又可以与部分神经元连结。图27b示出利用神经元的运算的例子。在此,示出神经元n及向神经元n输出信号的前一层的两个神经元。神经元n被输入前一层的神经元的输出x1及前一层的神经元的输出x2。在神经元n中,算出输出x1与权重w1的乘法结果(x1w1)和输出x2与权重w2的乘法结果(x2w2)之总和x1w1+x2w2,然后根据需要对其加偏压b,从而得到值a=x1w1+x2w2+b。值a被激活函数h变换,输出信号y=h(a)从神经元n输出。如此,利用神经元的运算包括对前一层的神经元的输出与权重之积进行加法的运算,即积和运算(上述x1w1+x2w2)。该积和运算既可以通过程序在软件上进行,又可以通过硬件进行。在通过硬件进行积和运算时,可以使用积和运算电路。作为该积和运算电路,既可以使用数字电路,又可以使用模拟电路。在作为积和运算电路使用模拟电路时,可以因积和运算电路的电路规模的缩小或向存储器访问的次数的减少而实现处理速度的提高及功耗的降低。积和运算电路既可以由在沟道形成区域中包含硅(单晶硅等)的晶体管(以下,也称为si晶体管)构成,又可以由在沟道形成区域中包含氧化物半导体的晶体管(以下,也称为os晶体管)构成。尤其是,因为os晶体管具有极小的关态电流(off-statecurrent),所以优选用作构成积和运算电路的模拟存储器的晶体管。注意,也可以由si晶体管和os晶体管的双方构成积和运算电路。下面,说明具有积和运算电路的功能的半导体装置的结构例子。<半导体装置的结构例子>图28示出具有进行神经网络的运算的功能的半导体装置mac的结构例子。半导体装置mac具有进行对应于神经元间的连结强度(权重)的第一数据与对应于输入数据的第二数据的积和运算的功能。注意,第一数据及第二数据分别可以为模拟数据或多值数据(分散数据)。此外,半导体装置mac具有使用激活函数对利用积和运算得到的数据进行变换的功能。半导体装置mac包括单元阵列ca、电流源电路cs、电流镜电路cm、电路wdd、电路wld、电路cld、偏置电路ofst及激活函数电路actv。单元阵列ca包括多个存储单元mc及多个存储单元mcref。图28示出单元阵列ca包括m行n列(m和n为1以上的整数)的存储单元mc(mc[1,1]至[m,n])及m个存储单元mcref(mcref[1]至[m])的结构例子。存储单元mc具有储存第一数据的功能。此外,存储单元mcref具有储存用于积和运算的参考数据的功能。注意,参考数据可以为模拟数据或多值数据。存储单元mc[i,j](i为1以上且m以下的整数,j为1以上且n以下的整数)连接于布线wl[i]、布线rw[i]、布线wd[j]及布线bl[j]。此外,存储单元mcref[i]连接于布线wl[i]、布线rw[i]、布线wdref及布线blref。在此,将流在存储单元mc[i,j]与布线bl[j]间的电流记载为imc[i,j],将流在存储单元mcref[i]与布线blref间的电流记载为imcref[i]。图29示出存储单元mc及存储单元mcref的具体结构例子。虽然在图29中作为典型例子示出存储单元mc[1,1]、[2,1]及存储单元mcref[1]、[2],但是在其他存储单元mc及存储单元mcref中可以使用同样的结构。存储单元mc及存储单元mcref都包括晶体管tr11、tr12、电容器c11。在此,说明晶体管tr11及晶体管tr12为n沟道型晶体管的情况。在存储单元mc中,晶体管tr11的栅极连接于布线wl,源极和漏极中的一个连接于晶体管tr12的栅极及电容器c11的第一电极,源极和漏极中的另一个连接于布线wd。晶体管tr12的源极和漏极中的一个连接于布线bl,源极和漏极中的另一个连接于布线vr。电容器c11的第二电极连接于布线rw。布线vr具有供应预定电位的功能。在此,作为一个例子,说明从布线vr供应低电源电位(接地电位等)的情况。将与晶体管tr11的源极和漏极中的一个、晶体管tr12的栅极以及电容器c11的第一电极连接的节点称为节点nm。此外,将存储单元mc[1,1]、[2,1]的节点nm分别称为节点nm[1,1]、[2,1]。存储单元mcref也具有与存储单元mc同样的结构。但是,存储单元mcref连接于布线wdref代替布线wd并连接于布线blref代替布线bl。此外,在存储单元mcref[1]、[2]中,将连接于晶体管tr11的源极和漏极中的一个、晶体管tr12的栅极及电容器c11的第一电极的节点分别记载为节点nmref[1]、[2]。节点nm和节点nmref分别被用作存储单元mc和存储单元mcref的保持节点。节点nm保持第一数据,节点nmref保持参考数据。另外,电流imc[1,1]、imc[2,1]分别从布线bl[1]流到存储单元mc[1,1]、[2,1]的晶体管tr12。另外,电流imcref[1]、imcref[2]分别从布线blref流到存储单元mcref[1]、[2]的晶体管tr12。由于晶体管tr11具有保持节点nm或节点nmref的电位的功能,所以晶体管tr11的关态电流优选小。因此,作为晶体管tr11,优选使用关态电流极小的os晶体管。由此,可以抑制节点nm或节点nmref的电位变动而提高运算精度。此外,可以将刷新节点nm或节点nmref的电位的工作的频率抑制为低,由此可以降低功耗。对晶体管tr12没有特别的限制,例如可以使用si晶体管或os晶体管等。在作为晶体管tr12使用os晶体管的情况下,能够使用与晶体管tr11相同的制造装置制造晶体管tr12,从而可以抑制制造成本。注意,晶体管tr12可以为n沟道型晶体管或p沟道型晶体管。电流源电路cs连接于布线bl[1]至[n]及布线blref。电流源电路cs具有向布线bl[1]至[n]及布线blref供应电流的功能。注意,供应到布线bl[1]至[n]的电流值也可以与供应到布线blref的电流值不同。在此,将从电流源电路cs供应到布线bl[1]至[n]的电流记载为ic,将从电流源电路cs供应到布线blref的电流记载为icref。电流镜电路cm包括布线il[1]至[n]及布线ilref。布线il[1]至[n]分别连接于布线bl[1]至[n],布线ilref连接于布线blref。在此,布线il[1]至[n]与布线bl[1]至[n]的连接部分记载为节点np[1]至[n]。此外,布线ilref与布线blref的连接部分记载为节点npref。电流镜电路cm具有将对应于节点npref的电位的电流icm流到布线ilref的功能及还将该电流icm流到布线il[1]至[n]的功能。图28示出电流icm从布线blref排出到布线ilref且电流icm从布线bl[1]至[n]排出到布线il[1]至[n]的例子。将从电流镜电路cm通过布线bl[1]至[n]流到单元阵列ca的电流记载为ib[1]至[n]。此外,将从电流镜电路cm通过布线blref流到单元阵列ca的电流记载为ibref。电路wdd连接于布线wd[1]至[n]及布线wdref。电路wdd具有将对应于储存在存储单元mc中的第一数据的电位供应到布线wd[1]至[n]的功能。另外,电路wdd具有将对应于储存在存储单元mcref中的参考数据的电位供应到布线wdref的功能。电路wld与布线wl[1]至[m]连接。电路wld具有将选择写入数据的存储单元mc或存储单元mcref的信号供应到布线wl[1]至[m]的功能。电路cld与布线rw[1]至[m]连接。电路cld具有将对应于第二数据的电位供应到布线rw[1]至[m]的功能。偏置电路ofst连接于布线bl[1]至[n]及布线ol[1]至[n]。偏置电路ofst具有检测出从布线bl[1]至[n]流到偏置电路ofst的电流量及/或从布线bl[1]至[n]流到偏置电路ofst的电流的变化量的功能。此外,偏置电路ofst具有将检测结果输出到布线ol[1]至[n]的功能。注意,偏置电路ofst既可以将对应于检测结果的电流输出到布线ol,又可以将对应于检测结果的电流变换为电压而将其输出到布线ol。将流在单元阵列ca与偏置电路ofst之间的电流记载为iα[1]至[n]。图30示出偏置电路ofst的结构例子。图30所示的偏置电路ofst包括电路oc[1]至[n]。电路oc[1]至[n]都包括晶体管tr21、晶体管tr22、晶体管tr23、电容器c21及电阻元件r1。各元件的连接关系如图30所示。注意,将连接于电容器c21的第一电极及电阻元件r1的第一端子的节点称为节点na。另外,将连接于电容器c21的第二电极、晶体管tr21的源极和漏极中的一个及晶体管tr22的栅极的节点称为节点nb。布线vrefl具有供应电位vref的功能,布线val具有供应电位va的功能,布线vbl具有供应电位vb的功能。布线vddl具有供应电位vdd的功能,布线vssl具有供应电位vss的功能。在此,说明电位vdd是高电源电位且电位vss是低电源电位的情况。布线rst具有供应用来控制晶体管tr21的导通状态的电位的功能。由晶体管tr22、晶体管tr23、布线vddl、布线vssl及布线vbl构成源极跟随电路。接着,说明电路oc[1]至[n]的工作例子。注意,虽然在此作为典型例子说明电路oc[1]的工作例子,但是电路oc[2]至[n]也可以与此同样地工作。首先,当第一电流流到布线bl[1]时,节点na的电位成为对应于第一电流与电阻元件r1的电阻值的电位。此时,晶体管tr21处于开启状态,电位va被供应到节点nb。然后,晶体管tr21成为关闭状态。接着,当第二电流流到布线bl[1]时,节点na的电位变为对应于第二电流与电阻元件r1的电阻值的电位。此时,晶体管tr21处于关闭状态,节点nb处于浮动状态,因此在节点na的电位变化时节点nb的电位由于电容耦合而变化。在此,在节点na的电位变化为△vna且电容耦合系数为1时,节点nb的电位为va+△vna。在晶体管tr22的阈值电压为vth时,从布线ol[1]输出电位va+△vna-vth。在此,通过满足va=vth,可以从布线ol[1]输出电位△vna。电位△vna根据从第一电流到第二电流的变化量、电阻元件r1及电位vref决定。在此,已知电阻元件r1和电位vref,由此可以求得从电位△vna流到布线bl的电流的变化量。如上所述,对应于通过偏置电路ofst检测出的电流量及/或电流的变化量的信号通过布线ol[1]至[n]输入到激活函数电路actv。激活函数电路actv连接于布线ol[1]至[n]和布线nil[1]至[n]。激活函数电路actv具有进行运算以根据预定的激活函数变换从偏置电路ofst输入的信号的功能。作为激活函数,例如可以使用sigmoid函数、tanh函数、softmax函数、relu函数及阈值函数等。被激活函数电路actv变换的信号作为输出数据输出到布线nil[1]至[n]。<半导体装置的工作例子>能够使用上述半导体装置mac对第一数据和第二数据进行积和运算。下面,说明进行积和运算时的半导体装置mac的工作例子。图31示出半导体装置mac的工作例子的时序图。图31示出图29中的布线wl[1]、布线wl[2]、布线wd[1]、布线wdref、节点nm[1,1]、节点nm[2,1]、节点nmref[1]、节点nmref[2]、布线rw[1]及布线rw[2]的电位推移、以及电流ib[1]-iα[1]和电流ibref的值的推移。电流ib[1]-iα[1]相当于从布线bl[1]流到存储单元mc[1,1]、[2,1]的电流之总和。虽然在此着眼于在图29中作为典型例子示出的存储单元mc[1,1]、[2,1]及存储单元mcref[1]、[2]而说明其工作,但是其他存储单元mc及存储单元mcref也可以进行同样的工作。[第一数据的存储]首先,在时刻t01-t02,布线wl[1]的电位成为高(high)电平,布线wd[1]的电位成为比接地电位(gnd)大vpr-vw[1,1]的电位,布线wdref的电位成为比接地电位大vpr的电位。布线rw[1]及布线rw[2]的电位成为标准电位(refp)。注意,电位vw[1,1]对应于储存在存储单元mc[1,1]中的第一数据。此外,电位vpr对应于参考数据。因此,存储单元mc[1,1]及存储单元mcref[1]所具有的晶体管tr11成为开启状态,节点nm[1,1]的电位成为vpr-vw[1,1],节点nmref[1]的电位成为vpr。此时,从布线bl[1]流到存储单元mc[1,1]的晶体管tr12的电流imc[1,1],0能够以如下算式表示。在此,k是取决于晶体管tr12的沟道长度、沟道宽度、迁移率以及栅极绝缘膜的电容等的常数。此外,vth为晶体管tr12的阈值电压。imc[1,1],0=k(vpr-vw[1,1]-vth)2(e1)此外,从布线blref流到存储单元mcref[1]的晶体管tr12的电流imcref[1],0能够以如下算式表示。imcref[1],0=k(vpr-vth)2(e2)接着,在时刻t02-t03,布线wl[1]的电位成为低(low)电平。因此,存储单元mc[1,1]及存储单元mcref[1]所具有的晶体管tr11成为关闭状态,节点nm[1,1]及节点nmref[1]的电位被保持。如上所述,作为晶体管tr11,优选使用os晶体管。由此,可以抑制晶体管tr11的泄漏电流而正确地保持节点nm[1,1]及节点nmref[1]的电位。接着,在时刻t03-t04,布线wl[2]的电位成为高电平,布线wd[1]的电位成为比接地电位大vpr-vw[2,1]的电位,布线wdref的电位成为比接地电位大vpr的电位。注意,电位vw[2,1]对应于储存在存储单元mc[2,1]中的第一数据。因此,存储单元mc[2,1]及存储单元mcref[2]所具有的晶体管tr11成为开启状态,节点nm[2,1]的电位成为vpr-vw[2,1],节点nmref[2]的电位成为vpr。此时,从布线bl[1]流到存储单元mc[2,1]的晶体管tr12的电流imc[2,1],0能够以如下算式表示。imc[2,1],0=k(vpr-vw[2,1]-vth)2(e3)此外,从布线blref流到存储单元mcref[2]的晶体管tr12的电流imcref[2],0能够以如下算式表示。imcref[2],0=k(vpr-vth)2(e4)接着,在时刻t04-t05,布线wl[2]的电位成为低电平。因此,存储单元mc[2,1]及存储单元mcref[2]所具有的晶体管tr11成为关闭状态,节点nm[2,1]及节点nmref[2]的电位被保持。通过上述工作,在存储单元mc[1,1]、[2,1]中储存第一数据,存储单元mcref[1]、[2]中储存参考数据。在此,在时刻t04-t05,考虑流到布线bl[1]和布线blref的电流。向布线blref从电流源电路cs供应电流。流过布线blref的电流排出到电流镜电路cm及存储单元mcref[1]、[2]。将从电流源电路cs供应到布线blref的电流称为icref,将从布线blref排出到电流镜电路cm的电流称为icm,0,此时满足下式。icref-icm,0=imcref[1],0+imcref[2],0(e5)向布线bl[1]从电流源电路cs供应电流。流过布线bl[1]的电流排出到电流镜电路cm及存储单元mc[1,1]、[2,1]。另外,电流从布线bl[1]流到偏置电路ofst。将从电流源电路cs供应到布线bl[1]的电流称为ic,0,将从布线bl[1]流到偏置电路ofst的电流称为iα,0,此时满足下式。ic-icm,0=imc[1,1],0+imc[2,1],0+iα,0(e6)[第一数据和第二数据的积和运算]接着,在时刻t05-t06,布线rw[1]的电位比标准电位大vx[1]。此时,电位vx[1]被供应到存储单元mc[1,1]及存储单元mcref[1]的各电容器c11,晶体管tr12的栅极电位因电容耦合而上升。注意,电位vx[1]对应于供应到存储单元mc[1,1]及存储单元mcref[1]的第二数据。晶体管tr12的栅极的电位的变化量相当于布线rw的电位的变化乘以根据存储单元的结构决定的电容耦合系数的值。电容耦合系数根据电容器c11的电容、晶体管tr12的栅极电容以及寄生电容等而算出。下面,为了方便起见,说明布线rw的电位的变化量与晶体管tr12的栅极的电位的变化量相等的情况,即说明电容耦合系数为1的情况。实际上,考虑电容耦合系数决定电位vx,即可。当电位vx[1]被供应到存储单元mc[1,1]及存储单元mcref[1]的电容器c11时,节点nm[1,1]及节点nmref[1]的电位都上升vx[1]。在此,在时刻t05-t06,从布线bl[1]流到存储单元mc[1,1]的晶体管tr12的电流imc[1,1],1能够以如下算式表示。imc[1,1],1=k(vpr-vw[1,1]+vx[1]-vth)2(e7)也就是说,通过向布线rw[1]供应电位vx[1],从布线bl[1]流到存储单元mc[1,1]的晶体管tr12的电流增加△imc[1,1]=imc[1,1],1-imc[1,1],0。此外,在时刻t05-t06,从布线blref流到存储单元mcref[1]的晶体管tr12的电流imcref[1],1能够以如下算式表示。imcref[1],1=k(vpr+vx[1]-vth)2(e8)也就是说,通过向布线rw[1]供应电位vx[1],从布线blref流到存储单元mcref[1]的晶体管tr12的电流增加△imcref[1]=imcref[1],1-imcref[1],0。另外,考虑流到布线bl[1]和布线blref的电流。向布线blref从电流源电路cs供应电流icref。流过布线blref的电流排出到电流镜电路cm及存储单元mcref[1]、[2]。将从布线blref排出到电流镜电路cm的电流称为icm,1,此时满足下式。icref-icm,1=imcref[1],1+imcref[2],0(e9)向布线bl[1]从电流源电路cs供应电流ic。流过布线bl[1]的电流排出到电流镜电路cm及存储单元mc[1,1]、[2,1]。再者,电流从布线bl[1]流到偏置电路ofst。将从布线bl[1]流到偏置电路ofst的电流称为iα,1,此时满足下式。ic-icm,1=imc[1,1],1+imc[2,1],1+iα,1(e10)根据算式(e1)至算式(e10),能够以下式表示电流iα,0与电流iα,1之差(差异电流△iα)。△iα=iα,0-iα,1=2kvw[1,1]vx[1](e11)如此,差异电流△iα表示对应于电位vw[1,1]与vx[1]之积的值。然后,在时刻t06-t07,布线rw[1]的电位成为接地电位,节点nm[1,1]及节点nmref[1]的电位与时刻t04-t05同样。接着,在时刻t07-t08,布线rw[1]的电位成为比标准电位大vx[1]的电位,布线rw[2]的电位成为比标准电位大vx[2]的电位。因此,电位vx[1]被供应到存储单元mc[1,1]及存储单元mcref[1]的电容器c11,因电容耦合而节点nm[1,1]及节点nmref[1]的电位都上升vx[1]。另外,电位vx[2]被供应到存储单元mc[2,1]及存储单元mcref[2]的电容器c11,因电容耦合而节点nm[2,1]及节点nmref[2]的电位都上升vx[2]。在此,在时刻t07-t08,从布线bl[1]流到存储单元mc[2,1]的晶体管tr12的电流imc[2,1],1能够以如下算式表示。imc[2,1],1=k(vpr-vw[2,1]+vx[2]-vth)2(e12)也就是说,通过向布线rw[2]供应电位vx[2],从布线bl[1]流到存储单元mc[2,1]的晶体管tr12的电流增加△imc[2,1]=imc[2,1],1-imc[2,1],0。此外,在时刻t05-t06,从布线blref流到存储单元mcref[2]的晶体管tr12的电流imcref[2],1能够以如下算式表示。imcref[2],1=k(vpr+vx[2]-vth)2(e13)也就是说,通过向布线rw[2]供应电位vx[2],从布线blref流到存储单元mcref[2]的晶体管tr12的电流增加△imcref[2]=imcref[2],1-imcref[2],0。另外,考虑流到布线bl[1]和布线blref的电流。向布线blref从电流源电路cs供应电流icref。流过布线blref的电流排出到电流镜电路cm及存储单元mcref[1]、[2]。将从布线blref排出到电流镜电路cm的电流称为icm,2,此时满足下式。icref-icm,2=imcref[1],1+imcref[2],1(e14)向布线bl[1]从电流源电路cs供应电流ic。流过布线bl[1]的电流排出到电流镜电路cm及存储单元mc[1,1]、[2,1]。再者,电流从布线bl[1]流到偏置电路ofst。将从布线bl[1]流到偏置电路ofst的电流称为iα,2,此时满足下式。ic-icm,2=imc[1,1],1+imc[2,1],1+iα,2(e15)根据算式(e1)至算式(e8)及算式(e12)至算式(e15),能够以下式表示电流iα,0与电流iα,2之差(差异电流△iα)。△iα=iα,0-iα,2=2k(vw[1,1]vx[1]+vw[2,1]vx[2])(e16)如此,差异电流△iα表示对应于对电位vw[1,1]与电位vx[1]之积和电位vw[2,1]与电位vx[2]之积进行加法的结果的值。然后,在时刻t08-t09,布线rw[1]、[2]的电位成为标准电位,节点nm[1,1]、[2,1]及节点nmref[1]、[2]的电位与时刻t04-t05同样。如算式(e9)和算式(e16)所示,输入到偏置电路ofst的差异电流△iα表示对应于如下结果的值,即对对应于第一数据(权重)的电位vx与对应于第二数据(输入数据)的电位vw之积进行加法的结果。也就是说,通过使用偏置电路ofst对差异电流△iα进行测量,可以获得第一数据与第二数据的积和运算的结果。注意,虽然在上述说明中着眼于存储单元mc[1,1]、[2,1]及存储单元mcref[1]、[2],但是可以任意设定存储单元mc及存储单元mcref的数量。在将存储单元mc及存储单元mcref的行数m设定为任意数量的情况下,能够以下式表示差异电流△iα。△iα=2kσivw[i,1]vx[i](e17)此外,通过使存储单元mc及存储单元mcref的列数n增加,可以使并行的积和运算的数量增加。如上所述,通过使用半导体装置mac,可以对第一数据和第二数据进行积和运算。另外,通过使用图29所示的存储单元mc及存储单元mcref的结构,可以使用以晶体管的数量较少的方式构成积和运算电路。由此,可以缩小半导体装置mac的电路规模。在将半导体装置mac用于利用神经网络的运算时,可以使存储单元mc的行数m对应于供应到一个神经元的输入数据的数量并使存储单元mc的列数n对应于神经元的数量。例如,考虑在图27a所示的中间层hl中进行使用半导体装置mac的积和运算的情况。此时,可以将存储单元mc的行数m设定为从输入层il供应的输入数据的数量(输入层il的神经元的数量)并将存储单元mc的列数n设定为中间层hl的神经元的数量。注意,对使用半导体装置mac的神经网络的结构没有特别的限制。例如,半导体装置mac可以用于卷积神经网络(cnn)、递归神经网络(rnn)、自动编码器及玻尔兹曼机(包括限制玻尔兹曼机)等。如上所述,通过使用半导体装置mac,可以进行神经网络的积和运算。再者,通过将图29所示的存储单元mc及存储单元mcref用于单元阵列ca,可以提供运算精度高、功耗低或电路规模小的集成电路。本实施方式可以与其他实施方式适当地组合。[实施例]在本实施例中,使用<2.布局设计方法1>所示的方法进行布局设计。在本实施例的网格中,网格间隔为1,网格框的大小为20×20(网格面积为400)。抽象体的个数为4,各抽象体的大小为3×3。在步骤s27及步骤s32中,动作值函数q(st,at)的更新时的折扣率γ为0.95。在使第一神经网络及第二神经网络最优化时,使用adam。此外,在选择移动a时,采用ε-greedy算法。在第1回合时ε为1,之后ε以线形变小,在第80000回合时ε为0.1。在第80000回合之后ε为0.1。在步骤s33中,对抽象体的移动的奖励为1-(区块面积/400),区块面积越大奖励越小。此外,在步骤s36中,当能够将连接点连接且满足设计规则时,奖励为0,而当不能将连接点连接或不满足设计规则时,奖励为-1。连接点间的路径使用线搜索算法而决定。图32示出学习的结果。在图32中,横轴表示回合次数(numberofepisodes),纵轴表示奖励(reward)。作为奖励示出累积奖励的每1000个回合的平均值。如图32所示,回合次数越增多,累积奖励越增加。此外,在第20000回合左右时累积奖励饱和,学习收敛。也就是说,可确认到能够学习在满足布局规则的同时可以将抽象体间连接且区块的面积得到最小的布局。[符号说明]abs:抽象体、abs_1:抽象体、abs_2:抽象体、abs_3:抽象体、abs_51:抽象体、abs_52:抽象体、abs_k:抽象体、blk:区块、c11:电容器、c21:电容器、c52:电容器、cp_1:连接点、cp_2:连接点、cp_3:连接点、cp_4:连接点、cp_11:连接点、cp_12:连接点、cp_13:连接点、cp_14:连接点、cp_15:连接点、cpl_2:连接点、cpl_3:连接点、cpl_4:连接点、elm_1:基本单元、elm_2:基本单元、elm_3:基本单元、hl:中间层、il:输入层、limgt:图像数据、limgt+1:图像数据、limgt_1:图像数据、limgt_2:图像数据、mc:存储单元、mcref:存储单元、nn:神经网络、ol:输出层、s11:步骤、s12:步骤、s13:步骤、s14:步骤、s15:步骤、s21:步骤、s22:步骤、s23:步骤、s24:步骤、s25:步骤、s26:步骤、s27:步骤、s28:步骤、s29:步骤、s30:步骤、s31:步骤、s32:步骤、s33:步骤、s34:步骤、s35:步骤、s36:步骤、s101:步骤、s102:步骤、s103:步骤、s104:步骤、s105:步骤、s106:步骤、s107:步骤、s108:步骤、s109:步骤、s110:步骤、tr11:晶体管、tr12:晶体管、tr21:晶体管、tr22:晶体管、tr23:晶体管、tr51:晶体管元件、90:存储单元阵列、91:字线驱动电路、92:位线驱动电路、100:布局设计系统、101:输入部、102:传送通道、103:处理部、105:存储部、107:数据库、109:输出部、111:工序信息、113:晶体管参数、115:单元库、117:设计规则、119:电路图、121:布局数据、123:网格信息、150:布局设计系统、151:服务器、152:终端、161a:通信部、161b:通信部、162:传送通道、163a:处理部、163b:处理部、165:存储部、167:数据库、168:传送通道、169:输入输出部、301:半导体层、303:栅电极、305:源电极、307:漏电极、309:上部电极、311:下部电极、320:区域、331_1:连接区域、331_2:连接区域、331_3:连接区域、331_4:连接区域、331_5:连接区域、341:电路图、520:神经网络、521:输入层、522:中间层、523:输出层、524:卷积层、525:池化层、526:卷积层、527:池化层、528:卷积层、529:全连接层、530:神经网络、531:输入层、532:中间层、533:输出层、534:卷积层、535:池化层、536:卷积层、537:池化层、538:卷积层、539:全连接层、601:网格框、603:网格当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1