(57)【要約】      （修正有）【課題】不揮発性論理ゲートと否不揮発性論理ゲートとが組み合わさった不揮発性論理回路のネットリストを論理合成する回路設計支援システムを提供する。【解決手段】不揮発性の論理信号を取り扱いえる回路設計支援システム１０として、ハードウェア記述言語（ＨＤＬ）により記述された回路情報から回路構造を解析処理する回路構造解析手段１０２と、該回路構造について、不揮発性素子を内蔵する不揮発性論理ゲートに関する不揮発性論理基本セルを含むセルライブラリ１１０と不揮発信号の指定情報とを参照して、該指定情報が示した不揮発信号を含む回路構造部分に不揮発性論理ゲートを割り当てる論理合成処理を行う論理合成手段１０３と、論理合成された否不揮発性論理基本セルと不揮発性論理基本セルとが混在する論理回路網を設計情報として出力するネットリスト出力手段１０５と、を有する。【選択図】図６
2014225134.tif 000002
【特許請求の範囲】
【請求項１】
ハードウェア記述言語（ＨＤＬ）により記述された回路情報から回路構造を解析処理する回路構造解析手段と、
前記回路構造について、不揮発性素子を内蔵する不揮発性論理ゲートに関する不揮発性論理基本セルを含むセルライブラリと不揮発信号の指定情報とを参照して、前記指定情報が示した不揮発信号を含む回路構造部分に不揮発性論理ゲートを割り当てる論理合成処理を行う論理合成手段と、
論理合成された否不揮発性論理基本セルと不揮発性論理基本セルとが混在する論理回路網を設計情報として出力する出力手段と、
を含み成ることを特徴とする回路設計支援システム。
【請求項２】
請求項１に記載の回路設計支援システムにおいて、
前記論理合成手段は、否不揮発性論理ゲートに関する否不揮発性論理基本セルとして、面積及び／又はリーク電流が同種の不揮発性論理ゲートよりも小さい揮発性論理ゲートをセルライブラリから参照して取り扱うことを特徴とする回路設計支援システム。
【請求項３】
請求項２に記載の回路設計支援システムにおいて、
否不揮発性論理ゲートを含み構成された 各不揮発性論理基本セルの等価回路に関する情報を等価回路情報として含む等価回路ライブラリ、若しくは前記等価回路情報を自動生成する等価回路生成手段を含み、
前記等価回路情報を参照して、論理合成処理で得た論理回路網に含まれている不揮発性論理ゲートを 否不揮発性論理ゲートを含む等価回路に置き換えて最適化された論理回路網に再構築する論理最適化手段を含む
ことを特徴とする回路設計支援システム。
【請求項４】
請求項１ないし３の何れか一項に記載の回路設計支援システムにおいて、
入力されたテストベクトル情報と低電力ゲートライブラリとを参照して電力を最小化するように論理回路網の最適化を行う電力最適化手段を有し、
前記低電力ゲートライブラリは、少なくとも電源スイッチが付加された電源スイッチ付き不揮発性論理ゲートが不揮発性論理基本セルとして複数種類登録されており、付与されている前記電源スイッチのオン／オフの各々の状態における各電源スイッチ付き不揮発性論理ゲートの電力情報が記載されており、
前記電力最適化手段は、前記テストベクトル情報からレジスタ宣言された各々の信号に対して、その信号がデータ更新と参照されるそれぞれの回数と時間間隔を集計処理し、その集計結果から否不揮発性論理ゲートを用いた場合の消費電力と、電源スイッチ付不揮発性論理ゲートを用いた場合の消費電力とを比較することによって消費電力がより少ない論理ゲートを判定し、何れの論理ゲートを用いるかを決定する
ことを特徴とする回路設計支援システム。
【請求項５】
請求項１ないし４の何れか一項に記載の回路設計支援システムにおいて、
各不揮発性論理ゲートに関する前記不揮発性論理基本セルには、不揮発性素子にデータを書き込むストアイネーブル信号の端子と、不揮発性素子に記憶されるデータを読み出すリストアイネーブル信号の端子のいずれかを少なくとも含み、
不揮発信号に対応するストアイネーブル信号とリストアイネーブル信号が不揮発信号の指定情報内に含まれており、
前記論理合成手段は、前記不揮発性論理基本セルを用いて不揮発性論理ゲートを割り当てる際に、これら両イネーブル信号を不揮発信号の指定情報に基づいて結線する
ことを特徴とする回路設計支援システム。
【請求項６】
請求項１ないし５の何れか一項に記載の回路設計支援システムにおいて、
前記出力手段は、前記設計情報として、ハードウェア記述言語でレジスタ宣言された各々の信号に対して、不揮発性論理ゲートを用いる場合と否不揮発性論理ゲートを用いる場合のそれぞれの電力、面積、遅延情報をログとして出力する
ことを特徴とする回路設計支援システム。
【請求項７】
請求項１ないし６の何れか一項に記載の回路設計支援システムにおいて、
前記論理合成手段において合成された論理回路網に対して、不揮発性素子の保持論理値を示すストアデータ識別端子を有する仮想不揮発性論理ゲートを不揮発性論理ゲート あるいは その等価回路に置換するゲート置換手段を更に備え、
前記論理合成手段は、論理合成処理として、受け付けた前記回路構造について、仮想不揮発性論理ゲートに関する仮想不揮発性論理基本セルを含む仮想不揮発ゲートライブラリを参照対象に加えて、ハードウェア記述言語により記述された前記回路情報内でレジスタ宣言されている信号を含む回路構造部分に前記仮想不揮発性論理基本セルを割り当て処理し、
前記ゲート置換手段は、ゲート置換処理として、合成された論理回路網に対して、入力された不揮発信号の指定情報と置換ルール情報とに基づいて、含まれていた前記仮想不揮発性論理ゲート各々を不揮発性論理ゲート あるいは その等価回路に置換する
ことを特徴とする回路設計支援システム。
【請求項８】
請求項７に記載の回路設計支援システムにおいて、
前記ゲート置換手段は、指定された不揮発信号が仮想不揮発性論理ゲートの入出力端子に接続される場合に当該仮想論理ゲートを不揮発性論理ゲートに置き換える
ことを特徴とする回路設計支援システム。
【請求項９】
請求項７に記載の回路設計支援システムにおいて、
前記ゲート置換手段は、論理真理値が変化しない範囲内で、指定された不揮発信号が仮想不揮発性論理ゲートの入出力端子に優先的に接続されるように、仮想不揮発性論理ゲートの不揮発性素子の保持論理値を示すストアデータ識別とそれ以外の端子を入れ替える
ことを特徴とする回路設計支援システム。
【請求項１０】
コンピュータを、不揮発性論理ゲートを含む集積回路の設計を支援する回路設計支援システムとして動作させる論理合成プログラムであって、
前記コンピュータに、
受け付けた回路構造について、不揮発性素子を内蔵する不揮発性論理ゲートに関する不揮発性論理基本セルを含むセルライブラリと不揮発信号の指定情報とを参照して、前記指定情報が示した不揮発信号を含む回路構造部分に不揮発性論理ゲートを割り当てる論理合成処理を行う論理合成処理と、
論理合成された否不揮発性論理基本セルと不揮発性論理基本セルとが混在する論理回路網を設計情報として出力する出力処理と、
を実行させることを特徴とする論理合成プログラム。
【請求項１１】
コンピュータを、不揮発性論理ゲートを含む集積回路の設計を支援する回路設計支援システムとして動作させるプログラムであって、
このコンピュータに、
ハードウェア記述言語により記述された回路情報から回路構造を解析する第１のステップと、
前記回路構造について、不揮発性論理ゲート情報を含むライブラリを参照して、指定された不揮発信号に対して不揮発性論理ゲートを割り当てて論理合成を行う第２のステップと、
遅延、電力、面積のいずれかを最小化するように論理の最適化を行う第３のステップと
を実行させ、
ＣＭＯＳ論理ゲートと不揮発性論理ゲートとが混在するゲートレベルネットリストを出力させることを特徴とする論理合成プログラム。
【請求項１２】
ハードウェア記述言語により記述された回路情報を受け付けて回路構造を解析処理し、
前記回路構造について、不揮発性素子を内蔵する不揮発性論理ゲート情報を含むライブラリと不揮発信号の指定情報とを参照して、前記指定情報が示した不揮発信号を含む回路構造部分に不揮発性論理ゲートを割り当て 他の回路構造部分に否不揮発性論理ゲートを割り当てたように論理合成処理し、
論理合成された否不揮発性論理基本セルと不揮発性論理基本セルとが混在する論理回路網を設計情報として出力する
ことを特徴とする情報処理システムによる不揮発性論理集積回路論理合成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、回路設計支援システム、設計方法及びそのプログラムに関し、特に不揮発性論理集積回路の設計に利用される論理合成支援システム、論理合成方法及びそのプログラムに関する。
【背景技術】
【０００２】
半導体デバイスは、細線寸法の微細化と共に著しい速度で発展をとげ、この微細化技術は性能と低電力化の両面で貢献してきた。しかし、近年のディープサブミクロン時代に入ると、微細化技術の物理限界に達しようとしている。特に深刻なのは、トランジスタがオフの状態にも関わらずドレイン‐ソース間に流れてしまう漏れ電流の存在である。例えば、３２ｎｍ世代においては、低電力に関する工夫を何も施さないと全体の消費電力の半分を漏れ電流が占めてしまうほどになってきている。
【０００３】
この漏れ電流は、待機電力の主原因の一つであり、計算や処理を実行していない待機時にも消費される無駄な電力である。この漏れ電流を削除する技術として、待機時に半導体デバイスの電源を切断するパワーゲーティング技術が知られている。しかし、電源を切断する直前の計算結果や状態をストレージデバイスに退避する手続きと、電源を再投入する際にはストレージデバイスから退避したデータを呼び出す手続きが必要となる。このデータ転送に伴う時間と電力のオーバヘッドのために、パワーゲーティング技術を適用する場面は限られてしまう。
【０００４】
不揮発性抵抗変化型メモリ素子をメモリだけでなく論理回路にも組み込み、上記データ転送に伴う時間と電力を最小化することで頻繁に電源オン／オフできるようにする研究が盛んになっている。例えば、特許文献１には、図１の様な磁気抵抗変化素子を組み込んだ不揮発性フリップフロップ回路（ＮＶ−ＦＦ）が開示されている。これによると、ストアイネーブル信号がアクティブになるとフリップフロップが保持するデータが磁気抵抗素子に転送され、リストアイネーブル信号がアクティブになると磁気抵抗素子の記憶データをフリップフロップに転送される。このような不揮発性フリップフロップ回路を通常のディレイ・フリップフロップ回路（Ｄ−ＦＦ）などの代わりに用いることで同期型論理回路の全体を事実上不揮発化できることを提案している。さらに、特許文献２には、図２の様な磁気抵抗変化素子をパストランジスタ・ロジック回路に適用することで磁気抵抗変化素子を記憶と論理演算の両方の機能を持たせる不揮発性論理基本セル回路（ＮＶ−Ｌｏｇｉｃセル）が開示されている。このような不揮発性論理ゲートや不揮発性論理回路を用いて論理回路網を形成すれば、電源が切れた状態でもデータ転送なしで論理回路内部で保持する状態やデータが残る。すなわち、パワーゲーティングの適用場面を増やすことができる。結果として待機電力ゼロの集積回路を実現できると期待される。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】ＷＯ２００９／０７２５１１号公報
【特許文献２】特許第４６３１０９０号
【発明の概要】
【発明が解決しようとする課題】
【０００６】
論理集積回路の設計では、設計者はハードウェア記述言語（ＨＤＬ：Hardware Description Language）を使ってレジスタ・トランスファー・レベル（ＲＴＬ：Register Transfer Level）で回路動作を記述し、論理合成ツールを使って論理ゲート（基本セル）レベルのネットリストを生成する処理を行う。論理合成ツールは、ＲＴＬ記述ファイルから回路構造を解析し、論理ゲート等が登録されたセルライブラリを参照しながら論理合成機能と、設計者が規定する遅延、電力、面積の制約から回路の最適化を行う最適化機能が実装されている。一般的に、このような回路設計をセルベース設計と呼んでいる。
【０００７】
不揮発性論理集積回路を設計する場合の課題は、現在の論理合成ツールでは、不揮発性論理ゲートを設計者が望む配置に論理合成処理が行えない点がある。より具体的に述べれば、以下の点から設計者は現在流通している論理合成ツールを使ってゲートレベルの最終ネットリストを得ることができないことである。
【０００８】
その一つの要因は、抵抗変化素子が不揮発性論理ゲートに内在し、抵抗変化素子が持つ論理値が外部信号（ポート）として存在しないため、論理合成ツールはその論理値を認識する手段を持たないことである。このことは、論理合成ツールがセルライブラリを参照した際に、従来のＣＭＯＳ論理ゲート等のセルと不揮発性論理ゲートのセルを機能的に明確に区別できないことを意味する。従って、合成ツールは設計者が不揮発性論理ゲートを選択してほしい箇所があるにも関わらず、論理、遅延、面積、電力の観点からＣＭＯＳ論理ゲートを選択してしまいかねない。以下、具体例を示しながら説明する。図１（ｂ）は、ＮＶ−ＤＦＦセルのシンボルを表わしており、図３（ａ）はＤ−ＦＦセルのシンボルを表わしている。違いは、ストア・イネーブル信号端子やリストア・イネーブル信号端子の有無だけであり、抵抗変化素子が保有する論理値はポートに出てこない。各不揮発性論理ゲートの論理的な等価回路は、否不揮発性論理ゲートで表すことができる。（ただし、不揮発性は実現されない）。図３（ｂ）は、ＮＶ−ＤＦＦを表わした論理的な等価回路を示している。また、図４は、図２に示した不揮発性論理ゲートを表わした論理的な等価回路を示している。 
ここで、図５のようなＲＴＬ記述を論理合成する場合を考える。ＣＭＯＳゲートライブラリのみを参照すると、Ｑ１とＱ２はＤ−ＦＦ、Ｑ３はラッチ回路（ＤＬＡＴ）が用いられる。一方、不揮発性論理ゲートセルライブラリのみを参照すると、Ｑ１とＱ２はＮＶ−ＦＦ、Ｑ３はＮＶ−ＬＡＴが用いられる。もし、設計者がＱ２の信号のみ不揮発化したいと考えて、両方のライブラリを参照するとどうなるか、発明者らは調べた。調査として、揮発性論理ゲートセル（ＣＭＯＳセル）と不揮発性論理基本セルのパラメータを様々な値に変更しつつ、両ライブラリを参照して論理合成処理を行い、加えて最適化処理を実施した。この調査結果によると、ＮＶ−ＤＦＦの面積、遅延をＤ−ＦＦよりも小さくすると全てのレジスタでＮＶ−ＤＦＦが選択され、逆に大きくするとＤ−ＦＦが選択された。
【０００９】
仮に不揮発性論理ゲートセルをＣＭＯＳ論理ゲートセルと区別したライブラリを作成できたとしても、設計者は所望のネットリストを得ることができない可能性がある。例えば、図５のＲＴＬ記述の例で、設計者は抵抗変化素子の論理値をＱ３に定義し、ＮＶ−ＦＦの出力をＱ２として動作記述したとする。論理合成をした結果、Ｑ２とＱ３をまとめてＮＶ−ＤＦＦに最適化されればよいが、図３（ｂ）のようにＣＭＯＳ論理ゲートだけで合成される可能性もある。
【００１０】
一般的に、現状の不揮発性論理ゲートは抵抗変化素子の状態を書き換える回路が内蔵さあれることが多く面積やリーク電流が揮発性ゲートよりも大きい傾向がある。従って、設計者は、不揮発化が必要な箇所のみに不揮発性論理ゲートを割り当て他の回路構造部分に揮発性論理ゲートを割り当てて、論理回路網の最適化したいと考えるかもしれない。しかし、現在市販されている論理合成ツールでは不揮発性論理ゲートを優先的に選択させる手段を持たないため、設計者が意図した通りの設計情報（ネットリストなど）を得ることができない。
【００１１】
さらには、否不揮発性論理ゲートと不揮発性論理ゲートのどちらを選択すべきかを自動で判断及び選択する機能を併せ持つ合成ツールが存在しない。
【００１２】
本発明は、不揮発性の論理信号を取り扱うことができ、不揮発性論理回路網の最適な設計情報を出力することができる回路設計支援システム、論理合成プログラムを提供する。
【課題を解決するための手段】
【００１３】
本発明に係る回路設計支援システムは、ハードウェア記述言語により記述された回路情報から回路構造を解析処理する回路構造解析手段と、前記回路構造について、不揮発性素子を内蔵する不揮発性論理ゲートに関する不揮発性論理基本セルを含むセルライブラリと不揮発信号の指定情報とを参照して、前記指定情報が示した不揮発信号を含む回路構造部分に不揮発性論理ゲートを割り当てる論理合成処理を行う論理合成手段と、論理合成された否不揮発性論理基本セルと不揮発性論理基本セルとが混在する論理回路網を設計情報として出力する出力手段と、を含み成ることを特徴とする。
【００１４】
本発明に係る論理合成プログラムは、情報処理システムを、受け付けた回路構造について、不揮発性素子を内蔵する不揮発性論理ゲートに関する不揮発性論理基本セルを含むセルライブラリと不揮発信号の指定情報とを参照して、前記指定情報が示した不揮発信号を含む回路構造部分に不揮発性論理ゲートを割り当てる論理合成処理を行う論理合成処理と、論理合成された否不揮発性論理ゲート素子と不揮発性論理ゲートとが混在する論理回路網を設計情報として出力する出力処理と、を実行させることを特徴とする。
【００１５】
本発明に係る情報処理システムによる論理回路設計支援方法は、ハードウェア記述言語により記述された回路情報を受け付けて回路構造を解析処理し、  前記回路構造について、不揮発性素子を内蔵する不揮発性論理ゲート情報を含むライブラリと不揮発信号の指定情報とを参照して、前記指定情報が示した不揮発信号を含む回路構造部分に不揮発性論理ゲートを割り当て 他の回路構造部分に否不揮発性論理ゲートを割り当てたように論理合成処理し、論理合成された否不揮発性論理基本セルと不揮発性論理基本セルとが混在する論理回路網を設計情報として出力することを特徴とする。
【発明の効果】
【００１６】
本発明によれば、不揮発性の論理信号を取り扱うことができ、不揮発性論理回路網の最適な設計情報を出力することができる回路設計支援システム、論理合成プログラムを提供できる。
【図面の簡単な説明】
【００１７】
【図１】不揮発性Ｄフリップフロップセル回路（ａ）とそのシンボル（ｂ）とを例示した説明図である。
【図２】不揮発性ロジックセル回路（ａ）とそのシンボル（ｂ）とを例示した説明図である。
【図３】揮発性Ｄフリップフロップセル回路（ａ）と そのＤＦＦを含む不揮発性Ｄフリップフロップセルの等価回路（ｂ）とを例示した説明図である。
【図４】不揮発ロジックセル回路の等価回路を例示した論理回路図である。
【図５】フリップフロップ回路のＲＴＬ記述スタイルを用いたＨＤＬ記述例を示した説明図である。
【図６】本発明にかかる第１実施形態の回路設計支援システムを示す機能ブロック図である。
【図７】不揮発信号の指定フォーマットの一例を示す説明図である。
【図８】図６の回路設計支援システムを実現するために用いられるコンピュータシステムの概略構成を示すブロック図である。
【図９】第１実施形態にかかる論理合成手段による合成結果例を示した論理回路図である。
【図１０】図９の結果に対して論理最適化手段によって最適化された合成結果を示した論理回路図である。
【図１１】本発明にかかる第２実施形態の回路設計支援システムを示す機能ブロック図である。
【図１２】電源スイッチ付不揮発性フリップフロップセル回路（ａ）と 電源スイッチ付不揮発ロジックセル回路（ｂ）としてライブラリに登録される不揮発性論理ゲートのシンボル例を示した説明図である。
【図１３】レジスタとしてＤ−ＦＦが用いられた時の電力プロファイルの一例（ａ）と、同（ａ）の波形に対して電源スイッチ付不揮発性フリップフロップを用いた場合の電力プロファイル（ｂ）を示したタイムチャートである。
【図１４】レジスタとしてＤ−ＦＦが用いられた時の電力プロファイルの別の例（ａ）と、同（ａ）の波形に対して電源スイッチ付不揮発性フリップフロップを用いた場合の電力プロファイル（ｂ）を示したタイムチャートである。
【図１５】本発明にかかる第３実施形態の回路設計支援システムを示す機能ブロック図である。
【図１６】仮想不揮発性フリップフロップのシンボル（ａ）と、そのシンボル（ａ）の端子Ｑが不揮発信号指定された場合の置換例（ｂ）、及び、端子Ｑが不揮発信号指定されない場合の置換例（ｃ）を示した説明図である。
【図１７】仮想不揮発性ラッチ回路の出力が仮想不揮発論理ゲートの端子（Ｄ）に接続された論理回路（ａ）と、その論理回路（ａ）の信号Ｄが不揮発信号指定された場合の置換例（ｂ）、及び信号Ｄが不揮発信号指定されない場合の置換例（ｃ）を示した説明図である。
【図１８】第３実施形態にかかる論理合成手段による合成結果例を示した論理回路図である。
【図１９】仮想不揮発性ラッチの出力が複数の仮想不揮発論理ゲートに直接接続された論理回路（ａ）と、そのゲート置換例（ｂ）を示した説明図である。
【図２０】仮想不揮発性ラッチの出力がＣＭＯＳ論理ゲートに接続された論理回路（ａ）と、そのゲート置換例（ｂ）を示した説明図である。
【図２１】仮想不揮発性ラッチ回路の出力がＣＭＯＳ論理ゲートを介して仮想不揮発論理ゲートに接続される論理回路（ａ）と、（ｂ）そのゲート置換例（ｂ）を示した説明図である。
【図２２】第３実施形態にかかるゲート置換手段による合成結果例を示した論理回路図である。
【図２３】他の実施形態の回路設計支援システムを示す機能ブロック図である。
【発明を実施するための形態】
【００１８】
以下、図面等を用いて本発明の実施形態について詳述する。
【００１９】
図６は、本発明の第１の実施形態における回路設計支援システム１０の構成を表わす機能ブロック図である。 
図６に示す回路設計支援システム１０は、任意の論理回路網についてＨＤＬ記述言語で作り込まれている回路情報を受け付けて、その回路網の構成要素となるＣＭＯＳ論理ゲート及び不揮発性論理ゲートの基本セルが含まれたライブラリを参照しながら論理合成処理を実行して、不揮発性論理回路を含み得る回路網設計情報を出力する。
【００２０】
本回路設計支援システム１０は、ＨＤＬ記述入力手段１０１、回路構造解析手段１０２、論理合成手段１０３、論理最適化手段１０４、ネットリスト出力手段１０５、等価回路生成手段１０６とを有する。 
本説明では、ＨＤＬ記述入力手段１０１に、設計対象である不揮発性論理回路をＨＤＬで動作記述した情報が入力される。 
回路構造解析手段１０２は、入力されたＨＤＬ記述された回路情報を解析して、その回路構造を抽出する。回路構造解析では、レジスタ宣言の信号、クロック信号の認識や、レジスタ間の論理、回路の階層構造、モデュールの入出力信号などを解析する。
【００２１】
論理合成手段１０３は、回路構造解析手段１０２で解析した回路構造に対して、各種論理ゲートのライブラリなどを参照しながら論理回路網の論理合成処理を行う。また、論理合成された否不揮発性論理ゲート（基本セル）と不揮発性論理ゲート（基本セル）とが混在する論理回路網を設計情報として出力処理する。 
ライブラリ１１０に登録された各々の論理ゲートに関する情報には、基本セルのポート情報、論理真理値情報、セットアップ／ホールド時間を含む遅延情報、入出力ポートの信号が変化した際の動的電力情報、静的電力情報などを含む。 
参照されるライブラリ１１０は、不揮発性論理ゲートが登録された不揮発ゲートライブラリ１１１と、揮発性（否不揮発性）論理ゲートが登録されたＣＭＯＳゲートライブラリ１１２とを含む。また必要に応じて参照ライブラリを増やしても良い。 また、ネットワークを介して外部ライブラリを参照してもよい。 
加えて、論理合成手段１０３には、不揮発化が必要なネット（信号ライン）を指定した情報（不揮発信号の指定情報）が入力される。任意ネットの不揮発化指定方法は、図７を用いて後述する。本手段は、論理合成処理時に、指定された不揮発ネットを出力するレジスタに対して不揮発性論理ゲートを優先してマッピングするように動作する機能を有する。
【００２２】
図７に不揮発ネットの指定フォーマットの一例を示す。“ｎｖ＿ｎeｔ＝”で始まる行の右辺の最初の文字列が不揮発ネット名を示しており、インスタンス名Ｕ０、ネット名Ｑ２が不揮発ネットであることを示している。括弧内は順に、当不揮発ネットに対するストアイネーブル信号、リストアイネーブル信号を順に表わしており、不揮発ネットＱ２のストアイネーブル信号がＷＥ、リストアイネーブル信号がＲＥであることを表わしている。論理合成手段１０３は、不揮発信号の指定情報として、この指定フォーマットに従った不揮発ネットの指定を設計者から必要数受け付けて、論理合成処理に反映させる。 
なお、本指定方法はＨＤＬ記述の一例であり、任意ネットを不揮発化指定したことを識別できればどのような方法を用いて不揮発信号の指定情報を作成しても構わない。また、この指定情報では、複数の不揮発信号を一括して受け付けてもよいし、逐次的に１不揮発信号毎に受けつけてもよい。
【００２３】
等価回路生成手段１０６は、各々の不揮発性論理ゲートの等価回路をＣＭＯＳゲートライブラリ１１２等を参照して生成する。例えば、図４は、図２に図示した不揮発性論理ゲート回路の論理上の動作を再現できるＣＭＯＳゲート回路を一部に有する等価回路の一例である。不揮発性論理ゲートの等価回路は、置き換え対象候補に対してＣＭＯＳゲートライブラリ１１２を参照して逐次的に生成してもよいし、予め多数生成してライブラリ化することも可能である。また、自装置で作成せずに、等価回路自体を等価回路ライブラリとして予め蓄積保持して利用することも可能である。なお、各不揮発性論理ゲートの等価回路は、各々１種類に限定されずに、信号遅延量や面積、消費電力が異なる等価回路を複数種類ずつ用いても良い。また、等価回路には、置き換え対象候補の不揮発性論理ゲートよりも規模が小さい不揮発性論理ゲートが含まれてもよい。
【００２４】
論理最適化手段１０４は、先の論理合成手段１０３で生成された結果を受けて、受け付けた遅延制約を満足するように論理回路網の最適化処理を行う。 
この論理最適化処理では、等価回路生成手段１０６で生成された不揮発性論理ゲートの等価回路や 等価回路ライブラリを、揮発性論理ゲートライブラリなどと併せて参照して、不揮発性論理ゲートとその等価回路とを置換する。 
なお、不揮発ネットに対して適用された不揮発性論理ゲートは、遅延制約を満たす限り基本的に変更されない。また、本手段はＨＤＬ記述された元の論理と最適化された論理との等価性を検証する機能も含めることが望ましい。
【００２５】
ネットリスト出力手段１０５は、先の論理最適化手段１０４で得られた結果を受けて、ゲートレベルの最終ネットリストを作成して出力する。 
なお、論理合成手段１０３で得られた結果を受けて、ゲートレベルの一時ネットリストを作成して出力することも可能である。最適化処理が不要な場合や、最適化処理を行わない構成では、ネットリスト出力手段１０５は、論理合成手段１０３で得られた合成結果を受けてネットリストを出力すればよい。
【００２６】
本回路設計支援システム１０は、図８に示すコンピュータ装置により実現可能である。図８に示すコンピュータ装置は、論理合成に必要な各種データが記憶される記憶媒体とコンピュータ本体とを有している。 
記憶媒体には、ＨＤＬで記述された回路情報（ＨＤＬ記述情報）、各種ライブラリ、不揮発ネット指定情報、遅延制約情報の他に、論理合成によりネットリストを出力する本発明に係るプログラムが格納されている。このプログラムは、記憶装置（ＲＡＭ）に展開され、後述するようにＨＤＬ記述された回路情報と各種ライブラリから、指定された不揮発ネットに着目して論理合成するステップと、遅延制約情報と不揮発性論理ゲートの等価回路を元に論理最適化を行うステップと、最適化された論理回路網の最終ネットリストを出力するステップを実行するように演算装置（ＣＰＵ）を動作させる。 
また、コンピュータ本体は、データの入出力を行う入出力装置と、記憶媒体から読み込まれたプログラムまたはデータを記憶する記憶装置と、全体の制御および処理を行う演算装置と、処理結果を表示する表示装置とを備え、これらはバスにより相互に接続されている。 
このように構成されたコンピュータ装置において、ＨＤＬ記述情報、不揮発ネット指定情報、遅延制約情報は入出力装置から入力される。また、各種論理ゲートの基本セル情報の登録も入出力装置から入力され、これらの集合体は記憶媒体に格納される。これら記憶媒体に格納された各種データは、プログラム実行時に記憶装置に展開される。回路構造解析手段１０２、論理合成手段１０３、論理最適化手段１０４、ネットリスト出力手段１０５、及び、等価回路生成手段１０６は、上記各種データが所要に実行プログラムに組み込まれた状態で記憶装置に展開され、演算装置によって実現される。 
ネットリスト出力手段１０５により出力された一時及び最終ネットリストは、各種ログと共に記憶媒体に適宜格納される。記憶媒体に格納された本処理に必要な各種データ及び演算結果（ネットリストやログ）は、その閲覧が表示装置によって実現される。
【００２７】
次に、本実施形態の動作について説明する。 
まず、回路設計支援システム１０として動作させる図８に示したコンピュータで、上記プログラムを実行すると、演算装置によって以下に示すように図６の各機能ブロックが構築される。
【００２８】
演算装置は、ＨＤＬ記述入力手段１０１として入出力装置を介してＨＤＬで記述された回路情報を取得し、回路構造解析手段１０２として受け付けた回路情報から回路構造を取得する。この際に、レジスタ宣言の信号やクロック信号の認識、レジスタ間の論理真理値、回路の階層構造、各モデュールの入出力信号などを識別する。
【００２９】
次に、解析して得た回路構造に対して、ライブラリ１１０を参照しながら論理合成処理を実施する。本合成は次の処理を経て実行される。 
まず、論理合成手段１０３は、回路構造に対して、受け付けた不揮発ネット情報を不揮発信号の指定情報として使用して指定されたＩないし複数のレジスタ宣言の信号（不揮発信号）部分に、不揮発ゲートライブラリ１１１から不揮発性論理ゲートを照合して割り当てる。この照合では、論理ゲートの動作、遅延、面積等から最も相応しいものを選択してマッピングする。 
同時的に、論理合成手段１０３は、回路構造の不揮発ネット指定されていないレジスタ宣言の信号部分に、ＣＭＯＳゲートライブラリ１１２も参照して、最も相応しい論理ゲートを選択してマッピングする。 
この際、図２の様な演算機能を有する不揮発性論理ゲートが使用される場合、論理合成手段１０３は、レジスタ間の論理真理値を計算し直す。全てのレジスタ宣言の信号に対するゲート選択が完了すると、ライブラリ１１０を参照してレジスタ間の論理真理値を実現する論理合成処理を行う。
【００３０】
図９に、先の論理合成結果の一例を示す。この図において不揮発ネット情報を介して指定された端子群（不揮発化指定端子、不揮発信号、不揮発ネット）に○印を付けており、Ｑ１０、Ｑ１３、Ｑ２２、Ｑ３１、Ｑ３２が該当する。Ｑ１０、Ｑ３１、Ｑ３２に対しては、図１で図示した不揮発性フリップフロップ（ＮＶ−ＤＦＦ）セルが使用されている。また、Ｑ１３に対しては不揮発性ラッチ（ＮＶ−ＬＡＴ）セルが使用されている。また、Ｑ２２は図２で図示した不揮発性論理ゲート（ＬＶ−Ｌｏｇｉｃ）セルが使用されている。その他のレジスタはその出力信号が不揮発化指定されていないため、ＣＭＯＳ論理ゲートの一つであるＤ−ＦＦ（揮発性ロジック）セルが使用されている。 
なお、論理合成処理で割り当てる揮発性ロジックには、不揮発性論理ゲートよりも面積又はリーク電流の一方若しくは両方が小さい特徴を有する論理ゲートを用いる。
【００３１】
次に、論理最適化手段１０４は、先の論理合成結果を受けて、遅延制約情報と不揮発性論理ゲートの等価回路から論理回路網の最適化を実行する。この最適化処理を行った際に、図９に示した論理回路網では、ＮＶ−ＬＡＴ（Ｕ１）、ＡＮＤゲート（Ｕ２）、Ｄ−ＦＦ（Ｕ３）の回路部分、すなわち図中のＡ部分が不揮発性論理ゲートに置換される最適化が行われる。図１０は、Ａ部分が最適化された図９に示した論理回路網の等価論理回路網である。
【００３２】
以下、この例を用いながら、この論理最適化の過程について以下に詳説する。 
図２の不揮発性論理回路の等価回路は、図４の様に、不揮発性ラッチ回路と、組み合わせ回路、Ｄ−ＦＦから構成できる。 
不揮発性ラッチ回路は、不揮発性論理回路内の抵抗変化素子の動作を表現しており、ストアイネーブル信号ＷＥがアクティブの時にデータ入力Ｍを取り込む。この不揮発性ラッチ回路の動作は、抵抗変化素子にデータ書き込みする動作と等価である。 
組み合わせ回路は、データ入力（Ａ、Ｂ、Ｃ）と不揮発性ラッチ回路の出力とを入力とする論理演算回路であり、ＣＭＯＳ論理ゲートの組合せで形成される。組み合わせ回路の出力信号は後段のＤ−ＦＦの入力データとして入力される。 
Ｄ−ＦＦは、組み合わせ回路の出力信号とクロックを入力として受け付けて、出力信号Ｑを出力する。
【００３３】
論理最適化手段１０４は、まず、論理回路網の各レジスタのデータ入出力信号と その信号と直接接続関係にある論理ゲートセルとをチェックして、不揮発性論理ゲートの等価回路に一致する部分を探索する。次に、置換条件を満たす論理回路網の該当部分を等価回路に置換する。この最適化処理を満遍なく繰り返す。図９に示したＡ部分は、図４で示される等価回路に一致し且つ信号Ｑ１３が不揮発ネット指定されているので、Ａ部分の回路と等価な不揮発性論理ゲートに置換される。 
その結果、図１０の様に最適化されたネットリストが得られる。また、図９、図１０の例では図示していないが、論理最適化手段１０４は、不揮発ネット指定されていないにも関わらず不揮発性論理ゲートが適用されている箇所について、ＣＭＯＳゲートベースの等価回路に置き換えるべきか最適化検証を行う。この置き換えを実行すべきかどうかの判定は、置換に利点があるか、遅延、面積、電力の観点から評価されて決定される。 
なお、この論理最適化のステップでは、既存の論理合成ツールに実装されているように、遅延制約情報に従って、遅延や面積、電力が最小化されるように組み合わせ回路の構成要素の最適化が行われる。 
論理最適化処理が完了すると、ネットリスト出力手段１０５は、その結果を最終ネットリストとして作成して出力する。その際、論理合成処理のログや遅延、面積、電力などの性能情報も記憶媒体に出力する。
【００３４】
以上説明した ハードウェア記述言語により記述された回路情報からネットリストを得る合成フローは標準的な一例である。実際には、論理合成プログラムは、設計者が作成したスクリプトを読み込み、そのスクリプトに記載される具体的な合成フローに沿って実行される。 
この場合、合成フローだけでなく、合成のために使用されるＨＤＬ記述回路情報、ライブラリの指定、遅延制約情報、不揮発ネット指定情報をスクリプトに記載することが可能である。
【００３５】
以上説明した第１実施形態によると、設計者が意図して不揮発ネットを指定した信号が自動的、且つ、確実に不揮発性論理ゲートが使われるネットリストを得ることができる。また、面積やリーク電流の観点も含めて最適化されたネットリストを得ることができる。すなわち、優れた論理回路網の設計情報が得られる。
【００３６】
図１１は、本発明の第２の実施形態における回路設計支援システム２０の構成を表わす機能ブロック図である。本実施形態は、先に説明した第１の実施形態に対して論理合成手段の後に電力最適化手段を具備している点が異なっている。他の構成要素は、第１の実施形態と同様に動作する。 
図１１に記載の回路設計支援システム２０は、図８に示したコンピュータ装置により回路設計支援システム１０と同様に実現できる。
【００３７】
電力最適化手段１０７は、論理合成結果について、テストベクタ情報とライブラリ１１０を参照して、電力最小化を最優先に論理最適化処理を実行する。参照される不揮発ゲートライブラリ１１１には、不揮発性論理ゲートに電源スイッチを付した電源スイッチ付不揮発性論理ゲートセルや、クロック信号を止めるためのセル等が低電力用ゲートセルとして含まれる。すなわち、不揮発ゲートライブラリ１１１は、低電力ゲートライブラリとしての役割も受け持つ。無論、低電力ゲートライブラリを単独のライブラリに分割して、不揮発ゲートライブラリ１１１と並存させる構成でも構わないし、外部ライブラリとして準備されてもよい。 
低電力用ゲートである電源スイッチ付不揮発性論理ゲートの一例を図１２に示す。図１２（ａ）はＮＶ−ＤＦＦ、（ｂ）はＮＶ−Ｌｏｇｉｃ回路（不揮発性機能ブロック）にそれぞれ電源スイッチを付与した例である。このような電力消費の低減を図るための不揮発性論理ゲート回路をライブラリ１１０内に低電力用ゲートセル（低電力用マクロセル）として含む。
【００３８】
以下、本実施の形態の動作について説明する。 
まず、回路設計支援システム２０として動作させる図８に示したコンピュータで、電力最適化手段１０７をも構築するプログラムを実行すると、演算装置によって図１１の各機能ブロックが構築される。 
演算装置は、ＨＤＬで記述された回路情報を取得し、回路構造解析手段１０２として受け付けた回路情報から回路構造を解析して、ライブラリ等を参照しながら論理合成を実施する。論理合成手段１０３までの処理動作は、第１実施形態と処理内容が同様であるため、詳細な説明を省略する。
【００３９】
電力最適化手段１０７は、以下の手順により、消費電力が最小化するように論理回路網（回路構造）の最適化を実行する。この電力最適化の処理において、電力最適化手段１０７は、まず、使用される各々の論理ゲートのアクセス頻度、すなわち、データの更新がされ得る頻度（トグルレート）を入力されるテストベクタから計算する。このトグルレートは、レジスタの場合はクロック信号がアサートされる頻度を調べることで比較的簡単に求めることができる。
【００４０】
図１３（ａ）は、テストベンチから抽出されたあるＤ−ＦＦ（揮発性論理ゲート）の電力プロファイルの一例である。ここで、このＤ−ＦＦは、ゲーテッドされたクロック信号ＣＬＫ１によって動作し、Ｄ−ＦＦのデータ出力はＱ１である。 
時刻ｔ１とｔ４でＣＬＫ１がＤ−ＦＦにアサートされ、このタイミングでＱ１は更新され得る。一方、時刻ｔ１からｔ４までの期間は、このＤ−ＦＦはアクセスされずＱ１は一定状態のままである。 
Ｄ−ＦＦは揮発性のＣＭＯＳゲートであるから常時電源はオンの状態である。当該Ｄ−ＦＦで消費される電力は、Ｄ−ＦＦ内部で消費される電力成分、配線を充放電するスイッチング電力成分、Ｄ−ＦＦ自体のリーク電力成分の合計となる。このうち、内部電力とスイッチング電力、いわゆる動的電力はＤ−ＦＦにアクセスされ保持値が更新される時に消費される一方、リーク電力成分は電源がオンの期間中に消費され続ける。
【００４１】
図１３（ｂ）は、図１３（ａ）で着目しているＤ−ＦＦを電源スイッチ付の不揮発性Ｄフリップフロップ（ＮＶ−ＤＦＦ）に置き換えたと想定した時の電力プロファイルである。 
ここで、同１３図（ａ）と同じクロックのタイミングでデータ更新される場合を想定している。また、時刻ｔ１の後にストアイネーブル信号ＷＥがアサートされ、Ｑ１の値を抵抗変化素子に書き込み、時刻ｔ２でそのＮＶ−ＤＦＦの電源がオフの状態になる場合を想定している。また、時刻ｔ３に当該ＮＶ−ＤＦＦの電源を再投入し、リストアイネーブル信号ＲＥをアサートすることで抵抗変化素子から記憶データをＱ１に呼び出す動作が実行される場合を想定している。 
時刻ｔ１からｔ４の間に当該ＮＶ−ＤＦＦで消費される電力は、ストア電力とリストア電力、電源オン／オフの充放電電力の和となる。この消費電力をＰｎｖｒｅｇとする。時刻ｔ２からｔ３期間（電源オフ時）のリーク成分はゼロであるため、一回の電源オン／オフで消費される電力Ｐｎｖｒｅｇは、時刻ｔ１からｔ４の時間の長さに依存せず、ほぼ固定値となる。
【００４２】
電力最適化手段１０７は、当該Ｄ−ＦＦを電源スイッチ付ＮＶ−ＤＦＦに置き換えるべきか否かを図１３を用いて説明した電力消費のモデルに従って判定する。 
すなわち、時刻ｔ１からｔ４まで当該Ｄ−ＦＦで消費される電力Ｐｒｅｇの値がＰｎｖｒｅｇよりも大きい場合、電力最適化手段１０７はＮＶ−ＤＦＦに置き換える判定を下す。他方に値が小さい場合には、電力最適化手段１０７は、Ｄ−ＦＦのままで置き換えない。もし、ＮＶ−ＤＦＦに置き換える場合には、ストアイネーブル信号ＷＥやリストアイネーブル信号ＲＥの入力、電源スイッチ制御入力が必要になる。これら制御信号の追加は電力最適化手段１０７によって自動で実施され、対象回路モジュールの新規ポートとして追加し、この追加情報をネットリスト出力時にログとして出力する。
【００４３】
図１４（ａ）は、当該Ｄ−ＦＦが時刻ｔ１からｔ４の期間中、データの更新は実施されないが、時刻ｔ６で出力Ｑ１の値が参照される場合を表わしている。この時、当該Ｄ−ＦＦが消費される電力は図１３（ａ）の時と同じＰｒｅｇである。 
図１４（ｂ）は、当該Ｄ−ＦＦを電源スイッチ付ＮＶ−ＤＦＦに置き換えたと想定した時の電力プロファイルである。電源スイッチ付ＮＶ−ＤＦＦは、時刻ｔ１の後にストア動作を実行し、時刻ｔ２で電源を遮断する。さらに、時刻ｔ５で電源を再投入してリストア動作を実行し、時刻ｔ６で出力値を参照された後に時刻ｔ７で電源を遮断する。さらに、時刻ｔ３で電源を再投入しリストア動作を実行する。時刻ｔ１からｔ４の間に当該ＮＶ−ＤＦＦで消費される電力は、１回のストア電力と２回のリストア電力、２回の電源オン／オフ電力の和となる。この消費電力をＰｎｖｒｅｇ’とする。
【００４４】
電力最適化手段１０７は、テストベンチ情報から図１４（ａ）の様に各々のレジスタの値が参照されるタイミングや期間を収集・識別する機能を有しており、その識別した情報から図１４（ｂ）の様に、当該Ｄ−ＦＦをＮＶ−ＤＦＦに置き換えたと想定した時の電力プロファイルを自動的に作成する。そして、ＰｒｅｇとＰｎｖｒｅｇ’の大小を比較することで、ＮＶ−ＤＦＦに置き換えるか否かを判定する。
【００４５】
また、電力最適化手段１０７は、不揮発性論理ゲートライブラリ１１１に記載される各々のゲートセルの電力情報から、１回のストア動作で消費される電力と１回のリストア動作で消費される電力をそれぞれ計算する。また、１回の電源オン／オフに消費される電力も計算する。電源スイッチ付不揮発性論理ゲートに置き換えたと仮定した時の消費電力Ｐｎｖｒｅｇ’の計算値は、ストア動作の回数、リストア動作の回数、電源オン／オフの回数を、それぞれこれらの電力値に乗算した和で求めることができる。
【００４６】
電力最適化手段１０７は、以上のような処理を全てのレジスタの論理ゲートに対して実行した後に、電力最適化処理を終了する。
【００４７】
この後、論理最適化手段１０４は、電力最適化処理結果を受け付けて、レジスタの置き換えが許可されない状態、すなわち、ＣＭＯＳ論理ゲート等で構成されるレジスタ間の組み合わせ回路部分の範囲内で、遅延制約情報に基づいた論理最適化処理を実行する。
【００４８】
最後に、ネットリスト出力手段１０５は、得られた結果を受けて、最終ネットリストを作成して出力する。その際、論理合成処理のログや遅延、面積、電力などの性能情報も記憶媒体に出力する。
【００４９】
以上説明したハードウェア記述言語により記述された回路情報からネットリストを得る合成フローは、省電力をより強く考慮した処理フローの一例である。  処理フローは、以下のように変更しても構わない。 
例えば、電力最適化手段１０７による電力最適化処理は、論理最適化手段１０４の後に実施しても構わない。また、第１実施形態の構成を含み、論理最適化手段１０４は第１実施形態の様に、等価回路生成手段１０６などから得た各々の不揮発性論理ゲートの等価回路を参照しながら、ＣＭＯＳゲート等の否不揮発性論理ゲートを不揮発性論理ゲートに置き換えたり、不揮発性論理ゲートを等価回路に置き換えたりしても構わない。 
実際には、論理合成プログラムは、設計者が作成したスクリプトを読み込み、そのスクリプトに記載される具体的な合成フローに沿って実行される。
【００５０】
以上説明した第２の実施形態によると、設計者が意図して不揮発ネットを指定した信号以外にも低電力化できる回路構造を自動的に特定でき、設計者に通知したり、より電力最小化されたネットリストを得ることができる。すなわち、より優れた論理回路網の設計情報が得られる。
【００５１】
図１５は、本発明の第３の実施形態における回路設計支援システム３０の構成を表わす機能ブロック図である。本実施形態は、先に説明した第１実施形態に対してゲート置換手段を具備している点が異なっている。また、ライブラリに仮想不揮発ゲートライブラリが含まれている。他の構成要素は、第１実施形態と同様に動作する。 なお、第１実施形態に換えて、第２実施形態にゲート置換手段を具備させた構成としても良い。また、第１実施形態と第２実施形態とを組み合わせた形態にゲート置換手段を具備させた構成としても良い。以下、本実施形態の差分部分について詳述する。
【００５２】
論理合成手段１０３は、ＣＭＯＳゲートライブラリ１１２と仮想不揮発ゲートライブラリ１１３を参照して、ＨＤＬ記述された回路情報から取得された回路構造について論理合成を実施する。 
この論理合成では、全てのレジスタ宣言された信号に対して、仮想不揮発ゲートライブラリ１１３を参照して仮想不揮発性論理ゲートからふさわしいセルを選択する。 
すなわち、ＣＭＯＳゲートライブラリ１１２に登録されているＤ−ＦＦやＤＬＡＴ等のフリップフロップ系のセルを一時的に用いずに仮想不揮発ゲートセルを用いて合成処理を行う。
【００５３】
ここで、仮想不揮発ゲートライブラリ１１３について説明する。ライブラリに登録される仮想不揮発性論理ゲート各々は、様々な種別の仮想的な不揮発性論理ゲートであり、後段の処理で全て置換される。個々の仮想不揮発性論理ゲートに関する基本セルには、抵抗変化素子が保持する論理値をも一端子として明示化されている。換言すれば、仮想不揮発性論理ゲートセルには、抵抗変化素子に保持された論理値を出力する一端子が新規に出力端子として設けられている。このため、仮想不揮発性論理ゲートセルは、不揮発性論理ゲートセルとは端子構造が異なっている。この抵抗変化素子が保持する論理値を示すことに使用する端子は、ストアデータ識別端子と呼ぶ。この仮想不揮発論理ゲートを用いることで、最適化処理の置換処理を容易化する。 
まず、仮想不揮発ゲートライブラリ１１３に登録された仮想ＮＶ−ＤＦＦセルの一例を図１６（ａ）に示す。出力端子Ｑ’はストアデータ識別端子であり、抵抗変化素子が保持する論理値を示しており、また、本セルにはストアイネーブル信号ＷＥ、リストアイネーブル信号ＲＥの端子は含まない。 
次に、仮想不揮発ゲートライブラリに登録された仮想ＮＶ−Ｌｏｇｉｃセル（仮想マクロセル）の一例を図１７（ａ）に示す。ここで、仮想ＮＶ−Ｌｏｇｉｃセルには入力端子Ｄが不揮発化指定を受けた場合にＮＶ−ＬＡＴが不要となることに留意する。また、図示された仮想ＮＶ−Ｌｏｇｉｃの出力端子Ｄが仮想ＮＶ−ＲＡＴの抵抗変化素子が保持する論理値を示しており、また、リストアイネーブル信号ＲＥの端子は含まない。
【００５４】
図１８は、論理合成手段１０３によって合成された回路図の一例である。実際にはクロック信号が不揮発性論理ゲートに入力されるが、この図では、簡略化するためクロック信号を省略している。 
信号Ｄ１、Ｄ２、Ｑ１０〜Ｑ１３、Ｑ２０〜Ｑ２２はレジスタ宣言された信号であり、全て仮想不揮発性論理ゲート（Ｖｉｒｔｕａｌ ＮＶ−ＬＡＴセル、Ｖｉｒｔｕａｌ ＮＶ−ＦＦセル、Ｖｉｒｔｕａｌ ＮＶ−Ｌｏｇｉｃ Ｇａｔｅセル（ＡＮＤ、ＯＲ、ＮＡＮＤなど））が適用される。これら不揮発性論理ゲート間の組み合わせ回路は全てＣＭＯＳ論理ゲートが割り当てられる。
【００５５】
ゲート置換手段１０８は、論理合成手段１０３の出力結果を受けて、ライブラリ１１０と不揮発ネット指定情報と置換ルール指定情報とを参照しながら 個々の仮想不揮発性論理ゲートを 実態のある不揮発性論理ゲート あるいは そのＣＭＯＳ素子を含む等価回路に置換して、論理回路網全体の仮想不揮発性論理ゲートを全て実態のある論理ゲートに置き換える。 
例えば、図１６は仮想ＮＶ−ＤＦＦのゲート置換方法を示している。仮想ＮＶ−ＤＦＦセルの出力端子Ｑが不揮発ネット指定されている場合は、図１６（ｂ）の様に実態のあるＮＶ−ＤＦＦセルに置換する。当該端子が不揮発ネット指定されていない場合は、図１６（ｃ）の様にＣＭＯＳライブラリ１１２を参照してＤ−ＦＦセルに置換する。 
図１７は仮想ＮＶ−Ｌｏｇｉｃセルのゲート置換方法を示している。右側の仮想ＮＶ−Ｌｏｇｉｃセルにおける抵抗変化素子の値を定める入力端子（ストアデータ識別端子：Ｄ端子）が不揮発ネットに指定され、且つ、Ｄ端子が仮想ＮＶ−ＬＡＴの出力端子に直接接続される場合は、図１７（ｂ）の様に仮想ＮＶ−ＬＡＴセルと仮想ＮＶ−Ｌｏｇｉｃセルを一括して１つのＮＶ−Ｌｏｇｉｃセルに置換する。この条件に当てはまらない場合は、図１７（ｃ）の様に仮想ＮＶ−Ｌｏｇｉｃセルが持つ論理演算機能と等価な組み合わせ回路と その組み合わせ回路の出力Ｙを入力としたＤ−ＦＦセルとに置換する。この時、仮想ＮＶ−ＬＡＴセルはＤＬＡＴセルに置換する。 
以上、図１６や図１７で例示したように、指定された不揮発信号に基づいて仮想不揮発性論理ゲートを 不揮発性論理ゲートとＣＭＯＳ論理ゲートを含む等価回路の何れに置き換えるべきかの条件は置換ルール指定情報に記載される。
【００５６】
ゲート置換手段１０８は、仮想不揮発性論理ゲートとＣＭＯＳ論理ゲートとの接続関係をチェックしながら、図１６や図１７を用いて説明した基本ルールに従って仮想不揮発性論理ゲートを逐次置換する。次に、いくつかの置換される論理ゲート回路を例示する。
【００５７】
図１９（ａ）は、論理回路網として仮想ＮＶ−ＬＡＴセルの出力Ｄが複数の仮想ＮＶ−Ｌｏｇｉｃセルに接続されるケースを示している。ここで、信号Ｄは仮想不揮発性ＡＮＤゲートセルＵ１のデータ入力端子Ａに接続され、さらに仮想不揮発性ＯＲゲートセルＵ２の入力端子Ｄに接続されている。 
もし、仮想不揮発性ＡＮＤゲートセルＵ１のＡ端子とＤ端子の接続を入れ替えてもＱ１の論理演算結果が変わらないのであれば、図１９（ｂ）の様に、インスタンスＵ１とインスタンスＵ２の両方が実態ある不揮発性論理ゲートセルに置換される。 
ここで、仮想ＮＶ−ＬＡＴセルはＵ１とＵ２に対して一つしか存在しないが、両者で共有されていると考えて置換を行う。ただし、この置換ができるケースは、不揮発ネット指定された信号ＤがＣＭＯＳゲートに一切接続されていないことが条件となる。
【００５８】
図２０（ａ）は、論理回路網として、不揮発ネット指定された信号Ｄが、仮想ＮＶ−ＬＡＴセルＵ０の出力信号であり、且つ、仮想ＮＶ−Ｌｏｇｉｃセルの入力端子Ｄに直接接続され、且つ、ＣＭＯＳ論理ゲートにも接続されているケースを示している。 
該当信号Ｄ部分の電気回路構造は、図１（ａ）や図２（ａ）に示すように抵抗変化素子を用いる為、電圧を印加されない状態でＣＭＯＳ論理ゲートの入力として利用することができない。 
従って、このケースでは図２０（ｂ）に示すように、仮想ＮＶ−ＬＡＴセルをＮＶ−ＬＡＴセルに置き換え、仮想ＮＶ−ＬｏｇｉｃセルをＣＭＯＳ論理ゲートを用いた等価回路（図２０の例では、ＣＭＯＳ−ＡＮＤゲートとＤ−ＦＦ）に置き換える。 
この置換方法により、面積オーバヘッドが増える可能性があるものの、信号Ｄの不揮発性は維持され、論理の等価性も維持される。
【００５９】
図２１（ａ）は、論理回路網として、不揮発ネット指定された信号Ｄが、仮想ＮＶ−ＬＡＴセルＵ０の出力信号であり、ＣＭＯＳ論理ゲートを介して仮想不揮発性ＡＮＤゲートセルに接続されているケースを示している。 
このケースにおいても、不揮発ネット指定された信号Ｄは抵抗変化素子を用いる為、この信号ネットをＣＭＯＳゲート素子に直接入力して演算に用いることは不可能である。従って、図２１（ｂ）に示すように、仮想ＮＶ−ＬＡＴセルはＮＶ−ＬＡＴセルに置き換え、仮想不揮発性ＡＮＤゲートセルはＣＭＯＳ論理ゲートを用いた等価回路（図２１の例では、ＣＭＯＳ−ＡＮＤゲートとＤ−ＦＦ）に置き換える。 
この置換方法により、面積オーバヘッドが増える可能性があるものの、信号Ｄの不揮発性は維持され、論理の等価性も維持される。
【００６０】
以上、図１９、図２０、図２１で例示した置き換え方法は、置換ルール指定情報に記載される。また、予め 例示したような置換ルールが反映された基本的な等価回路をコンポーネントとして、例えば仮想不揮発ゲートライブラリ１１３内にライブラリとして保持しておき、必要に応じて用いることとしても良い。なお、置換する論理回路は上記例に限定するものではない。また、面積や消費電力の特性が異なる複数種類の否不揮発性論理ゲート等価回路を複数の置換ルール又は複数の基本的な等価回路若しくはその組み合わせとしてゲート置換手段１０８に与える構成としても良い。
【００６１】
論理合成手段１０３によって合成された図１８に示した論理回路網に対して、ゲート置換手段１０８が、上記した置き換えルールに従って仮想論理ゲートを置き換えた結果の一例を図２２に示す。 
まず、不揮発ネット指定された信号Ｄ１（図１８参照）に着目する。この不揮発信号Ｄ１は、仮想ＮＶ−ＬＡＴセルの出力信号であり、且つ、その接続先が全て仮想不揮発性論理ゲートセルの入力端子である。従って、図１９で図示したルールに従い、仮想ＮＶ−ＬＡＴセルと仮想不揮発性論理ゲートセルの組を不揮発性論理ゲートセルに置換する。なお、この置換を実行する際に、Ｄ信号がＮＶ−Ｌｏｇｉｃセルの仮想Ｄ端子に接続されていない信号ネットを論理等価性を有する他入力端子と入れ替える処理を行う。 
次に、不揮発ネット指定された信号Ｄ２（図１８参照）に着目する。この不揮発信号Ｄ２は、仮想ＮＶ−ＬＡＴセルの出力信号であるが、その接続先が仮想ＮＶ−Ｌｏｇｉｃセル以外にＣＭＯＳゲートを含んでいる。従って、図２０で図示したルールに従い、仮想ＮＶ−ＬＡＴセルをＮＶ−ＬＡＴセルに置き換え、Ｑ２０を出力する仮想ＮＶ−Ｌｏｇｉｃ回路セルはＣＭＯＳゲートで構成される等価回路に置き換えられる。 
次に、不揮発ネット指定された信号Ｑ２２に着目する。この不揮発信号Ｑ２２は、仮想ＮＶ−ＦＦセルの出力であるので、図１６（ｂ）で図示した様に、仮想ＮＶ−ＦＦセルを実態のＮＶ−ＦＦセルに置き換える。 
以上説明したように、図１８の論理回路網が置換ルール指定情報に従って図２２に示す論理回路網にゲート置換されて最適化される。
【００６２】
論理最適化手段１０４は先の実施形態と同様に遅延制約情報を満たすように、不揮発性論理ゲートの置き換えを許可しない設定範囲でＣＭＯＳゲートの論理最適化の処理を行う。ここで、遅延、電力、面積の計算は、不揮発ゲートライブラリ１１１とＣＭＯＳゲートライブラリ１１２とを参照して行われる。論理最適化が完了すると、最後にネットリスト出力手段１０５によりネットリストやログが出力される。
【００６３】
以上説明した第３の実施形態によると、設計者による直接的な操作に寄らずに、不揮発化指定された信号ネット周囲回路構造を自動的に最適化して、より優れた論理回路網の設計情報が得られる。 
なお、本実施形態では、第１の実施形態を変形したケースを説明した。本実施形態はこれに限定されず、先に述べたように第２の実施形態の構成（図１１）と組み合わせても構わない。また、回路構造解析手段１０２と論理合成手段１０３とゲート置換手段１０８で最終ネットリストを得る為の論理合成を行う組み合わせも在り得る。
【００６４】
以上説明したように、本発明によれば、不揮発性の論理信号を取り扱うことができ、不揮発性論理回路網の最適な設計情報を出力することができる回路設計支援システム、及び論理合成プログラムを提供できる。
【００６５】
なお、本発明は上記実施形態に限定されず、本発明の技術思想の範囲内において、適宜変更され得ることは明らかである。回路設計支援システムの各部は、ハードウェアとソフトウェアの組み合わせを用いて適宜実現すればよい。例えば、図２３に示すように、回路構造受付部と論理合成部と論理回路構造出力部で回路設計支援システムを構築して、受け付けた回路構造情報を不揮発性論理ゲートに関する情報が含まれたライブラリを参照してネットリストを得る構成としてもよい。このように構成して、コンピュータを、不揮発性論理ゲートを含む集積回路の設計を支援する回路設計支援システムとして動作させることによって、論理合成された否不揮発性論理基本セルと不揮発性論理基本セルとが混在する論理回路網を設計情報として得られる。
【００６６】
また、本発明にかかる論理合成プログラムが１つのＲＡＭに展開され、このプログラムに基づいて１ないし複数の制御部（ＣＰＵ）等のハードウェアを各手段として構築させて動作させる。また、このプログラムは、記憶媒体に固定的に記録されて頒布されても良い。当該記録媒体に記録されたプログラムは、有線、無線、又は記録媒体そのものを介して、メモリに読込まれ、制御部等を動作させる。尚、記録媒体を例示すれば、オプティカルディスクや磁気ディスク、半導体メモリ装置、ハードディスクなどが挙げられる。
【００６７】
また、上記実施形態では単一のコンピュータを用いて説明したが、回路設計支援システムとして情報処理システムを用いる際に、複数台のコンピュータを用いて通信ネットワークを介した通信により処理を分散させてもよいし、作業を分散させてもよい。また、クラウド環境の処理リソースを用いて論理合成等の各種処理を行う構成としてもよい。例えば、プライベートクラウドやパブリッククラウド環境で不揮発性論理回路を構築するサービスを提供可能にサーバシステムに回路設計支援システムを構築しても良い。
【００６８】
また、上記実施形態で採用したＣＭＯＳゲートは使用するゲート構造の一例であり、否不揮発性論理ゲートとしては、ＡＮＤゲートやＯＲゲート等のような基本論理ゲートセルの他、０あるいは１データに固定化するプルダウンセル、プルアップセルなどを採用しても良い。この基本論理ゲートセルは、ＣＭＯＳトランジスタに限らず、ＦｉｎＦＥＴの様な能動素子で構成されるものも含まれる。また複数種類の構造をハイブリットに採用してもよい。否不揮発性論理ゲートの種別は、設計に合せて、適した論理ゲート構造を不揮発性論理ゲートと組み合わせる否不揮発性論理ゲートとして特性を踏まえて適宜採用すれば良い。
【００６９】
本発明は、様々な観点から不揮発性論理ゲートを含む集積回路の設計最適化手法を提供している。また、この設計最適化手法は、既存の集積回路の設計を踏まえ、利用者や既存設備に対する親和性を考慮している。また、既存技術にない観点から論理回路網の最適化アルゴリズムを提供した。
【００７０】
この最適化アルゴリズムでは、各種ゲート間の論理値に基づく最適化に加え、消費電力の観点を強調した最適化をも行える。 
例えば、上述したように、個々の論理ゲートに関して、入出力信号が例え不揮発化指定されていなくとも、テストベンチ情報から当該ゲートのアクセス頻度（例えばクロックのアサート頻度や参照頻度）を解析し、その解析結果から不揮発性論理ゲートに置き換えてパワーゲーティングを行ったと仮定した場合の推定消費電力量の増減に基づいた論理ゲートの置換判断を行える。 
また、テストベンチを参照してレジスタ宣言された信号を出力に有する各々の論理ゲートについて電力Ｐｒｅｇを集計し、当該ゲートを不揮発性論理ゲートに置き換えてパワーゲーティングを行ったと仮定した場合の電力Ｐｎｖｒｅｇと対比して推定消費電力量の増減に基づいた論理ゲートの置換判断を行える。 
また、上述したように、様々な種類の仮想不揮発性論理ゲートを用いて論理合成した後に、自動的に信号ラインの組み換えや等価回路への置き換えを最適化処理として実行する。この際、仮想論理ゲートの出力端子が不揮発化指定されているか否かに基づいて、また、出力先となる仮想論理ゲートに直接入力されているか否かに基づいて、更に、ＣＭＯＳ論理ゲート等の否不揮発性論理ゲートに接続されているか否かに基づいて、構築する論理回路を切り替える。 
このように、不揮発性論理ゲートの有する特徴と否不揮発性論理ゲートの有する特徴を踏まえ、相互の特長を活かしつつ論理回路網を自動的に組み替える。
【００７１】
結果、集積回路設計に不揮発性の論理信号を適切に組み込む機能を提供でき、加えて、設計者により与えられた不揮発性論理回路網データを、より最適な不揮発性論理回路網データに変換できる。 
また、上記の実施形態の一部又は全部は、以下のようにも記載されうる。尚、以下の付記は本発明をなんら限定するものではない。
【００７２】
［付記１］
ハードウェア記述言語（ＨＤＬ）により記述された回路情報から回路構造を解析処理する回路構造解析手段と、
前記回路構造について、不揮発性素子を内蔵する不揮発性論理ゲートに関する不揮発性論理基本セルを含むセルライブラリと不揮発信号の指定情報とを参照して、前記指定情報が示した不揮発信号を含む回路構造部分に不揮発性論理ゲートを割り当てる論理合成処理を行う論理合成手段と、
論理合成された否不揮発性論理基本セルと不揮発性論理基本セルとが混在する論理回路網を設計情報として出力する出力手段と、
を含み成ることを特徴とする回路設計支援システム。
【００７３】
［付記２］
上記付記記載の回路設計支援システムにおいて、
前記論理合成手段は、否不揮発性論理ゲートに関する否不揮発性論理基本セルとして、面積及び／又はリーク電流が同種の不揮発性論理ゲートよりも小さい揮発性論理ゲートをセルライブラリから参照して取り扱うことを特徴とする回路設計支援システム。
【００７４】
［付記３］
上記付記記載の回路設計支援システムにおいて、
否不揮発性論理ゲートを含み構成された 各不揮発性論理基本セルの等価回路に関する情報を等価回路情報として含む等価回路ライブラリ、若しくは前記等価回路情報を自動生成する等価回路生成手段を含み、
前記等価回路情報を参照して、論理合成処理で得た論理回路網に含まれている不揮発性論理ゲートを 否不揮発性論理ゲートを含む等価回路に置き換えて最適化された論理回路網に再構築する論理最適化手段を含む
ことを特徴とする回路設計支援システム。
【００７５】
［付記４］
上記付記記載の回路設計支援システムにおいて、
入力されたテストベクトル情報と低電力ゲートライブラリとを参照して電力を最小化するように論理回路網の最適化を行う電力最適化手段を有し、
前記低電力ゲートライブラリは、少なくとも電源スイッチが付加された電源スイッチ付き不揮発性論理ゲートが不揮発性論理基本セルとして複数種類登録されており、付与されている前記電源スイッチのオン／オフの各々の状態における各電源スイッチ付き不揮発性論理ゲートの電力情報が記載されており、
前記電力最適化手段は、前記テストベクトル情報からレジスタ宣言された各々の信号に対して、その信号がデータ更新と参照されるそれぞれの回数と時間間隔を集計処理し、その集計結果から否不揮発性論理ゲートを用いた場合の消費電力と、電源スイッチ付不揮発性論理ゲートを用いた場合の消費電力とを比較することによって消費電力がより少ない論理ゲートを判定し、何れの論理ゲートを用いるかを決定する
ことを特徴とする回路設計支援システム。
【００７６】
［付記５］
上記付記記載の回路設計支援システムにおいて、
各不揮発性論理ゲートに関する前記不揮発性論理基本セルには、不揮発性素子にデータを書き込むストアイネーブル信号の端子と、不揮発性素子に記憶されるデータを読み出すリストアイネーブル信号の端子のいずれかを少なくとも含み、
不揮発信号に対応するストアイネーブル信号とリストアイネーブル信号が不揮発信号の指定情報内に含まれており、
前記論理合成手段は、前記不揮発性論理基本セルを用いて不揮発性論理ゲートを割り当てる際に、これら両イネーブル信号を不揮発信号の指定情報に基づいて結線する
ことを特徴とする回路設計支援システム。
【００７７】
［付記６］
上記付記記載の回路設計支援システムにおいて、
前記出力手段は、前記設計情報として、ハードウェア記述言語でレジスタ宣言された各々の信号に対して、不揮発性論理ゲートを用いる場合と否不揮発性論理ゲートを用いる場合のそれぞれの電力、面積、遅延情報をログとして出力する
ことを特徴とする回路設計支援システム。
【００７８】
［付記７］
上記付記記載の回路設計支援システムにおいて、
前記論理合成手段において合成された論理回路網に対して、不揮発性素子の保持論理値を示すストアデータ識別端子を有する仮想不揮発性論理ゲートを不揮発性論理ゲート あるいは その等価回路に置換するゲート置換手段を更に備え、
前記論理合成手段は、論理合成処理として、受け付けた前記回路構造について、仮想不揮発性論理ゲートに関する仮想不揮発性論理基本セルを含む仮想不揮発ゲートライブラリを参照対象に加えて、ハードウェア記述言語により記述された前記回路情報内でレジスタ宣言されている信号を含む回路構造部分に前記仮想不揮発性論理基本セルを割り当て処理し、
前記ゲート置換手段は、ゲート置換処理として、合成された論理回路網に対して、入力された不揮発信号の指定情報と置換ルール情報とに基づいて、含まれていた前記仮想不揮発性論理ゲート各々を不揮発性論理ゲート あるいは その等価回路に置換する
ことを特徴とする回路設計支援システム。
【００７９】
［付記８］
上記付記記載の回路設計支援システムにおいて、
前記ゲート置換手段は、指定された不揮発信号が仮想不揮発性論理ゲートの入出力端子に接続される場合に当該仮想論理ゲートを不揮発性論理ゲートに置き換える
ことを特徴とする回路設計支援システム。
【００８０】
［付記９］
上記付記記載の回路設計支援システムにおいて、
前記ゲート置換手段は、論理真理値が変化しない範囲内で、指定された不揮発信号が仮想不揮発性論理ゲートの入出力端子に優先的に接続されるように、仮想不揮発性論理ゲートの不揮発性素子の保持論理値を示すストアデータ識別端子とそれ以外の端子を入れ替える
ことを特徴とする回路設計支援システム。
【００８１】
［付記１０］
コンピュータを、不揮発性論理ゲートを含む集積回路の設計を支援する回路設計支援システムとして動作させる論理合成プログラムであって、
前記コンピュータに、
受け付けた回路構造について、不揮発性素子を内蔵する不揮発性論理ゲートに関する不揮発性論理基本セルを含むセルライブラリと不揮発信号の指定情報とを参照して、前記指定情報が示した不揮発信号を含む回路構造部分に不揮発性論理ゲートを割り当てる論理合成処理を行う論理合成処理と、
論理合成された否不揮発性論理基本セルと不揮発性論理基本セルとが混在する論理回路網を設計情報として出力する出力処理と、
を実行させることを特徴とする論理合成プログラム。
【００８２】
［付記１１］
コンピュータを、不揮発性論理ゲートを含む集積回路の設計を支援する回路設計支援システムとして動作させるプログラムであって、
このコンピュータに、
ハードウェア記述言語により記述された回路情報から回路構造を解析処理する第１のステップと、
前記回路構造について、不揮発性論理ゲート情報を含むライブラリを参照して、指定された不揮発信号に対して不揮発性論理ゲートを割り当てて論理合成処理を行う第２のステップと、
遅延、電力、面積のいずれかを最小化するように論理の最適化処理を行う第３のステップと
を実行させ、
ＣＭＯＳ論理ゲートと不揮発性論理ゲートとが混在するゲートレベルネットリストを出力させることを特徴とする論理合成プログラム。
【００８３】
［付記１２］
上記付記記載のプログラムにおいて、
前記論理合成処理は、否不揮発性論理ゲートに関する否不揮発性論理基本セルとして、面積及び／又はリーク電流が同種の不揮発性論理ゲートよりも小さい揮発性論理ゲートをセルライブラリから参照して取り扱わせることを特徴とするプログラム。
【００８４】
［付記１３］
上記付記記載のプログラムにおいて、
否不揮発性論理ゲートを含み構成された 各不揮発性論理基本セルの等価回路に関する情報を等価回路情報として含む等価回路ライブラリ、若しくは前記等価回路情報を自動生成する等価回路生成処理を実行させ、
前記等価回路情報を参照して、論理合成処理で得た論理回路網に含まれている不揮発性論理ゲートを 否不揮発性論理ゲートを含む等価回路に置き換えて最適化された論理回路網に再構築する論理最適化処理を実行させる
ことを特徴とするプログラム。
【００８５】
［付記１４］
上記付記記載のプログラムにおいて、
入力されたテストベクトル情報と低電力ゲートライブラリとを参照して電力を最小化するように論理回路網の最適化を行う電力最適化処理を実行させ、
前記低電力ゲートライブラリは、少なくとも電源スイッチが付加された電源スイッチ付き不揮発性論理ゲートが不揮発性論理基本セルとして複数種類登録されており、付与されている前記電源スイッチのオン／オフの各々の状態における各電源スイッチ付き不揮発性論理ゲートの電力情報が記載されており、
前記電力最適化処理として、前記テストベクトル情報からレジスタ宣言された各々の信号に対して、その信号がデータ更新と参照されるそれぞれの回数と時間間隔を集計処理し、その集計結果から否不揮発性論理ゲートを用いた場合の消費電力と、電源スイッチ付不揮発性論理ゲートを用いた場合の消費電力とを比較することによって消費電力がより少ない論理ゲートを判定し、何れの論理ゲートを用いるかを決定するように動作させる
ことを特徴とするプログラム。
【００８６】
［付記１５］
上記付記記載のプログラムにおいて、
各不揮発性論理ゲートに関する前記不揮発性論理基本セルには、不揮発性素子にデータを書き込むストアイネーブル信号の端子と、不揮発性素子に記憶されるデータを読み出すリストアイネーブル信号の端子のいずれかを少なくとも含み、
不揮発信号に対応するストアイネーブル信号とリストアイネーブル信号が不揮発信号の指定情報内に含まれており、
前記論理合成処理として、前記不揮発性論理基本セルを用いて不揮発性論理ゲートを割り当てる際に、これら両イネーブル信号を不揮発信号の指定情報に基づいて結線させる
ことを特徴とするプログラム。
【００８７】
［付記１６］
上記付記記載のプログラムにおいて、
前記出力処理として、前記設計情報として、ハードウェア記述言語でレジスタ宣言された各々の信号に対して、不揮発性論理ゲートを用いる場合と否不揮発性論理ゲートを用いる場合のそれぞれの電力、面積、遅延情報をログとして出力させる
ことを特徴とするプログラム。
【００８８】
［付記１７］
上記付記記載のプログラムにおいて、
前記論理合成処理において合成された論理回路網に対して、不揮発性素子の保持論理値を示すストアデータ識別端子を有する仮想不揮発性論理ゲートを不揮発性論理ゲート あるいは その等価回路に置換するゲート置換処理を更に実行させ、
前記論理合成処理として、論理合成処理として、受け付けた前記回路構造について、仮想不揮発性論理ゲートに関する仮想不揮発性論理基本セルを含む仮想不揮発ゲートライブラリを参照対象に加えて、ハードウェア記述言語により記述された前記回路情報内でレジスタ宣言されている信号を含む回路構造部分に前記仮想不揮発性論理基本セルを割り当て処理させ、
前記ゲート置換処理として、ゲート置換処理として、合成された論理回路網に対して、入力された不揮発信号の指定情報と置換ルール情報とに基づいて、含まれていた前記仮想不揮発性論理ゲート各々を不揮発性論理ゲート あるいは その等価回路に置換させる
ことを特徴とするプログラム。
【００８９】
［付記１８］
上記付記記載のプログラムにおいて、
前記ゲート置換処理として、指定された不揮発信号が仮想不揮発性論理ゲートの入出力端子に接続される場合に当該仮想論理ゲートを不揮発性論理ゲートに置き換えさせる
ことを特徴とするプログラム。
【００９０】
［付記１９］
上記付記記載のプログラムにおいて、
前記ゲート置換処理として、論理真理値が変化しない範囲内で、指定された不揮発信号が仮想不揮発性論理ゲートの入出力端子に優先的に接続されるように、仮想不揮発性論理ゲートの不揮発性素子の保持論理値を示すストアデータ識別端子とそれ以外の端子を入れ替えさせる
ことを特徴とするプログラム。
【００９１】
［付記２０］
上記付記記載のプログラムにおいて、
前記コンピュータを、クラウド環境下で不揮発性論理回路を構築するサービスを提供させるように、動作させることを特徴とするプログラム。
【００９２】
［付記２１］
ハードウェア記述言語により記述された回路情報を受け付けて回路構造を解析処理し、
前記回路構造について、不揮発性素子を内蔵する不揮発性論理ゲート情報を含むライブラリと不揮発信号の指定情報とを参照して、前記指定情報が示した不揮発信号を含む回路構造部分に不揮発性論理ゲートを割り当て 他の回路構造部分に否不揮発性論理ゲートを割り当てたように論理合成処理し、
論理合成された否不揮発性論理基本セルと不揮発性論理基本セルとが混在する論理回路網を設計情報として出力する
ことを特徴とする情報処理システムによる不揮発性論理集積回路論理合成方法。
【符号の説明】
【００９３】
１０、２０、３０  回路設計支援システム
１０１  ＨＤＬ記述入力手段（入力部）
１０２  回路構造解析手段（回路構造解析部）
１０３  論理合成手段（論理合成部）
１０４  論理最適化手段（論理最適化部）
１０５  ネットリスト出力手段（出力部）
１０６  等価回路生成手段（等価回路生成部）
１０７  電力最適化手段（電力最適化部，論理回路網最適化手段）
１０８  ゲート置換手段（ゲート置換部，論理回路網最適化手段）
１１０  ライブラリ
１１１  不揮発ゲートライブラリ
１１２  ＣＭＯＳゲートライブラリ
１１３  仮想不揮発ゲートライブラリ
【図１】
2014225134.tif 000003
【図２】
2014225134.tif 000004
【図３】
2014225134.tif 000005
【図４】
2014225134.tif 000006
【図５】
2014225134.tif 000007
【図６】
2014225134.tif 000008
【図７】
2014225134.tif 000009
【図８】
2014225134.tif 000010
【図９】
2014225134.tif 000011
【図１０】
2014225134.tif 000012
【図１１】
2014225134.tif 000013
【図１２】
2014225134.tif 000014
【図１３】
2014225134.tif 000015
【図１４】
2014225134.tif 000016
【図１５】
2014225134.tif 000017
【図１６】
2014225134.tif 000018
【図１７】
2014225134.tif 000019
【図１８】
2014225134.tif 000020
【図１９】
2014225134.tif 000021
【図２０】
2014225134.tif 000022
【図２１】
2014225134.tif 000023
【図２２】
2014225134.tif 000024
【図２３】
2014225134.tif 000025