(57)【特許請求の範囲】
【請求項１】
素子値の変化が確率的に決定される確率的動作素子を含む回路の設計を支援するための回路設計支援システムであって、
前記確率的動作素子の素子値の変化を確率的に示す情報を有するアナログ動作モデルと、前記確率的動作素子を含む論理ゲートの、前記確率的動作素子の確率的な素子値の変化に基づいた動作を示す情報を有する確率的動作ゲートライブラリと、前記確率的動作素子を含まない論理ゲートの動作を示す情報を有する論理ゲートライブラリとを、あらかじめ記憶しておく記憶手段と、
前記回路に対応するハードウェア記述言語（ＨＤＬ）で記述された回路情報と、前記記憶手段に記憶された前記確率的動作ゲートライブラリと前記論理ゲートライブラリとを論理合成して、各論理ゲートおよび前記回路の動作評価を行うデジタル評価手段と、
前記回路情報と、前記記憶手段に記憶された前記アナログ動作モデルと前記確率的動作ゲートライブラリと前記論理ゲートライブラリとに基づいて、前記確率的動作素子の動作評価を行うアナログ評価手段とを、
有することを特徴とする回路設計支援システム。
【請求項２】
前記アナログ評価手段は、前記確率的動作素子への入力信号を、前記回路情報と前記確率的動作ゲートライブラリと前記論理ゲートライブラリとに基づいて求め、その入力信号を使用して、前記アナログ動作モデルに基づいて前記確率的動作素子の動作評価を行うよう構成されていることを特徴とする請求項１記載の回路設計支援システム。
【請求項３】
前記アナログ評価手段は、前記確率的動作素子の素子値を求め、理想値と比較することにより動作評価を行うよう構成されており、
前記デジタル評価手段は、各論理ゲートの出力値および前記回路の出力値を求め、それぞれの理想値と比較することにより動作評価を行うよう構成されていることを
特徴とする請求項１または２記載の回路設計支援システム。
【請求項４】
前記デジタル評価手段は、前記アナログ評価手段により求められた前記確率的動作素子の素子値を用いて、各論理ゲートの出力値および前記回路の出力値を求めるよう構成されていることを特徴とする請求項３記載の回路設計支援システム。
【請求項５】
素子値の変化が確率的に決定される確率的動作素子を含む回路の設計を支援するための回路設計支援方法であって、
前記確率的動作素子の素子値の変化を確率的に示す情報を有するアナログ動作モデルと、前記確率的動作素子を含む論理ゲートの、前記確率的動作素子の確率的な素子値の変化に基づいた動作を示す情報を有する確率的動作ゲートライブラリと、前記確率的動作素子を含まない論理ゲートの動作を示す情報を有する論理ゲートライブラリとを、あらかじめ記憶する記憶ステップと、
前記回路に対応するハードウェア記述言語（ＨＤＬ）で記述された回路情報と、前記記憶ステップで記憶された前記確率的動作ゲートライブラリと前記論理ゲートライブラリとを論理合成して、各論理ゲートおよび前記回路の動作評価を行うデジタル評価ステップと、
前記回路情報と、前記記憶ステップで記憶された前記アナログ動作モデルと前記確率的動作ゲートライブラリと前記論理ゲートライブラリとに基づいて、前記確率的動作素子の動作評価を行うアナログ評価ステップとを、
有することを特徴とする回路設計支援方法。
【請求項６】
素子値の変化が確率的に決定される確率的動作素子を含む回路の設計を支援するための回路設計支援プログラムであって、
コンピュータを、
前記確率的動作素子の素子値の変化を確率的に示す情報を有するアナログ動作モデルと、前記確率的動作素子を含む論理ゲートの、前記確率的動作素子の確率的な素子値の変化に基づいた動作を示す情報を有する確率的動作ゲートライブラリと、前記確率的動作素子を含まない論理ゲートの動作を示す情報を有する論理ゲートライブラリとを、あらかじめ記憶しておく記憶手段、
前記回路に対応するハードウェア記述言語（ＨＤＬ）で記述された回路情報と、前記記憶手段に記憶された前記確率的動作ゲートライブラリと前記論理ゲートライブラリとを論理合成して、各論理ゲートおよび前記回路の動作評価を行うデジタル評価手段、
前記回路情報と、前記記憶手段に記憶された前記アナログ動作モデルと前記確率的動作ゲートライブラリと前記論理ゲートライブラリとに基づいて、前記確率的動作素子の動作評価を行うアナログ評価手段、
として機能させるための回路設計支援プログラム。
【請求項７】
素子値の変化が確率的に決定される確率的動作素子を含む回路の設計を支援するための回路設計支援プログラムを記録したコンピュータ読み取り可能な記録媒体であって、
コンピュータを、
前記確率的動作素子の素子値の変化を確率的に示す情報を有するアナログ動作モデルと、前記確率的動作素子を含む論理ゲートの、前記確率的動作素子の確率的な素子値の変化に基づいた動作を示す情報を有する確率的動作ゲートライブラリと、前記確率的動作素子を含まない論理ゲートの動作を示す情報を有する論理ゲートライブラリとを、あらかじめ記憶しておく記憶手段、
前記回路に対応するハードウェア記述言語（ＨＤＬ）で記述された回路情報と、前記記憶手段に記憶された前記確率的動作ゲートライブラリと前記論理ゲートライブラリとを論理合成して、各論理ゲートおよび前記回路の動作評価を行うデジタル評価手段、
前記回路情報と、前記記憶手段に記憶された前記アナログ動作モデルと前記確率的動作ゲートライブラリと前記論理ゲートライブラリとに基づいて、前記確率的動作素子の動作評価を行うアナログ評価手段、
として機能させるための回路設計支援プログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、回路設計支援システム、回路設計支援方法、回路設計支援プログラムおよびそのプログラムを記録したコンピュータ読み取り可能な記録媒体に関する。
【背景技術】
【０００２】
従来の回路設計支援システムは、例えば図８に示すフローに従って、設計した回路の評価を行うようになっている。図８に示す従来の回路設計支援システムは、デジタルシミュレーションにより、ハードウェア記述言語（ＨＤＬ）で記述された回路情報１０１と、ＣＭＯＳ等の論理ゲートライブラリ１０２とを論理合成して、各論理ゲートおよび回路の動作評価を行うようになっている。論理ゲートライブラリ１０２は、回路に含まれる半導体素子のアナログ動作モデル１０３から求められた、各論理ゲートの動作を示す情報を含んでいる。また、動作評価としては、例えば、デジタルシミュレーション１０４により、回路全体および各論理ゲートの出力を計算し、それぞれの理想値と比較して、それぞれ回路レベルの書込みエラープロファイルデータ１０５およびゲートレベルの書込みエラープロファイルデータ１０６として出力するようになっている。こうして得られた各書込みエラープロファイルデータ１０５、１０６の動作評価に基づいて、回路動作を確認したり、設計の変更を行ったりすることができる。図８に示す従来の回路設計支援システムは、ＳＰＩＣＥやＨＳＰＩＣＥ（Synopsys社製）などのソフトウェアで実行することができる。【０００３】
図８に示すような従来の回路設計支援システムでは、論理ゲートライブラリ１０２は、各半導体素子について、ある動作条件では必ず所定の素子値になり、他の動作条件では必ず他の所定の素子値になる、といったように、とり得る動作条件と素子値とを完全に対応させた上で、各論理ゲートの動作を示す情報が構成されている。これにより、演算のたびに計算結果が変わることがないようになっている。【０００４】
このような従来の回路設計支援システムとして、例えば、不揮発性論理ゲートと否不揮発性論理ゲートとが組み合わさった不揮発性論理集積回路のネットリストを論理合成することができる、不揮発性論理集積回路の設計支援システム（例えば、特許文献１参照）や、動作周波数と動作電圧を動的に制御するＤＶＦＳ制御によって、消費エネルギーを最小化することができる半導体装置を設計することができる回路設計支援システム（例えば、特許文献２参照）が提案されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１４−２２５１３４号公報
【特許文献２】特開２０１５−１０９０１０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
不揮発性論理集積回路に使用される素子のうち、例えば、ＭＴＪ（Magnetic Tunnel Junction）素子は、ある大きさのパルス幅および電流量を印加することでその状態（抵抗値）が変化する不揮発性記憶素子であり、印加する書込み電流のパルス幅および電流量が一定であったとしても、その書込み処理が成功するか否かが確率的に決定される素子である。このような素子値（ＭＴＪ素子の場合、抵抗値）の変化が確率的に決定される確率的動作素子を含む回路を設計するとき、図８に示すような従来の回路設計支援システムでは、論理ゲートライブラリにおいて、確率的動作素子について、例えば、素子値が変化する確率がある値以上のとき、その確率を100％に切り上げ、ある値以下のとき、その確率を0％に切り下げる等の操作を行って、あらかじめとり得る動作条件と素子値とを完全に対応させた上で、各論理ゲートの動作を示す情報が構成されている。【０００７】
しかしながら、実際の回路では、回路に含まれる確率的動作素子は、必ずしも論理ゲートライブラリであらかじめ対応させた値をとるものではなく、確率的動作により決定された素子値をとるため、各論理ゲートおよび回路の出力が、設計時の結果と異なる場合がある。このように、従来の回路設計支援システムでは、確率的動作素子を含む回路の設計において、確率的動作素子の確率的動作を全く考慮しないため、安定動作の保証という観点で大きな問題があるという課題があった。また、このような場合には、回路の動作信頼性について評価を行う必要があるが、そのような評価を行うシステムはこれまで存在していなかった。【０００８】
本発明は、このような課題に着目してなされたもので、確率的動作素子の確率的動作を考慮して設計を行うことができ、確率的動作素子の確率的動作が回路の動作信頼性に与える影響を評価可能な回路設計支援システム、回路設計支援方法、回路設計支援プログラムおよびそのプログラムを記録したコンピュータ読み取り可能な記録媒体を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記目的を達成するために、本発明に係る回路設計支援システムは、素子値の変化が確率的に決定される確率的動作素子を含む回路の設計を支援するための回路設計支援システムであって、前記確率的動作素子の素子値の変化を確率的に示す情報を有するアナログ動作モデルと、前記確率的動作素子を含む論理ゲートの、前記確率的動作素子の確率的な素子値の変化に基づいた動作を示す情報を有する確率的動作ゲートライブラリと、前記確率的動作素子を含まない論理ゲートの動作を示す情報を有する論理ゲートライブラリとを、あらかじめ記憶しておく記憶手段と、前記回路に対応するハードウェア記述言語（ＨＤＬ）で記述された回路情報と、前記記憶手段に記憶された前記確率的動作ゲートライブラリと前記論理ゲートライブラリとを論理合成して、各論理ゲートおよび前記回路の動作評価を行うデジタル評価手段と、前記回路情報と、前記記憶手段に記憶された前記アナログ動作モデルと前記確率的動作ゲートライブラリと前記論理ゲートライブラリとに基づいて、前記確率的動作素子の動作評価を行うアナログ評価手段とを、有することを特徴とする。【００１０】
本発明に係る回路設計支援方法は、素子値の変化が確率的に決定される確率的動作素子を含む回路の設計を支援するための回路設計支援方法であって、前記確率的動作素子の素子値の変化を確率的に示す情報を有するアナログ動作モデルと、前記確率的動作素子を含む論理ゲートの、前記確率的動作素子の確率的な素子値の変化に基づいた動作を示す情報を有する確率的動作ゲートライブラリと、前記確率的動作素子を含まない論理ゲートの動作を示す情報を有する論理ゲートライブラリとを、あらかじめ記憶する記憶ステップと、前記回路に対応するハードウェア記述言語（ＨＤＬ）で記述された回路情報と、前記記憶ステップで記憶された前記確率的動作ゲートライブラリと前記論理ゲートライブラリとを論理合成して、各論理ゲートおよび前記回路の動作評価を行うデジタル評価ステップと、前記回路情報と、前記記憶ステップで記憶された前記アナログ動作モデルと前記確率的動作ゲートライブラリと前記論理ゲートライブラリとに基づいて、前記確率的動作素子の動作評価を行うアナログ評価ステップとを、有することを特徴とする。【００１１】
本発明に係る回路設計支援プログラムは、素子値の変化が確率的に決定される確率的動作素子を含む回路の設計を支援するための回路設計支援プログラムであって、コンピュータを、前記確率的動作素子の素子値の変化を確率的に示す情報を有するアナログ動作モデルと、前記確率的動作素子を含む論理ゲートの、前記確率的動作素子の確率的な素子値の変化に基づいた動作を示す情報を有する確率的動作ゲートライブラリと、前記確率的動作素子を含まない論理ゲートの動作を示す情報を有する論理ゲートライブラリとを、あらかじめ記憶しておく記憶手段、前記回路に対応するハードウェア記述言語（ＨＤＬ）で記述された回路情報と、前記記憶手段に記憶された前記確率的動作ゲートライブラリと前記論理ゲートライブラリとを論理合成して、各論理ゲートおよび前記回路の動作評価を行うデジタル評価手段、前記回路情報と、前記記憶手段に記憶された前記アナログ動作モデルと前記確率的動作ゲートライブラリと前記論理ゲートライブラリとに基づいて、前記確率的動作素子の動作評価を行うアナログ評価手段、として機能させることを特徴とする。【００１２】
本発明に係る回路設計支援プログラムを記録したコンピュータ読み取り可能な記録媒体は、素子値の変化が確率的に決定される確率的動作素子を含む回路の設計を支援するための回路設計支援プログラムを記録したコンピュータ読み取り可能な記録媒体であって、コンピュータを、前記確率的動作素子の素子値の変化を確率的に示す情報を有するアナログ動作モデルと、前記確率的動作素子を含む論理ゲートの、前記確率的動作素子の確率的な素子値の変化に基づいた動作を示す情報を有する確率的動作ゲートライブラリと、前記確率的動作素子を含まない論理ゲートの動作を示す情報を有する論理ゲートライブラリとを、あらかじめ記憶しておく記憶手段、前記回路に対応するハードウェア記述言語（ＨＤＬ）で記述された回路情報と、前記記憶手段に記憶された前記確率的動作ゲートライブラリと前記論理ゲートライブラリとを論理合成して、各論理ゲートおよび前記回路の動作評価を行うデジタル評価手段、前記回路情報と、前記記憶手段に記憶された前記アナログ動作モデルと前記確率的動作ゲートライブラリと前記論理ゲートライブラリとに基づいて、前記確率的動作素子の動作評価を行うアナログ評価手段、として機能させるための回路設計支援プログラムを記録していることを特徴とする。【００１３】
本発明に係る回路設計支援システム、回路設計支援方法、回路設計支援プログラムおよびそのプログラムを記録したコンピュータ読み取り可能な記録媒体は、確率的動作素子を含む論理ゲートの、確率的動作素子の確率的な素子値の変化に基づいた動作を示す情報を有する確率的動作ゲートライブラリと、確率的動作素子を含まない論理ゲートの動作を示す情報を有する論理ゲートライブラリとに基づいて、各論理ゲートおよび回路の動作評価を行うことができる。また、確率的動作素子の素子値の変化を確率的に示す情報を有するアナログ動作モデルと、確率的動作ゲートライブラリと論理ゲートライブラリとに基づいて、確率的動作素子の動作評価を行うことができる。これにより、確率的動作素子の確率的動作が回路の動作信頼性に与える影響を、確率的動作素子、各論理ゲートおよび回路の各レベルで評価することができる。また、その評価に基づいて、例えば、確率的動作素子の性能を最大限に活かした回路など、確率的動作素子の確率的動作を考慮した設計を行うことができる。【００１４】
本発明に係る回路設計支援システム、回路設計支援方法、回路設計支援プログラムおよびそのプログラムを記録したコンピュータ読み取り可能な記録媒体で、前記アナログ評価手段または前記アナログ評価ステップは、前記確率的動作素子への入力信号を、前記回路情報と前記確率的動作ゲートライブラリと前記論理ゲートライブラリとに基づいて求め、その入力信号を使用して、前記アナログ動作モデルに基づいて前記確率的動作素子の動作評価を行うよう構成されていることが好ましい。この場合、設計した回路中での確率的動作素子の動作評価を、高精度で行うことができる。【００１５】
本発明に係る回路設計支援システム、回路設計支援方法、回路設計支援プログラムおよびそのプログラムを記録したコンピュータ読み取り可能な記録媒体で、前記アナログ評価手段または前記アナログ評価ステップは、前記確率的動作素子の素子値を求め、理想値と比較することにより動作評価を行うよう構成されており、前記デジタル評価手段または前記デジタル評価ステップは、各論理ゲートの出力値および前記回路の出力値を求め、それぞれの理想値と比較することにより動作評価を行うよう構成されていることが好ましい。この場合、動作評価を明確に行うことができる。求められた確率的動作素子の素子値、各論理ゲートの出力値および回路の出力値と、それぞれの理想値との差は、例えば、それぞれの書込みエラープロファイルデータとして出力してもよい。【００１６】
本発明に係る回路設計支援システム、回路設計支援方法、回路設計支援プログラムおよびそのプログラムを記録したコンピュータ読み取り可能な記録媒体で、前記デジタル評価手段または前記デジタル評価ステップは、前記アナログ評価手段または前記アナログ評価ステップにより求められた前記確率的動作素子の素子値を用いて、各論理ゲートの出力値および前記回路の出力値を求めるよう構成されていることが好ましい。この場合、各論理ゲートおよび回路全体の動作評価に、確率的動作素子による確率的動作を的確に反映させることができる。
【発明の効果】
【００１７】
本発明によれば、確率的動作素子の確率的動作を考慮して設計を行うことができ、確率的動作素子の確率的動作が回路の動作信頼性に与える影響を評価可能な回路設計支援システム、回路設計支援方法、回路設計支援プログラムおよびそのプログラムを記録したコンピュータ読み取り可能な記録媒体を提供することができる。
【図面の簡単な説明】
【００１８】
【図１】本発明の実施の形態の回路設計支援システムの構成を示すブロック図である。
【図２】本発明の実施の形態の回路設計支援システムの処理手順を示すフローチャートである。
【図３】本発明の実施の形態の回路設計支援システムを用いた、回路設計のフローの一例を示すブロック回路図である。
【図４】本発明の実施の形態の回路設計支援システムに関し、確率的動作素子が確率的動作を行うことを確認するためのシミュレーションの（ａ）回路モデル、（ｂ）印加電圧を示すグラフ、（ｃ）計算結果である素子値の変化を示すグラフである。
【図５】本発明の実施の形態の回路設計支援システムおよび従来システムの、不揮発性磁気フリップフロップを含む対象回路に対するシミュレーション結果の、書込みパルス幅と書込みエラー率との関係を示すグラフである。
【図６】本発明の実施の形態の回路設計支援システムによる、汎用マイクロプロセッサの回路を用いたシミュレーションの評価の流れを示す、ブロック回路図である。
【図７】図６に示す本発明の実施の形態の回路設計支援システムおよび従来システムによるシミュレーション結果を示す結果図である。
【図８】従来の回路設計支援システムの構成を示すブロック図である。
【発明を実施するための形態】
【００１９】
以下、図面に基づいて、本発明の実施の形態について説明する。
図１乃至図８は、本発明の実施の形態の回路設計支援システム、回路設計支援方法、回路設計支援プログラムおよびそのプログラムを記録したコンピュータ読み取り可能な記録媒体を示している。なお、本発明の実施の形態の回路設計支援方法は、本発明の実施の形態の回路設計支援システムにより好適に実施される方法であり、回路設計支援プログラムを記録したハードディスク、ＤＶＤ−ＲＯＭ、ＣＤ−ＲＯＭ、フレキシブルディスクなどのコンピュータ読み取り可能な記録媒体によりコンピュータに実行させることができる。
【００２０】
図１に示すように、本発明の実施の形態の回路設計支援システムは、素子値の変化が確率的に決定される確率的動作素子を含む回路の設計を支援するための回路設計支援システムであって、コンピュータから成り、入力手段１１と、各種データを記憶する記憶手段１２と、演算機能および制御機能を有する主制御部１３と、出力手段１４とを有している。
【００２１】
入力手段１１は、キーボードや、ＣＤ−ＲやＤＶＤ−Ｒなどの記憶媒体に記憶された情報を読み取る読取装置などから成っている。入力手段１１は、設計する回路に対応するハードウェア記述言語（ＨＤＬ）で記述された回路情報を入力可能になっている。また、入力手段１１は、その他にも、様々なデータを入力可能になっている。
【００２２】
記憶手段１２は、メモリから成り、入力手段１１により入力された確率的動作素子のアナログ動作モデル２１と確率的動作ゲートライブラリ２２と論理ゲートライブラリ２３と半導体素子のアナログ動作モデル２４とをあらかじめ記憶しておくようになっている。確率的動作素子のアナログ動作モデル２１は、確率的動作素子の素子値の変化を確率的に示す情報を有している。確率的動作ゲートライブラリ２２は、確率的動作素子を含む論理ゲートの、確率的動作素子の確率的な素子値の変化に基づいた動作を示す情報を有している。なお、論理ゲートライブラリ２３は、あらかじめ半導体素子のアナログ動作モデル２４から求められた、確率的動作素子を含まない論理ゲートの動作を示す情報を有している。
【００２３】
主制御部１３は、ＣＰＵから成り、入力手段１１、記憶手段１２および出力手段１４に接続されて、それぞれを制御可能に構成されている。主制御部１３は、アナログ評価手段２５とデジタル評価手段２６とを有している。アナログ評価手段２５は、入力手段１１から入力された回路情報と、記憶手段１２に記憶された確率的動作素子のアナログ動作モデル２１と確率的動作ゲートライブラリ２２と論理ゲートライブラリ２３とに基づいてアナログシミュレーションを行い、確率的動作素子の素子値を求めるようになっている。具体的には、アナログ評価手段２５は、確率的動作素子への入力信号を、回路情報と確率的動作ゲートライブラリ２２と論理ゲートライブラリ２３とに基づいて求め、その入力信号を使用して、確率的動作素子のアナログ動作モデル２１に基づいて確率的動作素子の素子値を求めるようになっている。また、アナログ評価手段２５は、求められた確率的動作素子の素子値と、あらかじめ求められた理想値との差を計算することにより、動作評価を行うようになっている。
【００２４】
デジタル評価手段２６は、入力手段１１から入力された回路情報と、記憶手段１２に記憶された確率的動作ゲートライブラリ２２と論理ゲートライブラリ２３とを論理合成してデジタルシミュレーションを行い、各論理ゲートおよび回路全体からの出力値を求めるようになっている。また、このとき、アナログ評価手段２５により求められた確率的動作素子の素子値を用いて、各論理ゲートおよび回路全体からの出力値を求めるようになっている。また、デジタル評価手段２６は、求められた出力値と、あらかじめ求められたそれぞれの理想値との差を計算することにより、動作評価を行うようになっている。
【００２５】
主制御部１３は、デジタル評価手段２６で求められた各論理ゲートの出力値と理想値との差、回路全体からの出力値と理想値との差、および、アナログ評価手段２５で求められた確率的動作素子の素子値と理想値との差を、記憶手段１２に送って記憶させるようになっている。
【００２６】
出力手段１４は、モニタやプリンタなどから成っている。出力手段１４は、それぞれ記憶手段１２に記憶された各論理ゲートの出力値と理想値との差、回路全体からの出力値と理想値との差、および、確率的動作素子の素子値と理想値との差を、それぞれ書込みエラープロファイルデータとして出力するようになっている。
【００２７】
次に、本発明の実施の形態の回路設計支援システムの処理手順について、図２を参照しながら説明する。図２に示すように、まず、ハードウェア記述言語（ＨＤＬ）で記述された回路情報を、入力手段１１から入力する（ステップ３１）。次に、アナログ評価手段２５により、回路情報と、あらかじめ記憶手段１２に記憶された確率的動作素子のアナログ動作モデル２１と確率的動作ゲートライブラリ２２と論理ゲートライブラリ２３とに基づいてアナログシミュレーションを行い、各確率的動作素子の素子値を求め、その素子値と理想値との差を計算する（ステップ３２）。
【００２８】
次に、デジタル評価手段２６により、その回路情報と、あらかじめ記憶手段１２に記憶された確率的動作ゲートライブラリ２２と、半導体素子のアナログ動作モデル２４から求められた論理ゲートライブラリ２３とを論理合成し、ステップ３２で得られた各確率的動作素子の素子値を用いてデジタルシミュレーションを行い、各論理ゲートおよび回路全体からの出力値を求め、その出力値とそれぞれの理想値との差を計算する（ステップ３３）。次に、出力手段１４により、回路全体からの出力値と理想値との差を、回路レベルの書込みエラープロファイルデータ２７として出力し、各論理ゲートの出力値と理想値との差を、ゲートレベルの書込みエラープロファイルデータ２８として出力し、確率的動作素子の素子値と理想値との差を、素子レベルの書込みエラープロファイルデータ２９として出力する（ステップ３４）。
【００２９】
このように、本発明の実施の形態の回路設計支援システムは、確率的動作素子の確率的動作が回路の動作信頼性に与える影響を、書込みエラープロファイルデータ２７〜２９に基づいて、確率的動作素子、各論理ゲートおよび回路の各レベルで評価することができる。また、その評価に基づいて、例えば、確率的動作素子の性能を最大限に活かした回路など、確率的動作素子の確率的動作を考慮した設計を行うことができる。具体的には、画像処理や人工知能に関わる回路など、ノイズやエラーがあってもよく、１００％の信頼性を要求されないような、ある程度の質が確保されていればよい回路を設計するのに、好適に使用することができる。
【００３０】
本発明の実施の形態の回路設計支援システムを用いた、実際の回路設計のフローの一例を、図３に示す。まず、図３（ａ）に示すように、確率的動作素子を含まない組合せ論理回路部４１や、Ｄフリップフロップ（ＤＦＦ）等から成る記憶回路４２を用いて、対象回路４０の設計を行う。次に、図３（ｂ）に示すように、記憶回路４２を、確率的動作素子を含む不揮発性磁気フリップフロップ（ＭＦＦ）等から成る不揮発性記憶回路４３に置き換える。次に、図３（ｃ）に示すように、本発明の実施の形態の回路設計支援システムを用いて、不揮発性記憶回路４３の確率的動作素子に対してはアナログ評価手段２５によるアナログシミュレーションを行い、組合せ論理回路部４１や対象回路４０の全体に対してはデジタル評価手段２６によるデジタルシミュレーションを行い、対象回路４０の各レベルでの動作検証を行う。
【００３１】
なお、本発明の実施の形態の回路設計支援プログラムは、例えば、ＣＤ（ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷなど）、ＤＶＤ（ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＤＶＤ−Ｒ、ＤＶＤ−ＲＷ、ＤＶＤ＋Ｒ、ＤＶＤ＋ＲＷなど）、ＵＳＢメモリ等のコンピュータ読み取り可能な記録媒体に記録された形態で提供されうる。この場合、コンピュータは、その記録媒体から回路設計支援プログラムを読み取ってコンピュータの内部記憶装置または外部記憶装置に転送し格納して用いることができる。また、本発明の実施の形態の回路設計支援プログラムを、例えば、磁気ディスク、光ディスク、光磁気ディスク等の記憶装置（記録媒体）に記録しておき、その記憶装置から通信回線を介してコンピュータに提供するようになっていてもよい。
【００３２】
ここで、コンピュータとは、ハードウェアとＯＳ（オペレーティングシステム）とを含む概念であり、ＯＳの制御の下で動作するハードウェアを意味している。また、ＯＳが不要で、アプリケーションプログラム単独でハードウェアを動作させるような場合には、そのハードウェア自体がコンピュータに相当する。ハードウェアは、少なくとも、ＣＰＵ等のマイクロプロセッサと、記録媒体に記録されたコンピュータプログラムを読み取るための手段とを備えている。
【００３３】
本発明の実施の形態の回路設計支援プログラムとしてのアプリケーションプログラムは、上述のようなコンピュータに実現させるプログラムコードを含んでいる。また、その機能の一部は、アプリケーションプログラムではなくＯＳによって実現されてもよい。なお、本発明の実施の形態のコンピュータ読み取り可能な記録媒体としては、上述したフレキシブルディスク、ＣＤ、ＤＶＤ、ＵＳＢメモリ、磁気ディスク、光ディスク、光磁気ディスクのほか、コンピュータの内部記憶装置（ＲＡＭやＲＯＭなどのメモリ）、外部記憶装置等や、バーコードなどの符号が印刷された印刷物等の、コンピュータ読み取り可能な種々の媒体を利用することもできる。
【００３４】
［確率的動作素子の確率的動作の確認］
確率的動作素子が確率的動作を行うことを確認するために、確率的動作素子５１として不揮発性抵抗変化素子であるＭＴＪ素子を用いた簡単な回路モデルを用いてシミュレーションを行った。図４（ａ）に示すＭＴＪ素子を一つだけ有する回路モデルを使用し、図４（ｂ）に示す電圧を加えたときのＭＴＪ素子の素子値（抵抗値）の変化を、ＳＰＩＣＥを用いて計算した。計算結果を、図４（ｃ）に示す。図４（ｃ）に示すように、一定の電圧を加えても、素子値の変化のタイミングが異なっており（図中の丸で囲った部分）、ＭＴＪ素子が確率的動作を行っていることが確認された。
【実施例１】
【００３５】
４７６個の不揮発性磁気フリップフロップを含む対象回路について、本発明の実施の形態の回路設計支援システムを用いてシミュレーションを行った。対象回路は、各不揮発性磁気フリップフロップ内に、確率的動作素子としてＭＴＪ素子を含んでいる。比較のため、図８に示すような従来の回路設計支援システム（従来システム）でもシミュレーションを行った。この従来システムは、確率的動作素子について、素子値が変化する確率がある値以上のとき、その確率を100％に切り上げ、ある値以下のとき、その確率を0％に切り下げる操作を行っている。すなわち、従来システムは、ＭＴＪ素子に与える「パルスの大きさ×パルス幅」があらかじめ与えられたしきい値を超えたとき、ＭＴＪ素子の素子値（抵抗値）が変化し、しきい値を超えないときにはＭＴＪ素子の素子値は変化しないようになっている。【００３６】
各不揮発性磁気フリップフロップ（ゲートレベル）に対して書き込み処理を行ったときの各シミュレーションにより得られた、書込みパルス幅と書込みエラー率との関係を、図５に示す。なお、書込みパルスの大きさは一定にしている。図５に示すように、従来システムでは、書込みパルス幅が所定の値以下のときには、書込みエラー率が１００％となり、所定の値より大きいときには、書込みエラー率が０％となる。これに対し、本発明の実施の形態の回路設計支援システムでは、書込みパルス幅が大きくなるに従って、書込みエラー率が徐々に低下しており、確率的動作素子の確率的動作により、ゲートレベルでも動作が確率的に変化する様子を評価できることが確認された。【００３７】
このように、本発明の実施の形態の回路設計支援システムによれば、確率的動作素子の確率的動作が回路動作に与える影響や回路の動作マージンを、多層の設計レベルでより正確に評価することができるといえる。これにより、高信頼設計や高性能設計を行うことができる。
【実施例２】
【００３８】
一般的な汎用の３２ビットマイクロプロセッサであるＣｏｒｔｅｘ−Ｍ０（ＡＲＭ社製）を対象回路４０として、本発明の実施の形態の回路設計支援システムを用いてシミュレーションを行った。シミュレーションの評価の流れを、図６に示す。図６に示すように、アナログ評価手段２５で得られた各確率的動作素子５１の素子値をアナログ加算器５２で加算し、アナログ減算器５３でその加算値と理想値との差分を求め、アナログ差分値５４として出力する。このアナログ差分値５４が素子レベルの書込みエラープロファイルデータ２９となる。これにより、各確率的動作素子５１で書込みエラーがない場合には、アナログ差分値５４が０となる。また、アナログ差分値５４が０でない場合に、書込みエラーが発生していることがわかり、そのときのアナログ差分値５４により、いくつの確率的動作素子５１で書込みエラーが発生しているかがわかる。【００３９】
また、図６に示すように、デジタル評価手段２６で得られた各論理ゲートからの出力値を、対応する比較器５５でそれぞれ理想値と比較して差分を求め、各比較器５５からの差分を累算器５６で累積して、デジタル差分値５７として出力する。このデジタル差分値２７が、ゲートレベルの書込みエラープロファイルデータ２８となる。これにより、各論理ゲートで書込みエラーがない場合には、デジタル差分値５７が０となる。また、デジタル差分値５７が０でない場合に、書込みエラーが発生していることがわかり、そのときのデジタル差分値５７により、いくつの論理ゲートで書込みエラーが発生しているかがわかる。なお、デジタル評価手段２６で得られた回路全体の出力値は、テストベンチ出力５８として出力される。【００４０】
実際のシミュレーション結果を、図７に示す。なお、比較のため、図７には、従来システムで同様に評価したシミュレーション結果も示している。また、図７では、２０個の確率的動作素子５１を１組として、各組ごとにアナログ差分値５４を出力している。また、書込みパルス幅は、４ｎｓｅｃとした。図７に示すように、従来システムでは、素子レベルのアナログ差分値５４が全て０になっており、ゲートレベルのデジタル差分値５７も０になっている。これに対し、本発明の実施の形態の回路設計支援システムでは、素子レベルのアナログ差分値５４が、いくつかの組で０になっておらず、いくつかの確率的動作素子５１で書込みエラーが発生していることが確認された。また、ゲートレベルのデジタル差分値５７も、１６進数で「６９」となっており、１０５個の論理ゲートで書込みエラーが発生していることが確認された。【００４１】
このように、本発明の実施の形態の回路設計支援システムは、従来システムとは異なる結果が得られており、確率的動作素子の確率的動作による素子レベル、ゲートレベル、回路レベルの実際の動作を、より正確に評価できているものと考えられる。
【符号の説明】
【００４２】
１１  入力手段
１２  記憶手段
２１  確率的動作素子のアナログ動作モデル
２２  確率的動作ゲートライブラリ
２３  論理ゲートライブラリ
２４  半導体素子のアナログ動作モデル
１３  主制御部
２５  アナログ評価手段
２６  デジタル評価手段
１４  出力手段
２７  （回路レベルの）書込みエラープロファイルデータ
２８  （ゲートレベルの）書込みエラープロファイルデータ
２９  （素子レベルの）書込みエラープロファイルデータ
４０  対象回路
４１  組合せ論理回路部
４２  記憶回路
４３  不揮発性記憶回路
５１  確率的動作素子
５２  アナログ加算器
５３  アナログ減算器
５４  アナログ差分値
５５  比較器
５６  累算器
５７  デジタル差分値
５８  テストベンチ出力
１０１  回路情報
１０２  論理ゲートライブラリ
１０３  半導体素子のアナログ動作モデル
１０４  デジタルシミュレーション
１０５  （回路レベルの）書込みエラープロファイルデータ
１０６  （ゲートレベルの）書込みエラープロファイルデータ
【図１】
0006692550.tif 000002
【図２】
0006692550.tif 000003
【図３】
0006692550.tif 000004
【図４】
0006692550.tif 000005
【図５】
0006692550.tif 000006
【図６】
0006692550.tif 000007
【図７】
0006692550.tif 000008
【図８】
0006692550.tif 000009