(57)【要約】短時間で、デザインルールを満たしつつ面積の小さいレイアウト設計を行う。処理部を有し、処理部には、回路図と、レイアウト設計情報と、が入力され、処理部は、回路図と、レイアウト設計情報とから、Ｑ学習を行うことでレイアウトデータを生成する機能を有し、処理部は、レイアウトデータを出力する機能を有し、処理部は、第１のニューラルネットワークを有し、第１のニューラルネットワークは、Ｑ学習において行動価値関数を推定する、レイアウト設計システム。
2018234945.tif 000002
【特許請求の範囲】
【請求項１】
処理部を有し、
前記処理部には、回路図と、レイアウト設計情報と、が入力され、
前記処理部は、前記回路図と、前記レイアウト設計情報とから、Ｑ学習を行うことでレイアウトデータを生成する機能を有し、
前記処理部は、前記レイアウトデータを出力する機能を有し、
前記処理部は、第１のニューラルネットワークを有し、
前記第１のニューラルネットワークは、前記Ｑ学習において行動価値関数を推定する、レイアウト設計システム。
【請求項２】
端末と、サーバと、を有し、
前記端末は、入出力部と、第１の通信部と、を有し、
前記サーバは、処理部と、第２の通信部と、を有し、
前記入出力部には、回路図と、レイアウト設計情報と、が入力され、
前記第１の通信部は、有線通信及び無線通信のうち一方または双方により、前記サーバに前記回路図及び前記レイアウト設計情報を供給する機能を有し、
前記処理部は、前記回路図と、前記レイアウト設計情報とから、Ｑ学習を行うことでレイアウトデータを生成する機能を有し、
前記処理部は、前記第２の通信部に前記レイアウトデータを供給する機能を有し、
前記第２の通信部は、有線通信及び無線通信のうち一方または双方により、前記端末に前記レイアウトデータを供給する機能を有し、
前記処理部は、第１のニューラルネットワークを有し、
前記第１のニューラルネットワークは、前記Ｑ学習において行動価値関数を推定する、レイアウト設計システム。
【請求項３】
請求項１又は請求項２において、
前記第１のニューラルネットワークは、畳み込みニューラルネットワークである、レイアウト設計システム。
【請求項４】
請求項１又は請求項２において、
前記処理部は、さらに、第２のニューラルネットワークを有し、
前記第２のニューラルネットワークは、前記行動価値関数の教師データを推定し、
前記教師データから算出される損失関数に基づき、前記第１のニューラルネットワークの重み係数を更新する、レイアウト設計システム。
【請求項５】
請求項４において、
前記第２のニューラルネットワークは、畳み込みニューラルネットワークである、レイアウト設計システム。
【請求項６】
請求項１又は請求項２において、
前記処理部は、トランジスタを有し、
前記トランジスタは、チャネル形成領域に金属酸化物を有する、レイアウト設計システム。
【請求項７】
請求項１又は請求項２において、
前記処理部は、トランジスタを有し、
前記トランジスタは、チャネル形成領域にシリコンを有する、レイアウト設計システム。
【請求項８】
回路図と、レイアウト設計情報と、を入力し、
前記回路図と、前記レイアウト設計情報とから、Ｑ学習を行うことで、レイアウトデータを作成し、
前記Ｑ学習において、第１のニューラルネットワークを用いて行動価値関数を推定し、
前記レイアウトデータを出力する、レイアウト設計方法。
【請求項９】
請求項８において、
第２のニューラルネットワークは、前記行動価値関数の教師データを推定し、
前記教師データから算出される損失関数に基づき、前記第１のニューラルネットワークの重み係数を更新する、レイアウト設計方法。
【発明の詳細な説明】
【技術分野】
【０００１】  本発明の一態様は、レイアウト設計システム及びレイアウト設計方法に関する。【０００２】  なお、本発明の一態様は、上記の技術分野に限定されない。本明細書等で開示する本発明の一態様の技術分野としては、半導体装置、表示装置、発光装置、蓄電装置、記憶装置、表示システム、電子機器、照明装置、入力装置、入出力装置、それらの駆動方法、又はそれらの製造方法、を一例として挙げることができる。【０００３】  また、本明細書等において、半導体装置とは、半導体特性を利用することで機能しうる装置全般を指す。トランジスタ、半導体回路、演算装置、記憶装置等は半導体装置の一態様である。また、撮像装置、電気光学装置、発電装置（薄膜太陽電池、有機薄膜太陽電池等を含む）、及び電子機器は半導体装置を有している場合がある。
【背景技術】
【０００４】  半導体技術の進歩に伴い集積回路の規模が大きくなっており、回路設計者には大規模な回路を短期間で設計することが求められている。集積回路の設計において、デジタル回路のレイアウト設計を自動で行うＣＡＤツールが実用化されている。一方、アナログ回路などは回路設計者が手動でレイアウト設計の作業を行い、長い作業時間を要する場合がある。また、レイアウト設計においては、要求される回路特性及びデザインルールを満たす必要があることから、回路設計者には高い技術が求められる。【０００５】  また、様々な用途において、人工知能の活用が検討されている。特に、人工ニューラルネットワークの構成を応用することで、従来のノイマン型コンピュータよりも高性能なコンピュータが実現できると期待されており、近年、電子回路上で人工ニューラルネットワークを構築する種々の研究が進められている。【０００６】  例えば、特許文献１には、チャネル形成領域に酸化物半導体を有するトランジスタを用いた記憶装置によって、人工ニューラルネットワークを用いた計算に必要な重みデータを保持する発明が開示されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】米国特許公開第２０１６／０３４３４５２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】  アナログ回路設計においては、回路設計者が手動でレイアウト設計の作業を行うことが多く、作業に時間を要することから、レイアウト設計の作業時間の短縮が求められる。また、アナログ回路のレイアウト設計は、製造コスト削減や動作速度向上のため、レイアウト面積の最小化が求められるとともに、配線や導体が有する寄生容量などを考慮し、デザインルールを満たす必要がある。【０００９】  上記に鑑み、本発明の一態様は、短時間でレイアウト設計を行えるレイアウト設計システムを提供することを課題の一つとする。又は、本発明の一態様は、レイアウト面積の小さいレイアウト設計を行えるレイアウト設計システムを提供することを課題の一つとする。又は、本発明の一態様は、新規なレイアウト設計システムを提供することを課題の一つとする。又は、本発明の一態様は、短時間でレイアウト設計を行えるレイアウト設計方法を提供することを課題の一つとする。又は、本発明の一態様は、レイアウト面積の小さいレイアウト設計を行えるレイアウト設計方法を提供することを課題の一つとする。又は、本発明の一態様は、新規なレイアウト設計方法を提供することを課題の一つとする。【００１０】  なお、これらの課題の記載は、他の課題の存在を妨げるものではない。本発明の一態様は、必ずしも、これらの課題の全てを解決する必要はないものとする。明細書、図面、請求項の記載から、これら以外の課題を抽出することが可能である。
【課題を解決するための手段】
【００１１】  本発明の一態様は、処理部を有し、処理部には、回路図と、レイアウト設計情報と、が入力され、処理部は、回路図と、レイアウト設計情報とから、Ｑ学習を行うことでレイアウトデータを生成する機能を有し、処理部は、レイアウトデータを出力する機能を有し、処理部は、第１のニューラルネットワークを有し、第１のニューラルネットワークは、Ｑ学習において行動価値関数を推定する、レイアウト設計システムである。【００１２】  本発明の一態様は、端末と、サーバと、を有し、端末は、入出力部と、第１の通信部と、を有し、サーバは、処理部と、第２の通信部と、を有し、入出力部には、回路図と、レイアウト設計情報と、が入力され、第１の通信部は、有線通信及び無線通信のうち一方または双方により、サーバに回路図及びレイアウト設計情報を供給する機能を有し、処理部は、回路図と、レイアウト設計情報とから、Ｑ学習を行うことでレイアウトデータを生成する機能を有し、処理部は、第２の通信部にレイアウトデータを供給する機能を有し、第２の通信部は、有線通信及び無線通信のうち一方または双方により、端末にレイアウトデータを供給する機能を有し、処理部は、第１のニューラルネットワークを有し、第１のニューラルネットワークは、Ｑ学習において行動価値関数を推定する、レイアウト設計システムである。【００１３】  前述のレイアウト設計システムにおいて、第１のニューラルネットワークは、畳み込みニューラルネットワークであることが好ましい。【００１４】  前述のレイアウト設計システムにおいて、処理部は、さらに、第２のニューラルネットワークを有し、第２のニューラルネットワークは、行動価値関数の教師データを推定し、教師データから算出される損失関数に基づき、第１のニューラルネットワークの重み係数を更新すると好ましい。【００１５】  前述のレイアウト設計システムにおいて、第２のニューラルネットワークは、畳み込みニューラルネットワークであることが好ましい。【００１６】  前述のレイアウト設計システムにおいて、処理部は、トランジスタを有していてもよい。トランジスタは、チャネル形成領域に金属酸化物を有していてもよい。または、トランジスタは、チャネル形成領域にシリコンを有していてもよい。【００１７】  本発明の一態様は、回路図と、レイアウト設計情報と、を入力し、回路図と、レイアウト設計情報とから、Ｑ学習を行うことで、レイアウトデータを作成し、Ｑ学習において、第１のニューラルネットワークを用いて行動価値関数を推定し、レイアウトデータを出力する、レイアウト設計方法である。【００１８】  レイアウト設計方法において、第２のニューラルネットワークは、行動価値関数の教師データを推定し、教師データから算出される損失関数に基づき、第１のニューラルネットワークの重み係数を更新すると好ましい。
【発明の効果】
【００１９】  本発明の一態様により、短時間でレイアウト設計を行えるレイアウト設計システムを提供できる。又は、本発明の一態様により、レイアウト面積の小さいレイアウト設計を行えるレイアウト設計システムを提供できる。又は、本発明の一態様により、新規なレイアウト設計システムを提供できる。又は、本発明の一態様により、短時間でレイアウト設計を行えるレイアウト設計方法を提供できる。又は、本発明の一態様により、レイアウト面積の小さいレイアウト設計を行えるレイアウト設計方法を提供できる。又は、本発明の一態様により、新規なレイアウト設計方法を提供できる。【００２０】  なお、これらの効果の記載は、他の効果の存在を妨げるものではない。本発明の一態様は、必ずしも、これらの効果の全てを有する必要はない。明細書、図面、請求項の記載から、これら以外の効果を抽出することが可能である。
【図面の簡単な説明】
【００２１】
【図１】レイアウト設計システムの例を示すブロック図。
【図２】集積回路の開発の例を示すフロー図。
【図３】集積回路の例を示すブロック図。
【図４】レイアウト設計システムの例を示すブロック図。
【図５】レイアウト設計の例を示すフロー図。
【図６】レイアウト設計の例を示すフロー図。
【図７】レイアウト設計の例を示すフロー図。
【図８】グリッド及び基本セルの例を示す図。
【図９】接続領域及び接続点の例を示す図。
【図１０】基本セル及びアブストラクトの例を示す図。
【図１１】ブロック及び報酬の設定の例を示す図。
【図１２】アブストラクト及びレイアウトの画像データの例を示す図。
【図１３】レイアウトの例を示す図。
【図１４】画像データの例を示す図。
【図１５】レイアウトの例を示す図。
【図１６】画像データの例を示す図。
【図１７】ニューラルネットワークの構成の例を示す図。
【図１８】アブストラクトの移動の例を示す図。
【図１９】アブストラクトの移動の例を示す図。
【図２０】回路図及びアブストラクトの例を示す図。
【図２１】アブストラクト及び接続点の例を示す図。
【図２２】接続点及び配線の例を示す図。
【図２３】レイアウトデータの例を示す図。
【図２４】レイアウトの例を示す図。
【図２５】アブストラクトの移動の例を示す図。
【図２６】レイアウト設計システムの例を示すブロック図。
【図２７】ニューラルネットワークの構成例を示す図。
【図２８】半導体装置の構成例を示す図。
【図２９】メモリセルの構成例を示す図。
【図３０】オフセット回路の構成例を示す図。
【図３１】タイミングチャート。
【図３２】報酬の推移を示す図。
【発明を実施するための形態】
【００２２】  実施の形態について、図面を用いて詳細に説明する。但し、本発明は以下の説明に限定されず、本発明の趣旨及びその範囲から逸脱することなくその形態及び詳細を様々に変更し得ることは当業者であれば容易に理解される。従って、本発明は以下に示す実施の形態の記載内容に限定して解釈されるものではない。
【００２３】  なお、以下に説明する発明の構成において、同一部分又は同様な機能を有する部分には同一の符号を異なる図面間で共通して用い、その繰り返しの説明は省略する。また、同様の機能を指す場合には、ハッチパターンを同じくし、特に符号を付さない場合がある。
【００２４】  また、図面において示す各構成の、位置、大きさ、範囲などは、理解の簡単のため、実際の位置、大きさ、範囲などを表していない場合がある。このため、開示する発明は、必ずしも、図面に開示された位置、大きさ、範囲などに限定されない。
【００２５】  なお、「膜」という言葉と、「層」という言葉とは、場合によっては、又は、状況に応じて、互いに入れ替えることが可能である。例えば、「導電層」という用語を、「導電膜」という用語に変更することが可能である。または、例えば、「絶縁膜」という用語を、「絶縁層」という用語に変更することが可能である。
【００２６】（実施の形態１）
本実施の形態では、本発明の一態様のレイアウト設計システムについて、図１乃至図２６を用いて説明する。
【００２７】  本発明の一態様であるレイアウト設計システムは、回路図及びレイアウト設計情報を元にレイアウトデータを作成する機能を有する。本発明の一態様であるレイアウト設計システムは、集積回路のレイアウト設計に用いることができる。
【００２８】  本明細書等において、レイアウト設計とは、回路図及びレイアウト設計情報を元にレイアウトデータを作成することを指す。回路図とは、トランジスタ、ダイオードなどの能動素子や、容量、抵抗などの受動素子がどのように接続されるか、図形と線によって表現した図である。レイアウトデータとは、マスク（レチクルともいう）に転写される半導体層、導電体層などの形状及び配置の情報である。なお、本明細書等において、能動素子及び受動素子を素子と記す場合がある。
【００２９】  レイアウト設計情報は、セルライブラリ、デザインルール及びグリッド情報を有する。レイアウト設計情報の詳細は後述する。
【００３０】  本発明の一態様のレイアウト設計システムは、処理部を有する。処理部には、回路図及びレイアウト設計情報が入力される。処理部は、回路図及びレイアウト設計情報から、レイアウトデータを作成する機能を有する。なお、本実施の形態のレイアウト設計システムは、回路図及びレイアウト設計情報を変えることで、様々なレイアウト設計に応用できる。
【００３１】  本発明の一態様であるレイアウト設計システムを用いることで、回路設計で作成された回路図及びデザインルールを満たすとともに、集積回路の面積が小さいレイアウトデータを作成できる。
【００３２】  レイアウト設計システムは、少なくとも一部の処理に人工知能（ＡＩ：Ａｒｔｉｆｉｃｉａｌ  Ｉｎｔｅｌｌｉｇｅｎｃｅ）を用いて、レイアウトデータを作成することが好ましい。
【００３３】  レイアウト設計システムは、特に、人工ニューラルネットワーク（ＡＮＮ：Ａｒｔｉｆｉｃｉａｌ  Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋ、以下、単にニューラルネットワークとも記す）を用いて、出力データを生成することが好ましい。なお、本明細書等において、人工ニューラルネットワークを、単にニューラルネットワーク（ＮＮ：Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋ）と記す場合がある。ニューラルネットワークは、回路（ハードウェア）またはプログラム（ソフトウェア）により実現される。
【００３４】  レイアウト設計には、強化学習（Ｒｅｉｎｆｏｒｃｅｍｅｎｔ  Ｌｅａｒｎｉｎｇ）を用いることができる。強化学習として、例えばＴＤ学習（Ｔｅｍｐｏｒａｌ  Ｄｉｆｆｅｒｅｎｃｅ  Ｌｅａｒｎｉｎｇ：時間的差分学習）、Ｑ学習（Ｑ−Ｌｅａｒｎｉｎｇ）などを用いることができる。また、Ｑ学習において深層学習を利用する学習アルゴリズムを用いると特に好ましい。
【００３５】  Ｑ学習とは、時刻ｔにおいて、環境が状態ｓｔのとき、エージェントが行動ａｔを選択する価値を学習する方法である。エージェントは行動する主体を指し、環境は働きかけられる対象を指す。エージェントの行動ａｔにより環境が状態Ｓｔから状態Ｓｔ＋１に遷移し、エージェントは報酬ｒｔ＋１を受け取る。Ｑ学習では、得られる報酬の総量が最終的に最大になるように行動ａｔを学習する。状態ｓｔにおいて行動ａｔをとる価値を、行動価値関数Ｑ（ｓｔ，ａｔ）と表せる。本明細書等において、行動価値関数ＱをＱ関数、行動価値関数Ｑ（ｓｔ，ａｔ）の値をＱ値と呼ぶ場合がある。例えば、行動価値関数Ｑ（ｓｔ，ａｔ）の更新式は、数式１で表せる。
【００３６】
【数１】
2018234945.tif 000003
【００３７】  ここで、αは学習率（αは０より大きく１以下）、γは割引率（γは０以上１以下）を示す。学習率αは、現在の価値と、行動によって得られた結果のどちらを重視するかを表している。学習率αが１に近いほど、得られた結果を重視し価値の変化は大きくなる。学習率αが０に近いほど、現在の価値を重視し価値の変化は小さくなる。割引率γは、現在の報酬と、将来の報酬のどちらを重視するかを表している。割引率γが０に近いほど、現在の報酬を重視する。割引率γが１に近いほど、将来の報酬を重視する。例えば、学習率αを０．１０、割引率γを０．９０とすることができる。
【００３８】  前述の行動価値関数Ｑ（ｓｔ，ａｔ）の推定に深層学習を用いることができる。行動価値関数Ｑ（ｓｔ，ａｔ）の推定に深層学習を用いる学習アルゴリズムをＤｅｅｐ  Ｑ−Ｌｅａｒｎｉｎｇと呼び、Ｄｅｅｐ  Ｑ−Ｌｅａｒｎｉｎｇで用いるニューラルネットワークをＤｅｅｐ  Ｑ−Ｎｅｔｗｏｒｋ（ＤＱＮ）と呼ぶ場合がある。
【００３９】  本発明の一態様であるレイアウト設計システムは、レイアウト設計にＤｅｅｐ  Ｑ−Ｌｅａｒｎｉｎｇを用い、Ｄｅｅｐ  Ｑ−Ｎｅｔｗｏｒｋは畳み込みニューラルネットワーク（ＣＮＮ：Ｃｏｎｖｏｌｕｔｉｏｎａｌ  Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋ）の構成を有すると特に好ましい。なお、本明細書等において、Ｄｅｅｐ  Ｑ−Ｎｅｔｗｏｒｋを、単にニューラルネットワークと記す場合がある。
【００４０】  一般的に、Ｑ学習においては行動価値関数Ｑ（ｓｔ，ａｔ）の状態ｓｔ及び行動ａｔの組み合わせを、予めルックアップテーブル（ＬＵＴ：Ｌｏｏｋ  Ｕｐ  Ｔａｂｌｅ）としてデータを保存する。しかし、状態ｓｔ及び行動ａｔの組み合わせは多数あるため、多数のメモリが必要となる場合がある。一方、本発明の一態様であるレイアウト設計システムにおいては、行動価値関数Ｑ（ｓｔ，ａｔ）の推定にニューラルネットワークを用いることで、必要とするメモリ数を少なくすることができる。
【００４１】  本明細書等において、ニューラルネットワークとは、生物の神経回路網を模し、学習によってニューロンどうしの結合強度を決定し、問題解決能力を持たせるモデル全般を指す。ニューラルネットワークは、入力層と、出力層と、入力層と出力層との間に１層以上の中間層（隠れ層）を有する。
【００４２】  本明細書等において、ニューラルネットワークについて述べる際に、既にある情報からニューロンとニューロンの結合強度（重み係数ともいう）を決定することを「学習」と呼ぶ場合がある。
【００４３】  また、本明細書等において、学習によって得られた結合強度を用いてニューラルネットワークを構成し、そこから新たな結論を導くことを「推論」と呼ぶ場合がある。
【００４４】  ニューラルネットワークは、膨大な数の積和演算によって実行される。これらの演算処理は、デジタル回路及びアナログ回路の一方または双方を用いて行うことができる。デジタル回路を用いる場合、必要となるトランジスタ数が膨大になり、非効率的で消費電力が高い。そのため、上述の積和演算はアナログ積和演算回路（以下、ＡＰＳ（Ａｎａｌｏｇ  Ｐｒｏｄｕｃｔ−Ｓｕｍ  ｃｉｒｃｕｉｔ）と呼ぶ）で行うことが好ましい。また、ＡＰＳはアナログメモリを有することが好ましい。学習で得られた重み係数を上記アナログメモリに格納することで、ＡＰＳは、アナログデータのまま積和演算を実行することができる。その結果、ＡＰＳは少ないトランジスタで効率的にニューラルネットワークを構築することができる。
【００４５】  なお、本明細書等においてアナログメモリはアナログデータを格納することが可能な記憶装置のことを指す。また、本明細書においてアナログデータとは、３ビット（８値）以上の分解能を有するデータのことを指す。多値データのことをアナログデータと呼ぶ場合もある。
【００４６】  上記アナログメモリとして、多値のフラッシュメモリ、ＲｅＲＡＭ（Ｒｅｓｉｓｔｉｖｅ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＭＲＡＭ（Ｍａｇｎｅｔｏｒｅｓｉｓｔｉｖｅ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）またはＯＳトランジスタを用いたメモリ（ＯＳメモリと呼ぶ）を用いることができる。
【００４７】  また、本明細書等において、チャネル形成領域に酸化物半導体または金属酸化物を用いたトランジスタをＯｘｉｄｅ  Ｓｅｍｉｃｏｎｄｕｃｔｏｒトランジスタ、あるいはＯＳトランジスタと呼ぶ。ＯＳトランジスタのチャネル形成領域は、金属酸化物を有することが好ましい。
【００４８】  また、本明細書等において、金属酸化物（ｍｅｔａｌ  ｏｘｉｄｅ）とは、広い表現での金属の酸化物である。金属酸化物は、酸化物絶縁体、酸化物導電体（透明酸化物導電体を含む）、酸化物半導体（Ｏｘｉｄｅ  Ｓｅｍｉｃｏｎｄｕｃｔｏｒまたは単にＯＳともいう）などに分類される。例えば、トランジスタの半導体層に金属酸化物を用いた場合、当該金属酸化物を酸化物半導体と呼称する場合がある。つまり、金属酸化物が増幅作用、整流作用、及びスイッチング作用の少なくとも１つを有する場合、当該金属酸化物を、金属酸化物半導体（ｍｅｔａｌ  ｏｘｉｄｅ  ｓｅｍｉｃｏｎｄｕｃｔｏｒ）、略してＯＳと呼ぶことができる。
【００４９】  チャネル形成領域が有する金属酸化物はインジウム（Ｉｎ）を含むことが好ましい。チャネル形成領域が有する金属酸化物がインジウムを含む金属酸化物の場合、ＯＳトランジスタのキャリア移動度（電子移動度）が高くなる。また、チャネル形成領域が有する金属酸化物は、元素Ｍを含む酸化物半導体であると好ましい。元素Ｍは、好ましくは、アルミニウム（Ａｌ）、ガリウム（Ｇａ）またはスズ（Ｓｎ）などとする。そのほかの元素Ｍに適用可能な元素としては、ホウ素（Ｂ）、シリコン（Ｓｉ）、チタン（Ｔｉ）、鉄（Ｆｅ）、ニッケル（Ｎｉ）、ゲルマニウム（Ｇｅ）、イットリウム（Ｙ）、ジルコニウム（Ｚｒ）、モリブデン（Ｍｏ）、ランタン（Ｌａ）、セリウム（Ｃｅ）、ネオジム（Ｎｄ）、ハフニウム（Ｈｆ）、タンタル（Ｔａ）、タングステン（Ｗ）などがある。ただし、元素Ｍとして、前述の元素を複数組み合わせても構わない場合がある。元素Ｍは、例えば、酸素との結合エネルギーが高い元素である。例えば、酸素との結合エネルギーがインジウムよりも高い元素である。また、チャネル形成領域が有する金属酸化物は、亜鉛（Ｚｎ）を含む金属酸化物であると好ましい。亜鉛を含む金属酸化物は結晶化しやすくなる場合がある。
【００５０】  チャネル形成領域が有する金属酸化物は、インジウムを含む金属酸化物に限定されない。半導体層は、例えば、亜鉛スズ酸化物、ガリウムスズ酸化物などの、インジウムを含まず、亜鉛を含む金属酸化物、ガリウムを含む金属酸化物、スズを含む金属酸化物などであっても構わない。
【００５１】＜１．レイアウト設計システムの構成＞
レイアウト設計システム１００の構成について、説明する。レイアウト設計システム１００のブロック図を図１示す。レイアウト設計システム１００は、少なくとも、処理部１０３を有する。図１に示すレイアウト設計システム１００は、さらに、入力部１０１、伝送路１０２、記憶部１０５、データベース１０７、及び出力部１０９を有する。
【００５２】［入力部１０１］
入力部１０１には、レイアウト設計システム１００の外部から情報が供給される。入力部１０１に供給された情報は、伝送路１０２を介して、処理部１０３、記憶部１０５、またはデータベース１０７に供給される。入力部１０１に供給される情報として、例えば回路図、レイアウト設計情報などがある。
【００５３】［伝送路１０２］
伝送路１０２は、情報を伝達する機能を有する。入力部１０１、処理部１０３、記憶部１０５、データベース１０７、及び出力部１０９の間の情報の送受信は、伝送路１０２を介して行うことができる。
【００５４】［処理部１０３］
処理部１０３は、入力部１０１、記憶部１０５、データベース１０７などから供給された情報を用いて、レイアウト設計を行い、レイアウトデータを作成する機能を有する。処理部１０３は、レイアウトデータなどを、記憶部１０５、データベース１０７、出力部１０９などに供給することができる。
【００５５】  処理部１０３には、チャネル形成領域に金属酸化物を有するトランジスタを用いることが好ましい。当該トランジスタはオフ電流が極めて低いため、当該トランジスタを記憶素子として機能する容量素子に流入した電荷（データ）を保持するためのスイッチとして用いることで、データの保持期間を長期にわたり確保することができる。この特性を、処理部１０３が有するレジスタ及びキャッシュメモリのうち少なくとも一方に用いることで、必要なときだけ処理部１０３を動作させ、他の場合には直前の処理の情報を当該記憶素子に待避させることにより、ノーマリーオフコンピューティングが可能となり、レイアウト設計システムの低消費電力化を図ることができる。
【００５６】  処理部１０３は、例えば、演算回路、または中央演算装置（ＣＰＵ：Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）等を有する。
【００５７】  処理部１０３は、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）、ＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）等のマイクロプロセッサを有していてもよい。マイクロプロセッサは、ＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）、ＦＰＡＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ａｎａｌｏｇ  Ａｒｒａｙ）等のＰＬＤ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ）によって実現された構成であってもよい。処理部１０３は、プロセッサにより種々のプログラムからの命令を解釈し実行することで、各種のデータ処理及びプログラム制御を行うことができる。プロセッサにより実行しうるプログラムは、プロセッサが有するメモリ領域及び記憶部１０５のうち少なくとも一方に格納される。
【００５８】  処理部１０３はメインメモリを有していてもよい。メインメモリは、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等の揮発性メモリ、及びＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）等の不揮発性メモリのうち少なくとも一方を有する。
【００５９】  ＲＡＭとしては、例えばＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＳＲＡＭ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等が用いられ、処理部１０３の作業空間として仮想的にメモリ空間が割り当てられ利用される。記憶部１０５に格納されたオペレーティングシステム、アプリケーションプログラム、プログラムモジュール、プログラムデータ、及びルックアップテーブル等は、実行のためにＲＡＭにロードされる。ＲＡＭにロードされたこれらのデータ、プログラム、及びプログラムモジュールは、それぞれ、処理部１０３に直接アクセスされ、操作される。
【００６０】  ＲＯＭには、書き換えを必要としない、ＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ／Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）及びファームウェア等を格納することができる。ＲＯＭとしては、マスクＲＯＭ、ＯＴＰＲＯＭ（Ｏｎｅ  Ｔｉｍｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＥＰＲＯＭ（Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）等が挙げられる。ＥＰＲＯＭとしては、紫外線照射により記憶データの消去を可能とするＵＶ−ＥＰＲＯＭ（Ｕｌｔｒａ−Ｖｉｏｌｅｔ  Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、フラッシュメモリ等が挙げられる。
【００６１】［記憶部１０５］
記憶部１０５は、処理部１０３が実行するプログラムを記憶する機能を有する。また、記憶部１０５は、処理部１０３が生成したレイアウトデータ及び入力部１０１に入力された情報などを記憶する機能を有していてもよい。
【００６２】  記憶部１０５は、揮発性メモリ及び不揮発性メモリのうち少なくとも一方を有する。記憶部１０５は、例えば、ＤＲＡＭ、ＳＲＡＭなどの揮発性メモリを有していてもよい。記憶部１０５は、例えば、ＲｅＲＡＭ（Ｒｅｓｉｓｔｉｖｅ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）などに代表される抵抗変化型のメモリ、ＰＲＡＭ（Ｐｈａｓｅ  ｃｈａｎｇｅ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＦｅＲＡＭ（Ｆｅｒｒｏｅｌｅｃｔｒｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＭＲＡＭ（Ｍａｇｎｅｔｏｒｅｓｉｓｔｉｖｅ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）などに代表される磁気抵抗型のメモリ、またはフラッシュメモリなどの不揮発性メモリを有していてもよい。また、記憶部１０５は、ハードディスクドライブ（Ｈａｒｄ  Ｄｉｓｃ  Ｄｒｉｖｅ：ＨＤＤ）及びソリッドステートドライブ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ：ＳＳＤ）等の記録メディアドライブを有していてもよい。
【００６３】［データベース１０７］
データベース１０７は、セルライブラリ及びデザインルールを記憶する機能を有する。また、データベース１０７は、処理部１０３が生成したレイアウトデータ及び入力部１０１に入力された情報などを記憶する機能を有していてもよい。なお、記憶部１０５及びデータベース１０７は互いに分離されていなくてもよい。例えば、レイアウト設計システムは、記憶部１０５及びデータベース１０７の双方の機能を有する記憶ユニットを有していてもよい。
【００６４】［出力部１０９］
出力部１０９は、レイアウト設計システム１００の外部に情報を供給する機能を有する。例えば、処理部１０３で作成したレイアウトデータなどを外部に供給することができる。
【００６５】＜２．レイアウト設計方法１＞
レイアウト設計方法について、説明する。
【００６６】  レイアウト設計方法の説明に先立って、まず、集積回路の開発フローを図２に示す。図２は、集積回路の例としてアナログ回路の開発フローを示したものであり、アナログ回路の仕様を決めるステップから、レイアウトデータの作成が完了するステップまでを示している。
【００６７】  ステップＳ１１は、所望する集積回路の仕様を決定するステップである。集積回路の仕様として、例えば集積回路の特性、大きさなどがある。
【００６８】  ステップＳ１２は、回路設計を行うステップである。回路設計では、セルライブラリ１１５と、プロセス情報１１１に格納されたトランジスタパラメータ１１３を主として参照し、ステップＳ１１で決定した仕様を満たす回路図１１９を作成する。使用するセルライブラリ１１５を変えることで、同じ仕様の回路を様々な態様で実現することができる。
【００６９】  セルライブラリとは、基本セルのデータベースである。アナログ回路の設計において、基本セルはトランジスタ、容量など個々の素子を指す場合がある。デジタル回路設計において、基本セルは論理演算素子であるＡＮＤゲート、ＮＡＮＤゲート、ＯＲゲート、ＮＯＲゲート等の論理ゲートを指す場合がある。
【００７０】  トランジスタパラメータとは、集積回路に用いる素子の情報である。トランジスタパラメータとして、例えば、トランジスタのチャネル長、チャネル幅及び移動度がある。
【００７１】  ステップＳ１３は、シミュレーションを行うステップである。ステップＳ１３では、ステップＳ１２の回路設計で作成された回路図１１９が、ステップＳ１１で決めた仕様を満たすか否かを確認する。仕様を満たさない場合は、再度、ステップＳ１２の回路設計を行う。
【００７２】  ステップＳ１４は、レイアウト設計を行うステップである。レイアウト設計では、ステップＳ１２で作成した回路図１１９と、セルライブラリ１１５と、プロセス情報１１１に格納されたデザインルール１１７を主として参照し、レイアウトデータ１２１を作成する。ステップＳ１４のレイアウト設計に、本発明の一態様であるレイアウト設計システム１００を用いることができる。
【００７３】  デザインルールとは、各素子の構成要素（半導体層、導電体層など）の寸法及び間隔の最小値などを指し、レイアウト設計する上での制約事項である。デザインルールには、例えば、配線の幅、配線と隣接する配線との間隔、配線と隣接する素子との間隔、コンタクトホールの大きさ等の最大値、最小値が含まれる。
【００７４】  ステップＳ１５は、ＤＲＣ（Ｄｅｓｉｇｎ  Ｒｕｌｅ  Ｃｈｅｃｋ）及びＬＶＳ（Ｌａｙｏｕｔ  ｖｅｒｓｕｓ  Ｓｃｈｅｍａｔｉｃ）を行うステップである。ＤＲＣは、Ｓ１４のレイアウト設計で作成されたレイアウトデータ１２１が、デザインルール１１７を満たしているか否かを確認する。デザインルールを満たさない場合は、再度、ステップＳ１４のレイアウト設計を行う。ＬＶＳは、ステップＳ１４のレイアウト設計で作成されたレイアウトデータ１２１が、ステップＳ１２で作成された回路図１１９の接続関係を満たしているか否かを確認する。回路図１１９の接続関係を満たさない場合は、再度、ステップＳ１４のレイアウト設計を行う。なお、ＬＶＳは行われない場合がある。
【００７５】  図２は、アナログ回路を例に説明したが、デジタル回路、又はアナログ・デジタル回路においても、本発明の一態様であるレイアウト設計システム１００を適用できる。また、回路全体ではなく、回路の一部にレイアウト設計システム１００を適用させてもよい。
【００７６】  以上で集積回路の開発フローの説明を終了する。
【００７７】  本発明の一態様であるレイアウト設計システム１００を適用できる集積回路について、説明する。
【００７８】  集積回路の例として、記憶回路の構成を用いて説明する。記憶回路のブロック図を図３に示す。図３に示すブロック図では、メモリセルアレイ９０、ワード線駆動回路９１、およびビット線駆動回路９２を図示している。
【００７９】  メモリセルアレイ９０は、ｍ行ｎ列（ｍ、ｎは自然数）のマトリクス状に設けられたメモリセルＭＣを有する。メモリセルＭＣは、ワード線ＷＬ＿１乃至ＷＬ＿ｍおよびビット線ＢＬ＿１乃至ＢＬ＿ｎに接続される。メモリセルＭＣは、ビット線およびワード線の他、電流を流すためのソース線、トランジスタのバックゲートに電圧を印加するための配線、または容量素子の一方の電極を固定電位にするための容量線等に接続されていてもよい。
【００８０】  ワード線駆動回路９１は、各行におけるメモリセルＭＣを選択するための信号を出力する回路である。ワード線ＷＬ＿１乃至ＷＬ＿ｍは、書き込み用と読み出し用とに別々のワード線とがあってもよい。
【００８１】  ビット線駆動回路９２は、各列におけるメモリセルＭＣへのデータを書き込み、またはメモリセルＭＣからのデータの読み出しを行うための回路である。ビット線ＢＬ＿１乃至ＢＬ＿ｎは、書き込み用と読み出し用とに別々のビット線とがあってもよい。
【００８２】  メモリセルＭＣは、トランジスタ、容量など複数の素子を有する。メモリセルＭＣ内の素子のレイアウト設計について、本発明の一態様であるレイアウト設計システム１００を適用できる。
【００８３】  本発明の一態様であるレイアウト設計システム１００を用いたレイアウト設計方法について、説明する。
【００８４】  本発明の一態様であるレイアウト設計システム１００は、回路図及びレイアウト設計情報を元にレイアウトデータ１２１を作成する機能を有する。レイアウト設計情報は、セルライブラリ１１５、デザインルール１１７及びグリッド情報１２３を有する。レイアウト設計システム１００の例を示すブロック図を、図４に示す。図４に示すように、本発明の一態様であるレイアウト設計システム１００は、回路図１１９、セルライブラリ１１５、デザインルール１１７及びグリッド情報１２３を入力し、レイアウトデータ１２１が出力される。
【００８５】  レイアウト設計システム１００を用いたレイアウト設計方法のフローを、図５及び図６に示す。図５及び図６に示すフローは、図２のステップＳ１４に示したレイアウト設計に該当し、回路図１１９及びレイアウト設計情報を元にレイアウトデータ１２１を作成するフローである。本発明の一態様においては、まず素子の配置を決め、次に素子間の配線の経路を決める。
【００８６】  本発明の一態様であるレイアウト設計システムを用いることで、回路設計で作成された回路図及びデザインルールを満たすとともに、集積回路の面積が小さいレイアウトデータを作成できる。
【００８７】  なお、本明細書等において、ステップＳ２６のレイアウト状態の観察から、ステップＳ３３及びステップＳ３６の行動価値関数Ｑ（ｓｔ，ａｔ）の更新までの１回の流れを、１エピソードと記す場合がある。また、行動価値関数Ｑ（ｓｔ，ａｔ）を更新した回数を、エピソード回数と記す場合がある。
【００８８】［ステップＳ２１］
ステップＳ２１は、回路図及びレイアウト設計情報を取得するステップである。
【００８９】  回路図として、前述のステップＳ１２で作成された回路図１１９を用いることができる。回路図１１９及びレイアウト情報は、レイアウト設計システム１００の外部から入力部１０１に入力される。そして、回路図１１９は、入力部１０１から、伝送路１０２を介して、処理部１０３に供給される。または、回路図１１９及びレイアウト情報は、伝送路１０２を介して、記憶部１０５またはデータベース１０７に保存され、記憶部１０５またはデータベース１０７から、伝送路１０２を介して、処理部１０３に供給されてもよい。
【００９０】  回路図として、ハードウェア記述言語（ＨＤＬ：Ｈａｒｄｗａｒｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）により素子及び素子間の接続関係を記載したネットリストを用いてもよい。また、回路図として、ＳＰＩＣＥ（Ｓｉｍｕｌａｔｉｏｎ  Ｐｒｏｇｒａｍ  ｗｉｔｈ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ  Ｅｍｐｈａｓｉｓ）により素子及び素子間の接続関係を記載したネットリストを用いてもよい。
【００９１】  レイアウト設計情報は、セルライブラリ、デザインルール及びグリッド情報を有する。
【００９２】  グリッド情報とは、グリッド枠の大きさ及びグリッド間隔の値である。グリッドは、複数の直線がそれぞれ周期的に交わることで構成される格子である。グリッド枠とは、グリッドが設けられる領域の外周を指し、矩形とする。グリッド間隔とは、グリッドを構成する直線の間隔を指す。グリッド間隔は、デザインルールで定められた配線幅の最小値と同程度、又は配線幅の最小値より小さい値とすることが好ましい。グリッド枠の大きさは、グリッド間隔の整数倍とする。なお、本明細書等において、矩形とは４つの内角が全て直角である四角形を指し、正方形を含む。
【００９３】［ステップＳ２２］
ステップＳ２２は、処理部１０３でグリッドを作成するステップである。
【００９４】  ステップＳ２１で取得したグリッド情報を元に、グリッド枠６０１及びグリッド６０３を作成する。グリッド枠６０１及びグリッド６０３の例を図８（Ａ）に示す。本実施の形態では、構成する直線がそれぞれ等間隔で直交する、正方形のグリッドを用いる例を示している。
【００９５】［ステップＳ２３］
ステップＳ２３は、処理部１０３でグリッド枠内に基本セル及びアブストラクトを作成するステップである。
【００９６】  ステップＳ２１で取得した回路図１１９を元に、基本セルを作成する。基本セルの例を図８（Ｂ）及び図８（Ｃ）に示す。図８（Ｂ）は、半導体層３０１と、ゲート電極３０３と、ソース電極３０５と、ドレイン電極３０７と、を有するトランジスタ素子を示している。図８（Ｃ）は、上部電極３０９と、上部電極３０９と重なる領域を有する下部電極３１１と、を有する容量素子を示している。なお、図８（Ｂ）及び図８（Ｃ）はアナログ回路の例として、基本セルとして素子を用いる例を示しているが、本発明の一態様はこれに限られない。アナログ回路の場合は、基本セルとして論理ゲート等を用いることができる。
【００９７】  素子は、他の素子と電気的に接続される場合がある。また、素子は、ワード線やビット線など（以下、信号線と記す）と電気的に接続される場合がある。素子と素子との間の接続関係、素子と信号線との間の接続関係は、回路図１１９に基づく。
【００９８】  素子又は信号線が、他の素子又は信号線と電気的に接続する領域を接続領域と記す。図８（Ｂ）に示したトランジスタ素子においては、ゲート電極３０３、ソース電極３０５及びドレイン電極３０７の３つの領域を、接続領域とすることができる。また、図８（Ｃ）に示した容量素子においては、上部電極３０９及び下部電極３１１を、接続領域とすることができる。
【００９９】  素子又は信号線が、他の素子又は信号線と電気的に接続する位置を接続点と記す。接続点は、前述の接続領域内に設けることができる。素子又は信号線が有する接続点は、他の素子又は信号線が有する接続点とそれぞれ電気的に接続されうる位置を示している。また、接続点は、コンタクトホールの位置に相当する場合がある。
【０１００】  図８（Ｂ）及び図８（Ｃ）に示したトランジスタ素子及び容量素子を用いて、接続領域及び接続点を具体的に説明する。図８（Ｂ）に示すトランジスタ素子において、ゲート電極３０３、ソース電極３０５及びドレイン電極３０７の領域を、それぞれ接続領域３３１＿１乃至接続領域３３１＿３とする。接続領域３３１＿１乃至接続領域３３１＿３を図９（Ａ）に示す。接続領域３３１＿１乃至接続領域３３１＿３には、それぞれ接続点を設けることができる。接続領域３３１＿１乃至接続領域３３１＿３に設けられる接続点の例を図９（Ｂ）に示す。図９（Ｂ）は、接続領域３３１＿１に設けられる接続点ＣＰ＿１１、接続領域３３１＿２に設けられる接続点ＣＰ＿１２、接続領域３３１＿３に設けられる接続点ＣＰ＿１３を示している。なお、図９（Ｂ）に示した接続点ＣＰ＿１１乃至接続点ＣＰ＿１３は一例であり、接続点の位置はこれに限られない。
【０１０１】  図８（Ｃ）に示す容量素子において、上部電極３０９及び下部電極３１１の領域を、それぞれ接続領域３３１＿４及び接続領域３３１＿５とする。接続領域３３１＿４を図９（Ｃ）、接続領域３３１＿５を図９（Ｄ）に示す。接続領域３３１＿４及び接続領域３３１＿５にはそれぞれ接続点ＣＰ＿１４及び接続点ＣＰ＿１５を設けることができる。接続領域３３１＿４に対する接続点ＣＰ＿１４の例を図９（Ｅ）、接続領域３３１＿５に対する接続点ＣＰ＿１５の例を図９（Ｆ）に示す。なお、図９（Ｅ）及び図９（Ｆ）に示した接続点ＣＰ＿１４及び接続点ＣＰ＿１５は一例であり、接続点の位置はこれに限られない。
【０１０２】  基本セルをグリッド枠６０１内に配置した例を図１０（Ａ）に示す。図１０（Ａ）では、基本セルＥＬＭ＿１乃至基本セルＥＬＭ＿３の３つの基本セルを示している。基本セルＥＬＭ＿１及び基本セルＥＬＭ＿２はそれぞれトランジスタ素子、基本セルＥＬＭ＿３は容量素子を示している。
【０１０３】  基本セルを元に、アブストラクトを作成する。１つの基本セルの全体を覆う最小の矩形をアブストラクトとし、アブストラクトの外周はグリッド６０３上にのみ作成される。
【０１０４】  図１０（Ａ）に示した基本セルＥＬＭ＿１乃至基本セルＥＬＭ＿３の３つの基本セルを用いて、アブストラクトを具体的に説明する。基本セルＥＬＭ＿１乃至基本セルＥＬＭ＿３と、基本セルＥＬＭ＿１乃至基本セルＥＬＭ＿３のそれぞれに対応するアブストラクトＡＢＳ＿１乃至アブストラクトＡＢＳ＿３の例を図１０（Ｂ）に示す。基本セルＥＬＭ＿１の全体を覆い、かつグリッド６０３上に外周を有する最小の矩形が、アブストラクトＡＢＳ＿１である。基本セルＥＬＭ＿２の全体を覆い、かつグリッド６０３上に外周を有する最小の矩形が、アブストラクトＡＢＳ＿２である。基本セルＥＬＭ＿３の全体を覆い、かつグリッド６０３上に外周を有する最小の矩形が、アブストラクトＡＢＳ＿３である。図１０（Ｂ）では基本セルとアブストラクトの位置関係を明示するために、アブストラクトＡＢＳ＿１乃至アブストラクトＡＢＳ＿３のハッチングを透過して図示している。
【０１０５】  図１０（Ａ）及び図１０（Ｂ）においては、３つの基本セルであるＥＬＭ＿１乃至基本セルＥＬＭ＿３を示したが、本発明の一態様はこれに限られない。回路図が有する基本セルの総数ｋ個に対し、アブストラクトＡＢＳ＿１乃至アブストラクトＡＢＳ＿ｋのｋ個のアブストラクトが作成される。
【０１０６】［ステップＳ２４］
ステップＳ２４は、処理部１０３で報酬ｒｔを設定するステップである。
【０１０７】  グリッド枠６０１内に配置された全てのアブストラクトを覆う最小の矩形をブロックとし、ブロックの面積を算出する。ブロックの外周はグリッド６０３上にのみ作成される。図１０（Ｂ）に示したアブストラクトＡＢＳ＿１乃至アブストラクトＡＢＳ＿３と、それに対応するブロックＢＬＫの例を図１１（Ａ）に示す。
【０１０８】  ブロックＢＬＫの面積に応じて報酬ｒｔを決定する。ブロックＢＬＫの面積と、報酬ｒｔの関係を図１１（Ｂ）に示す。図１１（Ｂ）において、横軸はブロックＢＬＫの面積を示し、縦軸は報酬ｒｔを示す。図１１（Ｂ）に示すように、ブロックＢＬＫの面積が小さいほど報酬ｒｔが高く、ブロックＢＬＫの面積が大きいほど報酬ｒｔを小さく設定する。ブロックＢＬＫの面積が小さいほど報酬ｒｔが高くなる設定とすることで、ブロックＢＬＫの面積が小さくなるようにニューラルネットワークを学習させ、面積の小さいレイアウト設計を行うことができる。また、報酬ｒｔの値は、有限の値とすることが好ましい。報酬ｒｔの値を有限の値とすることで、アルゴリズムが収束せずにレイアウト設計が終わらなくなるのを防げる。例えば、報酬ｒｔを−１以上１以下とすることができる。図１１（Ｂ）では、ブロックＢＬＫの面積に対して報酬ｒｔが指数関数的に減少する例を示したが、本発明の一態様はこれに限られない。ブロックＢＬＫの面積に対して報酬ｒｔが線形に減少してもよい。また、報酬ｒｔの設定として、ブロックＢＬＫの面積が小さいほど報酬ｒｔが高くなる例を示したが、本発明の一態様はこれに限られない。
【０１０９】［ステップＳ２５］
ステップＳ２５は、処理部１０３でアブストラクトをレイアウト枠内にランダムに配置するステップである。
【０１１０】  ステップＳ２２で作成したｋ個の全てのアブストラクトＡＢＳ＿１乃至アブストラクトＡＢＳ＿ｋが、グリッド枠６０１内にランダムに配置される。ランダムに配置された状態を初期配置と呼ぶことができる。アブストラクトＡＢＳ＿１乃至アブストラクトＡＢＳ＿ｋの初期配置の例を図１２（Ａ）に示す。
【０１１１】［ステップＳ２６］
ステップＳ２６は、処理部１０３でアブストラクトのレイアウト状態ｓｔを観察するステップである。
【０１１２】  レイアウト状態ｓｔは、レイアウトの画像データＬＩＭＧｔとして記憶部１０５に記憶される。図１２（Ａ）に示したアブストラクトＡＢＳ＿１乃至アブストラクトＡＢＳ＿ｋのレイアウト状態ｓｔに対応する、レイアウトの画像データＬＩＭＧｔの例を図１２（Ｂ）に示す。図１２（Ｂ）に示すように、画像データＬＩＭＧｔはアブストラクトのみを有し、グリッドは有さなくてもよい。レイアウトの画像データＬＩＭＧｔは、グレースケール、白黒又はカラーの画像とすることができる。
【０１１３】  本実施の形態では、レイアウトの画像データＬＩＭＧｔはグレースケールの画像を用いる。図１２（Ｂ）において、アブストラクトＡＢＳ＿１乃至アブストラクトＡＢＳ＿ｋにハッチングを付しているが、該ハッチング領域をグレースケールの領域とする。
【０１１４】  ３つのアブストラクトＡＢＳ＿１乃至アブストラクトＡＢＳ＿３を有するレイアウトの例を図１３（Ａ）に示す。図１３（Ａ）の一点鎖線Ａ−Ｂ間の断面図を図１３（Ｂ）に示す。図１３（Ａ）及び図１３（Ｂ）に示す図は、アブストラクトＡＢＳ＿１乃至アブストラクトＡＢＳ＿３にそれぞれ対応する素子ＥＬＭ＿１乃至素子ＥＬＭ＿３が同一の層に形成される例を示している。素子ＥＬＭ＿１乃至素子ＥＬＭ＿３は同一の層に形成されることから、アブストラクトＡＢＳ＿１乃至アブストラクトＡＢＳ＿３が互いに重ならないレイアウトとすることが好ましい。図１３（Ａ）に示したレイアウトに対応する画像データＬＩＭＧｔを、図１４に示す。
【０１１５】  複数の素子がそれぞれ異なる層に形成される例について説明する。３つのアブストラクトＡＢＳ＿１乃至アブストラクトＡＢＳ＿３を有するレイアウトの例を図１５（Ａ）に示す。図１５（Ａ）の一点鎖線Ｃ−Ｄ間の断面図を図１５（Ｂ）に示す。図１５（Ａ）及び図１５（Ｂ）に示す図は、アブストラクトＡＢＳ＿１及びアブストラクトＡＢＳ＿２に対応する素子ＥＬＭ＿１及び素子ＥＬＭ＿２が同一の層に形成され、アブストラクトＡＢＳ＿３に対応する素子ＥＬＭ＿３は、素子ＥＬＭ＿１及び素子ＥＬＭ＿２と異なる層に形成される例を示している。素子ＥＬＭ＿１及び素子ＥＬＭ＿２と、素子ＥＬＭ＿３が異なる層に形成されることから、アブストラクトＡＢＳ＿１及びアブストラクトＡＢＳ＿２と、アブストラクトＡＢＳ＿３が重なる配置とすることができる。なお、図１５（Ｂ）において、素子ＥＬＭ＿１及び素子ＥＬＭ＿２のいずれか１以上と、素子ＥＬＭ＿３を電気的に接続する配線を有する領域３２０を示している。
【０１１６】  図１５（Ａ）に示したレイアウトに対応する画像データを、図１６（Ａ）及び図１６（Ｂ）に示す。図１６（Ａ）に示す画像データＬＩＭＧｔ＿１は、同一層に形成されるアブストラクトＡＢＳ＿１及びアブストラクトＡＢＳ＿２を有する。図１６（Ｂ）に示す画像データＬＩＭＧｔ＿２は、アブストラクトＡＢＳ＿１及びアブストラクトＡＢＳ＿２と異なる層に形成されるアブストラクトＡＢＳ＿３を有する。同じ層に形成されるアブストラクトを１つの画像データとし、形成される層が異なるアブストラクトは異なる画像データとすることができる。例えば、アブストラクトが形成される層がｐ個の場合は、画像データＬＩＭＧｔ＿１乃至画像データＬＩＭＧｔ＿ｐのｐ個の画像データとすることができる。
【０１１７】［ステップＳ２７］
ステップＳ２７は、処理部１０３で行動価値関数Ｑ（ｓｔ，ａｔ）を推定するステップである。
【０１１８】  処理部１０３は第１のニューラルネットワーク５２０を有し、第１のニューラルネットワーク５２０により行動価値関数Ｑ（ｓｔ，ａｔ）を推定する。第１のニューラルネットワーク５２０では、ステップＳ２６で作成したレイアウトの画像データＬＩＭＧｔを入力データとして、行動価値関数Ｑ（ｓｔ，ａｔ）を出力データとする。第１のニューラルネットワーク５２０として、畳み込みニューラルネットワーク（ＣＮＮ）の構成を用いることが好ましい。
【０１１９】  第１のニューラルネットワーク５２０の構成を図１７（Ａ）に示す。図１７（Ａ）はニューラルネットワークとして、畳み込みニューラルネットワーク（ＣＮＮ）の構成を用いる例を示している。図１７（Ａ）に示す第１のニューラルネットワーク５２０は、入力層５２１、中間層５２２及び出力層５２３で構成される。入力層５２１において、入力データであるレイアウトの画像データＬＩＭＧｔ、出力データとして行動価値関数Ｑ（ｓｔ，ａ１）乃至行動価値関数Ｑ（ｓｔ，ａｍ）を示している。レイアウト状態ｓｔにおいて、取りうる移動が移動ａ１乃至移動ａｍのｍ通り存在し、それぞれの移動に対応する行動価値関数をＱ（ｓｔ，ａ１）乃至行動価値関数Ｑ（ｓｔ，ａｍ）と示している。行動価値関数をＱ（ｓｔ，ａ１）乃至行動価値関数Ｑ（ｓｔ，ａｍ）のうち、最も高いＱ値となる移動ａを、次のアブストラクトの移動として選択できる。
【０１２０】  図１７（Ａ）では、中間層５２２が、畳み込み層５２４、プーリング層５２５、畳み込み層５２６、プーリング層５２７、畳み込み層５２８及び全結合層５２９で構成される。なお、中間層５２２の構成は一例であり、中間層５２２は１層以上であればよく、層の数や構成は特に限定されない。例えば、プーリング処理及び畳み込み演算処理をさらに多層で行う構成や、パディングやストライドといった演算処理を介して行う構成としてもよい。なお、図１７（Ａ）にフィルタは図示していない。
【０１２１】  また、ステップＳ２５で取得するレイアウトの画像データＬＩＭＧｔをカラーの画像とする場合は、カラーの画像をグレースケールの画像に変換し、該グレースケールの画像を入力データとして用いてもよい。グレースケールへの変換には、ＮＴＳＣ加重平均法などを用いることができる。また、カラー（多チャンネル）の画像を入力データとして用いる場合は、第１のニューラルネットワーク５２０の畳み込み層において、各チャンネルに対応する複数の種類のフィルタを用いてもよい。また、複数の画像データＬＩＭＧｔを入力データとする場合は、それぞれの画像データＬＩＭＧｔに対し、異なるフィルタを用いてもよい。
【０１２２】  アブストラクトが取りうる移動ａｔについて説明する。１つのアブストラクトＡＢＳにつき取りうる移動ａｔは、Ｘ軸方向に＋１移動する、Ｘ軸方向に−１移動する、Ｙ軸方向に＋１移動する、Ｙ軸方向に−１移動する、その場で９０°回転する、移動しない、の６種類とすることができる。アブストラクトＡＢＳがＸ軸方向に＋１移動する例を図１８（Ａ）に示す。アブストラクトＡＢＳがＸ軸方向に−１移動する例を図１８（Ｂ）に示す。アブストラクトＡＢＳがＹ軸方向に＋１移動する例を図１８（Ｃ）に示す。アブストラクトＡＢＳがＹ軸方向に−１移動する例を図１９（Ａ）に示す。アブストラクトＡＢＳがその場で９０°回転する例を図１９（Ｂ）に示す。アブストラクトＡＢＳが移動しない例を図１９（Ｃ）に示す。Ｘ軸方向及びＹ軸方向の移動は、グリッド間隔を１単位としている。また、アブストラクトＡＢＳが有する４つの頂点のうち、Ｘ座標及びＹ座標が最小の頂点を基準点とする。図１８（Ａ）乃至図１８（Ｃ）、図１９（Ａ）及び図１９（Ｃ）において、基準点を黒丸印で示している。
【０１２３】  なお、本実施の形態では、図１９（Ｂ）に示すその場で９０°回転する移動は、アブストラクトを左回り（反時計回り）に９０°回転させ、回転前の基準点と、回転後の基準点を同じ座標とした。また、本実施の形態では、構成する直線がそれぞれ直交するグリッドを用いていることから、アブストラクトの回転は９０°とした。なお、グリッドを構成する直線が直交しない場合においては、直線が成す角度をアブストラクトの回転角度とすることができる。例えば、グリッドを構成する直線が３０°で交わるグリッドを用いる場合は、アブストラクトの取りうる行動として、アブストラクトの回転は３０°及び１５０°の２通りを用いてもよい。
【０１２４】  ｋ個のアブストラクトを有する場合の出力データの例を、表１に示す。それぞれのアブストラクトＡＢＳ＿１乃至アブストラクトＡＢＳ＿ｋに対し、Ｘ軸方向に＋１移動する、Ｘ軸方向に−１移動する、Ｙ軸方向に＋１移動する、Ｙ軸方向に−１移動する、その場で９０°回転する、の５種類の取りうる移動と、さらにいずれのアブストラクトも移動しない、の１種類が、取りうる移動となる。表１に示すように、アブストラクトＡＢＳ＿１乃至アブストラクトＡＢＳ＿ｋに対し、取りうる移動は移動ａ１乃至移動ａ５ｋ＋１の（５ｋ＋１）通りとなり、出力データを行動価値関数Ｑ（ｓｔ，ａ１）乃至行動価値関数Ｑ（ｓｔ，ａ５ｋ＋１）の（５ｋ＋１）個とすることができる。これらの行動価値関数Ｑ（ｓｔ，ａ１）乃至行動価値関数Ｑ（ｓｔ，ａ５ｋ＋１）のうち、最も高いＱ値となる移動ａを、次のアブストラクトの移動として選択できる。
【０１２５】  例えば、アブストラクトＡＢＳ＿１乃至アブストラクトＡＢＳ＿３の３個のアブストラクトを有する場合、出力データは行動価値関数Ｑ（ｓｔ，ａ１）乃至行動価値関数Ｑ（ｓｔ，ａ１６）の１６個とすることができる。これらの行動価値関数Ｑ（ｓｔ，ａ１）乃至行動価値関数Ｑ（ｓｔ，ａ１６）のうち、最も高いＱ値となる移動ａを、次のアブストラクトの移動として選択できる。
【０１２６】
【表１】
2018234945.tif 000004
【０１２７】  また、移動ａの選択にε−ｇｒｅｅｄｙ法を適用してもよい。ε−ｇｒｅｅｄｙ法においては、（１−ε）の確率で最も高いＱ値となる移動ａを選択し、εの確率でランダムに移動ａを選択する（εは０より大きく１以下）。例えば、０．９５（９５％）の確率で最も高いＱ値となる移動ａを選択し、０．０５（５％）の確率でランダムに移動ａを選択することができる。ε−ｇｒｅｅｄｙ法を適用することにより、選択される行動ａが偏るのを防ぎ、より最適な行動価値関数Ｑを学習できるようになる。なお、学習の初期ではεを大きく、学習が進むに従いεを小さくしてもよい。学習の初期でεを大きくすることにより、アブストラクトの初期配置の影響を低減でき、学習が進むに従いεを小さくすることにより、効率良く学習を進めることができる。
【０１２８】［ステップＳ２８］
ステップＳ２８は、処理部１０３で接続点を接続できるか否かを判定するステップである。
【０１２９】  判定の対象は、ステップＳ２７で選択した移動ａｔを実行した場合のレイアウトである。移動した状態のアブストラクトＡＢＳのレイアウトにおいて、アブストラクトＡＢＳに対応する基本セルＥＬＭが有する接続点を、回路図１１９の接続関係を満たすように接続できるか否かを判定する。
【０１３０】  ステップＳ２８における接続点の接続方法について、２つの素子を有する回路の例を用いて説明する。１つのトランジスタ素子Ｔｒ５１と、１つの容量素子Ｃ５２とで構成される記憶回路の回路図３４１を図２０（Ａ）に示す。図２０（Ａ）は素子の他に、ワード線ＷＬと、ビット線ＢＬと、接地電位線ＧＮＤを有する。なお、説明を簡単にするため、２つの素子を有する回路例を示したが、本発明の一態様はこれに限られない。ステップＳ２７で選択した移動ａｔを実行した場合のレイアウトの例を図２０（Ｂ）に示す。図２０（Ｂ）は、トランジスタ素子Ｔｒ５１に対応するアブストラクトＡＢＳ＿５１と、容量素子Ｃ５２に対応するアブストラクトＡＢＳ＿５２を示している。
【０１３１】  トランジスタ素子Ｔｒ５１、トランジスタ素子Ｔｒ５１に対応するアブストラクトＡＢＳ＿５１、容量素子Ｃ５２、容量素子Ｃ５２に対応するアブストラクトＡＢＳ＿５２を図２１（Ａ）に示す。図２１（Ａ）では位置関係を明示するために、アブストラクトＡＢＳ＿５１及びアブストラクトＡＢＳ＿５２のハッチングを透過して図示している。
【０１３２】  トランジスタ素子Ｔｒ５１及び容量素子Ｃ５２の接続点の例を図２１（Ｂ）に示す。トランジスタ素子Ｔｒ５１は、ゲート電極の領域に接続点ＣＰ＿２、ソース電極の領域に接続点ＣＰ＿１、ドレイン電極の領域に接続点ＣＰ＿４を有する。容量素子Ｃ５２は、上部電極の領域に接続点ＣＰ＿１、下部電極の領域にＣＰ＿３を有する。接続点は、接続領域内のグリッド上に設けられる。なお、図２１（Ｂ）では接続関係を分かりやすくするために、互いに電気的に接続される接続点には同じ符号を付している。同じ符号を付した接続点は、配線で結ばれることを示している。例えば、トランジスタ素子Ｔｒ５１の接続点ＣＰ＿１と、容量素子Ｃ５２の接続点ＣＰ＿１は、配線で結ばれることを示している。
【０１３３】  次に、信号線の接続点をグリッド上に配置する。信号線の接続点は、グリッド上の任意の位置に配置できる。図２１（Ｂ）に示した素子に対し、ワード線ＷＬ、接地電位線ＧＮＤ及びビット線ＢＬのそれぞれの接続点の例を、図２２（Ａ）に示す。図２２（Ａ）は、ワード線ＷＬの接続点ＣＰＬ＿２、接地電位線ＧＮＤの接続点ＣＰＬ＿３、ビット線ＢＬの接続点ＣＰＬ＿４を示している。ワード線ＷＬの接続点ＣＰＬ＿２は、トランジスタ素子Ｔｒ５１の接続点ＣＰ＿２と配線で結ばれる接続点である。接地電位線ＧＮＤの接続点ＣＰＬ＿３は、容量素子Ｃ５２の接続点ＣＰ＿３と配線で結ばれる接続点である。ビット線ＢＬの接続点ＣＰＬ＿４は、トランジスタ素子Ｔｒ５１の接続点ＣＰ＿４と配線で結ばれる接続点である。接続点間を結ぶ配線は、グリッド上にのみ設けられる。
【０１３４】  図２２（Ａ）に示した接続点に対する配線を、図２２（Ｂ）に示す。図２２（Ｂ）では配線を実線で示し、回路図３４１に基づく接続関係を全て満たす配線の例を配置できる例を示している。
【０１３５】  配線の経路を決定するアルゴリズムとして、線分探索法、迷路法、チャネル割当法などを用いることができる。本実施の形態では、線分探索法を用いることが好ましい。線分探索法とは、接続させるぞれぞれの２点からＸ軸方向及びＹ軸方向に順次線分を形成し、始点からの線分と終点からの線分が交わった時に、その点から逆方向に辿って経路を決定する方法である。
【０１３６】  回路図に基づく接続関係をすべて満たす配線を配置できる場合（Ｙｅｓ）は、ステップＳ２９に進む。配線を配置できない場合（Ｎｏ）は、ステップＳ３６に進む。
【０１３７】［ステップＳ２９］
ステップＳ２９は、処理部１０３でデザインルールを満たしているか否かを判定するステップである。
【０１３８】  判定の対象は、ステップＳ２８で作成した素子及び配線の配置を、素子及び配線のパターンに変換したレイアウトである。判定基準は、デザインルールである。図２２（Ｂ）に示した素子及び配線の配置を、素子及び配線のパターンに変換した図を、図２３に示す。図２３は、レイアウトデータの一例である。配線のパターンは、デザインルールに定められた、配線の幅の最大値及び最小値の範囲内とすることができる。また、接続点の一部は、コンタクトホールに変換される。コンタクトホールの大きさは、デザインルールに定められた、コンタクトホールの大きさの最大値及び最小値の範囲内とすることができる。図２３には、接続点の一部が、コンタクトホールＣＯ＿１乃至コンタクトホールＣＯ＿６に変換された図を示している。
【０１３９】  パターンのレイアウトが、デザインルールを満たす場合（Ｙｅｓ）は、ステップＳ３０に進む。デザインルールを満たさない場合（Ｎｏ）は、ステップＳ３６に進む。
【０１４０】  図２３に示したレイアウトを、立体的に示した模式図を図２４（Ｂ）に示す。また、回路構成を立体的に示した模式図を図２４（Ａ）に示す。本発明の一態様であるレイアウト設計システムを用いることで、回路設計で作成された回路図及びデザインルールを満たすとともに、集積回路の面積が小さいレイアウトデータを作成できる。
【０１４１】［ステップＳ３０］
ステップＳ３０は、処理部１０３でアブストラクトを移動するステップである。該移動は、ステップＳ２７で選択された移動ａｔに従う。
【０１４２】  アブストラクトＡＢＳ＿１乃至アブストラクトＡＢＳ＿３の３つのアブストラクトを有するレイアウトで移動する例を、図２５に示す。図２５は、ステップＳ２７で選択された移動ａｔとして、アブストラクトＡＢＳ＿２がＸ軸方向に−１移動することが選択された例を示している。本実施の形態では、図２５に示すように１つのエピソードで移動するアブストラクトは１つとしたが、これに限られない。複数のアブストラクトが移動する構成としてもよい。
【０１４３】［ステップＳ３１］
ステップＳ３１は、処理部１０３でアブストラクトのレイアウト状態ｓｔ＋１を観察するステップである。
【０１４４】  レイアウト状態ｓｔ＋１は、ステップＳ２７の移動ａｔによって、ステップＳ２５でのレイアウト状態ｓｔが変化したものである。レイアウト状態ｓｔ＋１は、レイアウトの画像データＬＩＭＧｔ＋１として記憶部１０５に記憶される。
【０１４５】［ステップＳ３２］
ステップＳ３２は、処理部１０３で行動価値関数Ｑ（ｓｔ＋１，ａｔ＋１）を推定するステップである。
【０１４６】  一般的に、深層学習の学習時において、出力データと教師データの誤差が小さくなるようにニューラルネットワークの重み係数を更新していく。重み係数の更新は、出力データと教師データの誤差が一定になるまで繰り返される。強化学習の一種であるＱ学習は、最適なＱ関数の探索が学習の目的であるが、学習の最中は最適なＱ関数は不明である。そこで、次の時刻ｔ＋１における行動価値関数Ｑ（ｓｔ＋１，ａｔ＋１）を推定し、ｒｔ＋１＋ｍａｘＱ（ｓｔ＋１，ａｔ＋１）を教師データとみなす。該教師データを損失関数に用いることで、第１のニューラルネットワーク５２０の学習を行う。
【０１４７】  処理部１０３は第２のニューラルネットワーク５３０を有し、第２のニューラルネットワーク５３０により行動価値関数Ｑ（ｓｔ＋１，ａｔ＋１）を推定する。第２のニューラルネットワーク５３０では、ステップＳ３１で作成したレイアウトの画像データＬＩＭＧｔ＋１を入力データとして、行動価値関数Ｑ（ｓｔ＋１，ａｔ＋１）を出力データとする。第２のニューラルネットワーク５３０として、畳み込みニューラルネットワーク（ＣＮＮ）の構成を用いることが好ましい。
【０１４８】  第２のニューラルネットワーク５３０の構成を図１７（Ｂ）に示す。図１７（Ｂ）はニューラルネットワークとして、畳み込みニューラルネットワーク（ＣＮＮ）の構成を用いる例を示している。図１７（Ｂ）に示す第２のニューラルネットワーク５３０は、入力層５３１、中間層５３２及び出力層５３３で構成される。入力層５３１において、入力データであるレイアウトの画像データＬＩＭＧｔ＋１、出力データとして行動価値関数Ｑ（ｓｔ＋１，ａ１）乃至行動価値関数Ｑ（ｓｔ＋１，ａｍ）を示している。レイアウト状態ｓｔにおいて、取りうる移動が移動ａ１乃至移動ａｍのｍ通り存在し、それぞれの移動に対応する行動価値関数をＱ（ｓｔ，ａ１）乃至行動価値関数Ｑ（ｓｔ＋１，ａｍ）と示している。行動価値関数Ｑ（ｓｔ＋１，ａ１）乃至行動価値関数Ｑ（ｓｔ＋１，ａｍ）のうち最も高いＱ値と、報酬ｒｔ＋１の和を、第１のニューラルネットワークの推論に対する教師データとして用いることができる。
【０１４９】  図１７（Ｂ）では、中間層５３２が、畳み込み層５３４、プーリング層５３５、畳み込み層５３６、プーリング層５３７、畳み込み層５３８及び全結合層５３９で構成される。なお、中間層５３２の構成は一例であり、プーリング処理及び畳み込み演算処理をさらに多層で行う構成や、パディングやストライドといった演算処理を介して行う構成としてもよい。なお、図１７（Ｂ）にフィルタは図示していない。
【０１５０】  なお、ステップＳ２７及びステップＳ３２で、１つのニューラルネットワークを用いてもよい。また、ステップＳ２７及びステップＳ３２で、それぞれ異なるニューラルネットワークを用いてもよい。
【０１５１】［ステップＳ３３］
ステップＳ３３は、処理部１０３で報酬ｒｔ＋１を受け取り、行動価値関数Ｑ（ｓｔ，ａｔ）を更新するステップである。
【０１５２】  報酬ｒｔ＋１は、ステップＳ３０でのアブストラクトの移動ａｔに対する報酬である。移動ａｔを行った後のブロックＢＬＫの面積を算出し、ステップＳ２４で設定した報酬設定に従い、ブロックＢＬＫの面積に応じた報酬ｒｔ＋１が決定される。なお、ステップＳ３３において報酬を与えない、つまり報酬ｒｔ＋１＝０としてもよい。
【０１５３】  第１のニューラルネットワーク５２０による行動価値関数Ｑ（ｓｔ，ａｔ）の推論結果と、第２のニューラルネットワーク５３０により作成した教師データを用いて損失関数を計算する。確率的勾配降下法（ＳＧＤ：Ｓｔｏｃｈａｓｔｉｃ  Ｇｒａｄｉｅｎｔ  Ｄｅｓｃｅｎｔ）を用いて、該損失関数の値が小さくなるように、第１のニューラルネットワーク５２０の重み係数を更新する。確率的勾配降下法の他に、Ａｄａｍ（Ａｄａｐｔｉｖｅ  Ｍｏｍｅｎｔ  Ｅｓｔｉｍａｔｉｏｎ）、モメンタム（Ｍｏｍｅｎｔｕｍ）、ＡｄａＧｒａｄ（Ａｄａｐｔｉｖｅ  ＳｕｂＧｒａｄｉｅｎｔ  Ｍｅｔｈｏｄｓ）、ＲＭＳＰｒｏｐなどを用いることができる。
【０１５４】［ステップＳ３４］
ステップＳ３４は、処理部１０３で終了条件Ａを満たしているか否かを判定するステップである。終了条件Ａを満たす場合（Ｙｅｓ）は、ステップＳ３５に進む。終了条件Ａを満たさない場合（Ｎｏ）は、ステップＳ２６のレイアウト状態の観察に進む。以降、ステップＳ２６乃至ステップＳ３３を繰り返すことで、第１のニューラルネットワーク５２０及び第２のニューラルネットワーク５３０の重み係数を更新し、第１のニューラルネットワーク５２０及び第２のニューラルネットワーク５３０を最適化していく。第１のニューラルネットワーク５２０及び第２のニューラルネットワーク５３０を最適化することで、短時間で、デザインルールを満たしつつ面積の小さいレイアウト設計を行うレイアウト設計システム１００とすることができる。
【０１５５】  終了条件Ａとして、図５及び図６に示すレイアウト設計フローの開始からの経過時間を用いることができる。終了条件Ａを設定することで、アルゴリズムが収束せずにレイアウト設計が終わらなくなるのを防げる。
【０１５６】［ステップＳ３５］
ステップＳ３５は、処理部１０３で終了条件Ｂを満たしているか否かを判定するステップである。終了条件Ｂを満たす場合（Ｙｅｓ）は、レイアウト設計は終了し、レイアウトデータを出力する。レイアウトデータとして、例えば図２３に示すレイアウトデータを出力できる。終了条件Ｂを満たさない場合（Ｎｏ）は、ステップＳ２５のアブストラクトの配置に進み、アブストラクトの初期配置から学習を進める。以降、ステップＳ２６乃至ステップＳ３３を繰り返すことで、第１のニューラルネットワーク５２０及び第２のニューラルネットワーク５３０の重み係数を更新し、第１のニューラルネットワーク５２０及び第２のニューラルネットワーク５３０を最適化していく。第１のニューラルネットワーク５２０及び第２のニューラルネットワーク５３０を最適化することで、短時間で、デザインルールを満たしつつ面積の小さいレイアウト設計を行うレイアウト設計システム１００とすることができる。
【０１５７】  終了条件Ｂとして、例えば、エピソード回数を用いることができる。
【０１５８】［ステップＳ３６］
ステップＳ２８で接続点を接続できない場合、又はステップＳ２９でデザインルールを満たさない場合は、ステップＳ３６に進む。ステップＳ３６において、処理部１０３で報酬ｒｔを受け取り、行動価値関数Ｑ（ｓｔ，ａｔ）を更新する。ステップＳ３６での報酬ｒｔは、ステップＳ３３での報酬ｒｔより小さい値とする。報酬ｒｔとして負の値を用いてもよい。例えば、報酬ｒｔを−１とすることができる。
【０１５９】  以上により、レイアウト設計を行うことができる。
【０１６０】  また、それぞれ異なる回路図及びデザインルールを用いてレイアウト設計を行うことで、汎用性の高いレイアウト設計システムとすることができる。
【０１６１】＜３．レイアウト設計方法２＞
前述の＜２．レイアウト設計方法１＞に示したレイアウト設計方法と異なるレイアウト設計方法について、説明する。＜２．レイアウト設計方法１＞と異なるのは、ステップＳ２７における行動価値関数Ｑ（ｓｔ，ａｔ）の推定の方法である。他のステップは前述の記載を参照できる為、詳細な説明を省略する。
【０１６２】［ステップＳ２７］
ステップＳ２７において、処理部１０３で行動価値関数Ｑ（ｓｔ，ａｔ）を推定する。処理部１０３は第１のニューラルネットワーク５２０を有し、第１のニューラルネットワーク５２０により行動価値関数Ｑ（ｓｔ，ａｔ）を推定する。第１のニューラルネットワーク５２０では、ステップＳ２６で作成したレイアウトの画像データＬＩＭＧｔを入力データとして、行動価値関数Ｑ（ｓｔ，ａｔ）を出力データとする。第１のニューラルネットワーク５２０として、畳み込みニューラルネットワーク（ＣＮＮ）の構成を用いることが好ましい。
【０１６３】  第１のニューラルネットワーク５２０の構成については、前述の記載を参照できるため、詳細な説明を省略する。
【０１６４】  アブストラクトが取りうる移動ａｔについて説明する。１エピソードにおいて、行動価値関数Ｑ（ｓｔ，ａｔ）を推定する対象を１つのアブストラクトＡＢＳとする。１つのアブストラクトが取りうる移動ａｔは、Ｘ軸方向に＋１移動する、Ｘ軸方向に−１移動する、Ｙ軸方向に＋１移動する、Ｙ軸方向に−１移動する、その場で９０°回転する、移動しない、の６種類とすることができる。
【０１６５】  ｋ個のアブストラクトＡＢＳ＿１乃至アブストラクトＡＢＳ＿ｋの中で、移動の対象となる１つのアブストラクトをアブストラクトＡＢＳ＿ｉと記す。アブストラクトＡＢＳ＿ｉが前述の６種類の移動を取りうる場合の出力データの例を、表２に示す。１つのアブストラクトＡＢＳ＿ｉに対し、取りうる移動は移動ａ１乃至移動ａ６の６通りとなり、出力データを行動価値関数Ｑ（ｓｔ，ａ１）乃至行動価値関数Ｑ（ｓｔ，ａ６）の６個とすることができる。
【０１６６】
【表２】
2018234945.tif 000005
【０１６７】  １つのエピソードでは１つのアブストラクトＡＢＳ＿ｉを移動の対象とし、次のエピソードでは前エピソードと異なる１つのアブストラクトＡＢＳ＿（ｉ＋１）を移動の対象とする。１つのエピソードで移動する対象を１つのアブストラクトとすることで、ニューラルネットワークの出力データ数を固定することができ、汎用性の高いニューラルネットワークとすることができる。
【０１６８】＜４．レイアウト設計方法３＞
前述の＜２．レイアウト設計方法１＞及び＜３．レイアウト設計方法２＞では、第１のニューラルネットワーク５２０及び第２のニューラルネットワーク５３０の重み係数を繰り返し更新し、ニューラルネットワークを学習させる方法を示した。これらの学習済みのニューラルネットワークを用いてレイアウト設計を行う方法について、説明する。レイアウト設計のフローを、図７に示す。
【０１６９】［ステップＳ１０１］
ステップＳ１０１は、回路図及びレイアウト設計情報を取得するステップである。
【０１７０】  ステップＳ１０１は、前述のステップＳ２１の記載を参照できるため、詳細な説明を省略する。
【０１７１】［ステップＳ１０２］
ステップＳ１０２は、処理部１０３でグリッドを作成するステップである。
【０１７２】  ステップＳ１０２は、前述のステップＳ２２の記載を参照できるため、詳細な説明を省略する。
【０１７３】［ステップＳ１０３］
ステップＳ１０３は、処理部１０３でグリッド枠内に基本セル及びアブストラクトを作成するステップである。
【０１７４】  ステップＳ１０３は、前述のステップＳ２３の記載を参照できるため、詳細な説明を省略する。
【０１７５】［ステップＳ１０４］
ステップＳ１０４は、処理部１０３でアブストラクトをレイアウト枠内にランダムに配置するステップである。
【０１７６】  ステップＳ１０４は、前述のステップＳ２５の記載を参照できるため、詳細な説明を省略する。
【０１７７】［ステップＳ１０５］
ステップＳ１０５は、処理部１０３でアブストラクトのレイアウト状態ｓｔを観察するステップである。
【０１７８】  ステップＳ１０５は、前述のステップＳ２６の記載を参照できるため、詳細な説明を省略する。
【０１７９】［ステップＳ１０６］
ステップＳ１０６は、処理部１０３で行動価値関数Ｑ（ｓｔ，ａｔ）を推定するステップである。
【０１８０】  ステップＳ１０６は、前述のステップＳ２７の記載を参照できるため、詳細な説明を省略する。
【０１８１】［ステップＳ１０７］
ステップＳ１０７は、処理部１０３で接続点を接続できるか否かを判定するステップである。
【０１８２】  ステップＳ１０７は、前述のステップＳ２８の記載を参照できるため、詳細な説明を省略する。
【０１８３】  回路図に基づく接続関係をすべて満たす配線を配置できる場合（Ｙｅｓ）は、ステップＳ１０８に進む。配線を配置できない場合（Ｎｏ）は、ステップＳ１０４に進む。ステップＳ１０４でアブストラクトを初期配置とし、初期配置から再度レイアウト処理を進める。
【０１８４】［ステップＳ１０８］
ステップＳ１０８は、処理部１０３でデザインルールを満たしているか否かを判定するステップである。
【０１８５】  ステップＳ１０８は、前述のステップＳ２９の記載を参照できるため、詳細な説明を省略する。
【０１８６】  パターンのレイアウトが、デザインルールを満たす場合（Ｙｅｓ）は、ステップＳ１０９に進む。デザインルールを満たさない場合（Ｎｏ）は、ステップＳ１０４に進む。ステップＳ１０４でアブストラクトを初期配置とし、初期配置から再度レイアウト処理を進める。
【０１８７】［ステップＳ１０９］
ステップＳ１０９は、処理部１０３でアブストラクトを移動するステップである。該移動は、ステップＳ１０６で選択された移動ａｔに従う。
【０１８８】  ステップＳ１０９は、前述のステップＳ３０の記載を参照できるため、詳細な説明を省略する。
【０１８９】［ステップＳ１１０］
ステップＳ１１０は、処理部１０３で終了条件Ｃを満たしているか否かを判定するステップである。終了条件Ｃを満たす場合（Ｙｅｓ）は、レイアウト設計は終了する。終了条件Ｃを満たさない場合（Ｎｏ）は、ステップＳ１０５のレイアウト状態の観察に進む。
【０１９０】  終了条件Ｃとして、例えば、エピソード回数又はレイアウト処理開始からの経過時間を用いることができる。
【０１９１】  本発明の一態様である最適化されたニューラルネットワークを有するレイアウト設計システムを用いることで、短時間で、デザインルールを満たしつつ面積の小さいレイアウト設計を行うとすることができる。
【０１９２】＜５．レイアウト設計システムの例＞
図１に示したレイアウト設計システム１００と異なるレイアウト設計システムについて説明する。
【０１９３】  レイアウト設計システム１５０のブロック図を図２６に示す。レイアウト設計システム１５０は、サーバ１５１と、端末１５２（パーソナルコンピュータなど）とを有する。
【０１９４】  サーバ１５１は、通信部１６１ａ、伝送路１６２、処理部１６３ａ、及びデータベース１６７を有する。図２６では図示しないが、さらに、サーバ１５１は、記憶部、入出力部などを有していてもよい。
【０１９５】  端末１５２は、通信部１６１ｂ、伝送路１６８、処理部１６３ｂ、記憶部１６５、及び入出力部１６９を有する。図２６では図示しないが、端末１５２は、さらに、データベースなどを有していてもよい。
【０１９６】  レイアウト設計システム１５０の使用者は、端末１５２から、レイアウト設計に用いる回路図及びレイアウト設計情報を、サーバ１５１に入力する。当該データは、通信部１６１ｂから通信部１６１ａに送信される。
【０１９７】  通信部１６１ａが受信したデータは、伝送路１６２を介して、データベース１６７または記憶部（図示しない）に保存される。または、当該データは、通信部１６１ａから、直接、処理部１６３ａに供給されてもよい。
【０１９８】  前述したレイアウト設計は、処理部１６３ａにて行われる。これらの処理は、高い処理能力が求められるため、サーバ１５１が有する処理部１６３ａで行うことが好ましい。
【０１９９】  そして、処理部１６３ａにより、レイアウトデータが生成される。レイアウトデータは、伝送路１６２を介して、データベース１６７または記憶部（図示しない）に保存される。または、当該データは、処理部１６３ａから、直接、通信部１６１ａに供給されてもよい。その後、サーバ１５１から、レイアウトデータが、端末１５２に出力される。当該データは、通信部１６１ａから通信部１６１ｂに送信される。
【０２００】［入出力部１６９］
入出力部１６９には、レイアウト設計システム１５０の外部から情報が供給される。入出力部１６９は、レイアウト設計システム１５０の外部に情報を供給する機能を有する。なお、レイアウト設計システム１００のように、入力部と出力部が分かれていてもよい。
【０２０１】［伝送路１６２及び伝送路１６８］
伝送路１６２及び伝送路１６８は、情報を伝達する機能を有する。通信部１６１ａ、処理部１６３ａ、及びデータベース１６７の間の情報の送受信は、伝送路１６２を介して行うことができる。通信部１６１ｂ、処理部１６３ｂ、記憶部１６５、及び入出力部１６９の間の情報の送受信は、伝送路１６８を介して行うことができる。
【０２０２】［処理部１６３ａ及び処理部１６３ｂ］
処理部１６３ａは、通信部１６１ａ及びデータベース１６７などから供給された情報を用いて、演算、推論などを行う機能を有する。処理部１６３ｂは、通信部１６１ｂ、記憶部１６５、及び入出力部１６９などから供給された情報を用いて、演算などを行う機能を有する。処理部１６３ａ及び処理部１６３ｂは、処理部１０３の説明を参照できる。特に、処理部１６３ａは、前述したレイアウト設計処理を行うことができる。そのため、処理部１６３ａは、処理部１６３ｂに比べて処理能力が高いことが好ましい。
【０２０３】［記憶部１６５］
記憶部１６５は、処理部１６３ｂが実行するプログラムを記憶する機能を有する。また、記憶部１０５は、処理部１６３ｂが生成した演算結果、通信部１６１ｂに入力された情報、及び入出力部１６９に入力された情報などを記憶する機能を有する。
【０２０４】［データベース１６７］
データベース１６７は、レイアウト設計情報を記憶する機能を有する。また、データベース１６７は、処理部１６３ａが生成した演算結果、及び通信部１６１ａに入力された情報などを記憶する機能を有していてもよい。または、サーバ１５１は、データベース１６７とは別に記憶部を有し、当該記憶部が、処理部１６３ａが生成した演算結果、及び通信部１６１ａに入力された情報などを記憶する機能を有していてもよい。
【０２０５】［通信部１６１ａ及び通信部１６１ｂ］
通信部１６１ａ及び通信部１６１ｂを用いて、サーバ１５１と端末１５２との間で、情報の送受信を行うことができる。通信部１６１ａ及び通信部１６１ｂとしては、ハブ、ルータ、モデムなどを用いることができる。情報の送受信には、有線を用いても無線（例えば、電波、赤外線など）を用いてもよい。
【０２０６】  以上のように、本実施の形態のレイアウト設計システムでは、事前に準備されたレイアウト設計情報を元に、入力された回路図からレイアウトデータを作成できる。
【０２０７】  本実施の形態は、他の実施の形態と適宜組み合わせることができる。また、本明細書において、１つの実施の形態の中に、複数の構成例が示される場合は、構成例を適宜組み合わせることが可能である。
【０２０８】（実施の形態２）
本実施の形態では、上記の実施の形態で説明したニューラルネットワークに用いることが可能な半導体装置の構成例について説明する。
【０２０９】  図２７（Ａ）に示すように、ニューラルネットワークＮＮは入力層ＩＬ、出力層ＯＬ、中間層（隠れ層）ＨＬによって構成することができる。入力層ＩＬ、出力層ＯＬ、中間層ＨＬはそれぞれ、１又は複数のニューロン（ユニット）を有する。なお、中間層ＨＬは１層であってもよいし２層以上であってもよい。２層以上の中間層ＨＬを有するニューラルネットワークはＤＮＮ（ディープニューラルネットワーク）と呼ぶこともでき、ディープニューラルネットワークを用いた学習は深層学習と呼ぶこともできる。
【０２１０】  入力層ＩＬの各ニューロンには入力データが入力され、中間層ＨＬの各ニューロンには前層又は後層のニューロンの出力信号が入力され、出力層ＯＬの各ニューロンには前層のニューロンの出力信号が入力される。なお、各ニューロンは、前後の層の全てのニューロンと結合されていてもよいし（全結合）、一部のニューロンと結合されていてもよい。
【０２１１】  図２７（Ｂ）に、ニューロンによる演算の例を示す。ここでは、ニューロンＮと、ニューロンＮに信号を出力する前層の２つのニューロンを示している。ニューロンＮには、前層のニューロンの出力ｘ１と、前層のニューロンの出力ｘ２が入力される。そして、ニューロンＮにおいて、出力ｘ１と重みｗ１の乗算結果（ｘ１ｗ１）と出力ｘ２と重みｗ２の乗算結果（ｘ２ｗ２）の総和ｘ１ｗ１＋ｘ２ｗ２が計算された後、必要に応じてバイアスｂが加算され、値ａ＝ｘ１ｗ１＋ｘ２ｗ２＋ｂが得られる。そして、値ａは活性化関数ｈによって変換され、ニューロンＮから出力信号ｙ＝ｈ（ａ）が出力される。
【０２１２】  このように、ニューロンによる演算には、前層のニューロンの出力と重みの積を足し合わせる演算、すなわち積和演算が含まれる（上記のｘ１ｗ１＋ｘ２ｗ２）。この積和演算は、プログラムを用いてソフトウェア上で行ってもよいし、ハードウェアによって行われてもよい。積和演算をハードウェアによって行う場合は、積和演算回路を用いることができる。この積和演算回路としては、デジタル回路を用いてもよいし、アナログ回路を用いてもよい。積和演算回路にアナログ回路を用いる場合、積和演算回路の回路規模の縮小、又は、メモリへのアクセス回数の減少による処理速度の向上及び消費電力の低減を図ることができる。
【０２１３】  積和演算回路は、チャネル形成領域にシリコン（単結晶シリコンなど）を含むトランジスタ（以下、Ｓｉトランジスタともいう）によって構成してもよいし、チャネル形成領域に酸化物半導体を含むトランジスタ（以下、ＯＳトランジスタともいう）によって構成してもよい。特に、ＯＳトランジスタはオフ電流が極めて小さいため、積和演算回路のアナログメモリを構成するトランジスタとして好適である。なお、ＳｉトランジスタとＯＳトランジスタの両方を用いて積和演算回路を構成してもよい。以下、積和演算回路の機能を備えた半導体装置の構成例について説明する。
【０２１４】＜半導体装置の構成例＞
図２８に、ニューラルネットワークの演算を行う機能を有する半導体装置ＭＡＣの構成例を示す。半導体装置ＭＡＣは、ニューロン間の結合強度（重み）に対応する第１のデータと、入力データに対応する第２のデータの積和演算を行う機能を有する。なお、第１のデータ及び第２のデータはそれぞれ、アナログデータ又は多値のデータ（離散的なデータ）とすることができる。また、半導体装置ＭＡＣは、積和演算によって得られたデータを活性化関数によって変換する機能を有する。
【０２１５】  半導体装置ＭＡＣは、セルアレイＣＡ、電流源回路ＣＳ、カレントミラー回路ＣＭ、回路ＷＤＤ、回路ＷＬＤ、回路ＣＬＤ、オフセット回路ＯＦＳＴ、及び活性化関数回路ＡＣＴＶを有する。
【０２１６】  セルアレイＣＡは、複数のメモリセルＭＣ及び複数のメモリセルＭＣｒｅｆを有する。図２８には、セルアレイＣＡがｍ行ｎ列（ｍ，ｎは１以上の整数）のメモリセルＭＣ（ＭＣ［１，１］乃至［ｍ，ｎ］）と、ｍ個のメモリセルＭＣｒｅｆ（ＭＣｒｅｆ［１］乃至［ｍ］）を有する構成例を示している。メモリセルＭＣは、第１のデータを格納する機能を有する。また、メモリセルＭＣｒｅｆは、積和演算に用いられる参照データを格納する機能を有する。なお、参照データはアナログデータ又は多値のデータとすることができる。
【０２１７】  メモリセルＭＣ［ｉ，ｊ］（ｉは１以上ｍ以下の整数、ｊは１以上ｎ以下の整数）は、配線ＷＬ［ｉ］、配線ＲＷ［ｉ］、配線ＷＤ［ｊ］、及び配線ＢＬ［ｊ］と接続されている。また、メモリセルＭＣｒｅｆ［ｉ］は、配線ＷＬ［ｉ］、配線ＲＷ［ｉ］、配線ＷＤｒｅｆ、配線ＢＬｒｅｆと接続されている。ここで、メモリセルＭＣ［ｉ，ｊ］と配線ＢＬ［ｊ］間を流れる電流をＩＭＣ［ｉ，ｊ］と表記し、メモリセルＭＣｒｅｆ［ｉ］と配線ＢＬｒｅｆ間を流れる電流をＩＭＣｒｅｆ［ｉ］と表記する。
【０２１８】  メモリセルＭＣ及びメモリセルＭＣｒｅｆの具体的な構成例を、図２９に示す。図２９には代表例としてメモリセルＭＣ［１，１］、［２，１］及びメモリセルＭＣｒｅｆ［１］、［２］を示しているが、他のメモリセルＭＣ及びメモリセルＭＣｒｅｆにも同様の構成を用いることができる。メモリセルＭＣ及びメモリセルＭＣｒｅｆはそれぞれ、トランジスタＴｒ１１、Ｔｒ１２、容量素子Ｃ１１を有する。ここでは、トランジスタＴｒ１１及びトランジスタＴｒ１２がｎチャネル型のトランジスタである場合について説明する。
【０２１９】  メモリセルＭＣにおいて、トランジスタＴｒ１１のゲートは配線ＷＬと接続され、ソース又はドレインの一方はトランジスタＴｒ１２のゲート、及び容量素子Ｃ１１の第１の電極と接続され、ソース又はドレインの他方は配線ＷＤと接続されている。トランジスタＴｒ１２のソース又はドレインの一方は配線ＢＬと接続され、ソース又はドレインの他方は配線ＶＲと接続されている。容量素子Ｃ１１の第２の電極は、配線ＲＷと接続されている。配線ＶＲは、所定の電位を供給する機能を有する配線である。ここでは一例として、配線ＶＲから低電源電位（接地電位など）が供給される場合について説明する。
【０２２０】  トランジスタＴｒ１１のソース又はドレインの一方、トランジスタＴｒ１２のゲート、及び容量素子Ｃ１１の第１の電極と接続されたノードを、ノードＮＭとする。また、メモリセルＭＣ［１，１］、［２，１］のノードＮＭを、それぞれノードＮＭ［１，１］、［２，１］と表記する。
【０２２１】  メモリセルＭＣｒｅｆも、メモリセルＭＣと同様の構成を有する。ただし、メモリセルＭＣｒｅｆは配線ＷＤの代わりに配線ＷＤｒｅｆと接続され、配線ＢＬの代わりに配線ＢＬｒｅｆと接続されている。また、メモリセルＭＣｒｅｆ［１］、［２］において、トランジスタＴｒ１１のソース又はドレインの一方、トランジスタＴｒ１２のゲート、及び容量素子Ｃ１１の第１の電極と接続されたノードを、それぞれノードＮＭｒｅｆ［１］、［２］と表記する。
【０２２２】  ノードＮＭとノードＮＭｒｅｆはそれぞれ、メモリセルＭＣとメモリセルＭＣｒｅｆの保持ノードとして機能する。ノードＮＭには第１のデータが保持され、ノードＮＭｒｅｆには参照データが保持される。また、配線ＢＬ［１］からメモリセルＭＣ［１，１］、［２，１］のトランジスタＴｒ１２には、それぞれ電流ＩＭＣ［１，１］、ＩＭＣ［２，１］が流れる。また、配線ＢＬｒｅｆからメモリセルＭＣｒｅｆ［１］、［２］のトランジスタＴｒ１２には、それぞれ電流ＩＭＣｒｅｆ［１］、ＩＭＣｒｅｆ［２］が流れる。
【０２２３】  トランジスタＴｒ１１は、ノードＮＭ又はノードＮＭｒｅｆの電位を保持する機能を有するため、トランジスタＴｒ１１のオフ電流は小さいことが好ましい。そのため、トランジスタＴｒ１１としてオフ電流が極めて小さいＯＳトランジスタを用いることが好ましい。これにより、ノードＮＭ又はノードＮＭｒｅｆの電位の変動を抑えることができ、演算精度の向上を図ることができる。また、ノードＮＭ又はノードＮＭｒｅｆの電位をリフレッシュする動作の頻度を低く抑えることが可能となり、消費電力を削減することができる。
【０２２４】  トランジスタＴｒ１２は特に限定されず、例えばＳｉトランジスタ又はＯＳトランジスタなどを用いることができる。トランジスタＴｒ１２にＯＳトランジスタを用いる場合、トランジスタＴｒ１１と同じ製造装置を用いて、トランジスタＴｒ１２を作製することが可能となり、製造コストを抑制することができる。なお、トランジスタＴｒ１２はｎチャネル型であってもｐチャネル型であってもよい。
【０２２５】  電流源回路ＣＳは、配線ＢＬ［１］乃至［ｎ］及び配線ＢＬｒｅｆと接続されている。電流源回路ＣＳは、配線ＢＬ［１］乃至［ｎ］及び配線ＢＬｒｅｆに電流を供給する機能を有する。なお、配線ＢＬ［１］乃至［ｎ］に供給される電流値と配線ＢＬｒｅｆに供給される電流値は異なっていてもよい。ここでは、電流源回路ＣＳから配線ＢＬ［１］乃至［ｎ］に供給される電流をＩＣ、電流源回路ＣＳから配線ＢＬｒｅｆに供給される電流をＩＣｒｅｆと表記する。
【０２２６】  カレントミラー回路ＣＭは、配線ＩＬ［１］乃至［ｎ］及び配線ＩＬｒｅｆを有する。配線ＩＬ［１］乃至［ｎ］はそれぞれ配線ＢＬ［１］乃至［ｎ］と接続され、配線ＩＬｒｅｆは、配線ＢＬｒｅｆと接続されている。ここでは、配線ＩＬ［１］乃至［ｎ］と配線ＢＬ［１］乃至［ｎ］の接続箇所をノードＮＰ［１］乃至［ｎ］と表記する。また、配線ＩＬｒｅｆと配線ＢＬｒｅｆの接続箇所をノードＮＰｒｅｆと表記する。
【０２２７】  カレントミラー回路ＣＭは、ノードＮＰｒｅｆの電位に応じた電流ＩＣＭを配線ＩＬｒｅｆに流す機能と、この電流ＩＣＭを配線ＩＬ［１］乃至［ｎ］にも流す機能を有する。図２８には、配線ＢＬｒｅｆから配線ＩＬｒｅｆに電流ＩＣＭが排出され、配線ＢＬ［１］乃至［ｎ］から配線ＩＬ［１］乃至［ｎ］に電流ＩＣＭが排出される例を示している。また、カレントミラー回路ＣＭから配線ＢＬ［１］乃至［ｎ］を介してセルアレイＣＡに流れる電流を、ＩＢ［１］乃至［ｎ］と表記する。また、カレントミラー回路ＣＭから配線ＢＬｒｅｆを介してセルアレイＣＡに流れる電流を、ＩＢｒｅｆと表記する。
【０２２８】  回路ＷＤＤは、配線ＷＤ［１］乃至［ｎ］及び配線ＷＤｒｅｆと接続されている。回路ＷＤＤは、メモリセルＭＣに格納される第１のデータに対応する電位を、配線ＷＤ［１］乃至［ｎ］に供給する機能を有する。また、回路ＷＤＤは、メモリセルＭＣｒｅｆに格納される参照データに対応する電位を、配線ＷＤｒｅｆに供給する機能を有する。回路ＷＬＤは、配線ＷＬ［１］乃至［ｍ］と接続されている。回路ＷＬＤは、データの書き込みを行うメモリセルＭＣ又はメモリセルＭＣｒｅｆを選択するための信号を、配線ＷＬ［１］乃至［ｍ］に供給する機能を有する。回路ＣＬＤは、配線ＲＷ［１］乃至［ｍ］と接続されている。回路ＣＬＤは、第２のデータに対応する電位を、配線ＲＷ［１］乃至［ｍ］に供給する機能を有する。
【０２２９】  オフセット回路ＯＦＳＴは、配線ＢＬ［１］乃至［ｎ］及び配線ＯＬ［１］乃至［ｎ］と接続されている。オフセット回路ＯＦＳＴは、配線ＢＬ［１］乃至［ｎ］からオフセット回路ＯＦＳＴに流れる電流量、及び／又は、配線ＢＬ［１］乃至［ｎ］からオフセット回路ＯＦＳＴに流れる電流の変化量を検出する機能を有する。また、オフセット回路ＯＦＳＴは、検出結果を配線ＯＬ［１］乃至［ｎ］に出力する機能を有する。なお、オフセット回路ＯＦＳＴは、検出結果に対応する電流を配線ＯＬに出力してもよいし、検出結果に対応する電流を電圧に変換して配線ＯＬに出力してもよい。セルアレイＣＡとオフセット回路ＯＦＳＴの間を流れる電流を、Ｉα［１］乃至［ｎ］と表記する。
【０２３０】  オフセット回路ＯＦＳＴの構成例を図３０に示す。図３０に示すオフセット回路ＯＦＳＴは、回路ＯＣ［１］乃至［ｎ］を有する。また、回路ＯＣ［１］乃至［ｎ］はそれぞれ、トランジスタＴｒ２１、トランジスタＴｒ２２、トランジスタＴｒ２３、容量素子Ｃ２１、及び抵抗素子Ｒ１を有する。各素子の接続関係は図３０に示す通りである。なお、容量素子Ｃ２１の第１の電極及び抵抗素子Ｒ１の第１の端子と接続されたノードを、ノードＮａとする。また、容量素子Ｃ２１の第２の電極、トランジスタＴｒ２１のソース又はドレインの一方、及びトランジスタＴｒ２２のゲートと接続されたノードを、ノードＮｂとする。
【０２３１】  配線ＶｒｅｆＬは電位Ｖｒｅｆを供給する機能を有し、配線ＶａＬは電位Ｖａを供給する機能を有し、配線ＶｂＬは電位Ｖｂを供給する機能を有する。また、配線ＶＤＤＬは電位ＶＤＤを供給する機能を有し、配線ＶＳＳＬは電位ＶＳＳを供給する機能を有する。ここでは、電位ＶＤＤが高電源電位であり、電位ＶＳＳが低電源電位である場合について説明する。また、配線ＲＳＴは、トランジスタＴｒ２１の導通状態を制御するための電位を供給する機能を有する。トランジスタＴｒ２２、トランジスタＴｒ２３、配線ＶＤＤＬ、配線ＶＳＳＬ、及び配線ＶｂＬによって、ソースフォロワ回路が構成される。
【０２３２】  次に、回路ＯＣ［１］乃至［ｎ］の動作例を説明する。なお、ここでは代表例として回路ＯＣ［１］の動作例を説明するが、回路ＯＣ［２］乃至［ｎ］も同様に動作させることができる。まず、配線ＢＬ［１］に第１の電流が流れると、ノードＮａの電位は、第１の電流と抵抗素子Ｒ１の抵抗値に応じた電位となる。また、このときトランジスタＴｒ２１はオン状態であり、ノードＮｂに電位Ｖａが供給される。その後、トランジスタＴｒ２１はオフ状態となる。
【０２３３】  次に、配線ＢＬ［１］に第２の電流が流れると、ノードＮａの電位は、第２の電流と抵抗素子Ｒ１の抵抗値に応じた電位に変化する。このときトランジスタＴｒ２１はオフ状態であり、ノードＮｂはフローティング状態となっているため、ノードＮａの電位の変化に伴い、ノードＮｂの電位は容量結合により変化する。ここで、ノードＮａの電位の変化をΔＶＮａとし、容量結合係数を１とすると、ノードＮｂの電位はＶａ＋ΔＶＮａとなる。そして、トランジスタＴｒ２２のしきい値電圧をＶｔｈとすると、配線ＯＬ［１］から電位Ｖａ＋ΔＶＮａ−Ｖｔｈが出力される。ここで、Ｖａ＝Ｖｔｈとすることにより、配線ＯＬ［１］から電位ΔＶＮａを出力することができる。
【０２３４】  電位ΔＶＮａは、第１の電流から第２の電流への変化量、抵抗素子Ｒ１、及び電位Ｖｒｅｆに応じて定まる。ここで、抵抗素子Ｒ１と電位Ｖｒｅｆは既知であるため、電位ΔＶＮａから配線ＢＬに流れる電流の変化量を求めることができる。
【０２３５】  上記のようにオフセット回路ＯＦＳＴによって検出された電流量、及び／又は電流の変化量に対応する信号は、配線ＯＬ［１］乃至［ｎ］を介して活性化関数回路ＡＣＴＶに入力される。
【０２３６】  活性化関数回路ＡＣＴＶは、配線ＯＬ［１］乃至［ｎ］、及び、配線ＮＩＬ［１］乃至［ｎ］と接続されている。活性化関数回路ＡＣＴＶは、オフセット回路ＯＦＳＴから入力された信号を、あらかじめ定義された活性化関数に従って変換するための演算を行う機能を有する。活性化関数としては、例えば、シグモイド関数、ｔａｎｈ関数、ｓｏｆｔｍａｘ関数、ＲｅＬＵ関数、しきい値関数などを用いることができる。活性化関数回路ＡＣＴＶによって変換された信号は、出力データとして配線ＮＩＬ［１］乃至［ｎ］に出力される。
【０２３７】＜半導体装置の動作例＞
上記の半導体装置ＭＡＣを用いて、第１のデータと第２のデータの積和演算を行うことができる。以下、積和演算を行う際の半導体装置ＭＡＣの動作例を説明する。
【０２３８】  図３１に半導体装置ＭＡＣの動作例のタイミングチャートを示す。図３１には、図２９における配線ＷＬ［１］、配線ＷＬ［２］、配線ＷＤ［１］、配線ＷＤｒｅｆ、ノードＮＭ［１，１］、ノードＮＭ［２，１］、ノードＮＭｒｅｆ［１］、ノードＮＭｒｅｆ［２］、配線ＲＷ［１］、及び配線ＲＷ［２］の電位の推移と、電流ＩＢ［１］−Ｉα［１］、及び電流ＩＢｒｅｆの値の推移を示している。電流ＩＢ［１］−Ｉα［１］は、配線ＢＬ［１］からメモリセルＭＣ［１，１］、［２，１］に流れる電流の総和に相当する。
【０２３９】  なお、ここでは代表例として図２９に示すメモリセルＭＣ［１，１］、［２，１］及びメモリセルＭＣｒｅｆ［１］、［２］に着目して動作を説明するが、他のメモリセルＭＣ及びメモリセルＭＣｒｅｆも同様に動作させることができる。
【０２４０】［第１のデータの格納］
まず、時刻Ｔ０１−Ｔ０２において、配線ＷＬ［１］の電位がハイ（Ｈｉｇｈ）レベルとなり、配線ＷＤ［１］の電位が接地電位（ＧＮＤ）よりもＶＰＲ−ＶＷ［１，１］大きい電位となり、配線ＷＤｒｅｆの電位が接地電位よりもＶＰＲ大きい電位となる。また、配線ＲＷ［１］、及び配線ＲＷ［２］の電位が基準電位（ＲＥＦＰ）となる。なお、電位ＶＷ［１，１］はメモリセルＭＣ［１，１］に格納される第１のデータに対応する電位である。また、電位ＶＰＲは参照データに対応する電位である。これにより、メモリセルＭＣ［１，１］及びメモリセルＭＣｒｅｆ［１］が有するトランジスタＴｒ１１がオン状態となり、ノードＮＭ［１，１］の電位がＶＰＲ−ＶＷ［１，１］、ノードＮＭｒｅｆ［１］の電位がＶＰＲとなる。
【０２４１】  このとき、配線ＢＬ［１］からメモリセルＭＣ［１，１］のトランジスタＴｒ１２に流れる電流ＩＭＣ［１，１］，０は、次の式で表すことができる。ここで、ｋはトランジスタＴｒ１２のチャネル長、チャネル幅、移動度、及びゲート絶縁膜の容量などで決まる定数である。また、ＶｔｈはトランジスタＴｒ１２のしきい値電圧である。
【０２４２】
2018234945.tif 000006
【０２４３】  また、配線ＢＬｒｅｆからメモリセルＭＣｒｅｆ［１］のトランジスタＴｒ１２に流れる電流ＩＭＣｒｅｆ［１］，０は、次の式で表すことができる。
【０２４４】
2018234945.tif 000007
【０２４５】  次に、時刻Ｔ０２−Ｔ０３において、配線ＷＬ［１］の電位がロー（Ｌｏｗ）レベルとなる。これにより、メモリセルＭＣ［１，１］及びメモリセルＭＣｒｅｆ［１］が有するトランジスタＴｒ１１がオフ状態となり、ノードＮＭ［１，１］及びノードＮＭｒｅｆ［１］の電位が保持される。
【０２４６】  なお、前述の通り、トランジスタＴｒ１１としてＯＳトランジスタを用いることが好ましい。これにより、トランジスタＴｒ１１のリーク電流を抑えることができ、ノードＮＭ［１，１］及びノードＮＭｒｅｆ［１］の電位を正確に保持することができる。
【０２４７】  次に、時刻Ｔ０３−Ｔ０４において、配線ＷＬ［２］の電位がハイレベルとなり、配線ＷＤ［１］の電位が接地電位よりもＶＰＲ−ＶＷ［２，１］大きい電位となり、配線ＷＤｒｅｆの電位が接地電位よりもＶＰＲ大きい電位となる。なお、電位ＶＷ［２，１］はメモリセルＭＣ［２，１］に格納される第１のデータに対応する電位である。これにより、メモリセルＭＣ［２，１］及びメモリセルＭＣｒｅｆ［２］が有するトランジスタＴｒ１１がオン状態となり、ノードＮＭ［２，１］の電位がＶＰＲ−ＶＷ［２，１］、ノードＮＭｒｅｆ［２］の電位がＶＰＲとなる。
【０２４８】  このとき、配線ＢＬ［１］からメモリセルＭＣ［２，１］のトランジスタＴｒ１２に流れる電流ＩＭＣ［２，１］，０は、次の式で表すことができる。
【０２４９】
2018234945.tif 000008
【０２５０】  また、配線ＢＬｒｅｆからメモリセルＭＣｒｅｆ［２］のトランジスタＴｒ１２に流れる電流ＩＭＣｒｅｆ［２］，０は、次の式で表すことができる。
【０２５１】
2018234945.tif 000009
【０２５２】  次に、時刻Ｔ０４−Ｔ０５において、配線ＷＬ［２］の電位がローレベルとなる。これにより、メモリセルＭＣ［２，１］及びメモリセルＭＣｒｅｆ［２］が有するトランジスタＴｒ１１がオフ状態となり、ノードＮＭ［２，１］及びノードＮＭｒｅｆ［２］の電位が保持される。
【０２５３】  以上の動作により、メモリセルＭＣ［１，１］、［２，１］に第１のデータが格納され、メモリセルＭＣｒｅｆ［１］、［２］に参照データが格納される。
【０２５４】  ここで、時刻Ｔ０４−Ｔ０５において、配線ＢＬ［１］及び配線ＢＬｒｅｆに流れる電流を考える。配線ＢＬｒｅｆには、電流源回路ＣＳから電流が供給される。また、配線ＢＬｒｅｆを流れる電流は、カレントミラー回路ＣＭ、メモリセルＭＣｒｅｆ［１］、［２］へ排出される。電流源回路ＣＳから配線ＢＬｒｅｆに供給される電流をＩＣｒｅｆ、配線ＢＬｒｅｆからカレントミラー回路ＣＭへ排出される電流をＩＣＭ，０とすると、次の式が成り立つ。
【０２５５】
2018234945.tif 000010
【０２５６】  配線ＢＬ［１］には、電流源回路ＣＳからの電流が供給される。また、配線ＢＬ［１］を流れる電流は、カレントミラー回路ＣＭ、メモリセルＭＣ［１，１］、［２，１］へ排出される。また、配線ＢＬ［１］からオフセット回路ＯＦＳＴに電流が流れる。電流源回路ＣＳから配線ＢＬ［１］に供給される電流をＩＣ，０、配線ＢＬ［１］からオフセット回路ＯＦＳＴに流れる電流をＩα，０とすると、次の式が成り立つ。
【０２５７】
2018234945.tif 000011
【０２５８】［第１のデータと第２のデータの積和演算］
次に、時刻Ｔ０５−Ｔ０６において、配線ＲＷ［１］の電位が基準電位よりもＶＸ［１］大きい電位となる。このとき、メモリセルＭＣ［１，１］、及びメモリセルＭＣｒｅｆ［１］のそれぞれの容量素子Ｃ１１には電位ＶＸ［１］が供給され、容量結合によりトランジスタＴｒ１２のゲートの電位が上昇する。なお、電位Ｖｘ［１］はメモリセルＭＣ［１，１］及びメモリセルＭＣｒｅｆ［１］に供給される第２のデータに対応する電位である。
【０２５９】  トランジスタＴｒ１２のゲートの電位の変化量は、配線ＲＷの電位の変化量に、メモリセルの構成によって決まる容量結合係数を乗じた値となる。容量結合係数は、容量素子Ｃ１１の容量、トランジスタＴｒ１２のゲート容量、及び寄生容量などによって算出される。以下では便宜上、配線ＲＷの電位の変化量とトランジスタＴｒ１２のゲートの電位の変化量が同じ、すなわち容量結合係数が１であるとして説明する。実際には、容量結合係数を考慮して電位Ｖｘを決定すればよい。
【０２６０】  メモリセルＭＣ［１，１］及びメモリセルＭＣｒｅｆ［１］の容量素子Ｃ１１に電位ＶＸ［１］が供給されると、ノードＮＭ［１，１］及びノードＮＭｒｅｆ［１］の電位がそれぞれＶＸ［１］上昇する。
【０２６１】  ここで、時刻Ｔ０５−Ｔ０６において、配線ＢＬ［１］からメモリセルＭＣ［１，１］のトランジスタＴｒ１２に流れる電流ＩＭＣ［１，１］，１は、次の式で表すことができる。
【０２６２】
2018234945.tif 000012
【０２６３】  すなわち、配線ＲＷ［１］に電位ＶＸ［１］を供給することにより、配線ＢＬ［１］からメモリセルＭＣ［１，１］のトランジスタＴｒ１２に流れる電流は、ΔＩＭＣ［１，１］＝ＩＭＣ［１，１］，１−ＩＭＣ［１，１］，０増加する。
【０２６４】  また、時刻Ｔ０５−Ｔ０６において、配線ＢＬｒｅｆからメモリセルＭＣｒｅｆ［１］のトランジスタＴｒ１２に流れる電流ＩＭＣｒｅｆ［１］，１は、次の式で表すことができる。
【０２６５】
2018234945.tif 000013
【０２６６】  すなわち、配線ＲＷ［１］に電位ＶＸ［１］を供給することにより、配線ＢＬｒｅｆからメモリセルＭＣｒｅｆ［１］のトランジスタＴｒ１２に流れる電流は、ΔＩＭＣｒｅｆ［１］＝ＩＭＣｒｅｆ［１］，１−ＩＭＣｒｅｆ［１］，０増加する。
【０２６７】  また、配線ＢＬ［１］及び配線ＢＬｒｅｆに流れる電流について考える。配線ＢＬｒｅｆには、電流源回路ＣＳから電流ＩＣｒｅｆが供給される。また、配線ＢＬｒｅｆを流れる電流は、カレントミラー回路ＣＭ、メモリセルＭＣｒｅｆ［１］、［２］へ排出される。配線ＢＬｒｅｆからカレントミラー回路ＣＭへ排出される電流をＩＣＭ，１とすると、次の式が成り立つ。
【０２６８】
2018234945.tif 000014
【０２６９】  配線ＢＬ［１］には、電流源回路ＣＳから電流ＩＣが供給される。また、配線ＢＬ［１］を流れる電流は、カレントミラー回路ＣＭ、メモリセルＭＣ［１，１］、［２，１］へ排出される。さらに、配線ＢＬ［１］からオフセット回路ＯＦＳＴにも電流が流れる。配線ＢＬ［１］からオフセット回路ＯＦＳＴに流れる電流をＩα，１とすると、次の式が成り立つ。
【０２７０】
2018234945.tif 000015
【０２７１】  そして、式（Ｅ１）乃至式（Ｅ１０）から、電流Ｉα，０と電流Ｉα，１の差（差分電流ΔＩα）は次の式で表すことができる。
【０２７２】
2018234945.tif 000016
【０２７３】  このように、差分電流ΔＩαは、電位ＶＷ［１，１］とＶＸ［１］の積に応じた値となる。
【０２７４】  その後、時刻Ｔ０６−Ｔ０７において、配線ＲＷ［１］の電位は接地電位となり、ノードＮＭ［１，１］及びノードＮＭｒｅｆ［１］の電位は時刻Ｔ０４−Ｔ０５と同様になる。
【０２７５】  次に、時刻Ｔ０７−Ｔ０８において、配線ＲＷ［１］の電位が基準電位よりもＶＸ［１］大きい電位となり、配線ＲＷ［２］の電位が基準電位よりもＶＸ［２］大きい電位となる。これにより、メモリセルＭＣ［１，１］、及びメモリセルＭＣｒｅｆ［１］のそれぞれの容量素子Ｃ１１に電位ＶＸ［１］が供給され、容量結合によりノードＮＭ［１，１］及びノードＮＭｒｅｆ［１］の電位がそれぞれＶＸ［１］上昇する。また、メモリセルＭＣ［２，１］、及びメモリセルＭＣｒｅｆ［２］のそれぞれの容量素子Ｃ１１に電位ＶＸ［２］が供給され、容量結合によりノードＮＭ［２，１］及びノードＮＭｒｅｆ［２］の電位がそれぞれＶＸ［２］上昇する。
【０２７６】  ここで、時刻Ｔ０７−Ｔ０８において、配線ＢＬ［１］からメモリセルＭＣ［２，１］のトランジスタＴｒ１２に流れる電流ＩＭＣ［２，１］，１は、次の式で表すことができる。
【０２７７】
2018234945.tif 000017
【０２７８】  すなわち、配線ＲＷ［２］に電位ＶＸ［２］を供給することにより、配線ＢＬ［１］からメモリセルＭＣ［２，１］のトランジスタＴｒ１２に流れる電流は、ΔＩＭＣ［２，１］＝ＩＭＣ［２，１］，１−ＩＭＣ［２，１］，０増加する。
【０２７９】  また、時刻Ｔ０５−Ｔ０６において、配線ＢＬｒｅｆからメモリセルＭＣｒｅｆ［２］のトランジスタＴｒ１２に流れる電流ＩＭＣｒｅｆ［２］，１は、次の式で表すことができる。
【０２８０】
2018234945.tif 000018
【０２８１】  すなわち、配線ＲＷ［２］に電位ＶＸ［２］を供給することにより、配線ＢＬｒｅｆからメモリセルＭＣｒｅｆ［２］のトランジスタＴｒ１２に流れる電流は、ΔＩＭＣｒｅｆ［２］＝ＩＭＣｒｅｆ［２］，１−ＩＭＣｒｅｆ［２］，０増加する。
【０２８２】  また、配線ＢＬ［１］及び配線ＢＬｒｅｆに流れる電流について考える。配線ＢＬｒｅｆには、電流源回路ＣＳから電流ＩＣｒｅｆが供給される。また、配線ＢＬｒｅｆを流れる電流は、カレントミラー回路ＣＭ、メモリセルＭＣｒｅｆ［１］、［２］へ排出される。配線ＢＬｒｅｆからカレントミラー回路ＣＭへ排出される電流をＩＣＭ，２とすると、次の式が成り立つ。
【０２８３】
2018234945.tif 000019
【０２８４】  配線ＢＬ［１］には、電流源回路ＣＳから電流ＩＣが供給される。また、配線ＢＬ［１］を流れる電流は、カレントミラー回路ＣＭ、メモリセルＭＣ［１，１］、［２，１］へ排出される。さらに、配線ＢＬ［１］からオフセット回路ＯＦＳＴにも電流が流れる。配線ＢＬ［１］からオフセット回路ＯＦＳＴに流れる電流をＩα，２とすると、次の式が成り立つ。
【０２８５】
2018234945.tif 000020
【０２８６】  そして、式（Ｅ１）乃至式（Ｅ８）、及び、式（Ｅ１２）乃至式（Ｅ１５）から、電流Ｉα，０と電流Ｉα，２の差（差分電流ΔＩα）は次の式で表すことができる。
【０２８７】
2018234945.tif 000021
【０２８８】  このように、差分電流ΔＩαは、電位ＶＷ［１，１］と電位ＶＸ［１］の積と、電位ＶＷ［２，１］と電位ＶＸ［２］の積と、を足し合わせた結果に応じた値となる。
【０２８９】  その後、時刻Ｔ０８−Ｔ０９において、配線ＲＷ［１］、［２］の電位は基準電位となり、ノードＮＭ［１，１］、［２，１］及びノードＮＭｒｅｆ［１］、［２］の電位は時刻Ｔ０４−Ｔ０５と同様になる。
【０２９０】  式（Ｅ９）及び式（Ｅ１６）に示されるように、オフセット回路ＯＦＳＴに入力される差分電流ΔＩαは、第１のデータ（重み）に対応する電位ＶＸと、第２のデータ（入力データ）に対応する電位ＶＷの積を足し合わせた結果に応じた値となる。すなわち、差分電流ΔＩαをオフセット回路ＯＦＳＴで計測することにより、第１のデータと第２のデータの積和演算の結果を得ることができる。
【０２９１】  なお、上記では特にメモリセルＭＣ［１，１］、［２，１］及びメモリセルＭＣｒｅｆ［１］、［２］に着目したが、メモリセルＭＣ及びメモリセルＭＣｒｅｆの数は任意に設定することができる。メモリセルＭＣ及びメモリセルＭＣｒｅｆの行数ｍを任意の数とした場合の差分電流ΔＩαは、次の式で表すことができる。
【０２９２】
2018234945.tif 000022
【０２９３】  また、メモリセルＭＣ及びメモリセルＭＣｒｅｆの列数ｎを増やすことにより、並列して実行される積和演算の数を増やすことができる。
【０２９４】  以上のように、半導体装置ＭＡＣを用いることにより、第１のデータと第２のデータの積和演算を行うことができる。なお、メモリセルＭＣ及びメモリセルＭＣｒｅｆとして図２９に示す構成を用いることにより、少ないトランジスタ数で積和演算回路を構成することができる。そのため、半導体装置ＭＡＣの回路規模の縮小を図ることができる。
【０２９５】  半導体装置ＭＡＣをニューラルネットワークにおける演算に用いる場合、メモリセルＭＣの行数ｍは一のニューロンに供給される入力データの数に対応させ、メモリセルＭＣの列数ｎはニューロンの数に対応させることができる。例えば、図２７（Ａ）に示す中間層ＨＬにおいて半導体装置ＭＡＣを用いた積和演算を行う場合を考える。このとき、メモリセルＭＣの行数ｍは、入力層ＩＬから供給される入力データの数（入力層ＩＬのニューロンの数）に設定し、メモリセルＭＣの列数ｎは、中間層ＨＬのニューロンの数に設定することができる。
【０２９６】  なお、半導体装置ＭＡＣを適用するニューラルネットワークの構造は特に限定されない。例えば半導体装置ＭＡＣは、畳み込みニューラルネットワーク（ＣＮＮ）、再帰型ニューラルネットワーク（ＲＮＮ）、オートエンコーダ、ボルツマンマシン（制限ボルツマンマシンを含む）などに用いることもできる。
【０２９７】  以上のように、半導体装置ＭＡＣを用いることにより、ニューラルネットワークの積和演算を行うことができる。さらに、セルアレイＣＡに図２９に示すメモリセルＭＣ及びメモリセルＭＣｒｅｆを用いることにより、演算精度の向上、消費電力の削減、又は回路規模の縮小を図ることが可能な集積回路を提供することができる。
本実施の形態は、他の実施の形態と適宜組み合わせることができる。
【実施例】
【０２９８】  本実施例では、＜２．レイアウト設計方法１＞に示した方法を用いて、レイアウト設計を行った。【０２９９】  本実施例において、グリッドは、グリッド間隔を１、グリッド枠の大きさを２０×２０（グリッド面積を４００）とした。アブストラクトは４つとし、それぞれのアブストラクトの大きさを３×３とした。【０３００】  ステップＳ２７及びステップＳ３２において、行動価値関数Ｑ（ｓｔ，ａｔ）の更新では割引率γを０．９５とした。第１のニューラルネットワーク及び第２のニューラルネットワークの最適化には、Ａｄａｍを用いた。また、移動ａの選択にε−ｇｒｅｅｄｙ法を適用した。１エピソードではεを１とし、その後はεを線形に小さくし、８００００エピソードではεを０．１とした。８００００エピソード以降ではεを０．１とした。【０３０１】  ステップＳ３３において、アブストラクトの移動に対する報酬は、１−（ブロック面積／４００）とし、ブロック面積が大きくなるほど報酬が小さくなる設定とした。また、ステップＳ３６において、接続点を接続でき、かつデザインルールを満たす場合は報酬を０とし、接続点を接続できない、又はデザインルールを満たさない場合は報酬を−１とした。接続点間の経路は、線分探索法を用いて決定した。【０３０２】  図３２に学習の結果を示す。図３２において、横軸はエピソード回数（Ｎｕｍｂｅｒ  ｏｆ  ｅｐｉｓｏｄｅｓ）を示し、縦軸は報酬（Ｒｅｗａｒｄ）を示す。報酬は、累積報酬の１０００エピソード毎の平均値を示している。【０３０３】  図３２に示すように、エピソード回数が増えると累積報酬が増加した。また、約２００００エピソードで累積報酬が飽和し、学習が収束した。つまり、デザインルールを満たしつつ、アブストラクト間を接続でき、かつブロックの面積が最小となるレイアウトを学習できることを確認できた。
【符号の説明】
【０３０４】ＡＢＳ：アブストラクト、ＡＢＳ＿１：アブストラクト、ＡＢＳ＿２：アブストラクト、ＡＢＳ＿３：アブストラクト、ＡＢＳ＿５１：アブストラクト、ＡＢＳ＿５２：アブストラクト、ＡＢＳ＿ｋ：アブストラクト、ＢＬＫ：ブロック、Ｃ１１  容量素子、Ｃ２１  容量素子、Ｃ５２：容量素子、ＣＰ＿１：接続点、ＣＰ＿２：接続点、ＣＰ＿３：接続点、ＣＰ＿４：接続点、ＣＰ＿１１：接続点、ＣＰ＿１２：接続点、ＣＰ＿１３：接続点、ＣＰ＿１４：接続点、ＣＰ＿１５：接続点、ＣＰＬ＿２：接続点、ＣＰＬ＿３：接続点、ＣＰＬ＿４：接続点、ＥＬＭ＿１：基本セル、ＥＬＭ＿２：基本セル、ＥＬＭ＿３：基本セル、ＨＬ：中間層、ＩＬ：入力層、ＬＩＭＧｔ：画像データ、ＬＩＭＧｔ＋１：画像データ、ＬＩＭＧｔ＿１：画像データ、ＬＩＭＧｔ＿２：画像データ、ＭＣ：メモリセル、ＭＣｒｅｆ：メモリセル、ＮＮ：ニューラルネットワーク、ＯＬ：出力層、Ｓ１１：ステップ、Ｓ１２：ステップ、Ｓ１３：ステップ、Ｓ１４：ステップ、Ｓ１５：ステップ、Ｓ２１：ステップ、Ｓ２２：ステップ、Ｓ２３：ステップ、Ｓ２４：ステップ、Ｓ２５：ステップ、Ｓ２６：ステップ、Ｓ２７：ステップ、Ｓ２８：ステップ、Ｓ２９：ステップ、Ｓ３０：ステップ、Ｓ３１：ステップ、Ｓ３２：ステップ、Ｓ３３：ステップ、Ｓ３４：ステップ、Ｓ３５：ステップ、Ｓ３６：ステップ、Ｓ１０１：ステップ、Ｓ１０２：ステップ、Ｓ１０３：ステップ、Ｓ１０４：ステップ、Ｓ１０５：ステップ、Ｓ１０６：ステップ、Ｓ１０７：ステップ、Ｓ１０８：ステップ、Ｓ１０９：ステップ、Ｓ１１０：ステップ、Ｔｒ１１：トランジスタ、Ｔｒ１２：トランジスタ、Ｔｒ２１：トランジスタ、Ｔｒ２２：トランジスタ、Ｔｒ２３：トランジスタ、Ｔｒ５１：トランジスタ素子、９０：メモリセルアレイ、９１：ワード線駆動回路、９２：ビット線駆動回路、１００：レイアウト設計システム、１０１：入力部、１０２：伝送路、１０３：処理部、１０５：記憶部、１０７：データベース、１０９：出力部、１１１  プロセス情報、１１３  トランジスタパラメータ、１１５  セルライブラリ、１１７  デザインルール、１１９  回路図、１２１  レイアウトデータ、１２３  グリッド情報、１５０：レイアウト設計システム、１５１：サーバ、１５２：端末、１６１ａ：通信部、１６１ｂ：通信部、１６２：伝送路、１６３ａ：処理部、１６３ｂ：処理部、１６５：記憶部、１６７：データベース、１６８：伝送路、１６９：入出力部、３０１：半導体層、３０３：ゲート電極、３０５：ソース電極、３０７：ドレイン電極、３０９：上部電極、３１１：下部電極、３２０：領域、３３１＿１：接続領域、３３１＿２：接続領域、３３１＿３：接続領域、３３１＿４：接続領域、３３１＿５：接続領域、３４１：回路図、５２０：ニューラルネットワーク、５２１：入力層、５２２：中間層、５２３：出力層、５２４：畳み込み層、５２５：プーリング層、５２６：畳み込み層、５２７：プーリング層、５２８：畳み込み層、５２９：全結合層、５３０：ニューラルネットワーク、５３１：入力層、５３２：中間層、５３３：出力層、５３４：畳み込み層、５３５：プーリング層、５３６：畳み込み層、５３７：プーリング層、５３８：畳み込み層、５３９：全結合層、６０１：グリッド枠、６０３：グリッド
【図１】
2018234945.tif 000023
【図２】
2018234945.tif 000024
【図３】
2018234945.tif 000025
【図４】
2018234945.tif 000026
【図５】
2018234945.tif 000027
【図６】
2018234945.tif 000028
【図７】
2018234945.tif 000029
【図８】
2018234945.tif 000030
【図９】
2018234945.tif 000031
【図１０】
2018234945.tif 000032
【図１１】
2018234945.tif 000033
【図１２】
2018234945.tif 000034
【図１３】
2018234945.tif 000035
【図１４】
2018234945.tif 000036
【図１５】
2018234945.tif 000037
【図１６】
2018234945.tif 000038
【図１７】
2018234945.tif 000039
【図１８】
2018234945.tif 000040
【図１９】
2018234945.tif 000041
【図２０】
2018234945.tif 000042
【図２１】
2018234945.tif 000043
【図２２】
2018234945.tif 000044
【図２３】
2018234945.tif 000045
【図２４】
2018234945.tif 000046
【図２５】
2018234945.tif 000047
【図２６】
2018234945.tif 000048
【図２７】
2018234945.tif 000049
【図２８】
2018234945.tif 000050
【図２９】
2018234945.tif 000051
【図３０】
2018234945.tif 000052
【図３１】
2018234945.tif 000053
【図３２】
2018234945.tif 000054
【国際調査報告】
2018234945.tif 000055
2018234945.tif 000056