WO2018234945A1 - レイアウト設計システム及びレイアウト設計方法 - Google Patents

レイアウト設計システム及びレイアウト設計方法 Download PDF

Info

Publication number
WO2018234945A1
WO2018234945A1 PCT/IB2018/054348 IB2018054348W WO2018234945A1 WO 2018234945 A1 WO2018234945 A1 WO 2018234945A1 IB 2018054348 W IB2018054348 W IB 2018054348W WO 2018234945 A1 WO2018234945 A1 WO 2018234945A1
Authority
WO
WIPO (PCT)
Prior art keywords
layout design
layout
neural network
processing unit
data
Prior art date
Application number
PCT/IB2018/054348
Other languages
English (en)
French (fr)
Inventor
筒井直昭
幸村雄介
岩城裕司
山崎舜平
Original Assignee
株式会社半導体エネルギー研究所
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 株式会社半導体エネルギー研究所 filed Critical 株式会社半導体エネルギー研究所
Priority to JP2019524545A priority Critical patent/JP7146751B2/ja
Priority to US16/622,054 priority patent/US10949595B2/en
Priority to CN201880041307.2A priority patent/CN110998585A/zh
Publication of WO2018234945A1 publication Critical patent/WO2018234945A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • G06F30/27Design optimisation, verification or simulation using machine learning, e.g. artificial intelligence, neural networks, support vector machines [SVM] or training a model
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • G06F30/392Floor-planning or layout, e.g. partitioning or placement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/004Artificial life, i.e. computing arrangements simulating life
    • G06N3/006Artificial life, i.e. computing arrangements simulating life based on simulated virtual individual or collective life forms, e.g. social simulations or particle swarm optimisation [PSO]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Definitions

  • One aspect of the present invention relates to a layout design system and a layout design method.
  • the technical field of one embodiment of the present invention disclosed in this specification and the like includes a semiconductor device, a display device, a light emitting device, a power storage device, a memory device, a display system, an electronic device, a lighting device, an input device, an input / output device, and the like.
  • the driving method of or the manufacturing method thereof can be mentioned as an example.
  • a semiconductor device refers to any device that can function by utilizing semiconductor characteristics.
  • a transistor, a semiconductor circuit, an arithmetic device, a memory device, and the like are one embodiment of a semiconductor device.
  • an imaging device, an electro-optical device, a power generation device (including a thin film solar cell, an organic thin film solar cell, and the like), and an electronic device may include a semiconductor device.
  • Patent Document 1 discloses an invention in which weight data necessary for calculation using an artificial neural network is held by a storage device using a transistor having an oxide semiconductor in a channel formation region.
  • an object of an aspect of the present invention to provide a layout design system capable of performing layout design in a short time.
  • an object of one embodiment of the present invention is to provide a layout design system which can perform layout design with a small layout area.
  • an object of one embodiment of the present invention is to provide a novel layout design system.
  • an object of one embodiment of the present invention is to provide a layout design method capable of performing layout design in a short time.
  • an object of one embodiment of the present invention is to provide a layout design method capable of performing layout design with a small layout area.
  • an object of one embodiment of the present invention is to provide a novel layout design method.
  • One embodiment of the present invention includes a processing unit, a circuit diagram and layout design information are input to the processing unit, and the processing unit performs Q learning from the circuit diagram and the layout design information.
  • the processing unit has a function of outputting layout data, the processing unit has a first neural network, and the first neural network has an action value in Q learning It is a layout design system that estimates functions.
  • One embodiment of the present invention includes a terminal and a server, the terminal includes an input / output unit, and a first communication unit, and the server includes a processing unit and a second communication unit.
  • the circuit diagram and layout design information are input to the input / output unit, and the first communication unit transmits the circuit diagram and layout design information to the server by one or both of wired communication and wireless communication.
  • the processing unit has a function of generating layout data by performing Q learning from the circuit diagram and the layout design information, and the processing unit transmits the layout data to the second communication unit.
  • the second communication unit has a function of supplying layout data to the terminal by one or both of wired communication and wireless communication, and the processing unit has a first neural network.
  • the first neural network is Q Estimating the action value function in learning, a layout design system.
  • the first neural network is preferably a convolutional neural network.
  • the processing unit further includes a second neural network, and the second neural network estimates teacher data of the action value function, and based on the loss function calculated from the teacher data, Preferably, the weighting factors of the first neural network are updated.
  • the second neural network is preferably a convolutional neural network.
  • the processing unit may have a transistor.
  • the transistor may have a metal oxide in the channel formation region.
  • the transistor may have silicon in a channel formation region.
  • One embodiment of the present invention is to generate layout data by inputting a circuit diagram and layout design information, and performing Q learning from the circuit diagram and the layout design information to create layout data. It is a layout design method of estimating an action value function using a neural network and outputting layout data.
  • the second neural network estimates teacher data of the action value function, and updates the weighting factor of the first neural network based on the loss function calculated from the teacher data.
  • a layout design system capable of performing layout design in a short time.
  • a layout design system that can perform layout design with a small layout area.
  • a novel layout design system can be provided.
  • a novel layout design method can be provided.
  • FIG. 1 is a block diagram illustrating an example of a layout design system.
  • FIG. 6 is a flow diagram illustrating an example of integrated circuit development.
  • FIG. 1 is a block diagram illustrating an example of an integrated circuit.
  • 1 is a block diagram illustrating an example of a layout design system.
  • the flowchart which shows the example of layout design.
  • the flowchart which shows the example of layout design.
  • the flowchart which shows the example of layout design.
  • the figure which shows the example of layout The figure which shows the example of image data.
  • the figure which shows the example of layout The figure which shows the example of image data.
  • the figure which shows the example of layout The figure which shows the example of image data.
  • the figure which shows the example of the structure of a neural network The figure which shows the example of movement of an abstract.
  • the figure which shows the example of movement of an abstract The figure which shows the example of a circuit diagram and an abstract.
  • the figure which shows the example of a connection point and wiring The figure which shows the example of layout data.
  • the figure which shows the example of layout The figure which shows the example of movement of an abstract.
  • 1 is a block diagram illustrating an example of a layout design system.
  • FIG. 7 shows a structural example of a semiconductor device.
  • FIG. 2 shows an example of the configuration of a memory cell.
  • the word "membrane” and the word “layer” can be replaced with each other depending on the situation or depending on the situation.
  • the term “conductive layer” can be changed to the term “conductive film”.
  • the term “insulating film” can be changed to the term “insulating layer”.
  • Embodiment 1 a layout design system according to one embodiment of the present invention will be described with reference to FIGS.
  • a layout design system which is an aspect of the present invention has a function of creating layout data based on circuit diagrams and layout design information.
  • the layout design system which is an aspect of the present invention can be used for layout design of integrated circuits.
  • layout design refers to creating layout data based on circuit diagrams and layout design information.
  • the circuit diagram is a diagram in which an active element such as a transistor or a diode, or a passive element such as a capacitor or a resistor is connected by a diagram and a line.
  • Layout data is information on the shape and arrangement of a semiconductor layer, a conductor layer, etc. transferred to a mask (also referred to as a reticle).
  • a mask also referred to as a reticle
  • an active element and a passive element may be referred to as an element.
  • Layout design information includes cell libraries, design rules and grid information. Details of the layout design information will be described later.
  • a layout design system includes a processing unit.
  • a circuit diagram and layout design information are input to the processing unit.
  • the processing unit has a function of creating layout data from the circuit diagram and layout design information.
  • the layout design system according to the present embodiment can be applied to various layout designs by changing the circuit diagram and layout design information.
  • layout data with a small integrated circuit area can be created as well as the circuit diagram and design rules created by circuit design can be satisfied.
  • the layout design system preferably generates layout data using artificial intelligence (AI) for at least part of the processing.
  • AI artificial intelligence
  • the layout design system preferably generates output data using an artificial neural network (ANN: hereinafter also simply referred to as a neural network).
  • ANN artificial neural network
  • an artificial neural network may be simply referred to as a neural network (NN: Neural Network).
  • a neural network is realized by a circuit (hardware) or a program (software).
  • Reinforcement Learning can be used for layout design.
  • reinforcement learning for example, TD learning (Temporal Difference Learning), Q learning (Q-Learning) or the like can be used.
  • Q-Learning Q learning
  • Q learning is a method of learning the value of an agent to select an action at when the environment is in a state s t at time t .
  • An agent is an acting subject, and an environment is an object to be acted upon. Environment makes a transition from the state S t to state S t + 1 by the agent of the action a t, the agent receives a reward r t + 1.
  • Q-learning the total amount of remuneration to be obtained finally to learn the action a t so as to maximize.
  • the value in the state s t take action a t
  • action-value function Q (s t, a t) can be expressed as.
  • the action value function Q may be referred to as a Q function, and the value of the action value function Q (s t , a t ) may be referred to as a Q value.
  • the update equation of the action value function Q (s t , a t ) can be expressed by Equation 1.
  • is a learning rate ( ⁇ is greater than 0 and 1 or less), and ⁇ is a discount rate ( ⁇ is 0 or more and 1 or less).
  • the learning rate ⁇ indicates whether to emphasize the current value or the result obtained by the action. As the learning rate ⁇ is closer to 1, the obtained result is emphasized, and the change in value becomes larger. As the learning rate ⁇ approaches 0, the current value is emphasized and the change in value decreases.
  • the discount rate ⁇ indicates whether to emphasize the current reward or the future reward. As the discount rate ⁇ is closer to 0, the current reward is emphasized. As the discount rate ⁇ is closer to 1, the future reward is emphasized.
  • the learning rate ⁇ may be 0.10, and the discount rate ⁇ may be 0.90.
  • Deep learning can be used to estimate the aforementioned action value function Q (s t , a t ).
  • Action-value function Q (s t, a t) is referred to as a learning algorithm Deep Q-Learning to use a deep learning in the estimation of, there is a case in which the neural network used in the Deep Q-Learning is referred to as a Deep Q-Network (DQN).
  • DQN Deep Q-Network
  • the layout design system which is an aspect of the present invention particularly preferably uses Deep Q-Learning for layout design, and the Deep Q-Network has a configuration of a Convolutional Neural Network (CNN).
  • CNN Convolutional Neural Network
  • Deep Q-Network may be simply referred to as a neural network.
  • action value function Q in Q-learning (s t, a t) a combination of the states s t and the action a t in advance a lookup table: storing data as (LUT Look Up Table).
  • the number of memories required can be reduced by using a neural network to estimate the action value function Q (s t , a t ).
  • a neural network refers to a general model that imitates a neural network of an organism, determines the connection strength between neurons by learning, and has a problem solving ability.
  • a neural network has an input layer, an output layer, and one or more intermediate layers (hidden layers) between the input layer and the output layer.
  • determining a neuron-to-neuron coupling strength (also referred to as a weighting factor) from existing information may be referred to as “learning”.
  • Neural networks are implemented by a large number of product-sum operations. These arithmetic processing can be performed using one or both of a digital circuit and an analog circuit. When digital circuits are used, the number of required transistors is enormous, which is inefficient and consumes high power. Therefore, the product-sum operation described above is preferably performed by an analog product-sum operation circuit (hereinafter, referred to as APS (Analog Product-Sum circuit)). Also preferably, the APS comprises an analog memory. By storing the weight coefficient obtained by learning in the above-mentioned analog memory, the APS can execute product-sum operation as it is as analog data. As a result, APS can construct a neural network efficiently with a small number of transistors.
  • APS Analog Product-Sum circuit
  • analog memory refers to a storage device capable of storing analog data.
  • analog data refers to data having a resolution of 3 bits (eight values) or more.
  • the multivalued data may be called analog data.
  • an OS memory As the analog memory, a multi-level flash memory, a resistive random access memory (ReRAM), a magnetoresistive random access memory (MRAM), or a memory using an OS transistor (referred to as an OS memory) can be used.
  • ReRAM resistive random access memory
  • MRAM magnetoresistive random access memory
  • OS memory a memory using an OS transistor
  • a transistor in which an oxide semiconductor or a metal oxide is used for a channel formation region is referred to as an oxide semiconductor transistor or an OS transistor.
  • the channel formation region of the OS transistor preferably includes a metal oxide.
  • metal oxide is a metal oxide in a broad expression.
  • Metal oxides are classified into oxide insulators, oxide conductors (including transparent oxide conductors), oxide semiconductors (also referred to as oxide semiconductor or simply OS), and the like.
  • oxide semiconductors also referred to as oxide semiconductor or simply OS
  • the metal oxide may be referred to as an oxide semiconductor. That is, in the case where the metal oxide has at least one of an amplification action, a rectification action, and a switching action, the metal oxide can be called a metal oxide semiconductor, which is abbreviated as OS.
  • the metal oxide contained in the channel formation region preferably contains indium (In).
  • the metal oxide of the channel formation region is a metal oxide containing indium, the carrier mobility (electron mobility) of the OS transistor is high.
  • the metal oxide included in the channel formation region is preferably an oxide semiconductor containing an element M.
  • the element M is preferably aluminum (Al), gallium (Ga), tin (Sn) or the like.
  • Elements applicable to the other elements M include boron (B), silicon (Si), titanium (Ti), iron (Fe), nickel (Ni), germanium (Ge), yttrium (Y), zirconium (Zr) And molybdenum (Mo), lanthanum (La), cerium (Ce), neodymium (Nd), hafnium (Hf), tantalum (Ta), tungsten (W) and the like.
  • the element M a plurality of the aforementioned elements may be combined in some cases.
  • the element M is, for example, an element having a high binding energy to oxygen. For example, it is an element whose binding energy to oxygen is higher than that of indium.
  • the metal oxide contained in the channel formation region is preferably a metal oxide containing zinc (Zn). Metal oxides containing zinc may be easily crystallized.
  • the metal oxide contained in the channel formation region is not limited to the metal oxide containing indium.
  • the semiconductor layer may be, for example, a metal oxide containing zinc, a metal oxide containing zinc, a metal oxide containing gallium, a metal oxide containing tin, or the like, such as zinc tin oxide or gallium tin oxide.
  • Layout Design System Configuration The configuration of the layout design system 100 will be described.
  • a block diagram of a layout design system 100 is shown in FIG.
  • the layout design system 100 includes at least a processing unit 103.
  • the layout design system 100 shown in FIG. 1 further includes an input unit 101, a transmission path 102, a storage unit 105, a database 107, and an output unit 109.
  • Information is supplied to the input unit 101 from the outside of the layout design system 100.
  • the information supplied to the input unit 101 is supplied to the processing unit 103, the storage unit 105, or the database 107 via the transmission path 102.
  • Examples of the information supplied to the input unit 101 include a circuit diagram and layout design information.
  • the transmission path 102 has a function of transmitting information. Transmission and reception of information among the input unit 101, the processing unit 103, the storage unit 105, the database 107, and the output unit 109 can be performed through the transmission path 102.
  • the processing unit 103 has a function of performing layout design using the information supplied from the input unit 101, the storage unit 105, the database 107, and the like, and creating layout data.
  • the processing unit 103 can supply layout data and the like to the storage unit 105, the database 107, the output unit 109, and the like.
  • a transistor having a metal oxide in a channel formation region is preferably used. Since the transistor has extremely low off-state current, the data retention period can be secured for a long time by using the transistor as a switch for retaining charge (data) flowing into a capacitor functioning as a memory element. .
  • the processing unit 103 is operated only when necessary, and in the other case, the information of the previous processing is saved in the storage element Thus, normally-off computing can be performed, and power consumption of the layout design system can be reduced.
  • the processing unit 103 includes, for example, an arithmetic circuit or a central processing unit (CPU).
  • CPU central processing unit
  • the processing unit 103 may have a microprocessor such as a digital signal processor (DSP) or a graphics processing unit (GPU).
  • the microprocessor may have a configuration realized by a PLD (Programmable Logic Device) such as a Field Programmable Gate Array (FPGA) or a Field Programmable Analog Array (FPAA).
  • PLD Programmable Logic Device
  • FPGA Field Programmable Gate Array
  • FPAA Field Programmable Analog Array
  • the processing unit 103 can perform various data processing and program control by interpreting and executing instructions from various programs by the processor.
  • a program that can be executed by the processor is stored in at least one of a memory area of the processor and a storage unit 105.
  • the processing unit 103 may have a main memory.
  • the main memory has at least one of volatile memory such as random access memory (RAM) and non-volatile memory such as read only memory (ROM).
  • RAM random access memory
  • ROM read only memory
  • a RAM for example, a dynamic random access memory (DRAM), a static random access memory (SRAM), or the like is used, and a memory space is virtually allocated and used as a work space of the processing unit 103.
  • the operating system, application programs, program modules, program data, lookup tables, etc. stored in the storage unit 105 are loaded into the RAM for execution. These data, programs, and program modules loaded in the RAM are directly accessed and operated by the processing unit 103, respectively.
  • the ROM can store a BIOS (Basic Input / Output System), firmware and the like which do not require rewriting.
  • BIOS Basic Input / Output System
  • Examples of the ROM include a mask ROM, an OTP ROM (One Time Programmable Read Only Memory), and an EPROM (Erasable Programmable Read Only Memory).
  • Examples of the EPROM include a UV-EPROM (Ultra-Violet Erasable Programmable Read Only Memory), an EEPROM (Electrically Erasable Programmable Read Only Memory), a flash memory, and the like, which can erase stored data by ultraviolet irradiation.
  • the storage unit 105 has a function of storing a program executed by the processing unit 103.
  • the storage unit 105 may have a function of storing layout data generated by the processing unit 103 and information input to the input unit 101.
  • the storage unit 105 includes at least one of volatile memory and non-volatile memory.
  • the storage unit 105 may have, for example, a volatile memory such as a DRAM or an SRAM.
  • the storage unit 105 is, for example, a resistance change type memory represented by ReRAM (Resistive Random Access Memory), PRAM (Phase change Random Access Memory), FeRAM (Ferroelectric Random Access Memory), MRAM (Magnetoresistive Random Access Memory), etc.
  • a non-volatile memory such as a flash memory.
  • the storage unit 105 may have a recording media drive such as a hard disk drive (HDD) and a solid state drive (SSD).
  • HDD hard disk drive
  • SSD solid state drive
  • the database 107 has a function of storing cell libraries and design rules.
  • the database 107 may also have a function of storing layout data generated by the processing unit 103 and information input to the input unit 101. Note that the storage unit 105 and the database 107 may not be separated from each other.
  • the layout design system may have a storage unit having the functions of both the storage unit 105 and the database 107.
  • the output unit 109 has a function of supplying information to the outside of the layout design system 100. For example, layout data and the like created by the processing unit 103 can be supplied to the outside.
  • Layout design method 1 The layout design method will be described.
  • FIG. 2 shows a development flow of an analog circuit as an example of an integrated circuit, and shows from the step of determining the specification of the analog circuit to the step of completing the creation of layout data.
  • Step S11 is a step of determining the specification of the desired integrated circuit.
  • the specification of the integrated circuit includes, for example, the characteristics and size of the integrated circuit.
  • Step S12 is a step of designing a circuit.
  • the cell library 115 and the transistor parameter 113 stored in the process information 111 are mainly referred to, and a circuit diagram 119 satisfying the specification determined in step S11 is created.
  • circuits of the same specification can be realized in various manners.
  • a cell library is a database of basic cells.
  • a basic cell may refer to individual elements such as transistors, capacitors and the like.
  • a basic cell may sometimes refer to a logic gate such as an AND gate, a NAND gate, an OR gate, or a NOR gate which is a logic operation element.
  • the transistor parameters are information of elements used in the integrated circuit.
  • the transistor parameters include, for example, the channel length, channel width, and mobility of the transistor.
  • Step S13 is a step of performing a simulation. In step S13, it is checked whether the circuit diagram 119 created by the circuit design in step S12 satisfies the specification determined in step S11. If the specifications are not satisfied, the circuit design in step S12 is performed again.
  • Step S14 is a step of performing layout design.
  • the layout data 121 is created by mainly referring to the circuit diagram 119 created in step S 12, the cell library 115, and the design rule 117 stored in the process information 111.
  • the layout design system 100 which is an aspect of the present invention can be used for the layout design in step S14.
  • the design rule refers to the minimum value of the dimensions and spacing of components (semiconductor layers, conductive layers, etc.) of each element, and is a restriction in layout design.
  • the design rule includes, for example, the maximum value and the minimum value of the width of the wiring, the distance between the wiring and the adjacent wiring, the distance between the wiring and the adjacent element, the size of the contact hole, and the like.
  • Step S15 is a step of performing Design Rule Check (DRC) and Layout versus Schematic (LVS).
  • DRC Design Rule Check
  • LVS Layout versus Schematic
  • FIG. 2 has been described by taking an analog circuit as an example, the layout design system 100 which is an aspect of the present invention can also be applied to digital circuits or analog / digital circuits. Further, the layout design system 100 may be applied not to the entire circuit but to part of the circuit.
  • a memory circuit configuration is described as an example of the integrated circuit.
  • a block diagram of the memory circuit is shown in FIG. In the block diagram shown in FIG. 3, the memory cell array 90, the word line drive circuit 91, and the bit line drive circuit 92 are illustrated.
  • Memory cell array 90 has memory cells MC provided in a matrix of m rows and n columns (m and n are natural numbers). Memory cells MC are connected to word lines WL_1 to WL_m and bit lines BL_1 to BL_n. In the memory cell MC, in addition to the bit line and the word line, a source line for supplying current, a wiring for applying a voltage to the back gate of the transistor, or a capacitance line for setting one electrode of the capacitor element to a fixed potential. It may be connected to the like.
  • the word line drive circuit 91 is a circuit that outputs a signal for selecting a memory cell MC in each row.
  • the word lines WL_1 to WL_m may have separate word lines for writing and reading.
  • the bit line drive circuit 92 is a circuit for writing data to the memory cell MC in each column or reading data from the memory cell MC.
  • the bit lines BL_1 to BL_n may have separate bit lines for writing and reading.
  • the memory cell MC has a plurality of elements such as a transistor and a capacitor.
  • the layout design system 100 which is an aspect of the present invention can be applied to the layout design of elements in the memory cell MC.
  • a layout design system 100 which is an aspect of the present invention has a function of creating layout data 121 based on circuit diagrams and layout design information.
  • the layout design information includes a cell library 115, design rules 117 and grid information 123.
  • a block diagram showing an example of the layout design system 100 is shown in FIG.
  • the layout design system 100 which is an aspect of the present invention inputs the circuit diagram 119, the cell library 115, the design rule 117 and the grid information 123, and outputs the layout data 121.
  • FIG. 5 and FIG. 6 The flow of the layout design method using the layout design system 100 is shown in FIG. 5 and FIG.
  • the flows shown in FIGS. 5 and 6 correspond to the layout design shown in step S14 of FIG. 2, and are flows for creating the layout data 121 based on the circuit diagram 119 and the layout design information.
  • the arrangement of elements is determined, and then the wiring path between elements is determined.
  • layout data with a small integrated circuit area can be created as well as the circuit diagram and design rules created by circuit design can be satisfied.
  • step S26 there is a case where one flow from the observation of the layout state in step S26 to the update of the action value function Q (s t , a t ) in step S33 and step S36 is described as one episode. is there.
  • action-value function Q (s t, a t) the number of times that has been updated, there may be referred to as episode number of times.
  • Step S21 is a step of acquiring a circuit diagram and layout design information.
  • the circuit diagram 119 created in the above-described step S12 can be used.
  • the circuit diagram 119 and the layout information are input to the input unit 101 from the outside of the layout design system 100.
  • the circuit diagram 119 is supplied from the input unit 101 to the processing unit 103 via the transmission path 102.
  • the circuit diagram 119 and the layout information may be stored in the storage unit 105 or the database 107 through the transmission path 102 and supplied from the storage unit 105 or the database 107 to the processing unit 103 through the transmission path 102. Good.
  • a net list may be used in which elements and connection relationships between elements are described in hardware description language (HDL).
  • HDL hardware description language
  • SPICE Simulation Program with Integrated Circuit Emphasis
  • Layout design information includes cell libraries, design rules and grid information.
  • the grid information is the size of the grid frame and the value of the grid interval.
  • the grid is a grid formed by periodically crossing a plurality of straight lines.
  • the grid frame refers to the outer periphery of the area where the grid is provided, and is rectangular.
  • Grid spacing refers to the spacing of the straight lines that make up the grid.
  • the grid spacing is preferably set to a value equal to or smaller than the minimum value of the wiring width defined by the design rule.
  • the size of the grid frame is an integral multiple of the grid interval.
  • the term “rectangle” refers to a quadrangle in which all four internal angles are right angles, and includes a square.
  • Step S22 is a step in which the processing unit 103 creates a grid.
  • the grid frame 601 and the grid 603 are created based on the grid information acquired in step S21.
  • An example of the grid frame 601 and the grid 603 is shown in FIG.
  • an example is shown in which a square grid is used in which the straight lines to be constructed are orthogonal to each other at equal intervals.
  • Step S23 is a step in which the processing unit 103 creates a basic cell and an abstract in a grid frame.
  • FIGS. 8 (B) and 8 (C) Based on the circuit diagram 119 acquired in step S21, a basic cell is created. Examples of basic cells are shown in FIGS. 8 (B) and 8 (C).
  • FIG. 8B illustrates a transistor element including the semiconductor layer 301, the gate electrode 303, the source electrode 305, and the drain electrode 307.
  • FIG. 8C illustrates a capacitor including the upper electrode 309 and the lower electrode 311 having a region overlapping with the upper electrode 309. Note that FIGS. 8B and 8C illustrate an example in which an element is used as a basic cell as an example of an analog circuit; however, one embodiment of the present invention is not limited to this. In the case of an analog circuit, a logic gate or the like can be used as a basic cell.
  • the element may be electrically connected to another element.
  • the element may be electrically connected to a word line, a bit line, or the like (hereinafter referred to as a signal line).
  • a signal line a word line, a bit line, or the like.
  • connection area A region where an element or signal line electrically connects to another element or signal line is referred to as a connection area.
  • three regions of the gate electrode 303, the source electrode 305, and the drain electrode 307 can be connection regions.
  • the upper electrode 309 and the lower electrode 311 can be used as connection regions.
  • connection point A position at which an element or signal line electrically connects to another element or signal line is referred to as a connection point.
  • the connection points can be provided in the aforementioned connection area.
  • the connection points of the elements or signal lines indicate positions where they can be electrically connected to the connection points of other elements or signal lines.
  • the connection point may correspond to the position of the contact hole.
  • connection region and the connection point are specifically described using the transistor element and the capacitor element illustrated in FIGS. 8B and 8C.
  • regions of the gate electrode 303, the source electrode 305, and the drain electrode 307 are referred to as connection regions 331_1 to 331_3, respectively.
  • the connection area 331_1 to the connection area 331_3 are illustrated in FIG.
  • Connection points can be provided in each of the connection regions 331_1 to 331_3.
  • An example of connection points provided in the connection regions 331_1 to 331_3 is illustrated in FIG. 9B.
  • FIG. 9B An example of connection points provided in the connection regions 331_1 to 331_3 is illustrated in FIG. 9B.
  • connection point CP_11 provided in the connection area 331_1, a connection point CP_12 provided in the connection area 331_2, and a connection point CP_13 provided in the connection area 331_3.
  • connection points CP_11 to CP_13 illustrated in FIG. 9B are an example, and the positions of the connection points are not limited thereto.
  • the connection area 331 _ 4 is shown in FIG. 9C
  • the connection area 331 _ 5 is shown in FIG.
  • a connection point CP_14 and a connection point CP_15 can be provided in the connection area 331_4 and the connection area 331_5, respectively.
  • An example of the connection point CP_14 for the connection area 331_4 is shown in FIG. 9E
  • an example of the connection point CP_15 for the connection area 331_5 is shown in FIG. 9F.
  • the connection point CP_14 and the connection point CP_15 illustrated in FIGS. 9E and 9F are merely examples, and the positions of the connection points are not limited thereto.
  • FIG. 10A shows three basic cells of the basic cell ELM_1 to the basic cell ELM_3.
  • a basic cell ELM_1 and a basic cell ELM_2 indicate a transistor element, and a basic cell ELM_3 indicates a capacitive element.
  • FIG. 10B An abstract will be specifically described using three basic cells of the basic cell ELM_1 to the basic cell ELM_3 shown in FIG.
  • the smallest rectangle that covers the entire basic cell ELM_1 and has an outer periphery on the grid 603 is abstract ABS_1.
  • the smallest rectangle that covers the whole of the basic cell ELM_2 and has an outer periphery on the grid 603 is the abstract ABS_2.
  • the smallest rectangle that covers the whole of the basic cell ELM_3 and has an outer periphery on the grid 603 is abstract ABS_3.
  • hatchings of abstract ABS_1 to abstract ABS_3 are shown transparently in order to clearly show the positional relationship between the basic cell and the abstract.
  • FIGS. 10A and 10B illustrate three basic cells ELM_1 to ELM_3, one embodiment of the present invention is not limited to this.
  • k abstracts of abstract ABS_1 to abstract ABS_k are created.
  • Step S24 is a step in which the processing unit 103 sets a reward r t .
  • the minimum rectangle covering all the abstracts arranged in the grid frame 601 is a block, and the area of the block is calculated.
  • the perimeter of the block is created only on the grid 603.
  • An example of the abstract ABS_1 to the abstract ABS_3 shown in FIG. 10 (B) and the block BLK corresponding thereto is shown in FIG. 11 (A).
  • the reward r t is determined according to the area of the block BLK.
  • the relationship between the area of the block BLK and the reward r t is shown in FIG.
  • the horizontal axis indicates the area of the block BLK
  • the vertical axis indicates the reward r t .
  • FIG. 11 (B) As shown in FIG. 11 (B), as the reward r t area of the block BLK is small is high, setting a small enough reward r t a larger area of the block BLK. With setting as the area of the block BLK is smaller reward r t becomes high, train the neural network so that the area of the block BLK is reduced, it is possible to perform a small layout design of the area.
  • the value of the reward r t be a finite value.
  • the reward r t can be ⁇ 1 or more and 1 or less.
  • reward r t the area of the block BLK is an example that decreases exponentially, one embodiment of the present invention is not limited thereto.
  • the reward r t may decrease linearly with respect to the area of the block BLK.
  • the setting of compensation r t an example is shown in which the more reward r t area of the block BLK is small is high, one embodiment of the present invention is not limited thereto.
  • Step S25 is a step in which the processing unit 103 arranges the abstract at random in the layout frame.
  • All k abstract ABS_1 to abstract ABS_k created in step S22 are randomly arranged in the grid frame 601.
  • the randomly arranged state can be called an initial arrangement.
  • An example of the initial arrangement of the abstracts ABS_1 to ABS_k is shown in FIG.
  • Step S26 is a step of observing the layout state s t abstract processing unit 103.
  • Layout state s t is stored in the storage unit 105 as image data LIMG t layout.
  • image data LIMG t layout Corresponding to the layout state s t abstract ABS_1 to abstract ABS_k shown in FIG. 12 (A), it shows an example of image data LIMG t layout in FIG. 12 (B).
  • the image data LIMG t has only abstract grid may not have.
  • Image data LIMG layout t may be a grayscale, black and white or color images.
  • the image data LIMG t layout using grayscale images In this embodiment, the image data LIMG t layout using grayscale images.
  • the abstract ABS_1 to the abstract ABS_k are hatched, and the hatched area is a gray scale area.
  • FIG. 13 (A) An example of a layout having three abstracts ABS_1 to ABS_3 is shown in FIG. 13 (A).
  • a cross-sectional view taken along the alternate long and short dash line A-B in FIG. 13A is shown in FIG.
  • FIGS. 13A and 13B show an example in which elements ELM_1 to ELM_3 respectively corresponding to abstract ABS_1 to abstract ABS_3 are formed in the same layer. Since the elements ELM_1 to ELM_3 are formed in the same layer, it is preferable that the abstract ABS_1 to the abstract ABS_3 have a layout in which they do not overlap with each other.
  • Image data LIMG t corresponding to the layout shown in FIG. 13 (A), shown in Figure 14.
  • FIG. 15 (A) An example of a layout having three abstracts ABS_1 to ABS_3 is shown in FIG. 15 (A).
  • FIG. 15A A cross-sectional view taken along the alternate long and short dash line C-D in FIG. 15A is shown in FIG.
  • the element ELM_1 and the element ELM_2 corresponding to the abstract ABS_1 and the abstract ABS_2 are formed in the same layer
  • the element ELM_3 corresponding to the abstract ABS_3 is the element ELM_1 and the element
  • An example of forming in a layer different from ELM_2 is shown.
  • FIG. 15B illustrates a region 320 including a wiring for electrically connecting any one or more of the element ELM_1 and the element ELM_2 to the element ELM_3.
  • Image data corresponding to the layout shown in FIG. 15 (A) is shown in FIGS. 16 (A) and 16 (B).
  • Image data LIMG t _1 shown in FIG. 16 (A) has an abstract ABS_1 and abstract ABS_2 are formed in the same layer.
  • the image data LIMG t _2 shown in FIG. 16B has an abstract ABS_3 formed in a layer different from the abstract ABS_1 and the abstract ABS_2.
  • Abstracts formed in the same layer can be used as one image data, and abstracts formed in different layers can be used as different image data. For example, if the layer abstract is formed of p pieces can be a p number of image data of the image data LIMG t _1 through the image data LIMG t _p.
  • Step S27 is a step in which the processing unit 103 estimates the action value function Q (s t , a t ).
  • the processing unit 103 has a first neural network 520, and estimates the action value function Q (s t , a t ) by the first neural network 520.
  • the first neural network 520 as input data the image data LIMG t layout created in step S26, action value function Q (s t, a t) as output data. It is preferable to use a configuration of a convolutional neural network (CNN) as the first neural network 520.
  • CNN convolutional neural network
  • FIG. 17A shows an example using the configuration of a convolutional neural network (CNN) as a neural network.
  • the first neural network 520 shown in FIG. 17A includes an input layer 521, an intermediate layer 522, and an output layer 523.
  • the image data LIMG t of the input data layout act as the output data value function Q (s t, a 1) to the action value function Q (s t, a m) shows.
  • the movement can take is present m different mobile a 1 to move a m, each of the action value function corresponding to the movement Q (s t, a 1) to the action value function Q (s t, a m ).
  • the movement a with the highest Q value can be selected as the movement of the next abstract.
  • the middle layer 522 is configured of a convolution layer 524, a pooling layer 525, a convolution layer 526, a pooling layer 527, a convolution layer 528, and a total bonding layer 529.
  • the configuration of the intermediate layer 522 is an example, the number of the intermediate layer 522 may be one or more, and the number and configuration of the layers are not particularly limited.
  • the pooling process and the convolution operation process may be performed in multiple layers, or may be performed via operation processes such as padding and stride.
  • the filter is not shown in FIG.
  • a color image of a layout acquired in step S25 converts the color image into a gray scale image may be used an image of the gray-scale as the input data.
  • the NTSC weighted average method can be used for conversion to gray scale.
  • a plurality of types of filters corresponding to each channel may be used in the convolutional layer of the first neural network 520.
  • a plurality of image data LIMG t is for each of the image data LIMG t, may use different filters.
  • the possible movement a t of the abstract will be described.
  • the possible movement a t per one abstract ABS moves +1 in the X axis direction, moves -1 in the X axis direction, moves +1 in the Y axis direction, moves -1 in the Y axis direction, 90 in situ
  • An example in which the abstract ABS moves by +1 in the X-axis direction is shown in FIG.
  • An example in which the abstract ABS moves -1 in the X-axis direction is shown in FIG.
  • An example in which the abstract ABS moves by +1 in the Y-axis direction is shown in FIG.
  • An example in which the abstract ABS moves by -1 in the Y-axis direction is shown in FIG.
  • FIG. 19 (C) An example in which the abstract ABS does not move is shown in FIG. 19 (C).
  • the movement in the X-axis direction and the Y-axis direction has a grid interval of 1 unit. Further, among the four vertices of the abstract ABS, the vertex with the smallest X coordinate and Y coordinate is used as a reference point.
  • FIG. 18A to FIG. 18C, FIG. 19A and FIG. 19C the reference points are indicated by black dots.
  • the abstract in the movement shown in FIG. 19B that rotates by 90 °, the abstract is rotated 90 ° counterclockwise (counterclockwise), and the reference point before rotation and the rotation after rotation are obtained.
  • the reference points are at the same coordinates.
  • the rotation of the abstract since the grids in which the straight lines to be constructed are orthogonal to each other, the rotation of the abstract is 90 °.
  • the angle formed by the straight lines can be the rotation angle of the abstract.
  • rotation of the abstract may be used in two ways of 30 ° and 150 ° as possible actions of the abstract.
  • the output data can be 16 of the action value function Q (s t , a 1 ) to the action value function Q (s t , a 16 ) .
  • the movement a with the highest Q value can be selected as the movement of the next abstract.
  • the ⁇ -greedy method may be applied to the selection of the movement a.
  • the movement a which gives the highest Q value with the probability of (1- ⁇ ) is selected, and the movement a is randomly selected with the probability of ⁇ ( ⁇ is greater than 0 and less than 1).
  • the movement a with the highest Q value can be selected with a probability of 0.95 (95%), and the movement a can be selected randomly with a probability of 0.05 (5%).
  • Step S28 is a step to determine whether or not the connection point can be connected by the processing unit 103.
  • a layout of running movement a t selected in step S27 is determined whether the connection point of the basic cell ELM corresponding to the abstract ABS can be connected so as to satisfy the connection relationship of the circuit diagram 119.
  • FIG. 20A shows a circuit diagram 341 of a memory circuit including one transistor element Tr51 and one capacitor element C52.
  • FIG. 20A includes a word line WL, a bit line BL, and a ground potential line GND in addition to the elements. Note that although a circuit example including two elements is shown to simplify the description, one embodiment of the present invention is not limited to this.
  • FIG. 20B shows an abstract ABS_51 corresponding to the transistor element Tr51 and an abstract ABS_52 corresponding to the capacitive element C52.
  • FIG. 21A shows a transistor element Tr51, an abstract ABS_51 corresponding to the transistor element Tr51, a capacitive element C52, and an abstract ABS_52 corresponding to the capacitive element C52.
  • FIG. 21A hatching of abstract ABS_51 and abstract ABS_52 is shown transparently in order to clarify the positional relationship.
  • connection point of the transistor element Tr51 and the capacitive element C52 is shown in FIG.
  • the transistor element Tr51 has a connection point CP_2 in the region of the gate electrode, a connection point CP_1 in the region of the source electrode, and a connection point CP_4 in the region of the drain electrode.
  • the capacitive element C52 has a connection point CP_1 in the region of the upper electrode and CP_3 in the region of the lower electrode.
  • the connection points are provided on the grid in the connection area.
  • FIG. 21B in order to make the connection relationship easy to understand, the same reference numerals are given to connection points electrically connected to each other. Connection points with the same reference numeral indicate that they are connected by wiring.
  • the connection point CP_1 of the transistor element Tr51 and the connection point CP_1 of the capacitive element C52 are connected by a wire.
  • connection points of the signal lines are arranged on the grid.
  • the connection points of the signal lines can be arranged at arbitrary positions on the grid.
  • An example of each connection point of the word line WL, the ground potential line GND and the bit line BL is shown in FIG. 22 (A) with respect to the element shown in FIG. 21 (B).
  • FIG. 22A shows a connection point CPL_2 of the word line WL, a connection point CPL_3 of the ground potential line GND, and a connection point CPL_4 of the bit line BL.
  • a connection point CPL_2 of the word line WL is a connection point connected to a connection point CP_2 of the transistor element Tr51 by a wire.
  • connection point CPL_3 of the ground potential line GND is a connection point connected to a connection point CP_3 of the capacitive element C52 by a wire.
  • the connection point CPL_4 of the bit line BL is a connection point connected to the connection point CP_4 of the transistor element Tr51 by a wire.
  • the wiring connecting the connection points is provided only on the grid.
  • FIG. 22 (B) The wiring for the connection point shown in FIG. 22 (A) is shown in FIG. 22 (B).
  • wirings are indicated by solid lines, and an example in which an example of wirings satisfying all the connection relationships based on the circuit diagram 341 can be arranged is shown.
  • a line segment search method, a maze method, a channel assignment method or the like can be used as an algorithm for determining the wiring path.
  • line segment search method line segments are formed sequentially from the two points to be connected in the X-axis direction and the Y-axis direction, and when the line segment from the start point and the line segment from the end point intersect, It is a method of tracing the path in the reverse direction from.
  • step S29 If it is possible to arrange a wire that satisfies all the connection based on the circuit diagram (Yes), the process proceeds to step S29. If the wiring can not be arranged (No), the process proceeds to step S36.
  • Step S29 is a step of determining whether the processing unit 103 satisfies the design rule.
  • the target of determination is a layout obtained by converting the arrangement of the element and the wiring created in step S28 into a pattern of the element and the wiring.
  • the criterion is a design rule.
  • FIG. 23 shows a diagram obtained by converting the arrangement of the element and the wiring shown in FIG. 22B into a pattern of the element and the wiring.
  • FIG. 23 is an example of layout data.
  • the wiring pattern can be within the range of the maximum and the minimum of the width of the wiring defined in the design rule.
  • a part of the connection point is converted into a contact hole.
  • the size of the contact hole can be within the range of the maximum value and the minimum value of the size of the contact hole defined in the design rule.
  • FIG. 23 shows a diagram in which a part of the connection points is converted into the contact holes CO_1 to CO_6.
  • step S30 If the layout of the pattern satisfies the design rule (Yes), the process proceeds to step S30. If the design rule is not satisfied (No), the process proceeds to step S36.
  • FIG. 24 is a schematic view three-dimensionally showing a circuit configuration.
  • Step S30 is a step in which the processing unit 103 moves the abstract. The movement follows the movement a t selected in step S27.
  • FIG. Figure 25 is a moving a t selected in step S27, illustrates an example in which the selected the abstract ABS_2 is -1 moved in the X-axis direction.
  • one abstract moves in one episode, but it is not limited to this.
  • a plurality of abstracts may move.
  • Step S31 is a step of observing the layout state st + 1 of the abstract in the processing unit 103.
  • Layout state s t + 1 is the movement a t the step S27, in which the layout state s t at step S25 is changed.
  • Layout state s t + 1 is stored in the storage unit 105 as image data LIMG t + 1 layout.
  • Step S32 is a step in which the processing unit 103 estimates the action value function Q ( st + 1 , at + 1 ).
  • the weighting coefficients of the neural network are updated so that the error between the output data and the teacher data is reduced.
  • the updating of the weighting factor is repeated until the error between the output data and the teacher data becomes constant.
  • Q learning which is a type of reinforcement learning, is for the purpose of learning an optimal Q function search, but during learning the optimal Q function is unknown. Therefore, the action value function Q ( st + 1 , at + 1 ) at the next time t + 1 is estimated, and rt + 1 + maxQ (st + 1 , at + 1 ) is regarded as teacher data. Learning of the first neural network 520 is performed by using the teacher data as a loss function.
  • the processing unit 103 has a second neural network 530, and estimates the action value function Q ( st + 1 , at + 1 ) by the second neural network 530.
  • the second neural network 530 takes the image data LIMG t + 1 of the layout created in step S31 as input data, and takes the action value function Q ( st + 1 , at + 1 ) as output data. It is preferable to use a configuration of a convolutional neural network (CNN) as the second neural network 530.
  • CNN convolutional neural network
  • the configuration of the second neural network 530 is shown in FIG. FIG. 17B shows an example using the configuration of a convolutional neural network (CNN) as a neural network.
  • the second neural network 530 shown in FIG. 17B includes an input layer 531, an intermediate layer 532 and an output layer 533.
  • the image data LIMG t + 1 of the layout which is input data, and the action value function Q (s t + 1 , a 1 ) to the action value function Q (s t + 1 , a m ) as the output data are shown.
  • the highest Q value among the action value function Q (s t + 1 , a 1 ) to the action value function Q (s t + 1 , a m ) and the sum of the reward r t + 1 are used as teacher data for the inference of the first neural network be able to.
  • the middle layer 532 is composed of a convolution layer 534, a pooling layer 585, a convolution layer 536, a pooling layer 537, a convolution layer 538 and an all coupling layer 539.
  • the configuration of the intermediate layer 532 is an example, and the pooling process and the convolution operation process may be performed in multiple layers, or may be performed via operation processes such as padding and stride.
  • the filter is not shown in FIG. 17 (B).
  • one neural network may be used in steps S27 and S32. Further, different neural networks may be used in step S27 and step S32.
  • Step S33 is a step in which the processing unit 103 receives the reward r t + 1 and updates the action value function Q (s t , a t ).
  • the loss function is calculated using the inference result of the action value function Q (s t , a t ) by the first neural network 520 and the teacher data created by the second neural network 530.
  • Stochastic Gradient Descent SGD is used to update the weighting factors of the first neural network 520 so that the value of the loss function becomes smaller.
  • Adam Adaptive Moment Estimation
  • Momentum Momentum
  • AdaGrad Adaptive SubGradient Methods
  • RMSProp etc.
  • Step S34 is a step in which the processing unit 103 determines whether the ending condition A is satisfied. If the end condition A is satisfied (Yes), the process proceeds to step S35. If the end condition A is not satisfied (No), the process proceeds to observation of the layout state in step S26. Thereafter, by repeating steps S26 to S33, the weighting factors of the first neural network 520 and the second neural network 530 are updated, and the first neural network 520 and the second neural network 530 are optimized. . By optimizing the first neural network 520 and the second neural network 530, the layout design system 100 can perform layout design with a small area while meeting design rules in a short time.
  • the end condition A an elapsed time from the start of the layout design flow shown in FIGS. 5 and 6 can be used.
  • the termination condition A it is possible to prevent the layout design from being finished because the algorithm does not converge.
  • Step S35 is a step in which the processing unit 103 determines whether the end condition B is satisfied.
  • the layout design is ended and the layout data is output.
  • layout data shown in FIG. 23 can be output as layout data.
  • the process proceeds to the arrangement of the abstract in step S25, and learning is advanced from the initial arrangement of the abstract. Thereafter, by repeating steps S26 to S33, the weighting factors of the first neural network 520 and the second neural network 530 are updated, and the first neural network 520 and the second neural network 530 are optimized. .
  • the layout design system 100 can perform layout design with a small area while meeting design rules in a short time.
  • the number of episodes can be used as the end condition B.
  • Step S36 If the connection point can not be connected in step S28, or if the design rule is not satisfied in step S29, the process proceeds to step S36.
  • the processing unit 103 receives the reward r t and updates the action value function Q (s t , a t ).
  • the reward r t in step S36 is a value smaller than the reward r t in step S33.
  • a negative value may be used as the reward r t .
  • the reward r t can be ⁇ 1.
  • Layout design method 2> The above ⁇ 2. A layout design method different from the layout design method shown in layout design method 1> will be described. ⁇ 2. What is different from the layout design method 1> is a method of estimating the action value function Q (s t , a t ) in step S27. The other steps can refer to the above description, and thus detailed description will be omitted.
  • step S27 the processing unit 103 estimates the action value function Q (s t , a t ).
  • the processing unit 103 has a first neural network 520, and estimates the action value function Q (s t , a t ) by the first neural network 520.
  • action value function Q (s t, a t) as output data. It is preferable to use a configuration of a convolutional neural network (CNN) as the first neural network 520.
  • CNN convolutional neural network
  • the configuration of the first neural network 520 can be referred to the above description, and thus the detailed description is omitted.
  • an object for which the action value function Q (s t , a t ) is estimated is one abstract ABS.
  • Moving a t a single abstract can take is, +1 is moved in the X-axis direction, -1 moves in the X-axis direction, +1 moves in the Y-axis direction and -1 moves in the Y-axis direction, 90 ° in situ
  • abstract ABS_i one abstract to be moved is denoted as abstract ABS_i.
  • Table 2 shows an example of output data when the abstract ABS_i can take the above-mentioned six types of movement.
  • the movement can take be six mobile a 1 to move a 6, behavioral output data value function Q (s t, a 1) to the action value function Q (s t, a 6) of It can be six.
  • one abstract ABS_i is a target of movement
  • one abstract ABS_ (i + 1) different from the previous episode is a target of movement.
  • Layout design method 3> The above ⁇ 2.
  • Layout Design Method 2> shows a method of repeatedly updating the weighting coefficients of the first neural network 520 and the second neural network 530 to learn the neural network. A method of performing layout design using these learned neural networks will be described. The flow of layout design is shown in FIG.
  • Step S101 is a step of acquiring a circuit diagram and layout design information.
  • Step S101 can refer to the above-mentioned description of step S21, and thus detailed description will be omitted.
  • Step S102 is a step in which the processing unit 103 creates a grid.
  • Step S102 can refer to the above-mentioned description of step S22, and thus detailed description will be omitted.
  • Step S103 is a step in which the processing unit 103 creates a basic cell and an abstract in a grid frame.
  • Step S103 can refer to the description of the above-mentioned step S23, so detailed description will be omitted.
  • Step S104 is a step in which the processing unit 103 arranges the abstract at random in the layout frame.
  • Step S104 can refer to the description of the above-mentioned step S25, so detailed description will be omitted.
  • Step S105 is a step of observing the layout state s t abstract processing unit 103.
  • Step S105 can refer to the description of the above-mentioned step S26, so detailed description will be omitted.
  • Step S106 is a step in which the processing unit 103 estimates the action value function Q (s t , a t ).
  • Step S106 can refer to the description of the above-described step S27, and thus detailed description will be omitted.
  • Step S107 is a step to determine whether or not the connection point can be connected by the processing unit 103.
  • Step S107 can refer to the above-mentioned description of step S28, and thus detailed description will be omitted.
  • step S108 If it is possible to arrange a wire that satisfies all the connection relationships based on the circuit diagram (Yes), the process proceeds to step S108. If the wiring can not be arranged (No), the process proceeds to step S104. In step S104, the abstract is set to the initial arrangement, and the layout processing is advanced again from the initial arrangement.
  • Step S108 is a step of determining whether the processing unit 103 satisfies the design rule.
  • Step S108 can refer to the above-mentioned description of step S29, and thus detailed description will be omitted.
  • step S109 If the layout of the pattern satisfies the design rule (Yes), the process proceeds to step S109. If the design rule is not satisfied (No), the process proceeds to step S104. In step S104, the abstract is set to the initial arrangement, and the layout processing is advanced again from the initial arrangement.
  • Step S109 is a step in which the processing unit 103 moves the abstract. The movement follows the movement a t selected in step S106.
  • Step S109 can refer to the description of the above-mentioned step S30, and thus the detailed description is omitted.
  • Step S110 is a step in which the processing unit 103 determines whether the termination condition C is satisfied. If the end condition C is satisfied (Yes), the layout design is ended. If the end condition C is not satisfied (No), the process proceeds to observation of the layout state in step S105.
  • the end condition C for example, the number of episodes or an elapsed time from the start of layout processing can be used.
  • a layout design with a small area can be performed in a short time while meeting design rules.
  • Example of layout design system> A layout design system different from the layout design system 100 shown in FIG. 1 will be described.
  • the layout design system 150 includes a server 151 and a terminal 152 (such as a personal computer).
  • the server 151 includes a communication unit 161a, a transmission path 162, a processing unit 163a, and a database 167. Although not illustrated in FIG. 26, the server 151 may further include a storage unit, an input / output unit, and the like.
  • the terminal 152 includes a communication unit 161 b, a transmission path 168, a processing unit 163 b, a storage unit 165, and an input / output unit 169. Although not shown in FIG. 26, the terminal 152 may further have a database and the like.
  • the user of the layout design system 150 inputs, from the terminal 152, the circuit diagram and layout design information used for layout design to the server 151.
  • the data is transmitted from the communication unit 161 b to the communication unit 161 a.
  • the data received by the communication unit 161 a is stored in the database 167 or a storage unit (not shown) via the transmission path 162. Alternatively, the data may be supplied directly to the processing unit 163a from the communication unit 161a.
  • the layout design described above is performed by the processing unit 163a. These processes are preferably performed by the processing unit 163a of the server 151 because high processing capacity is required.
  • layout data is generated by the processing unit 163a.
  • the layout data is stored in the database 167 or a storage unit (not shown) via the transmission path 162.
  • the data may be supplied from the processing unit 163a directly to the communication unit 161a.
  • layout data is output from the server 151 to the terminal 152.
  • the data is transmitted from the communication unit 161a to the communication unit 161b.
  • Information is supplied to the input / output unit 169 from the outside of the layout design system 150.
  • the input / output unit 169 has a function of supplying information to the outside of the layout design system 150. As in the layout design system 100, the input unit and the output unit may be separated.
  • the transmission path 162 and the transmission path 168 have a function of transmitting information. Transmission and reception of information between the communication unit 161a, the processing unit 163a, and the database 167 can be performed through the transmission path 162. Information can be transmitted and received between the communication unit 161 b, the processing unit 163 b, the storage unit 165, and the input / output unit 169 via the transmission path 168.
  • the processing unit 163a has a function of performing calculation, inference, and the like using information supplied from the communication unit 161a, the database 167, and the like.
  • the processing unit 163 b has a function of performing calculations and the like using information supplied from the communication unit 161 b, the storage unit 165, the input / output unit 169, and the like.
  • the processor 163 a and the processor 163 b can refer to the description of the processor 103.
  • the processing unit 163a can perform the layout design process described above. Therefore, it is preferable that the processing unit 163a has a processing capability higher than that of the processing unit 163b.
  • the storage unit 165 has a function of storing a program to be executed by the processing unit 163 b.
  • the storage unit 105 also has a function of storing the calculation result generated by the processing unit 163b, the information input to the communication unit 161b, the information input to the input / output unit 169, and the like.
  • the database 167 has a function of storing layout design information.
  • the database 167 may have a function of storing the calculation result generated by the processing unit 163a, the information input to the communication unit 161a, and the like.
  • the server 151 has a storage unit separately from the database 167, and the storage unit has a function of storing the calculation result generated by the processing unit 163a, the information input to the communication unit 161a, and the like. It is also good.
  • Communication Unit 161a and Communication Unit 161b Information can be transmitted and received between the server 151 and the terminal 152 using the communication unit 161 a and the communication unit 161 b.
  • the communication unit 161a and the communication unit 161b a hub, a router, a modem or the like can be used.
  • wired communication or wireless communication for example, radio waves, infrared light, etc. may be used.
  • layout data can be created from the input circuit diagram based on the layout design information prepared in advance.
  • the neural network NN can be configured by an input layer IL, an output layer OL, and an intermediate layer (hidden layer) HL.
  • Each of the input layer IL, the output layer OL, and the intermediate layer HL has one or more neurons (units).
  • the intermediate layer HL may be a single layer or two or more layers.
  • a neural network having two or more intermediate layers HL can be called DNN (deep neural network), and learning using a deep neural network can also be called deep learning.
  • Input data is input to each neuron in the input layer IL, an output signal of a neuron in the anterior or posterior layer is input to each neuron in the intermediate layer HL, and an output from a neuron in the anterior layer is input to each neuron in the output layer OL A signal is input.
  • Each neuron may be connected to all neurons in the previous and subsequent layers (total connection) or may be connected to some neurons.
  • FIG. 27B shows an example of operation by a neuron.
  • a neuron N and two neurons in the front layer outputting signals to the neuron N are shown.
  • the output x 1 of the anterior layer neuron and the output x 2 of the anterior layer neuron are input to the neuron N.
  • the operation by the neuron includes the operation of adding the product of the output of the anterior layer neuron and the weight, that is, the product-sum operation (x 1 w 1 + x 2 w 2 above ).
  • This product-sum operation may be performed on software using a program or may be performed by hardware.
  • a product-sum operation circuit can be used.
  • a digital circuit or an analog circuit may be used as this product-sum operation circuit.
  • the processing speed can be improved and the power consumption can be reduced by reducing the circuit scale of the product-sum operation circuit or reducing the number of accesses to the memory.
  • the product-sum operation circuit may be formed of a transistor including silicon (eg, single crystal silicon) in a channel formation region (hereinafter, also referred to as a Si transistor), or a transistor including an oxide semiconductor in a channel formation region (hereinafter, OS) It may be constituted by a transistor.
  • the OS transistor since the OS transistor has extremely small off-state current, the OS transistor is suitable as a transistor forming an analog memory of a product-sum operation circuit.
  • the product-sum operation circuit may be configured using both a Si transistor and an OS transistor.
  • a configuration example of a semiconductor device having the function of a product-sum operation circuit will be described.
  • FIG. 28 shows a configuration example of a semiconductor device MAC having a function of performing computation of a neural network.
  • the semiconductor device MAC has a function of performing a product-sum operation of first data corresponding to coupling strength (weight) between neurons and second data corresponding to input data.
  • each of the first data and the second data can be analog data or multivalued data (discrete data).
  • the semiconductor device MAC has a function of converting data obtained by the product-sum operation using an activation function.
  • the semiconductor device MAC includes a cell array CA, a current source circuit CS, a current mirror circuit CM, a circuit WDD, a circuit WLD, a circuit CLD, an offset circuit OFST, and an activation function circuit ACTV.
  • Cell array CA has a plurality of memory cells MC and a plurality of memory cells MCref.
  • a memory cell MC (MC [1,1] to [m, n]) having m rows and n columns (m, n is an integer of 1 or more) and m memory cells MCref (MCref) are shown.
  • An example of a configuration having [1] to [m] is shown.
  • Memory cell MC has a function of storing first data.
  • the memory cell MCref has a function of storing reference data used for product-sum operation.
  • the reference data can be analog data or multivalued data.
  • the memory cell MC [i, j] (i is an integer of 1 to m and j is an integer of 1 to n) includes the wiring WL [i], the wiring RW [i], the wiring WD [j], and the wiring BL Connected with [j].
  • the memory cell MCref [i] is connected to the wiring WL [i], the wiring RW [i], the wiring WDref, and the wiring BLref.
  • the memory cell MC [i, j] to the wiring BL [j] the current flowing between denoted as I MC [i, j], the current flowing between the memory cell MCref [i] and the wiring BLref I MCref [ i] .
  • FIG. 29 shows memory cells MC [1,1], [2,1] and memory cells MCref [1], [2] as representative examples, but the same applies to other memory cells MC and memory cells MCref.
  • the configuration of can be used.
  • Each of the memory cell MC and the memory cell MCref includes transistors Tr11 and Tr12 and a capacitive element C11.
  • the transistors Tr11 and Tr12 are n-channel transistors is described.
  • the gate of the transistor Tr11 is connected to the wiring WL, one of the source or drain is connected to the gate of the transistor Tr12 and the first electrode of the capacitive element C11, and the other of the source or drain is connected to the wiring WD It is done.
  • One of the source and the drain of the transistor Tr12 is connected to the wiring BL, and the other of the source and the drain is connected to the wiring VR.
  • the second electrode of the capacitive element C11 is connected to the wiring RW.
  • the wiring VR is a wiring having a function of supplying a predetermined potential.
  • a low power supply potential such as a ground potential
  • a node connected to one of the source and the drain of the transistor Tr11, the gate of the transistor Tr12, and the first electrode of the capacitive element C11 is referred to as a node NM.
  • the nodes NM of the memory cells MC [1,1] and [2,1] are denoted as nodes NM [1,1] and [2,1], respectively.
  • Memory cell MCref also has a configuration similar to that of memory cell MC. However, the memory cell MCref is connected to the wiring WDref instead of the wiring WD, and is connected to the wiring BLref instead of the wiring BL. In memory cells MCref [1] and [2], one of the source and the drain of transistor Tr11, the gate of transistor Tr12, and the node connected to the first electrode of capacitive element C11 are node NMref [1], respectively. And [2].
  • the node NM and the node NMref function as holding nodes of the memory cell MC and the memory cell MCref, respectively.
  • the node NM holds the first data
  • the node NMref holds reference data.
  • currents I MC [1 , 1] and I MC [2, 1] flow from the wiring BL [1] to the transistors Tr 12 of the memory cells MC [1, 1] and [2, 1], respectively.
  • currents I MCref [1] and I MCref [2] flow from the wiring BLref to the transistors Tr12 of the memory cells MCref [1] and [2], respectively.
  • the off-state current of the transistor Tr11 is preferably small. Therefore, it is preferable to use an OS transistor with extremely small off-state current as the transistor Tr11. Thus, the fluctuation of the potential of the node NM or the node NMref can be suppressed, and the calculation accuracy can be improved. Further, the frequency of the operation of refreshing the potential of the node NM or the node NMref can be suppressed low, and power consumption can be reduced.
  • the transistor Tr12 is not particularly limited, and, for example, a Si transistor or an OS transistor can be used.
  • an OS transistor is used as the transistor Tr12, the transistor Tr12 can be manufactured using the same manufacturing apparatus as the transistor Tr11, and the manufacturing cost can be suppressed.
  • the transistor Tr12 may be an n-channel type or a p-channel type.
  • the current source circuit CS is connected to the wirings BL [1] to [n] and the wiring BLref.
  • the current source circuit CS has a function of supplying current to the wirings BL [1] to [n] and the wiring BLref.
  • the current values supplied to the wirings BL [1] to [n] may be different from the current values supplied to the wiring BLref.
  • the current supplied from the current source circuit CS to the wirings BL [1] to [n] is denoted as I C
  • the current supplied from the current source circuit CS to the wiring BLref is denoted as I Cref .
  • the current mirror circuit CM includes interconnects IL [1] to [n] and an interconnect ILref.
  • the wirings IL [1] to [n] are connected to the wirings BL [1] to [n], respectively, and the wiring ILref is connected to the wiring BLref.
  • connection points of the wirings IL [1] to [n] and the wirings BL [1] to [n] are denoted as nodes NP [1] to [n].
  • a connection point between the wiring ILref and the wiring BLref is denoted as a node NPref.
  • the current mirror circuit CM has a function of causing a current I CM according to the potential of the node NPref to flow through the wiring ILref, and a function of flowing this current I CM also into the wirings IL [1] to [n].
  • Figure 28 is discharged current I CM from the wiring BLref to the wiring ILref
  • wiring BL [1] to the wiring from the [n] IL [1] to [n] to the current I CM is an example to be discharged .
  • currents flowing from the current mirror circuit CM to the cell array CA through the wirings BL [1] to [n] are denoted as I B [1] to [n].
  • the current flowing from the current mirror circuit CM to the cell array CA via the wiring BLref is denoted as I Bref .
  • the circuit WDD is connected to the wirings WD [1] to [n] and the wiring WDref.
  • the circuit WDD has a function of supplying a potential corresponding to the first data stored in the memory cell MC to the wirings WD [1] to [n].
  • the circuit WDD has a function of supplying a potential corresponding to reference data stored in the memory cell MCref to the wiring WDref.
  • the circuit WLD is connected to the wirings WL [1] to [m].
  • the circuit WLD has a function of supplying a signal for selecting a memory cell MC or a memory cell MCref to which data is written to the wirings WL [1] to [m].
  • the circuit CLD is connected to the wirings RW [1] to [m].
  • the circuit CLD has a function of supplying a potential corresponding to the second data to the wirings RW [1] to [m].
  • the offset circuit OFST is connected to the wirings BL [1] to [n] and the wirings OL [1] to [n].
  • the offset circuit OFST detects the amount of current flowing from the wirings BL [1] to [n] to the offset circuit OFST and / or the amount of change in current flowing from the wirings BL [1] to [n] to the offset circuit OFST Have.
  • the offset circuit OFST also has a function of outputting the detection result to the wirings OL [1] to [n].
  • the offset circuit OFST may output a current corresponding to the detection result to the line OL, or may convert a current corresponding to the detection result to a voltage and output the voltage to the line OL.
  • the currents flowing between the cell array CA and the offset circuit OFST are denoted by I ⁇ [1] to [n].
  • the offset circuit OFST shown in FIG. 30 includes circuits OC [1] to [n].
  • the circuits OC [1] to [n] each include a transistor Tr21, a transistor Tr22, a transistor Tr23, a capacitive element C21, and a resistive element R1.
  • the connection relationship of each element is as shown in FIG.
  • a node connected to the first electrode of the capacitive element C21 and the first terminal of the resistive element R1 is referred to as a node Na.
  • a node connected to the second electrode of the capacitive element C21, one of the source and the drain of the transistor Tr21, and the gate of the transistor Tr22 is referred to as a node Nb.
  • the wiring VrefL has a function of supplying a potential Vref
  • the wiring VaL has a function of supplying a potential Va
  • the wiring VbL has a function of supplying a potential Vb.
  • the wiring VDDL has a function of supplying a potential VDD
  • the wiring VSSL has a function of supplying a potential VSS.
  • the wiring RST has a function of supplying a potential for controlling the conductive state of the transistor Tr21.
  • a source follower circuit is configured by the transistor Tr22, the transistor Tr23, the wiring VDDL, the wiring VSSL, and the wiring VbL.
  • the potential of the node Na changes to a potential corresponding to the second current and the resistance value of the resistor element R1.
  • the transistor Tr21 since the transistor Tr21 is in the off state and the node Nb is in the floating state, the potential of the node Nb changes due to capacitive coupling with the change of the potential of the node Na.
  • the change in the potential of the node Na is ⁇ V Na and the capacitive coupling coefficient is 1
  • the potential of the node Nb is Va + ⁇ V Na .
  • the threshold voltage of the transistor Tr22 is V th
  • the potential Va + ⁇ V Na ⁇ V th is output from the wiring OL [1].
  • Potential ⁇ V Na is determined according to the amount of change from the first current to the second current, resistance element R1, and potential Vref.
  • the resistance element R1 and the potential Vref are known, the amount of change in current flowing from the potential ⁇ V Na to the wiring BL can be obtained.
  • a signal corresponding to the amount of current detected by the offset circuit OFST and / or the amount of change in current is input to the activation function circuit ACTV through the wirings OL [1] to [n].
  • the activation function circuit ACTV is connected to the wirings OL [1] to [n] and the wirings NIL [1] to [n].
  • the activation function circuit ACTV has a function of performing an operation for converting a signal input from the offset circuit OFST in accordance with a previously defined activation function.
  • a sigmoid function, a tanh function, a softmax function, a ReLU function, a threshold function or the like can be used.
  • the signals converted by the activation function circuit ACTV are output to the wirings NIL [1] to [n] as output data.
  • the product-sum operation of the first data and the second data can be performed using the above-described semiconductor device MAC.
  • an operation example of the semiconductor device MAC when performing a product-sum operation will be described.
  • FIG. 31 shows a timing chart of an operation example of the semiconductor device MAC.
  • the wiring WL [1], the wiring WL [2], the wiring WD [1], the wiring WDref, the node NM [1,1], the node NM [2,1], and the node NMref [1] in FIG. The transition of the potential of the node NMref [2], the wiring RW [1], and the wiring RW [2], and the transition of the values of the current I B [1] -I ⁇ [1] and the current I Bref .
  • the current I B [1] -I ⁇ [1] corresponds to the sum of the currents flowing from the wiring BL [1] to the memory cells MC [1, 1] and [2, 1].
  • the potential of the wiring WL [1] becomes high level, and the potential of the wiring WD [1] is higher than the ground potential (GND) by V PR ⁇ V W [1,1] next, the potential of the wiring WDref becomes the V PR greater potential than the ground potential. Further, the potentials of the wiring RW [1] and the wiring RW [2] become a reference potential (REFP).
  • the potential V W [1, 1] is a potential corresponding to the first data stored in the memory cell MC [1, 1]. Further, the potential VPR is a potential corresponding to reference data.
  • the memory cell MC [1,1] and the transistor Tr11 having a memory cell MCref [1] is turned on, the node NM potential of [1,1] is V PR -V W [1,1], the node NMref The potential of [1] becomes VPR .
  • the current I MC [1, 1], 0 flowing from the wiring BL [1] to the transistor Tr12 of the memory cell MC [1, 1] can be expressed by the following equation.
  • k is a constant determined by the channel length, channel width, mobility, and the capacity of the gate insulating film of the transistor Tr12.
  • V th is a threshold voltage of the transistor Tr12.
  • the potential of the wiring WL [1] becomes low. Accordingly, the transistor Tr11 included in the memory cell MC [1,1] and the memory cell MCref [1] is turned off, and the potentials of the node NM [1,1] and the node NMref [1] are held.
  • the transistor Tr11 As described above, it is preferable to use an OS transistor as the transistor Tr11. Thus, the leak current of the transistor Tr11 can be suppressed, and the potentials of the node NM [1,1] and the node NMref [1] can be accurately held.
  • the potential of the wiring WL [2] becomes the high level
  • the potential of the wiring WD [1] becomes V PR -V W [2,1] greater potential than the ground potential
  • of the wiring WDref potential becomes the V PR greater potential than the ground potential.
  • the potential V W [2, 1] is a potential corresponding to the first data stored in the memory cell MC [2, 1]. Accordingly, the transistor Tr11 included in the memory cell MC [2,1] and the memory cell MCref [2] is turned on, and the potential of the node NM [2,1] is V PR ⁇ V W [2,1] , the node NMref The potential of [2] becomes VPR .
  • the potential of the wiring WL [2] becomes low.
  • the transistor Tr11 included in the memory cell MC [2,1] and the memory cell MCref [2] is turned off, and the potentials of the node NM [2,1] and the node NMref [2] are held.
  • the first data is stored in the memory cells MC [1,1], [2,1], and the reference data is stored in the memory cells MCref [1], [2].
  • the current from the current source circuit CS is supplied to the wiring BL [1]. Further, the current flowing through the wiring BL [1] is discharged to the current mirror circuit CM and the memory cells MC [1,1] and [2,1]. In addition, a current flows from the wiring BL [1] to the offset circuit OFST. Assuming that the current supplied from the current source circuit CS to the wiring BL [1] is I C, 0 and the current flowing from the wiring BL [1] to the offset circuit OFST is I ⁇ , 0 , the following equation is established.
  • the potential of the wiring RW [1] is higher than the reference potential by V X [1] .
  • the potential V X [1] is supplied to the capacitive element C11 of each of the memory cell MC [1,1] and the memory cell MCref [1], and the potential of the gate of the transistor Tr12 rises due to capacitive coupling.
  • the potential V x [1] is a potential corresponding to the second data supplied to the memory cell MC [1, 1] and the memory cell MCref [1].
  • the amount of change in the potential of the gate of the transistor Tr12 is a value obtained by multiplying the amount of change in the potential of the wiring RW by the capacitive coupling coefficient determined by the configuration of the memory cell.
  • the capacitive coupling coefficient is calculated by the capacitance of the capacitive element C11, the gate capacitance of the transistor Tr12, the parasitic capacitance, and the like.
  • the capacitive coupling coefficient is one.
  • the potential V x may be determined in consideration of the capacitive coupling coefficient.
  • the current I MC [1, 1], 1 that flows from the wiring BL [1] to the transistor Tr12 of the memory cell MC [1, 1] at time T05 to T06 can be expressed by the following equation.
  • the current flowing to the wiring BL [1] and the wiring BLref will be considered.
  • the current I Cref is supplied from the current source circuit CS to the wiring BLref. Further, the current flowing through the wiring BLref is discharged to the current mirror circuit CM and the memory cells MCref [1] and [2]. Assuming that the current discharged from the wiring BLref to the current mirror circuit CM is I CM, 1 , the following equation is established.
  • the current I C is supplied from the current source circuit CS to the wiring BL [1]. Further, the current flowing through the wiring BL [1] is discharged to the current mirror circuit CM and the memory cells MC [1,1] and [2,1]. Further, current flows from the wiring BL [1] to the offset circuit OFST. Assuming that the current flowing from the wiring BL [1] to the offset circuit OFST is I ⁇ , 1 , the following equation is established.
  • the difference between the current I ⁇ , 0 and the current I ⁇ , 1 (difference current ⁇ I ⁇ ) can be expressed by the following equation from the equations (E1) to (E10).
  • the differential current ⁇ I ⁇ takes a value corresponding to the product of the potentials V W [1, 1] and V X [1] .
  • the potential of the wiring RW [1] becomes V X [1] larger than the reference potential
  • the potential of the wiring RW [2] is V X [2] larger than the reference potential Become.
  • potential V X [1] is supplied to each capacitive element C11 of memory cell MC [1, 1] and memory cell MCref [1], and node NM [1, 1] and node NMref [ The potential of 1] rises by V X [1] .
  • V X [2] is supplied to capacitive element C11 of each of memory cell MC [2, 1] and memory cell MCref [2], and node NM [2, 1] and node NMref [2 Each of the potentials of V ] [2] rises.
  • the current I MC [2, 1], 1 flowing from the wiring BL [1] to the transistor Tr12 of the memory cell MC [2, 1] at time T07 to T08 can be expressed by the following equation.
  • the current I MCref [2], 1 flowing from the wiring BLref to the transistor Tr12 of the memory cell MCref [2] can be expressed by the following equation.
  • the current flowing to the wiring BL [1] and the wiring BLref will be considered.
  • the current I Cref is supplied from the current source circuit CS to the wiring BLref. Further, the current flowing through the wiring BLref is discharged to the current mirror circuit CM and the memory cells MCref [1] and [2]. Assuming that the current discharged from the wiring BLref to the current mirror circuit CM is I CM, 2 , the following equation holds.
  • the current I C is supplied from the current source circuit CS to the wiring BL [1]. Further, the current flowing through the wiring BL [1] is discharged to the current mirror circuit CM and the memory cells MC [1,1] and [2,1]. Further, current flows from the wiring BL [1] to the offset circuit OFST. Assuming that the current flowing from the wiring BL [1] to the offset circuit OFST is I ⁇ , 2 , the following equation is established.
  • the difference between the current I ⁇ , 0 and the current I ⁇ , 2 (difference current ⁇ I ⁇ ) is expressed by the following equation from the equations (E1) to (E8) and the equations (E12) to (E15) be able to.
  • the difference current ⁇ I ⁇ is obtained by adding the product of the potential V W [1, 1] and the potential V X [1] and the product of the potential V W [2, 1] and the potential V X [2]. It becomes a value according to the combined result.
  • the differential current ⁇ I ⁇ input to the offset circuit OFST is the potential V X corresponding to the first data (weight) and the second data (input data And the value corresponding to the result of adding the product of the potential V W corresponding to. That is, by measuring the difference current ⁇ I ⁇ with the offset circuit OFST, it is possible to obtain the result of the product-sum operation of the first data and the second data.
  • the number of memory cells MC and memory cells MCref may be set arbitrarily.
  • the differential current ⁇ I ⁇ when the number m of rows of the memory cell MC and the memory cell MCref is an arbitrary number can be expressed by the following equation.
  • the number of product-sum operations to be executed in parallel can be increased.
  • product-sum operation of the first data and the second data can be performed.
  • a product-sum operation circuit can be configured with a small number of transistors. Therefore, the circuit scale of the semiconductor device MAC can be reduced.
  • the number m of rows of memory cells MC corresponds to the number of input data supplied to one neuron
  • the number n of columns of memory cells MC corresponds to the number of neurons Can.
  • the number m of rows of memory cells MC is set to the number of input data supplied from the input layer IL (the number of neurons in the input layer IL)
  • the number n of columns of memory cells MC is the neurons in the intermediate layer HL It can be set to the number of
  • the structure of the neural network to which the semiconductor device MAC is applied is not particularly limited.
  • the semiconductor device MAC can also be used for a convolutional neural network (CNN), a recursive neural network (RNN), an auto encoder, a Boltzmann machine (including a restricted Boltzmann machine), and the like.
  • CNN convolutional neural network
  • RNN recursive neural network
  • auto encoder a Boltzmann machine (including a restricted Boltzmann machine), and the like.
  • Layout design was performed using the method described in Layout Design Method 1>.
  • the grid has a grid interval of 1, and the size of the grid frame is 20 ⁇ 20 (the grid area is 400).
  • the number of abstracts was four, and the size of each abstract was 3 ⁇ 3.
  • step S27 and step S32 the discount rate ⁇ is set to 0.95 in the update of the action value function Q (s t , a t ).
  • Adam was used for optimization of the first neural network and the second neural network.
  • the ⁇ -greedy method was applied to the selection of the movement a. In one episode ⁇ is 1 and thereafter ⁇ is linearly reduced and in 80000 episodes ⁇ is 0.1. After 80000 episodes, ⁇ was set to 0.1.
  • step S33 the reward for the movement of the abstract is 1- (block area / 400), and the reward is set to be smaller as the block area is larger.
  • step S36 the connection point can be connected, and the reward is 0 if the design rule is satisfied, and the reward is -1 if the connection point can not be connected or the design rule is not satisfied.
  • the route between connection points was determined using a line segment search method.
  • FIG. 32 shows the result of learning.
  • the horizontal axis indicates the number of episodes (Number of episodes), and the vertical axis indicates the reward (Reward).
  • the reward shows the average value for every 1000 episodes of the accumulated reward.
  • ABS ABSTRACT, ABS_1: ABSTRACT, ABS_2: ABSTRACT, ABS_3: ABSTRACT, ABS_51: ABSTRACT, ABS_52: ABSTRACT, ABS_k: ABSTRACT, BLK: Block, C11 capacitive element, C21 capacitive element, C52: capacitive element, CP_1: connection point, CP_2: connection point, CP_3: connection point, CP_4: connection point, CP_11: connection point, CP_12: connection point, CP_13: connection point, CP_14: connection point, CP_15: connection point, CPL_2: connection point, CPL_3: connection point, CPL_4: connection point, ELM_1: basic cells, ELM_2: basic cells, ELM_3: basic cells, HL: intermediate layer, IL: input layer, LIMG t: image data, LIMG t + 1: the image data, LIMG t _1: image Data, LIMG t _2: image data,

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Artificial Intelligence (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Biomedical Technology (AREA)
  • Molecular Biology (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Biophysics (AREA)
  • Mathematical Physics (AREA)
  • General Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Geometry (AREA)
  • Medical Informatics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Architecture (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

短時間で、デザインルールを満たしつつ面積の小さいレイアウト設計を行う。 処理部を有し、処理部には、回路図と、レイアウト設計情報と、が入力され、処理部は、回路図と、 レイアウト設計情報とから、Q学習を行うことでレイアウトデータを生成する機能を有し、処理部は、 レイアウトデータを出力する機能を有し、 処理部は、 第1のニューラルネットワークを有し、 第1の ニューラルネットワークは、Q学習において行動価値関数を推定する、レイアウト設計システム。

Description

レイアウト設計システム及びレイアウト設計方法
 本発明の一態様は、レイアウト設計システム及びレイアウト設計方法に関する。
 なお、本発明の一態様は、上記の技術分野に限定されない。本明細書等で開示する本発明の一態様の技術分野としては、半導体装置、表示装置、発光装置、蓄電装置、記憶装置、表示システム、電子機器、照明装置、入力装置、入出力装置、それらの駆動方法、又はそれらの製造方法、を一例として挙げることができる。
 また、本明細書等において、半導体装置とは、半導体特性を利用することで機能しうる装置全般を指す。トランジスタ、半導体回路、演算装置、記憶装置等は半導体装置の一態様である。また、撮像装置、電気光学装置、発電装置(薄膜太陽電池、有機薄膜太陽電池等を含む)、及び電子機器は半導体装置を有している場合がある。
 半導体技術の進歩に伴い集積回路の規模が大きくなっており、回路設計者には大規模な回路を短期間で設計することが求められている。集積回路の設計において、デジタル回路のレイアウト設計を自動で行うCADツールが実用化されている。一方、アナログ回路などは回路設計者が手動でレイアウト設計の作業を行い、長い作業時間を要する場合がある。また、レイアウト設計においては、要求される回路特性及びデザインルールを満たす必要があることから、回路設計者には高い技術が求められる。
 また、様々な用途において、人工知能の活用が検討されている。特に、人工ニューラルネットワークの構成を応用することで、従来のノイマン型コンピュータよりも高性能なコンピュータが実現できると期待されており、近年、電子回路上で人工ニューラルネットワークを構築する種々の研究が進められている。
 例えば、特許文献1には、チャネル形成領域に酸化物半導体を有するトランジスタを用いた記憶装置によって、人工ニューラルネットワークを用いた計算に必要な重みデータを保持する発明が開示されている。
米国特許公開第2016/0343452号公報
 アナログ回路設計においては、回路設計者が手動でレイアウト設計の作業を行うことが多く、作業に時間を要することから、レイアウト設計の作業時間の短縮が求められる。また、アナログ回路のレイアウト設計は、製造コスト削減や動作速度向上のため、レイアウト面積の最小化が求められるとともに、配線や導体が有する寄生容量などを考慮し、デザインルールを満たす必要がある。
 上記に鑑み、本発明の一態様は、短時間でレイアウト設計を行えるレイアウト設計システムを提供することを課題の一つとする。又は、本発明の一態様は、レイアウト面積の小さいレイアウト設計を行えるレイアウト設計システムを提供することを課題の一つとする。又は、本発明の一態様は、新規なレイアウト設計システムを提供することを課題の一つとする。又は、本発明の一態様は、短時間でレイアウト設計を行えるレイアウト設計方法を提供することを課題の一つとする。又は、本発明の一態様は、レイアウト面積の小さいレイアウト設計を行えるレイアウト設計方法を提供することを課題の一つとする。又は、本発明の一態様は、新規なレイアウト設計方法を提供することを課題の一つとする。
 なお、これらの課題の記載は、他の課題の存在を妨げるものではない。本発明の一態様は、必ずしも、これらの課題の全てを解決する必要はないものとする。明細書、図面、請求項の記載から、これら以外の課題を抽出することが可能である。
 本発明の一態様は、処理部を有し、処理部には、回路図と、レイアウト設計情報と、が入力され、処理部は、回路図と、レイアウト設計情報とから、Q学習を行うことでレイアウトデータを生成する機能を有し、処理部は、レイアウトデータを出力する機能を有し、処理部は、第1のニューラルネットワークを有し、第1のニューラルネットワークは、Q学習において行動価値関数を推定する、レイアウト設計システムである。
 本発明の一態様は、端末と、サーバと、を有し、端末は、入出力部と、第1の通信部と、を有し、サーバは、処理部と、第2の通信部と、を有し、入出力部には、回路図と、レイアウト設計情報と、が入力され、第1の通信部は、有線通信及び無線通信のうち一方または双方により、サーバに回路図及びレイアウト設計情報を供給する機能を有し、処理部は、回路図と、レイアウト設計情報とから、Q学習を行うことでレイアウトデータを生成する機能を有し、処理部は、第2の通信部にレイアウトデータを供給する機能を有し、第2の通信部は、有線通信及び無線通信のうち一方または双方により、端末にレイアウトデータを供給する機能を有し、処理部は、第1のニューラルネットワークを有し、第1のニューラルネットワークは、Q学習において行動価値関数を推定する、レイアウト設計システムである。
 前述のレイアウト設計システムにおいて、第1のニューラルネットワークは、畳み込みニューラルネットワークであることが好ましい。
 前述のレイアウト設計システムにおいて、処理部は、さらに、第2のニューラルネットワークを有し、第2のニューラルネットワークは、行動価値関数の教師データを推定し、教師データから算出される損失関数に基づき、第1のニューラルネットワークの重み係数を更新すると好ましい。
 前述のレイアウト設計システムにおいて、第2のニューラルネットワークは、畳み込みニューラルネットワークであることが好ましい。
 前述のレイアウト設計システムにおいて、処理部は、トランジスタを有していてもよい。トランジスタは、チャネル形成領域に金属酸化物を有していてもよい。または、トランジスタは、チャネル形成領域にシリコンを有していてもよい。
 本発明の一態様は、回路図と、レイアウト設計情報と、を入力し、回路図と、レイアウト設計情報とから、Q学習を行うことで、レイアウトデータを作成し、Q学習において、第1のニューラルネットワークを用いて行動価値関数を推定し、レイアウトデータを出力する、レイアウト設計方法である。
 レイアウト設計方法において、第2のニューラルネットワークは、行動価値関数の教師データを推定し、教師データから算出される損失関数に基づき、第1のニューラルネットワークの重み係数を更新すると好ましい。
 本発明の一態様により、短時間でレイアウト設計を行えるレイアウト設計システムを提供できる。又は、本発明の一態様により、レイアウト面積の小さいレイアウト設計を行えるレイアウト設計システムを提供できる。又は、本発明の一態様により、新規なレイアウト設計システムを提供できる。又は、本発明の一態様により、短時間でレイアウト設計を行えるレイアウト設計方法を提供できる。又は、本発明の一態様により、レイアウト面積の小さいレイアウト設計を行えるレイアウト設計方法を提供できる。又は、本発明の一態様により、新規なレイアウト設計方法を提供できる。
 なお、これらの効果の記載は、他の効果の存在を妨げるものではない。本発明の一態様は、必ずしも、これらの効果の全てを有する必要はない。明細書、図面、請求項の記載から、これら以外の効果を抽出することが可能である。
レイアウト設計システムの例を示すブロック図。 集積回路の開発の例を示すフロー図。 集積回路の例を示すブロック図。 レイアウト設計システムの例を示すブロック図。 レイアウト設計の例を示すフロー図。 レイアウト設計の例を示すフロー図。 レイアウト設計の例を示すフロー図。 グリッド及び基本セルの例を示す図。 接続領域及び接続点の例を示す図。 基本セル及びアブストラクトの例を示す図。 ブロック及び報酬の設定の例を示す図。 アブストラクト及びレイアウトの画像データの例を示す図。 レイアウトの例を示す図。 画像データの例を示す図。 レイアウトの例を示す図。 画像データの例を示す図。 ニューラルネットワークの構成の例を示す図。 アブストラクトの移動の例を示す図。 アブストラクトの移動の例を示す図。 回路図及びアブストラクトの例を示す図。 アブストラクト及び接続点の例を示す図。 接続点及び配線の例を示す図。 レイアウトデータの例を示す図。 レイアウトの例を示す図。 アブストラクトの移動の例を示す図。 レイアウト設計システムの例を示すブロック図。 ニューラルネットワークの構成例を示す図。 半導体装置の構成例を示す図。 メモリセルの構成例を示す図。 オフセット回路の構成例を示す図。 タイミングチャート。 報酬の推移を示す図。
 実施の形態について、図面を用いて詳細に説明する。但し、本発明は以下の説明に限定されず、本発明の趣旨及びその範囲から逸脱することなくその形態及び詳細を様々に変更し得ることは当業者であれば容易に理解される。従って、本発明は以下に示す実施の形態の記載内容に限定して解釈されるものではない。
 なお、以下に説明する発明の構成において、同一部分又は同様な機能を有する部分には同一の符号を異なる図面間で共通して用い、その繰り返しの説明は省略する。また、同様の機能を指す場合には、ハッチパターンを同じくし、特に符号を付さない場合がある。
 また、図面において示す各構成の、位置、大きさ、範囲などは、理解の簡単のため、実際の位置、大きさ、範囲などを表していない場合がある。このため、開示する発明は、必ずしも、図面に開示された位置、大きさ、範囲などに限定されない。
 なお、「膜」という言葉と、「層」という言葉とは、場合によっては、又は、状況に応じて、互いに入れ替えることが可能である。例えば、「導電層」という用語を、「導電膜」という用語に変更することが可能である。または、例えば、「絶縁膜」という用語を、「絶縁層」という用語に変更することが可能である。
(実施の形態1)
 本実施の形態では、本発明の一態様のレイアウト設計システムについて、図1乃至図26を用いて説明する。
 本発明の一態様であるレイアウト設計システムは、回路図及びレイアウト設計情報を元にレイアウトデータを作成する機能を有する。本発明の一態様であるレイアウト設計システムは、集積回路のレイアウト設計に用いることができる。
 本明細書等において、レイアウト設計とは、回路図及びレイアウト設計情報を元にレイアウトデータを作成することを指す。回路図とは、トランジスタ、ダイオードなどの能動素子や、容量、抵抗などの受動素子がどのように接続されるか、図形と線によって表現した図である。レイアウトデータとは、マスク(レチクルともいう)に転写される半導体層、導電体層などの形状及び配置の情報である。なお、本明細書等において、能動素子及び受動素子を素子と記す場合がある。
 レイアウト設計情報は、セルライブラリ、デザインルール及びグリッド情報を有する。レイアウト設計情報の詳細は後述する。
 本発明の一態様のレイアウト設計システムは、処理部を有する。処理部には、回路図及びレイアウト設計情報が入力される。処理部は、回路図及びレイアウト設計情報から、レイアウトデータを作成する機能を有する。なお、本実施の形態のレイアウト設計システムは、回路図及びレイアウト設計情報を変えることで、様々なレイアウト設計に応用できる。
 本発明の一態様であるレイアウト設計システムを用いることで、回路設計で作成された回路図及びデザインルールを満たすとともに、集積回路の面積が小さいレイアウトデータを作成できる。
 レイアウト設計システムは、少なくとも一部の処理に人工知能(AI:Artificial Intelligence)を用いて、レイアウトデータを作成することが好ましい。
 レイアウト設計システムは、特に、人工ニューラルネットワーク(ANN:Artificial Neural Network、以下、単にニューラルネットワークとも記す)を用いて、出力データを生成することが好ましい。なお、本明細書等において、人工ニューラルネットワークを、単にニューラルネットワーク(NN:Neural Network)と記す場合がある。ニューラルネットワークは、回路(ハードウェア)またはプログラム(ソフトウェア)により実現される。
 レイアウト設計には、強化学習(Reinforcement Learning)を用いることができる。強化学習として、例えばTD学習(Temporal Difference Learning:時間的差分学習)、Q学習(Q−Learning)などを用いることができる。また、Q学習において深層学習を利用する学習アルゴリズムを用いると特に好ましい。
 Q学習とは、時刻tにおいて、環境が状態sのとき、エージェントが行動aを選択する価値を学習する方法である。エージェントは行動する主体を指し、環境は働きかけられる対象を指す。エージェントの行動aにより環境が状態Sから状態St+1に遷移し、エージェントは報酬rt+1を受け取る。Q学習では、得られる報酬の総量が最終的に最大になるように行動aを学習する。状態sにおいて行動aをとる価値を、行動価値関数Q(s,a)と表せる。本明細書等において、行動価値関数QをQ関数、行動価値関数Q(s,a)の値をQ値と呼ぶ場合がある。例えば、行動価値関数Q(s,a)の更新式は、数式1で表せる。
Figure JPOXMLDOC01-appb-M000001
 ここで、αは学習率(αは0より大きく1以下)、γは割引率(γは0以上1以下)を示す。学習率αは、現在の価値と、行動によって得られた結果のどちらを重視するかを表している。学習率αが1に近いほど、得られた結果を重視し価値の変化は大きくなる。学習率αが0に近いほど、現在の価値を重視し価値の変化は小さくなる。割引率γは、現在の報酬と、将来の報酬のどちらを重視するかを表している。割引率γが0に近いほど、現在の報酬を重視する。割引率γが1に近いほど、将来の報酬を重視する。例えば、学習率αを0.10、割引率γを0.90とすることができる。
 前述の行動価値関数Q(s,a)の推定に深層学習を用いることができる。行動価値関数Q(s,a)の推定に深層学習を用いる学習アルゴリズムをDeep Q−Learningと呼び、Deep Q−Learningで用いるニューラルネットワークをDeep Q−Network(DQN)と呼ぶ場合がある。
 本発明の一態様であるレイアウト設計システムは、レイアウト設計にDeep Q−Learningを用い、Deep Q−Networkは畳み込みニューラルネットワーク(CNN:Convolutional Neural Network)の構成を有すると特に好ましい。なお、本明細書等において、Deep Q−Networkを、単にニューラルネットワークと記す場合がある。
 一般的に、Q学習においては行動価値関数Q(s,a)の状態s及び行動aの組み合わせを、予めルックアップテーブル(LUT:Look Up Table)としてデータを保存する。しかし、状態s及び行動aの組み合わせは多数あるため、多数のメモリが必要となる場合がある。一方、本発明の一態様であるレイアウト設計システムにおいては、行動価値関数Q(s,a)の推定にニューラルネットワークを用いることで、必要とするメモリ数を少なくすることができる。
 本明細書等において、ニューラルネットワークとは、生物の神経回路網を模し、学習によってニューロンどうしの結合強度を決定し、問題解決能力を持たせるモデル全般を指す。ニューラルネットワークは、入力層と、出力層と、入力層と出力層との間に1層以上の中間層(隠れ層)を有する。
 本明細書等において、ニューラルネットワークについて述べる際に、既にある情報からニューロンとニューロンの結合強度(重み係数ともいう)を決定することを「学習」と呼ぶ場合がある。
 また、本明細書等において、学習によって得られた結合強度を用いてニューラルネットワークを構成し、そこから新たな結論を導くことを「推論」と呼ぶ場合がある。
 ニューラルネットワークは、膨大な数の積和演算によって実行される。これらの演算処理は、デジタル回路及びアナログ回路の一方または双方を用いて行うことができる。デジタル回路を用いる場合、必要となるトランジスタ数が膨大になり、非効率的で消費電力が高い。そのため、上述の積和演算はアナログ積和演算回路(以下、APS(Analog Product−Sum circuit)と呼ぶ)で行うことが好ましい。また、APSはアナログメモリを有することが好ましい。学習で得られた重み係数を上記アナログメモリに格納することで、APSは、アナログデータのまま積和演算を実行することができる。その結果、APSは少ないトランジスタで効率的にニューラルネットワークを構築することができる。
 なお、本明細書等においてアナログメモリはアナログデータを格納することが可能な記憶装置のことを指す。また、本明細書においてアナログデータとは、3ビット(8値)以上の分解能を有するデータのことを指す。多値データのことをアナログデータと呼ぶ場合もある。
 上記アナログメモリとして、多値のフラッシュメモリ、ReRAM(Resistive Random Access Memory)、MRAM(Magnetoresistive Random Access Memory)またはOSトランジスタを用いたメモリ(OSメモリと呼ぶ)を用いることができる。
 また、本明細書等において、チャネル形成領域に酸化物半導体または金属酸化物を用いたトランジスタをOxide Semiconductorトランジスタ、あるいはOSトランジスタと呼ぶ。OSトランジスタのチャネル形成領域は、金属酸化物を有することが好ましい。
 また、本明細書等において、金属酸化物(metal oxide)とは、広い表現での金属の酸化物である。金属酸化物は、酸化物絶縁体、酸化物導電体(透明酸化物導電体を含む)、酸化物半導体(Oxide Semiconductorまたは単にOSともいう)などに分類される。例えば、トランジスタの半導体層に金属酸化物を用いた場合、当該金属酸化物を酸化物半導体と呼称する場合がある。つまり、金属酸化物が増幅作用、整流作用、及びスイッチング作用の少なくとも1つを有する場合、当該金属酸化物を、金属酸化物半導体(metal oxide semiconductor)、略して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は、例えば、酸素との結合エネルギーが高い元素である。例えば、酸素との結合エネルギーがインジウムよりも高い元素である。また、チャネル形成領域が有する金属酸化物は、亜鉛(Zn)を含む金属酸化物であると好ましい。亜鉛を含む金属酸化物は結晶化しやすくなる場合がある。
 チャネル形成領域が有する金属酸化物は、インジウムを含む金属酸化物に限定されない。半導体層は、例えば、亜鉛スズ酸化物、ガリウムスズ酸化物などの、インジウムを含まず、亜鉛を含む金属酸化物、ガリウムを含む金属酸化物、スズを含む金属酸化物などであっても構わない。
<1.レイアウト設計システムの構成>
 レイアウト設計システム100の構成について、説明する。レイアウト設計システム100のブロック図を図1示す。レイアウト設計システム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を動作させ、他の場合には直前の処理の情報を当該記憶素子に待避させることにより、ノーマリーオフコンピューティングが可能となり、レイアウト設計システムの低消費電力化を図ることができる。
 処理部103は、例えば、演算回路、または中央演算装置(CPU:Central Processing Unit)等を有する。
 処理部103は、DSP(Digital Signal Processor)、GPU(Graphics Processing Unit)等のマイクロプロセッサを有していてもよい。マイクロプロセッサは、FPGA(Field Programmable Gate Array)、FPAA(Field Programmable Analog Array)等のPLD(Programmable Logic Device)によって実現された構成であってもよい。処理部103は、プロセッサにより種々のプログラムからの命令を解釈し実行することで、各種のデータ処理及びプログラム制御を行うことができる。プロセッサにより実行しうるプログラムは、プロセッサが有するメモリ領域及び記憶部105のうち少なくとも一方に格納される。
 処理部103はメインメモリを有していてもよい。メインメモリは、RAM(Random Access Memory)等の揮発性メモリ、及びROM(Read Only Memory)等の不揮発性メモリのうち少なくとも一方を有する。
 RAMとしては、例えばDRAM(Dynamic Random Access Memory)、SRAM(Static Random Access Memory)等が用いられ、処理部103の作業空間として仮想的にメモリ空間が割り当てられ利用される。記憶部105に格納されたオペレーティングシステム、アプリケーションプログラム、プログラムモジュール、プログラムデータ、及びルックアップテーブル等は、実行のためにRAMにロードされる。RAMにロードされたこれらのデータ、プログラム、及びプログラムモジュールは、それぞれ、処理部103に直接アクセスされ、操作される。
 ROMには、書き換えを必要としない、BIOS(Basic Input/Output System)及びファームウェア等を格納することができる。ROMとしては、マスクROM、OTPROM(One Time Programmable Read Only Memory)、EPROM(Erasable Programmable Read Only Memory)等が挙げられる。EPROMとしては、紫外線照射により記憶データの消去を可能とするUV−EPROM(Ultra−Violet Erasable Programmable Read Only Memory)、EEPROM(Electrically Erasable Programmable Read Only Memory)、フラッシュメモリ等が挙げられる。
[記憶部105]
 記憶部105は、処理部103が実行するプログラムを記憶する機能を有する。また、記憶部105は、処理部103が生成したレイアウトデータ及び入力部101に入力された情報などを記憶する機能を有していてもよい。
 記憶部105は、揮発性メモリ及び不揮発性メモリのうち少なくとも一方を有する。記憶部105は、例えば、DRAM、SRAMなどの揮発性メモリを有していてもよい。記憶部105は、例えば、ReRAM(Resistive Random Access Memory)などに代表される抵抗変化型のメモリ、PRAM(Phase change Random Access Memory)、FeRAM(Ferroelectric Random Access Memory)、MRAM(Magnetoresistive Random Access Memory)などに代表される磁気抵抗型のメモリ、またはフラッシュメモリなどの不揮発性メモリを有していてもよい。また、記憶部105は、ハードディスクドライブ(Hard Disc Drive:HDD)及びソリッドステートドライブ(Solid State Drive: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(Design Rule Check)及びLVS(Layout versus Schematic)を行うステップである。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は、トランジスタ、容量など複数の素子を有する。メモリセルMC内の素子のレイアウト設計について、本発明の一態様であるレイアウト設計システム100を適用できる。
 本発明の一態様であるレイアウト設計システム100を用いたレイアウト設計方法について、説明する。
 本発明の一態様であるレイアウト設計システム100は、回路図及びレイアウト設計情報を元にレイアウトデータ121を作成する機能を有する。レイアウト設計情報は、セルライブラリ115、デザインルール117及びグリッド情報123を有する。レイアウト設計システム100の例を示すブロック図を、図4に示す。図4に示すように、本発明の一態様であるレイアウト設計システム100は、回路図119、セルライブラリ115、デザインルール117及びグリッド情報123を入力し、レイアウトデータ121が出力される。
 レイアウト設計システム100を用いたレイアウト設計方法のフローを、図5及び図6に示す。図5及び図6に示すフローは、図2のステップS14に示したレイアウト設計に該当し、回路図119及びレイアウト設計情報を元にレイアウトデータ121を作成するフローである。本発明の一態様においては、まず素子の配置を決め、次に素子間の配線の経路を決める。
 本発明の一態様であるレイアウト設計システムを用いることで、回路設計で作成された回路図及びデザインルールを満たすとともに、集積回路の面積が小さいレイアウトデータを作成できる。
 なお、本明細書等において、ステップS26のレイアウト状態の観察から、ステップS33及びステップS36の行動価値関数Q(s,a)の更新までの1回の流れを、1エピソードと記す場合がある。また、行動価値関数Q(s,a)を更新した回数を、エピソード回数と記す場合がある。
[ステップS21]
 ステップS21は、回路図及びレイアウト設計情報を取得するステップである。
 回路図として、前述のステップS12で作成された回路図119を用いることができる。回路図119及びレイアウト情報は、レイアウト設計システム100の外部から入力部101に入力される。そして、回路図119は、入力部101から、伝送路102を介して、処理部103に供給される。または、回路図119及びレイアウト情報は、伝送路102を介して、記憶部105またはデータベース107に保存され、記憶部105またはデータベース107から、伝送路102を介して、処理部103に供給されてもよい。
 回路図として、ハードウェア記述言語(HDL:Hardware Description Language)により素子及び素子間の接続関係を記載したネットリストを用いてもよい。また、回路図として、SPICE(Simulation Program with Integrated Circuit Emphasis)により素子及び素子間の接続関係を記載したネットリストを用いてもよい。
 レイアウト設計情報は、セルライブラリ、デザインルール及びグリッド情報を有する。
 グリッド情報とは、グリッド枠の大きさ及びグリッド間隔の値である。グリッドは、複数の直線がそれぞれ周期的に交わることで構成される格子である。グリッド枠とは、グリッドが設けられる領域の外周を指し、矩形とする。グリッド間隔とは、グリッドを構成する直線の間隔を指す。グリッド間隔は、デザインルールで定められた配線幅の最小値と同程度、又は配線幅の最小値より小さい値とすることが好ましい。グリッド枠の大きさは、グリッド間隔の整数倍とする。なお、本明細書等において、矩形とは4つの内角が全て直角である四角形を指し、正方形を含む。
[ステップS22]
 ステップS22は、処理部103でグリッドを作成するステップである。
 ステップS21で取得したグリッド情報を元に、グリッド枠601及びグリッド603を作成する。グリッド枠601及びグリッド603の例を図8(A)に示す。本実施の形態では、構成する直線がそれぞれ等間隔で直交する、正方形のグリッドを用いる例を示している。
[ステップS23]
 ステップS23は、処理部103でグリッド枠内に基本セル及びアブストラクトを作成するステップである。
 ステップS21で取得した回路図119を元に、基本セルを作成する。基本セルの例を図8(B)及び図8(C)に示す。図8(B)は、半導体層301と、ゲート電極303と、ソース電極305と、ドレイン電極307と、を有するトランジスタ素子を示している。図8(C)は、上部電極309と、上部電極309と重なる領域を有する下部電極311と、を有する容量素子を示している。なお、図8(B)及び図8(C)はアナログ回路の例として、基本セルとして素子を用いる例を示しているが、本発明の一態様はこれに限られない。アナログ回路の場合は、基本セルとして論理ゲート等を用いることができる。
 素子は、他の素子と電気的に接続される場合がある。また、素子は、ワード線やビット線など(以下、信号線と記す)と電気的に接続される場合がある。素子と素子との間の接続関係、素子と信号線との間の接続関係は、回路図119に基づく。
 素子又は信号線が、他の素子又は信号線と電気的に接続する領域を接続領域と記す。図8(B)に示したトランジスタ素子においては、ゲート電極303、ソース電極305及びドレイン電極307の3つの領域を、接続領域とすることができる。また、図8(C)に示した容量素子においては、上部電極309及び下部電極311を、接続領域とすることができる。
 素子又は信号線が、他の素子又は信号線と電気的に接続する位置を接続点と記す。接続点は、前述の接続領域内に設けることができる。素子又は信号線が有する接続点は、他の素子又は信号線が有する接続点とそれぞれ電気的に接続されうる位置を示している。また、接続点は、コンタクトホールの位置に相当する場合がある。
 図8(B)及び図8(C)に示したトランジスタ素子及び容量素子を用いて、接続領域及び接続点を具体的に説明する。図8(B)に示すトランジスタ素子において、ゲート電極303、ソース電極305及びドレイン電極307の領域を、それぞれ接続領域331_1乃至接続領域331_3とする。接続領域331_1乃至接続領域331_3を図9(A)に示す。接続領域331_1乃至接続領域331_3には、それぞれ接続点を設けることができる。接続領域331_1乃至接続領域331_3に設けられる接続点の例を図9(B)に示す。図9(B)は、接続領域331_1に設けられる接続点CP_11、接続領域331_2に設けられる接続点CP_12、接続領域331_3に設けられる接続点CP_13を示している。なお、図9(B)に示した接続点CP_11乃至接続点CP_13は一例であり、接続点の位置はこれに限られない。
 図8(C)に示す容量素子において、上部電極309及び下部電極311の領域を、それぞれ接続領域331_4及び接続領域331_5とする。接続領域331_4を図9(C)、接続領域331_5を図9(D)に示す。接続領域331_4及び接続領域331_5にはそれぞれ接続点CP_14及び接続点CP_15を設けることができる。接続領域331_4に対する接続点CP_14の例を図9(E)、接続領域331_5に対する接続点CP_15の例を図9(F)に示す。なお、図9(E)及び図9(F)に示した接続点CP_14及び接続点CP_15は一例であり、接続点の位置はこれに限られない。
 基本セルをグリッド枠601内に配置した例を図10(A)に示す。図10(A)では、基本セルELM_1乃至基本セルELM_3の3つの基本セルを示している。基本セルELM_1及び基本セルELM_2はそれぞれトランジスタ素子、基本セルELM_3は容量素子を示している。
 基本セルを元に、アブストラクトを作成する。1つの基本セルの全体を覆う最小の矩形をアブストラクトとし、アブストラクトの外周はグリッド603上にのみ作成される。
 図10(A)に示した基本セルELM_1乃至基本セルELM_3の3つの基本セルを用いて、アブストラクトを具体的に説明する。基本セルELM_1乃至基本セルELM_3と、基本セルELM_1乃至基本セルELM_3のそれぞれに対応するアブストラクトABS_1乃至アブストラクトABS_3の例を図10(B)に示す。基本セルELM_1の全体を覆い、かつグリッド603上に外周を有する最小の矩形が、アブストラクトABS_1である。基本セルELM_2の全体を覆い、かつグリッド603上に外周を有する最小の矩形が、アブストラクトABS_2である。基本セルELM_3の全体を覆い、かつグリッド603上に外周を有する最小の矩形が、アブストラクトABS_3である。図10(B)では基本セルとアブストラクトの位置関係を明示するために、アブストラクトABS_1乃至アブストラクトABS_3のハッチングを透過して図示している。
 図10(A)及び図10(B)においては、3つの基本セルであるELM_1乃至基本セルELM_3を示したが、本発明の一態様はこれに限られない。回路図が有する基本セルの総数k個に対し、アブストラクトABS_1乃至アブストラクトABS_kのk個のアブストラクトが作成される。
[ステップS24]
 ステップS24は、処理部103で報酬rを設定するステップである。
 グリッド枠601内に配置された全てのアブストラクトを覆う最小の矩形をブロックとし、ブロックの面積を算出する。ブロックの外周はグリッド603上にのみ作成される。図10(B)に示したアブストラクトABS_1乃至アブストラクトABS_3と、それに対応するブロックBLKの例を図11(A)に示す。
 ブロックBLKの面積に応じて報酬rを決定する。ブロックBLKの面積と、報酬rの関係を図11(B)に示す。図11(B)において、横軸はブロックBLKの面積を示し、縦軸は報酬rを示す。図11(B)に示すように、ブロックBLKの面積が小さいほど報酬rが高く、ブロックBLKの面積が大きいほど報酬rを小さく設定する。ブロックBLKの面積が小さいほど報酬rが高くなる設定とすることで、ブロックBLKの面積が小さくなるようにニューラルネットワークを学習させ、面積の小さいレイアウト設計を行うことができる。また、報酬rの値は、有限の値とすることが好ましい。報酬rの値を有限の値とすることで、アルゴリズムが収束せずにレイアウト設計が終わらなくなるのを防げる。例えば、報酬rを−1以上1以下とすることができる。図11(B)では、ブロックBLKの面積に対して報酬rが指数関数的に減少する例を示したが、本発明の一態様はこれに限られない。ブロックBLKの面積に対して報酬rが線形に減少してもよい。また、報酬rの設定として、ブロックBLKの面積が小さいほど報酬rが高くなる例を示したが、本発明の一態様はこれに限られない。
[ステップS25]
 ステップS25は、処理部103でアブストラクトをレイアウト枠内にランダムに配置するステップである。
 ステップS22で作成したk個の全てのアブストラクトABS_1乃至アブストラクトABS_kが、グリッド枠601内にランダムに配置される。ランダムに配置された状態を初期配置と呼ぶことができる。アブストラクトABS_1乃至アブストラクトABS_kの初期配置の例を図12(A)に示す。
[ステップS26]
 ステップS26は、処理部103でアブストラクトのレイアウト状態sを観察するステップである。
 レイアウト状態sは、レイアウトの画像データLIMGとして記憶部105に記憶される。図12(A)に示したアブストラクトABS_1乃至アブストラクトABS_kのレイアウト状態sに対応する、レイアウトの画像データLIMGの例を図12(B)に示す。図12(B)に示すように、画像データLIMGはアブストラクトのみを有し、グリッドは有さなくてもよい。レイアウトの画像データLIMGは、グレースケール、白黒又はカラーの画像とすることができる。
 本実施の形態では、レイアウトの画像データLIMGはグレースケールの画像を用いる。図12(B)において、アブストラクトABS_1乃至アブストラクトABS_kにハッチングを付しているが、該ハッチング領域をグレースケールの領域とする。
 3つのアブストラクトABS_1乃至アブストラクトABS_3を有するレイアウトの例を図13(A)に示す。図13(A)の一点鎖線A−B間の断面図を図13(B)に示す。図13(A)及び図13(B)に示す図は、アブストラクトABS_1乃至アブストラクトABS_3にそれぞれ対応する素子ELM_1乃至素子ELM_3が同一の層に形成される例を示している。素子ELM_1乃至素子ELM_3は同一の層に形成されることから、アブストラクトABS_1乃至アブストラクトABS_3が互いに重ならないレイアウトとすることが好ましい。図13(A)に示したレイアウトに対応する画像データLIMGを、図14に示す。
 複数の素子がそれぞれ異なる層に形成される例について説明する。3つのアブストラクトABS_1乃至アブストラクトABS_3を有するレイアウトの例を図15(A)に示す。図15(A)の一点鎖線C−D間の断面図を図15(B)に示す。図15(A)及び図15(B)に示す図は、アブストラクト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が重なる配置とすることができる。なお、図15(B)において、素子ELM_1及び素子ELM_2のいずれか1以上と、素子ELM_3を電気的に接続する配線を有する領域320を示している。
 図15(A)に示したレイアウトに対応する画像データを、図16(A)及び図16(B)に示す。図16(A)に示す画像データLIMG_1は、同一層に形成されるアブストラクトABS_1及びアブストラクトABS_2を有する。図16(B)に示す画像データLIMG_2は、アブストラクトABS_1及びアブストラクトABS_2と異なる層に形成されるアブストラクトABS_3を有する。同じ層に形成されるアブストラクトを1つの画像データとし、形成される層が異なるアブストラクトは異なる画像データとすることができる。例えば、アブストラクトが形成される層がp個の場合は、画像データLIMG_1乃至画像データLIMG_pのp個の画像データとすることができる。
[ステップS27]
 ステップS27は、処理部103で行動価値関数Q(s,a)を推定するステップである。
 処理部103は第1のニューラルネットワーク520を有し、第1のニューラルネットワーク520により行動価値関数Q(s,a)を推定する。第1のニューラルネットワーク520では、ステップS26で作成したレイアウトの画像データLIMGを入力データとして、行動価値関数Q(s,a)を出力データとする。第1のニューラルネットワーク520として、畳み込みニューラルネットワーク(CNN)の構成を用いることが好ましい。
 第1のニューラルネットワーク520の構成を図17(A)に示す。図17(A)はニューラルネットワークとして、畳み込みニューラルネットワーク(CNN)の構成を用いる例を示している。図17(A)に示す第1のニューラルネットワーク520は、入力層521、中間層522及び出力層523で構成される。入力層521において、入力データであるレイアウトの画像データLIMG、出力データとして行動価値関数Q(s,a)乃至行動価値関数Q(s,a)を示している。レイアウト状態sにおいて、取りうる移動が移動a乃至移動aのm通り存在し、それぞれの移動に対応する行動価値関数をQ(s,a)乃至行動価値関数Q(s,a)と示している。行動価値関数をQ(s,a)乃至行動価値関数Q(s,a)のうち、最も高いQ値となる移動aを、次のアブストラクトの移動として選択できる。
 図17(A)では、中間層522が、畳み込み層524、プーリング層525、畳み込み層526、プーリング層527、畳み込み層528及び全結合層529で構成される。なお、中間層522の構成は一例であり、中間層522は1層以上であればよく、層の数や構成は特に限定されない。例えば、プーリング処理及び畳み込み演算処理をさらに多層で行う構成や、パディングやストライドといった演算処理を介して行う構成としてもよい。なお、図17(A)にフィルタは図示していない。
 また、ステップS25で取得するレイアウトの画像データLIMGをカラーの画像とする場合は、カラーの画像をグレースケールの画像に変換し、該グレースケールの画像を入力データとして用いてもよい。グレースケールへの変換には、NTSC加重平均法などを用いることができる。また、カラー(多チャンネル)の画像を入力データとして用いる場合は、第1のニューラルネットワーク520の畳み込み層において、各チャンネルに対応する複数の種類のフィルタを用いてもよい。また、複数の画像データLIMGを入力データとする場合は、それぞれの画像データLIMGに対し、異なるフィルタを用いてもよい。
 アブストラクトが取りうる移動aについて説明する。1つのアブストラクトABSにつき取りうる移動aは、X軸方向に+1移動する、X軸方向に−1移動する、Y軸方向に+1移動する、Y軸方向に−1移動する、その場で90°回転する、移動しない、の6種類とすることができる。アブストラクトABSがX軸方向に+1移動する例を図18(A)に示す。アブストラクトABSがX軸方向に−1移動する例を図18(B)に示す。アブストラクトABSがY軸方向に+1移動する例を図18(C)に示す。アブストラクトABSがY軸方向に−1移動する例を図19(A)に示す。アブストラクトABSがその場で90°回転する例を図19(B)に示す。アブストラクトABSが移動しない例を図19(C)に示す。X軸方向及びY軸方向の移動は、グリッド間隔を1単位としている。また、アブストラクトABSが有する4つの頂点のうち、X座標及びY座標が最小の頂点を基準点とする。図18(A)乃至図18(C)、図19(A)及び図19(C)において、基準点を黒丸印で示している。
 なお、本実施の形態では、図19(B)に示すその場で90°回転する移動は、アブストラクトを左回り(反時計回り)に90°回転させ、回転前の基準点と、回転後の基準点を同じ座標とした。また、本実施の形態では、構成する直線がそれぞれ直交するグリッドを用いていることから、アブストラクトの回転は90°とした。なお、グリッドを構成する直線が直交しない場合においては、直線が成す角度をアブストラクトの回転角度とすることができる。例えば、グリッドを構成する直線が30°で交わるグリッドを用いる場合は、アブストラクトの取りうる行動として、アブストラクトの回転は30°及び150°の2通りを用いてもよい。
 k個のアブストラクトを有する場合の出力データの例を、表1に示す。それぞれのアブストラクトABS_1乃至アブストラクトABS_kに対し、X軸方向に+1移動する、X軸方向に−1移動する、Y軸方向に+1移動する、Y軸方向に−1移動する、その場で90°回転する、の5種類の取りうる移動と、さらにいずれのアブストラクトも移動しない、の1種類が、取りうる移動となる。表1に示すように、アブストラクトABS_1乃至アブストラクトABS_kに対し、取りうる移動は移動a乃至移動a5k+1の(5k+1)通りとなり、出力データを行動価値関数Q(s,a)乃至行動価値関数Q(s,a5k+1)の(5k+1)個とすることができる。これらの行動価値関数Q(s,a)乃至行動価値関数Q(s,a5k+1)のうち、最も高いQ値となる移動aを、次のアブストラクトの移動として選択できる。
 例えば、アブストラクトABS_1乃至アブストラクトABS_3の3個のアブストラクトを有する場合、出力データは行動価値関数Q(s,a)乃至行動価値関数Q(s,a16)の16個とすることができる。これらの行動価値関数Q(s,a)乃至行動価値関数Q(s,a16)のうち、最も高いQ値となる移動aを、次のアブストラクトの移動として選択できる。
Figure JPOXMLDOC01-appb-T000002
 また、移動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で選択した移動aを実行した場合のレイアウトである。移動した状態のアブストラクトABSのレイアウトにおいて、アブストラクトABSに対応する基本セルELMが有する接続点を、回路図119の接続関係を満たすように接続できるか否かを判定する。
 ステップS28における接続点の接続方法について、2つの素子を有する回路の例を用いて説明する。1つのトランジスタ素子Tr51と、1つの容量素子C52とで構成される記憶回路の回路図341を図20(A)に示す。図20(A)は素子の他に、ワード線WLと、ビット線BLと、接地電位線GNDを有する。なお、説明を簡単にするため、2つの素子を有する回路例を示したが、本発明の一態様はこれに限られない。ステップS27で選択した移動aを実行した場合のレイアウトの例を図20(B)に示す。図20(B)は、トランジスタ素子Tr51に対応するアブストラクトABS_51と、容量素子C52に対応するアブストラクトABS_52を示している。
 トランジスタ素子Tr51、トランジスタ素子Tr51に対応するアブストラクトABS_51、容量素子C52、容量素子C52に対応するアブストラクトABS_52を図21(A)に示す。図21(A)では位置関係を明示するために、アブストラクトABS_51及びアブストラクトABS_52のハッチングを透過して図示している。
 トランジスタ素子Tr51及び容量素子C52の接続点の例を図21(B)に示す。トランジスタ素子Tr51は、ゲート電極の領域に接続点CP_2、ソース電極の領域に接続点CP_1、ドレイン電極の領域に接続点CP_4を有する。容量素子C52は、上部電極の領域に接続点CP_1、下部電極の領域にCP_3を有する。接続点は、接続領域内のグリッド上に設けられる。なお、図21(B)では接続関係を分かりやすくするために、互いに電気的に接続される接続点には同じ符号を付している。同じ符号を付した接続点は、配線で結ばれることを示している。例えば、トランジスタ素子Tr51の接続点CP_1と、容量素子C52の接続点CP_1は、配線で結ばれることを示している。
 次に、信号線の接続点をグリッド上に配置する。信号線の接続点は、グリッド上の任意の位置に配置できる。図21(B)に示した素子に対し、ワード線WL、接地電位線GND及びビット線BLのそれぞれの接続点の例を、図22(A)に示す。図22(A)は、ワード線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と配線で結ばれる接続点である。接続点間を結ぶ配線は、グリッド上にのみ設けられる。
 図22(A)に示した接続点に対する配線を、図22(B)に示す。図22(B)では配線を実線で示し、回路図341に基づく接続関係を全て満たす配線の例を配置できる例を示している。
 配線の経路を決定するアルゴリズムとして、線分探索法、迷路法、チャネル割当法などを用いることができる。本実施の形態では、線分探索法を用いることが好ましい。線分探索法とは、接続させるぞれぞれの2点からX軸方向及びY軸方向に順次線分を形成し、始点からの線分と終点からの線分が交わった時に、その点から逆方向に辿って経路を決定する方法である。
 回路図に基づく接続関係をすべて満たす配線を配置できる場合(Yes)は、ステップS29に進む。配線を配置できない場合(No)は、ステップS36に進む。
[ステップS29]
 ステップS29は、処理部103でデザインルールを満たしているか否かを判定するステップである。
 判定の対象は、ステップS28で作成した素子及び配線の配置を、素子及び配線のパターンに変換したレイアウトである。判定基準は、デザインルールである。図22(B)に示した素子及び配線の配置を、素子及び配線のパターンに変換した図を、図23に示す。図23は、レイアウトデータの一例である。配線のパターンは、デザインルールに定められた、配線の幅の最大値及び最小値の範囲内とすることができる。また、接続点の一部は、コンタクトホールに変換される。コンタクトホールの大きさは、デザインルールに定められた、コンタクトホールの大きさの最大値及び最小値の範囲内とすることができる。図23には、接続点の一部が、コンタクトホールCO_1乃至コンタクトホールCO_6に変換された図を示している。
 パターンのレイアウトが、デザインルールを満たす場合(Yes)は、ステップS30に進む。デザインルールを満たさない場合(No)は、ステップS36に進む。
 図23に示したレイアウトを、立体的に示した模式図を図24(B)に示す。また、回路構成を立体的に示した模式図を図24(A)に示す。本発明の一態様であるレイアウト設計システムを用いることで、回路設計で作成された回路図及びデザインルールを満たすとともに、集積回路の面積が小さいレイアウトデータを作成できる。
[ステップS30]
 ステップS30は、処理部103でアブストラクトを移動するステップである。該移動は、ステップS27で選択された移動aに従う。
 アブストラクトABS_1乃至アブストラクトABS_3の3つのアブストラクトを有するレイアウトで移動する例を、図25に示す。図25は、ステップS27で選択された移動aとして、アブストラクトABS_2がX軸方向に−1移動することが選択された例を示している。本実施の形態では、図25に示すように1つのエピソードで移動するアブストラクトは1つとしたが、これに限られない。複数のアブストラクトが移動する構成としてもよい。
[ステップS31]
 ステップS31は、処理部103でアブストラクトのレイアウト状態st+1を観察するステップである。
 レイアウト状態st+1は、ステップS27の移動aによって、ステップS25でのレイアウト状態sが変化したものである。レイアウト状態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)を教師データとみなす。該教師データを損失関数に用いることで、第1のニューラルネットワーク520の学習を行う。
 処理部103は第2のニューラルネットワーク530を有し、第2のニューラルネットワーク530により行動価値関数Q(st+1,at+1)を推定する。第2のニューラルネットワーク530では、ステップS31で作成したレイアウトの画像データLIMGt+1を入力データとして、行動価値関数Q(st+1,at+1)を出力データとする。第2のニューラルネットワーク530として、畳み込みニューラルネットワーク(CNN)の構成を用いることが好ましい。
 第2のニューラルネットワーク530の構成を図17(B)に示す。図17(B)はニューラルネットワークとして、畳み込みニューラルネットワーク(CNN)の構成を用いる例を示している。図17(B)に示す第2のニューラルネットワーク530は、入力層531、中間層532及び出力層533で構成される。入力層531において、入力データであるレイアウトの画像データLIMGt+1、出力データとして行動価値関数Q(st+1,a)乃至行動価値関数Q(st+1,a)を示している。レイアウト状態sにおいて、取りうる移動が移動a乃至移動aのm通り存在し、それぞれの移動に対応する行動価値関数をQ(s,a)乃至行動価値関数Q(st+1,a)と示している。行動価値関数Q(st+1,a)乃至行動価値関数Q(st+1,a)のうち最も高いQ値と、報酬rt+1の和を、第1のニューラルネットワークの推論に対する教師データとして用いることができる。
 図17(B)では、中間層532が、畳み込み層534、プーリング層585、畳み込み層536、プーリング層537、畳み込み層538及び全結合層539で構成される。なお、中間層532の構成は一例であり、プーリング処理及び畳み込み演算処理をさらに多層で行う構成や、パディングやストライドといった演算処理を介して行う構成としてもよい。なお、図17(B)にフィルタは図示していない。
 なお、ステップS27及びステップS32で、1つのニューラルネットワークを用いてもよい。また、ステップS27及びステップS32で、それぞれ異なるニューラルネットワークを用いてもよい。
[ステップS33]
 ステップS33は、処理部103で報酬rt+1を受け取り、行動価値関数Q(s,a)を更新するステップである。
 報酬rt+1は、ステップS30でのアブストラクトの移動aに対する報酬である。移動aを行った後のブロックBLKの面積を算出し、ステップS24で設定した報酬設定に従い、ブロックBLKの面積に応じた報酬rt+1が決定される。なお、ステップS33において報酬を与えない、つまり報酬rt+1=0としてもよい。
 第1のニューラルネットワーク520による行動価値関数Q(s,a)の推論結果と、第2のニューラルネットワーク530により作成した教師データを用いて損失関数を計算する。確率的勾配降下法(SGD:Stochastic Gradient Descent)を用いて、該損失関数の値が小さくなるように、第1のニューラルネットワーク520の重み係数を更新する。確率的勾配降下法の他に、Adam(Adaptive Moment Estimation)、モメンタム(Momentum)、AdaGrad(Adaptive SubGradient Methods)、RMSPropなどを用いることができる。
[ステップS34]
 ステップS34は、処理部103で終了条件Aを満たしているか否かを判定するステップである。終了条件Aを満たす場合(Yes)は、ステップS35に進む。終了条件Aを満たさない場合(No)は、ステップS26のレイアウト状態の観察に進む。以降、ステップS26乃至ステップS33を繰り返すことで、第1のニューラルネットワーク520及び第2のニューラルネットワーク530の重み係数を更新し、第1のニューラルネットワーク520及び第2のニューラルネットワーク530を最適化していく。第1のニューラルネットワーク520及び第2のニューラルネットワーク530を最適化することで、短時間で、デザインルールを満たしつつ面積の小さいレイアウト設計を行うレイアウト設計システム100とすることができる。
 終了条件Aとして、図5及び図6に示すレイアウト設計フローの開始からの経過時間を用いることができる。終了条件Aを設定することで、アルゴリズムが収束せずにレイアウト設計が終わらなくなるのを防げる。
[ステップS35]
 ステップS35は、処理部103で終了条件Bを満たしているか否かを判定するステップである。終了条件Bを満たす場合(Yes)は、レイアウト設計は終了し、レイアウトデータを出力する。レイアウトデータとして、例えば図23に示すレイアウトデータを出力できる。終了条件Bを満たさない場合(No)は、ステップS25のアブストラクトの配置に進み、アブストラクトの初期配置から学習を進める。以降、ステップS26乃至ステップS33を繰り返すことで、第1のニューラルネットワーク520及び第2のニューラルネットワーク530の重み係数を更新し、第1のニューラルネットワーク520及び第2のニューラルネットワーク530を最適化していく。第1のニューラルネットワーク520及び第2のニューラルネットワーク530を最適化することで、短時間で、デザインルールを満たしつつ面積の小さいレイアウト設計を行うレイアウト設計システム100とすることができる。
 終了条件Bとして、例えば、エピソード回数を用いることができる。
[ステップS36]
 ステップS28で接続点を接続できない場合、又はステップS29でデザインルールを満たさない場合は、ステップS36に進む。ステップS36において、処理部103で報酬rを受け取り、行動価値関数Q(s,a)を更新する。ステップS36での報酬rは、ステップS33での報酬rより小さい値とする。報酬rとして負の値を用いてもよい。例えば、報酬rを−1とすることができる。
 以上により、レイアウト設計を行うことができる。
 また、それぞれ異なる回路図及びデザインルールを用いてレイアウト設計を行うことで、汎用性の高いレイアウト設計システムとすることができる。
<3.レイアウト設計方法2>
 前述の<2.レイアウト設計方法1>に示したレイアウト設計方法と異なるレイアウト設計方法について、説明する。<2.レイアウト設計方法1>と異なるのは、ステップS27における行動価値関数Q(s,a)の推定の方法である。他のステップは前述の記載を参照できる為、詳細な説明を省略する。
[ステップS27]
 ステップS27において、処理部103で行動価値関数Q(s,a)を推定する。処理部103は第1のニューラルネットワーク520を有し、第1のニューラルネットワーク520により行動価値関数Q(s,a)を推定する。第1のニューラルネットワーク520では、ステップS26で作成したレイアウトの画像データLIMGを入力データとして、行動価値関数Q(s,a)を出力データとする。第1のニューラルネットワーク520として、畳み込みニューラルネットワーク(CNN)の構成を用いることが好ましい。
 第1のニューラルネットワーク520の構成については、前述の記載を参照できるため、詳細な説明を省略する。
 アブストラクトが取りうる移動aについて説明する。1エピソードにおいて、行動価値関数Q(s,a)を推定する対象を1つのアブストラクトABSとする。1つのアブストラクトが取りうる移動aは、X軸方向に+1移動する、X軸方向に−1移動する、Y軸方向に+1移動する、Y軸方向に−1移動する、その場で90°回転する、移動しない、の6種類とすることができる。
 k個のアブストラクトABS_1乃至アブストラクトABS_kの中で、移動の対象となる1つのアブストラクトをアブストラクトABS_iと記す。アブストラクトABS_iが前述の6種類の移動を取りうる場合の出力データの例を、表2に示す。1つのアブストラクトABS_iに対し、取りうる移動は移動a乃至移動aの6通りとなり、出力データを行動価値関数Q(s,a)乃至行動価値関数Q(s,a)の6個とすることができる。
Figure JPOXMLDOC01-appb-T000003
 1つのエピソードでは1つのアブストラクトABS_iを移動の対象とし、次のエピソードでは前エピソードと異なる1つのアブストラクトABS_(i+1)を移動の対象とする。1つのエピソードで移動する対象を1つのアブストラクトとすることで、ニューラルネットワークの出力データ数を固定することができ、汎用性の高いニューラルネットワークとすることができる。
<4.レイアウト設計方法3>
 前述の<2.レイアウト設計方法1>及び<3.レイアウト設計方法2>では、第1のニューラルネットワーク520及び第2のニューラルネットワーク530の重み係数を繰り返し更新し、ニューラルネットワークを学習させる方法を示した。これらの学習済みのニューラルネットワークを用いてレイアウト設計を行う方法について、説明する。レイアウト設計のフローを、図7に示す。
[ステップS101]
 ステップS101は、回路図及びレイアウト設計情報を取得するステップである。
 ステップS101は、前述のステップS21の記載を参照できるため、詳細な説明を省略する。
[ステップS102]
 ステップS102は、処理部103でグリッドを作成するステップである。
 ステップS102は、前述のステップS22の記載を参照できるため、詳細な説明を省略する。
[ステップS103]
 ステップS103は、処理部103でグリッド枠内に基本セル及びアブストラクトを作成するステップである。
 ステップS103は、前述のステップS23の記載を参照できるため、詳細な説明を省略する。
[ステップS104]
 ステップS104は、処理部103でアブストラクトをレイアウト枠内にランダムに配置するステップである。
 ステップS104は、前述のステップS25の記載を参照できるため、詳細な説明を省略する。
[ステップS105]
 ステップS105は、処理部103でアブストラクトのレイアウト状態sを観察するステップである。
 ステップS105は、前述のステップS26の記載を参照できるため、詳細な説明を省略する。
[ステップS106]
 ステップS106は、処理部103で行動価値関数Q(s,a)を推定するステップである。
 ステップ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で選択された移動aに従う。
 ステップS109は、前述のステップS30の記載を参照できるため、詳細な説明を省略する。
[ステップS110]
 ステップS110は、処理部103で終了条件Cを満たしているか否かを判定するステップである。終了条件Cを満たす場合(Yes)は、レイアウト設計は終了する。終了条件Cを満たさない場合(No)は、ステップS105のレイアウト状態の観察に進む。
 終了条件Cとして、例えば、エピソード回数又はレイアウト処理開始からの経過時間を用いることができる。
 本発明の一態様である最適化されたニューラルネットワークを有するレイアウト設計システムを用いることで、短時間で、デザインルールを満たしつつ面積の小さいレイアウト設計を行うとすることができる。
<5.レイアウト設計システムの例>
 図1に示したレイアウト設計システム100と異なるレイアウト設計システムについて説明する。
 レイアウト設計システム150のブロック図を図26に示す。レイアウト設計システム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としては、ハブ、ルータ、モデムなどを用いることができる。情報の送受信には、有線を用いても無線(例えば、電波、赤外線など)を用いてもよい。
 以上のように、本実施の形態のレイアウト設計システムでは、事前に準備されたレイアウト設計情報を元に、入力された回路図からレイアウトデータを作成できる。
 本実施の形態は、他の実施の形態と適宜組み合わせることができる。また、本明細書において、1つの実施の形態の中に、複数の構成例が示される場合は、構成例を適宜組み合わせることが可能である。
(実施の形態2)
 本実施の形態では、上記の実施の形態で説明したニューラルネットワークに用いることが可能な半導体装置の構成例について説明する。
 図27(A)に示すように、ニューラルネットワークNNは入力層IL、出力層OL、中間層(隠れ層)HLによって構成することができる。入力層IL、出力層OL、中間層HLはそれぞれ、1又は複数のニューロン(ユニット)を有する。なお、中間層HLは1層であってもよいし2層以上であってもよい。2層以上の中間層HLを有するニューラルネットワークはDNN(ディープニューラルネットワーク)と呼ぶこともでき、ディープニューラルネットワークを用いた学習は深層学習と呼ぶこともできる。
 入力層ILの各ニューロンには入力データが入力され、中間層HLの各ニューロンには前層又は後層のニューロンの出力信号が入力され、出力層OLの各ニューロンには前層のニューロンの出力信号が入力される。なお、各ニューロンは、前後の層の全てのニューロンと結合されていてもよいし(全結合)、一部のニューロンと結合されていてもよい。
 図27(B)に、ニューロンによる演算の例を示す。ここでは、ニューロンNと、ニューロンNに信号を出力する前層の2つのニューロンを示している。ニューロンNには、前層のニューロンの出力xと、前層のニューロンの出力xが入力される。そして、ニューロンNにおいて、出力xと重みwの乗算結果(x)と出力xと重みwの乗算結果(x)の総和x+xが計算された後、必要に応じてバイアスbが加算され、値a=x+x+bが得られる。そして、値aは活性化関数hによって変換され、ニューロンNから出力信号y=h(a)が出力される。
 このように、ニューロンによる演算には、前層のニューロンの出力と重みの積を足し合わせる演算、すなわち積和演算が含まれる(上記のx+x)。この積和演算は、プログラムを用いてソフトウェア上で行ってもよいし、ハードウェアによって行われてもよい。積和演算をハードウェアによって行う場合は、積和演算回路を用いることができる。この積和演算回路としては、デジタル回路を用いてもよいし、アナログ回路を用いてもよい。積和演算回路にアナログ回路を用いる場合、積和演算回路の回路規模の縮小、又は、メモリへのアクセス回数の減少による処理速度の向上及び消費電力の低減を図ることができる。
 積和演算回路は、チャネル形成領域にシリコン(単結晶シリコンなど)を含むトランジスタ(以下、Siトランジスタともいう)によって構成してもよいし、チャネル形成領域に酸化物半導体を含むトランジスタ(以下、OSトランジスタともいう)によって構成してもよい。特に、OSトランジスタはオフ電流が極めて小さいため、積和演算回路のアナログメモリを構成するトランジスタとして好適である。なお、SiトランジスタとOSトランジスタの両方を用いて積和演算回路を構成してもよい。以下、積和演算回路の機能を備えた半導体装置の構成例について説明する。
<半導体装置の構成例>
 図28に、ニューラルネットワークの演算を行う機能を有する半導体装置MACの構成例を示す。半導体装置MACは、ニューロン間の結合強度(重み)に対応する第1のデータと、入力データに対応する第2のデータの積和演算を行う機能を有する。なお、第1のデータ及び第2のデータはそれぞれ、アナログデータ又は多値のデータ(離散的なデータ)とすることができる。また、半導体装置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は、第1のデータを格納する機能を有する。また、メモリセル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]と表記する。
 メモリセルMC及びメモリセルMCrefの具体的な構成例を、図29に示す。図29には代表例としてメモリセルMC[1,1]、[2,1]及びメモリセルMCref[1]、[2]を示しているが、他のメモリセルMC及びメモリセルMCrefにも同様の構成を用いることができる。メモリセルMC及びメモリセルMCrefはそれぞれ、トランジスタTr11、Tr12、容量素子C11を有する。ここでは、トランジスタTr11及びトランジスタTr12がnチャネル型のトランジスタである場合について説明する。
 メモリセルMCにおいて、トランジスタTr11のゲートは配線WLと接続され、ソース又はドレインの一方はトランジスタTr12のゲート、及び容量素子C11の第1の電極と接続され、ソース又はドレインの他方は配線WDと接続されている。トランジスタTr12のソース又はドレインの一方は配線BLと接続され、ソース又はドレインの他方は配線VRと接続されている。容量素子C11の第2の電極は、配線RWと接続されている。配線VRは、所定の電位を供給する機能を有する配線である。ここでは一例として、配線VRから低電源電位(接地電位など)が供給される場合について説明する。
 トランジスタTr11のソース又はドレインの一方、トランジスタTr12のゲート、及び容量素子C11の第1の電極と接続されたノードを、ノードNMとする。また、メモリセルMC[1,1]、[2,1]のノードNMを、それぞれノードNM[1,1]、[2,1]と表記する。
 メモリセルMCrefも、メモリセルMCと同様の構成を有する。ただし、メモリセルMCrefは配線WDの代わりに配線WDrefと接続され、配線BLの代わりに配線BLrefと接続されている。また、メモリセルMCref[1]、[2]において、トランジスタTr11のソース又はドレインの一方、トランジスタTr12のゲート、及び容量素子C11の第1の電極と接続されたノードを、それぞれノードNMref[1]、[2]と表記する。
 ノードNMとノードNMrefはそれぞれ、メモリセルMCとメモリセルMCrefの保持ノードとして機能する。ノードNMには第1のデータが保持され、ノードNMrefには参照データが保持される。また、配線BL[1]からメモリセルMC[1,1]、[2,1]のトランジスタTr12には、それぞれ電流IMC[1,1]、IMC[2,1]が流れる。また、配線BLrefからメモリセルMCref[1]、[2]のトランジスタTr12には、それぞれ電流IMCref[1]、IMCref[2]が流れる。
 トランジスタ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]に供給される電流をI、電流源回路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には、配線BLrefから配線ILrefに電流ICMが排出され、配線BL[1]乃至[n]から配線IL[1]乃至[n]に電流ICMが排出される例を示している。また、カレントミラー回路CMから配線BL[1]乃至[n]を介してセルアレイCAに流れる電流を、I[1]乃至[n]と表記する。また、カレントミラー回路CMから配線BLrefを介してセルアレイCAに流れる電流を、IBrefと表記する。
 回路WDDは、配線WD[1]乃至[n]及び配線WDrefと接続されている。回路WDDは、メモリセルMCに格納される第1のデータに対応する電位を、配線WD[1]乃至[n]に供給する機能を有する。また、回路WDDは、メモリセルMCrefに格納される参照データに対応する電位を、配線WDrefに供給する機能を有する。回路WLDは、配線WL[1]乃至[m]と接続されている。回路WLDは、データの書き込みを行うメモリセルMC又はメモリセルMCrefを選択するための信号を、配線WL[1]乃至[m]に供給する機能を有する。回路CLDは、配線RW[1]乃至[m]と接続されている。回路CLDは、第2のデータに対応する電位を、配線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]と表記する。
 オフセット回路OFSTの構成例を図30に示す。図30に示すオフセット回路OFSTは、回路OC[1]乃至[n]を有する。また、回路OC[1]乃至[n]はそれぞれ、トランジスタTr21、トランジスタTr22、トランジスタTr23、容量素子C21、及び抵抗素子R1を有する。各素子の接続関係は図30に示す通りである。なお、容量素子C21の第1の電極及び抵抗素子R1の第1の端子と接続されたノードを、ノードNaとする。また、容量素子C21の第2の電極、トランジスタ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]に第1の電流が流れると、ノードNaの電位は、第1の電流と抵抗素子R1の抵抗値に応じた電位となる。また、このときトランジスタTr21はオン状態であり、ノードNbに電位Vaが供給される。その後、トランジスタTr21はオフ状態となる。
 次に、配線BL[1]に第2の電流が流れると、ノードNaの電位は、第2の電流と抵抗素子R1の抵抗値に応じた電位に変化する。このときトランジスタTr21はオフ状態であり、ノードNbはフローティング状態となっているため、ノードNaの電位の変化に伴い、ノードNbの電位は容量結合により変化する。ここで、ノードNaの電位の変化をΔVNaとし、容量結合係数を1とすると、ノードNbの電位はVa+ΔVNaとなる。そして、トランジスタTr22のしきい値電圧をVthとすると、配線OL[1]から電位Va+ΔVNa−Vthが出力される。ここで、Va=Vthとすることにより、配線OL[1]から電位ΔVNaを出力することができる。
 電位ΔVNaは、第1の電流から第2の電流への変化量、抵抗素子R1、及び電位Vrefに応じて定まる。ここで、抵抗素子R1と電位Vrefは既知であるため、電位ΔVNaから配線BLに流れる電流の変化量を求めることができる。
 上記のようにオフセット回路OFSTによって検出された電流量、及び/又は電流の変化量に対応する信号は、配線OL[1]乃至[n]を介して活性化関数回路ACTVに入力される。
 活性化関数回路ACTVは、配線OL[1]乃至[n]、及び、配線NIL[1]乃至[n]と接続されている。活性化関数回路ACTVは、オフセット回路OFSTから入力された信号を、あらかじめ定義された活性化関数に従って変換するための演算を行う機能を有する。活性化関数としては、例えば、シグモイド関数、tanh関数、softmax関数、ReLU関数、しきい値関数などを用いることができる。活性化関数回路ACTVによって変換された信号は、出力データとして配線NIL[1]乃至[n]に出力される。
<半導体装置の動作例>
 上記の半導体装置MACを用いて、第1のデータと第2のデータの積和演算を行うことができる。以下、積和演算を行う際の半導体装置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]の電位の推移と、電流I[1]−Iα[1]、及び電流IBrefの値の推移を示している。電流I[1]−Iα[1]は、配線BL[1]からメモリセルMC[1,1]、[2,1]に流れる電流の総和に相当する。
 なお、ここでは代表例として図29に示すメモリセルMC[1,1]、[2,1]及びメモリセルMCref[1]、[2]に着目して動作を説明するが、他のメモリセルMC及びメモリセルMCrefも同様に動作させることができる。
[第1のデータの格納]
 まず、時刻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]に格納される第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のしきい値電圧である。
Figure JPOXMLDOC01-appb-I000004
 また、配線BLrefからメモリセルMCref[1]のトランジスタTr12に流れる電流IMCref[1],0は、次の式で表すことができる。
Figure JPOXMLDOC01-appb-I000005
 次に、時刻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]に格納される第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は、次の式で表すことができる。
Figure JPOXMLDOC01-appb-I000006
 また、配線BLrefからメモリセルMCref[2]のトランジスタTr12に流れる電流IMCref[2],0は、次の式で表すことができる。
Figure JPOXMLDOC01-appb-I000007
 次に、時刻T04−T05において、配線WL[2]の電位がローレベルとなる。これにより、メモリセルMC[2,1]及びメモリセルMCref[2]が有するトランジスタTr11がオフ状態となり、ノードNM[2,1]及びノードNMref[2]の電位が保持される。
 以上の動作により、メモリセルMC[1,1]、[2,1]に第1のデータが格納され、メモリセルMCref[1]、[2]に参照データが格納される。
 ここで、時刻T04−T05において、配線BL[1]及び配線BLrefに流れる電流を考える。配線BLrefには、電流源回路CSから電流が供給される。また、配線BLrefを流れる電流は、カレントミラー回路CM、メモリセルMCref[1]、[2]へ排出される。電流源回路CSから配線BLrefに供給される電流をICref、配線BLrefからカレントミラー回路CMへ排出される電流をICM,0とすると、次の式が成り立つ。
Figure JPOXMLDOC01-appb-I000008
 配線BL[1]には、電流源回路CSからの電流が供給される。また、配線BL[1]を流れる電流は、カレントミラー回路CM、メモリセルMC[1,1]、[2,1]へ排出される。また、配線BL[1]からオフセット回路OFSTに電流が流れる。電流源回路CSから配線BL[1]に供給される電流をIC,0、配線BL[1]からオフセット回路OFSTに流れる電流をIα,0とすると、次の式が成り立つ。
Figure JPOXMLDOC01-appb-I000009
[第1のデータと第2のデータの積和演算]
 次に、時刻T05−T06において、配線RW[1]の電位が基準電位よりもVX[1]大きい電位となる。このとき、メモリセルMC[1,1]、及びメモリセルMCref[1]のそれぞれの容量素子C11には電位VX[1]が供給され、容量結合によりトランジスタTr12のゲートの電位が上昇する。なお、電位Vx[1]はメモリセルMC[1,1]及びメモリセルMCref[1]に供給される第2のデータに対応する電位である。
 トランジスタTr12のゲートの電位の変化量は、配線RWの電位の変化量に、メモリセルの構成によって決まる容量結合係数を乗じた値となる。容量結合係数は、容量素子C11の容量、トランジスタTr12のゲート容量、及び寄生容量などによって算出される。以下では便宜上、配線RWの電位の変化量とトランジスタTr12のゲートの電位の変化量が同じ、すなわち容量結合係数が1であるとして説明する。実際には、容量結合係数を考慮して電位Vを決定すればよい。
 メモリセルMC[1,1]及びメモリセルMCref[1]の容量素子C11に電位VX[1]が供給されると、ノードNM[1,1]及びノードNMref[1]の電位がそれぞれVX[1]上昇する。
 ここで、時刻T05−T06において、配線BL[1]からメモリセルMC[1,1]のトランジスタTr12に流れる電流IMC[1,1],1は、次の式で表すことができる。
Figure JPOXMLDOC01-appb-I000010
 すなわち、配線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は、次の式で表すことができる。
Figure JPOXMLDOC01-appb-I000011
 すなわち、配線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とすると、次の式が成り立つ。
Figure JPOXMLDOC01-appb-I000012
 配線BL[1]には、電流源回路CSから電流Iが供給される。また、配線BL[1]を流れる電流は、カレントミラー回路CM、メモリセルMC[1,1]、[2,1]へ排出される。さらに、配線BL[1]からオフセット回路OFSTにも電流が流れる。配線BL[1]からオフセット回路OFSTに流れる電流をIα,1とすると、次の式が成り立つ。
Figure JPOXMLDOC01-appb-I000013
 そして、式(E1)乃至式(E10)から、電流Iα,0と電流Iα,1の差(差分電流ΔIα)は次の式で表すことができる。
Figure JPOXMLDOC01-appb-I000014
 このように、差分電流Δ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]大きい電位となる。これにより、メモリセルMC[1,1]、及びメモリセルMCref[1]のそれぞれの容量素子C11に電位VX[1]が供給され、容量結合によりノードNM[1,1]及びノードNMref[1]の電位がそれぞれVX[1]上昇する。また、メモリセルMC[2,1]、及びメモリセルMCref[2]のそれぞれの容量素子C11に電位VX[2]が供給され、容量結合によりノードNM[2,1]及びノードNMref[2]の電位がそれぞれVX[2]上昇する。
 ここで、時刻T07−T08において、配線BL[1]からメモリセルMC[2,1]のトランジスタTr12に流れる電流IMC[2,1],1は、次の式で表すことができる。
Figure JPOXMLDOC01-appb-I000015
 すなわち、配線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は、次の式で表すことができる。
Figure JPOXMLDOC01-appb-I000016
 すなわち、配線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とすると、次の式が成り立つ。
Figure JPOXMLDOC01-appb-I000017
 配線BL[1]には、電流源回路CSから電流Iが供給される。また、配線BL[1]を流れる電流は、カレントミラー回路CM、メモリセルMC[1,1]、[2,1]へ排出される。さらに、配線BL[1]からオフセット回路OFSTにも電流が流れる。配線BL[1]からオフセット回路OFSTに流れる電流をIα,2とすると、次の式が成り立つ。
Figure JPOXMLDOC01-appb-I000018
 そして、式(E1)乃至式(E8)、及び、式(E12)乃至式(E15)から、電流Iα,0と電流Iα,2の差(差分電流ΔIα)は次の式で表すことができる。
Figure JPOXMLDOC01-appb-I000019
 このように、差分電流Δ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αは、第1のデータ(重み)に対応する電位Vと、第2のデータ(入力データ)に対応する電位Vの積を足し合わせた結果に応じた値となる。すなわち、差分電流ΔIαをオフセット回路OFSTで計測することにより、第1のデータと第2のデータの積和演算の結果を得ることができる。
 なお、上記では特にメモリセルMC[1,1]、[2,1]及びメモリセルMCref[1]、[2]に着目したが、メモリセルMC及びメモリセルMCrefの数は任意に設定することができる。メモリセルMC及びメモリセルMCrefの行数mを任意の数とした場合の差分電流ΔIαは、次の式で表すことができる。
Figure JPOXMLDOC01-appb-I000020
 また、メモリセルMC及びメモリセルMCrefの列数nを増やすことにより、並列して実行される積和演算の数を増やすことができる。
 以上のように、半導体装置MACを用いることにより、第1のデータと第2のデータの積和演算を行うことができる。なお、メモリセルMC及びメモリセルMCrefとして図29に示す構成を用いることにより、少ないトランジスタ数で積和演算回路を構成することができる。そのため、半導体装置MACの回路規模の縮小を図ることができる。
 半導体装置MACをニューラルネットワークにおける演算に用いる場合、メモリセルMCの行数mは一のニューロンに供給される入力データの数に対応させ、メモリセルMCの列数nはニューロンの数に対応させることができる。例えば、図27(A)に示す中間層HLにおいて半導体装置MACを用いた積和演算を行う場合を考える。このとき、メモリセルMCの行数mは、入力層ILから供給される入力データの数(入力層ILのニューロンの数)に設定し、メモリセルMCの列数nは、中間層HLのニューロンの数に設定することができる。
 なお、半導体装置MACを適用するニューラルネットワークの構造は特に限定されない。例えば半導体装置MACは、畳み込みニューラルネットワーク(CNN)、再帰型ニューラルネットワーク(RNN)、オートエンコーダ、ボルツマンマシン(制限ボルツマンマシンを含む)などに用いることもできる。
 以上のように、半導体装置MACを用いることにより、ニューラルネットワークの積和演算を行うことができる。さらに、セルアレイCAに図29に示すメモリセルMC及びメモリセルMCrefを用いることにより、演算精度の向上、消費電力の削減、又は回路規模の縮小を図ることが可能な集積回路を提供することができる。
本実施の形態は、他の実施の形態と適宜組み合わせることができる。
 本実施例では、<2.レイアウト設計方法1>に示した方法を用いて、レイアウト設計を行った。
 本実施例において、グリッドは、グリッド間隔を1、グリッド枠の大きさを20×20(グリッド面積を400)とした。アブストラクトは4つとし、それぞれのアブストラクトの大きさを3×3とした。
 ステップS27及びステップS32において、行動価値関数Q(s,a)の更新では割引率γを0.95とした。第1のニューラルネットワーク及び第2のニューラルネットワークの最適化には、Adamを用いた。また、移動aの選択にε−greedy法を適用した。1エピソードではεを1とし、その後はεを線形に小さくし、80000エピソードではεを0.1とした。80000エピソード以降ではεを0.1とした。
 ステップS33において、アブストラクトの移動に対する報酬は、1−(ブロック面積/400)とし、ブロック面積が大きくなるほど報酬が小さくなる設定とした。また、ステップS36において、接続点を接続でき、かつデザインルールを満たす場合は報酬を0とし、接続点を接続できない、又はデザインルールを満たさない場合は報酬を−1とした。接続点間の経路は、線分探索法を用いて決定した。
 図32に学習の結果を示す。図32において、横軸はエピソード回数(Number of episodes)を示し、縦軸は報酬(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:入力層、LIMG:画像データ、LIMGt+1:画像データ、LIMG_1:画像データ、LIMG_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:グリッド

Claims (9)

  1.  処理部を有し、
     前記処理部には、回路図と、レイアウト設計情報と、が入力され、
     前記処理部は、前記回路図と、前記レイアウト設計情報とから、Q学習を行うことでレイアウトデータを生成する機能を有し、
     前記処理部は、前記レイアウトデータを出力する機能を有し、
     前記処理部は、第1のニューラルネットワークを有し、
     前記第1のニューラルネットワークは、前記Q学習において行動価値関数を推定する、レイアウト設計システム。
  2.  端末と、サーバと、を有し、
     前記端末は、入出力部と、第1の通信部と、を有し、
     前記サーバは、処理部と、第2の通信部と、を有し、
     前記入出力部には、回路図と、レイアウト設計情報と、が入力され、
     前記第1の通信部は、有線通信及び無線通信のうち一方または双方により、前記サーバに前記回路図及び前記レイアウト設計情報を供給する機能を有し、
     前記処理部は、前記回路図と、前記レイアウト設計情報とから、Q学習を行うことでレイアウトデータを生成する機能を有し、
     前記処理部は、前記第2の通信部に前記レイアウトデータを供給する機能を有し、
     前記第2の通信部は、有線通信及び無線通信のうち一方または双方により、前記端末に前記レイアウトデータを供給する機能を有し、
     前記処理部は、第1のニューラルネットワークを有し、
     前記第1のニューラルネットワークは、前記Q学習において行動価値関数を推定する、レイアウト設計システム。
  3.  請求項1又は請求項2において、
     前記第1のニューラルネットワークは、畳み込みニューラルネットワークである、レイアウト設計システム。
  4.  請求項1又は請求項2において、
     前記処理部は、さらに、第2のニューラルネットワークを有し、
     前記第2のニューラルネットワークは、前記行動価値関数の教師データを推定し、
     前記教師データから算出される損失関数に基づき、前記第1のニューラルネットワークの重み係数を更新する、レイアウト設計システム。
  5.  請求項4において、
     前記第2のニューラルネットワークは、畳み込みニューラルネットワークである、レイアウト設計システム。
  6.  請求項1又は請求項2において、
     前記処理部は、トランジスタを有し、
     前記トランジスタは、チャネル形成領域に金属酸化物を有する、レイアウト設計システム。
  7.  請求項1又は請求項2において、
     前記処理部は、トランジスタを有し、
     前記トランジスタは、チャネル形成領域にシリコンを有する、レイアウト設計システム。
  8.  回路図と、レイアウト設計情報と、を入力し、
     前記回路図と、前記レイアウト設計情報とから、Q学習を行うことで、レイアウトデータを作成し、
     前記Q学習において、第1のニューラルネットワークを用いて行動価値関数を推定し、
     前記レイアウトデータを出力する、レイアウト設計方法。
  9.  請求項8において、
     第2のニューラルネットワークは、前記行動価値関数の教師データを推定し、
     前記教師データから算出される損失関数に基づき、前記第1のニューラルネットワークの重み係数を更新する、レイアウト設計方法。
PCT/IB2018/054348 2017-06-22 2018-06-14 レイアウト設計システム及びレイアウト設計方法 WO2018234945A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2019524545A JP7146751B2 (ja) 2017-06-22 2018-06-14 レイアウト設計システム及びレイアウト設計方法
US16/622,054 US10949595B2 (en) 2017-06-22 2018-06-14 Layout design system and layout design method
CN201880041307.2A CN110998585A (zh) 2017-06-22 2018-06-14 布局设计系统及布局设计方法

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2017122541 2017-06-22
JP2017-122541 2017-06-22

Publications (1)

Publication Number Publication Date
WO2018234945A1 true WO2018234945A1 (ja) 2018-12-27

Family

ID=64735924

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/IB2018/054348 WO2018234945A1 (ja) 2017-06-22 2018-06-14 レイアウト設計システム及びレイアウト設計方法

Country Status (4)

Country Link
US (1) US10949595B2 (ja)
JP (1) JP7146751B2 (ja)
CN (1) CN110998585A (ja)
WO (1) WO2018234945A1 (ja)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020158179A1 (ja) * 2019-01-29 2020-08-06 京セラ株式会社 学習方法、学習プログラム、学習装置、自動配置設計方法、自動配置設計プログラム及び自動配置設計装置
WO2020199648A1 (zh) * 2019-04-01 2020-10-08 珠海格力电器股份有限公司 空调的控制方法和装置
JP2020173657A (ja) * 2019-04-11 2020-10-22 三菱電機株式会社 機械学習装置、設計支援装置、機械学習方法および設計支援方法
JP2020187395A (ja) * 2019-05-10 2020-11-19 国立大学法人群馬大学 素子値推論方法、素子値推論装置、及び、素子値推論プログラム
KR102420071B1 (ko) * 2021-11-18 2022-07-12 주식회사 마키나락스 인공지능 기반의 반도체 설계 자동화 방법
KR102474856B1 (ko) * 2021-11-18 2022-12-06 주식회사 마키나락스 인공지능 기반의 반도체 설계 자동화 방법
WO2023128093A1 (ko) * 2021-12-28 2023-07-06 주식회사 애자일소다 반도체 설계에서 사용자 학습 환경 기반의 강화학습 장치 및 방법
US11734484B2 (en) 2021-11-18 2023-08-22 MakinaRocks Co., Ltd. Method for automating semiconductor design based on artificial intelligence
CN117313636A (zh) * 2023-11-22 2023-12-29 全芯智造技术有限公司 用于生成版图的方法、设备和介质
JP7413580B2 (ja) 2018-12-04 2024-01-15 グーグル エルエルシー ニューラルネットワークを使用した集積回路フロアプランの生成

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6936976B2 (ja) 2017-05-24 2021-09-22 株式会社村田製作所 刺激伝達装置
DE112020000812T5 (de) 2019-02-15 2021-11-04 Semiconductor Energy Laboratory Co., Ltd. Parameter-Suchverfahren
US11263496B2 (en) 2019-02-25 2022-03-01 D2S, Inc. Methods and systems to classify features in electronic designs
US11182929B2 (en) * 2019-02-25 2021-11-23 Center For Deep Learning In Electronics Manufacturing, Inc. Methods and systems for compressing shape data for electronic designs
JP2021015976A (ja) 2019-07-12 2021-02-12 株式会社半導体エネルギー研究所 記憶装置
CN111931447A (zh) * 2020-07-22 2020-11-13 深圳市紫光同创电子有限公司 Fpga布局方法、装置、电子设备及存储介质
US11727171B2 (en) * 2020-09-29 2023-08-15 X Development Llc Techniques for using convex fabrication loss functions during an inverse design process to obtain fabricable designs
CN112396180B (zh) * 2020-11-25 2021-06-29 中国科学院自动化研究所 基于动态示教数据和行为克隆的深度q学习网络优化方法
CN113723040B (zh) * 2021-08-10 2022-06-03 广芯微电子(广州)股份有限公司 一种数字模拟混合电路中数字版图布局的方法及其装置
WO2023141045A2 (en) * 2022-01-19 2023-07-27 D2S, Inc. Computing and displaying a predicted overlap shape in an ic design based on predicted manufacturing contours
CN114781290A (zh) * 2022-04-27 2022-07-22 东南大学 一种基于目标检测网络的寄生参数提取方法
CN115249005B (zh) * 2022-09-21 2022-12-27 深圳飞骧科技股份有限公司 射频前端模组自动版图布局的方法、系统及相关设备
CN115392144B (zh) * 2022-10-31 2023-02-03 深圳飞骧科技股份有限公司 声表滤波器的自动设计方法、相关系统和存储介质
CN115688670B (zh) * 2022-12-29 2023-04-14 全芯智造技术有限公司 集成电路的布图方法及装置、存储介质、终端设备

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015148926A (ja) * 2014-02-06 2015-08-20 富士通株式会社 情報処理装置、評価関数学習方法およびプログラム

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05198678A (ja) * 1991-11-12 1993-08-06 Fujitsu Ltd 半導体集積回路のレイアウト方法およびレイアウト装置
US6847071B2 (en) * 2001-06-06 2005-01-25 Matsushita Electric Industrial Co., Ltd. Semiconductor device
JP2004054638A (ja) * 2002-07-19 2004-02-19 Honda Motor Co Ltd クロスモーダル学習装置及び認識処理方法
JP5737044B2 (ja) * 2011-08-04 2015-06-17 富士通株式会社 回路のレイアウト装置,処理方法およびプログラム
WO2013111973A1 (ko) * 2012-01-27 2013-08-01 한국과학기술원 시각신경 회로장치, 시각신경 회로장치를 이용한 시각신경 모방시스템 및 객체탐색 시스템
US9519804B2 (en) * 2013-02-05 2016-12-13 Hackproof Technologies, Inc. Domain-specific hardwired symbolic machine that validates and maps a symbol
US9679258B2 (en) * 2013-10-08 2017-06-13 Google Inc. Methods and apparatus for reinforcement learning
US10095718B2 (en) * 2013-10-16 2018-10-09 University Of Tennessee Research Foundation Method and apparatus for constructing a dynamic adaptive neural network array (DANNA)
JP2015122398A (ja) * 2013-12-24 2015-07-02 セイコーエプソン株式会社 半導体集積回路装置及びそのレイアウト設計方法
US10140407B2 (en) * 2014-11-26 2018-11-27 Taiwan Semiconductor Manufacturing Company, Ltd. Method, device and computer program product for integrated circuit layout generation
US10102320B2 (en) * 2015-02-26 2018-10-16 Autodesk, Inc. Predictive multi-user client-server electronic circuit design system utilizing machine learning techniques
JP6674838B2 (ja) 2015-05-21 2020-04-01 株式会社半導体エネルギー研究所 電子装置
JP6140236B2 (ja) * 2015-09-30 2017-05-31 ファナック株式会社 機械学習装置及び電動機用着磁装置
US10142909B2 (en) * 2015-10-13 2018-11-27 The Board Of Trustees Of The University Of Alabama Artificial intelligence-augmented, ripple-diamond-chain shaped rateless routing in wireless mesh networks with multi-beam directional antennas
JP6496652B2 (ja) 2015-10-27 2019-04-03 株式会社高畑 着脱可能なカバーのボタン留め具およびそれを用いた取付構造
US9792397B1 (en) * 2017-01-08 2017-10-17 Alphaics Corporation System and method for designing system on chip (SoC) circuits through artificial intelligence and reinforcement learning
JP6789848B2 (ja) * 2017-02-27 2020-11-25 株式会社東芝 アイソレーション管理システムおよびアイソレーション管理方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015148926A (ja) * 2014-02-06 2015-08-20 富士通株式会社 情報処理装置、評価関数学習方法およびプログラム

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7413580B2 (ja) 2018-12-04 2024-01-15 グーグル エルエルシー ニューラルネットワークを使用した集積回路フロアプランの生成
JP6789442B1 (ja) * 2019-01-29 2020-11-25 京セラ株式会社 学習方法、学習プログラム、学習装置、自動配置設計方法、自動配置設計プログラム及び自動配置設計装置
US11436391B2 (en) 2019-01-29 2022-09-06 Kyocera Corporation Learning method and automatic layout design method
WO2020158179A1 (ja) * 2019-01-29 2020-08-06 京セラ株式会社 学習方法、学習プログラム、学習装置、自動配置設計方法、自動配置設計プログラム及び自動配置設計装置
WO2020199648A1 (zh) * 2019-04-01 2020-10-08 珠海格力电器股份有限公司 空调的控制方法和装置
US11965666B2 (en) 2019-04-01 2024-04-23 Gree Electric Appliances, Inc. Of Zhuhai Control method for air conditioner, and device for air conditioner and storage medium
JP2020173657A (ja) * 2019-04-11 2020-10-22 三菱電機株式会社 機械学習装置、設計支援装置、機械学習方法および設計支援方法
JP7149894B2 (ja) 2019-04-11 2022-10-07 三菱電機株式会社 機械学習装置、設計支援装置、機械学習方法および設計支援方法
JP2020187395A (ja) * 2019-05-10 2020-11-19 国立大学法人群馬大学 素子値推論方法、素子値推論装置、及び、素子値推論プログラム
JP7239798B2 (ja) 2019-05-10 2023-03-15 国立大学法人群馬大学 素子値推論方法、素子値推論装置、及び、素子値推論プログラム
KR102474856B1 (ko) * 2021-11-18 2022-12-06 주식회사 마키나락스 인공지능 기반의 반도체 설계 자동화 방법
US11734484B2 (en) 2021-11-18 2023-08-22 MakinaRocks Co., Ltd. Method for automating semiconductor design based on artificial intelligence
US11790136B2 (en) 2021-11-18 2023-10-17 MakinaRocks Co., Ltd. Method for automating semiconductor design based on artificial intelligence
KR102420071B1 (ko) * 2021-11-18 2022-07-12 주식회사 마키나락스 인공지능 기반의 반도체 설계 자동화 방법
WO2023128093A1 (ko) * 2021-12-28 2023-07-06 주식회사 애자일소다 반도체 설계에서 사용자 학습 환경 기반의 강화학습 장치 및 방법
CN117313636A (zh) * 2023-11-22 2023-12-29 全芯智造技术有限公司 用于生成版图的方法、设备和介质
CN117313636B (zh) * 2023-11-22 2024-02-23 全芯智造技术有限公司 用于生成版图的方法、设备和介质

Also Published As

Publication number Publication date
US10949595B2 (en) 2021-03-16
JP7146751B2 (ja) 2022-10-04
JPWO2018234945A1 (ja) 2020-06-18
CN110998585A (zh) 2020-04-10
US20200184137A1 (en) 2020-06-11

Similar Documents

Publication Publication Date Title
JP7146751B2 (ja) レイアウト設計システム及びレイアウト設計方法
US11361216B2 (en) Neural network circuits having non-volatile synapse arrays
Xi et al. In-memory learning with analog resistive switching memory: A review and perspective
Joshi et al. Accurate deep neural network inference using computational phase-change memory
Ambrogio et al. Equivalent-accuracy accelerated neural-network training using analogue memory
Yang et al. Transiently chaotic simulated annealing based on intrinsic nonlinearity of memristors for efficient solution of optimization problems
US10755170B2 (en) Resistive processing unit with hysteretic updates for neural network training
Liu et al. A memristor-based optimization framework for artificial intelligence applications
WO2020188397A1 (ja) 配線レイアウト設計方法、プログラム、および記録媒体
JP2022019832A (ja) システム
TWI699711B (zh) 記憶體裝置及其製造方法
CN110941185B (zh) 一种用于二值神经网络的双字线6tsram单元电路
WO2019147522A2 (en) Neural network circuits having non-volatile synapse arrays
CN113711205A (zh) 文档检索系统及文档检索方法
Bennett et al. Contrasting advantages of learning with random weights and backpropagation in non-volatile memory neural networks
CN113643175A (zh) 数据处理方法及电子装置
CN112199234A (zh) 一种基于忆阻器的神经网络容错方法
Luo et al. Codg-reram: An algorithm-hardware co-design to accelerate semi-structured gnns on reram
Lin et al. Uncertainty quantification via a memristor Bayesian deep neural network for risk-sensitive reinforcement learning
Geng et al. An on-chip layer-wise training method for RRAM based computing-in-memory chips
Erkmen et al. A mixed mode neural network circuitry for object recognition application
CN115587620A (zh) 神经形态装置和包括该神经形态装置的电子装置
Wang et al. A Weight Importance Analysis Technique for Area-and Power-Efficient Binary Weight Neural Network Processor Design
US20240037394A1 (en) System and method for neural network multiple task adaptation
US20230113207A1 (en) Method of predicting characteristic of semiconductor device and computing device performing the same

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 18820617

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2019524545

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 18820617

Country of ref document: EP

Kind code of ref document: A1