(57)【要約】【課題】同期リセット信号を容易かつ確実に抽出すること。【解決手段】ドメイン抽出手段２は、設計対象の回路における順序回路の同期リセット信号の候補となる信号のドメインを抽出する。例えば、図１に示す回路５では、Ｄフリップフロップ６のイネーブル端子からバックトレースし、外部入力端子に到達している。そしてその端子の信号（Ｃｌｅａｒ）をドメインとして抽出する。測定手段３は、抽出されたドメインの信号の論理を変化させて順序回路に入力される信号値を測定する。図１に示す回路５では、信号（Ｃｌｅａｒ）の論理を変化させてＤフリップフロップ６に入力される信号値を測定する。同期リセット判定手段４は、測定手段３によって測定された信号値に基づいて同期リセット信号が存在するか否かを判定する。【選択図】図１
2010211550.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータを、
順序回路の同期リセット信号の候補となる信号のドメインを抽出するドメイン抽出手段、
抽出された前記ドメインの信号の論理を変化させて前記順序回路に入力される信号値を測定する測定手段、
前記測定手段によって測定された信号値に基づいて同期リセット信号が存在するか否かを判定する同期リセット判定手段、
として機能させることを特徴とする回路設計プログラム。
【請求項２】
前記順序回路にイネーブル端子が存在する場合、前記ドメイン抽出手段は、前記イネーブル端子からバックトレースし、外部入力端子、他の順序回路またはブラックボックスに到達した端子の信号のドメインを抽出することを特徴とする請求項１記載の回路設計プログラム。
【請求項３】
前記順序回路にイネーブル端子が存在しない場合、前記ドメイン抽出手段は、前記順序回路の出力信号の論理に関係する条件の属する信号のドメインを抽出することを特徴とする請求項１記載の回路設計プログラム。
【請求項４】
前記測定手段は、抽出された前記ドメイン以外のネット信号に不定の論理を与えて前記信号値を測定することを特徴とする請求項１記載の回路設計プログラム。
【請求項５】
前記同期リセット判定手段は、前記順序回路に入力される信号値が、定数、かつ、前記定数が全て同一である場合、同期リセット信号が存在すると判定することを特徴とする請求項１記載の回路設計プログラム。
【請求項６】
前記コンピュータを、さらに、前記同期リセット判定手段により、同期リセット信号が存在すると判定された前記ドメインのネット信号の論理を最適化する論理最適化手段として機能させることを特徴とする請求項１記載の回路設計プログラム。
【請求項７】
コンピュータが実行する、
ドメイン抽出手段が、順序回路の同期リセット信号の候補となる信号のドメインを抽出し、
測定手段が、抽出された前記ドメインの信号の論理を変化させて前記順序回路に入力される信号値を測定し、
同期リセット判定手段が、前記測定手段によって測定された信号値に基づいて同期リセット信号が存在するか否かを判定する、
ことを特徴とする回路設計方法。
【請求項８】
順序回路の同期リセット信号の候補となる信号のドメインを抽出するドメイン抽出部と、
抽出された前記ドメインの信号の論理を変化させて前記順序回路に入力される信号値を測定する測定部と、
前記測定部によって測定された信号値に基づいて同期リセット信号が存在するか否かを判定する同期リセット判定部と、
を有することを特徴とする回路設計装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、回路設計プログラム、回路設計方法および回路設計装置に関する。
【背景技術】
【０００２】
主に、回路内で異常を検出したときに内部で生成したり、外部から入力したりしたときに、Ｄフリップフロップ等の順序回路を初期化するために使用するリセット信号が知られている。
【０００３】
リセット信号には、同期リセット信号と非同期リセット信号の２つが存在する。同期リセット信号は、クロックに同期してフリップフロップを初期化する。また、非同期リセット信号は、クロック信号に無関係にリセット信号がＯＮになったときにフリップフロップを初期化する。
【０００４】
同期リセット信号は、現状では必要により人手で設定しているが、設定箇所が多く、設定漏れが存在したり、リセット状態になる固定値の設定に間違いが混入しやすかったりする。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平１０−３４０２８９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
非同期リセット信号を入力するフリップフロップには、非同期リセット入力端子が設けられており、非同期リセット信号は、直接、この入力端子に入力される。このため、非同期リセット信号は、フリップフロップのデータ入力を生成する論理に影響することはない。
【０００７】
一方、同期リセット信号は、フリップフロップのデータ入力を生成する論理に影響を与える。例えば、異なるクロックで動作する回路の間でデータを転送する際に、誤動作等の問題が起きるかどうかをチェックする非同期構造チェックが知られている。このチェックでは、メタ・ステーブルの発生等を防止するために挿入した同期化回路（シンクロナイザ等）が、予め設定したルールに基づいて挿入されているかをチェックする。このチェックの際に、同期リセット信号の影響で、擬似エラー（実際には起こり得ない動作や事象に対してツールがエラー・レポートを出力する状況）が発生することがある。この疑似エラーが発生すると設計者が回路を見直す必要が生じる。
【０００８】
また、論理合成においては、最適化によりリセットがかからない回路が生成されることがあり、やはりエラーが発生してしまい、設計者が回路を見直す必要が生じる。
本発明はこのような点に鑑みてなされたものであり、同期リセット信号を容易かつ確実に抽出することができる回路設計プログラム、回路設計方法および回路設計装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記目的を達成するために、開示の回路設計プログラムが提供される。この回路設計プログラムは、コンピュータを、ドメイン抽出手段、測定手段、および同期リセット判定手段として機能させる。
【００１０】
ドメイン抽出手段は、順序回路の同期リセット信号の候補となる信号のドメインを抽出する。
測定手段は、抽出されたドメインの信号の論理を変化させて順序回路に入力される信号値を測定する。
【００１１】
同期リセット判定手段は、測定手段によって測定された信号値に基づいて同期リセット信号が存在するか否かを判定する。
【発明の効果】
【００１２】
開示の回路設計プログラムによれば、同期リセット信号を容易かつ確実に抽出することができる。
【図面の簡単な説明】
【００１３】
【図１】実施の形態の回路設計装置の概要を示す図である。
【図２】回路設計装置のハードウェア構成例を示す図である。
【図３】回路設計装置の構成を示すブロック図である。
【図４】同期リセット抽出部の機能を示すブロック図である。
【図５】Ｄフリップフロップにイネーブル端子が存在する場合のドメイン抽出部の処理を示す図である。
【図６】Ｄフリップフロップにイネーブル端子が存在しない場合のドメイン抽出部の処理を示す図である。
【図７】同期リセット判定部の処理を説明する図である。
【図８】同期リセット抽出部の全体処理を示すフローチャートである。
【図９】Ｄフリップフロップにイネーブル端子が存在する場合のドメイン抽出部の処理を示すフローチャートである。
【図１０】Ｄフリップフロップにイネーブル端子が存在しない場合のドメイン抽出部の処理を示すフローチャートである。
【図１１】判定処理を示すフローチャートである。
【図１２】同期リセット抽出処理の具体例を示す図である。
【図１３】同期リセット抽出処理の具体例を示す図である。
【図１４】同期リセット抽出処理の具体例を示す図である。
【図１５】同期リセット抽出処理の具体例を示す図である。
【図１６】抽出した同期リセットを回路設計に適用する場合の処理フローを示す図である。
【図１７】非同期構造チェック部にレポートを読み込ませたときの例を示す図である。
【図１８】非同期構造チェック部の処理を示すフローチャートである。
【図１９】論理合成部にレポートを読み込ませたときの例を示す図である。
【発明を実施するための形態】
【００１４】
以下、実施の形態を、図面を参照して詳細に説明する。
まず、実施の形態の回路設計装置について説明し、その後、実施の形態をより具体的に説明する。
【００１５】
図１は、実施の形態の回路設計装置の概要を示す図である。
実施の形態の回路設計プログラムは、コンピュータ（回路設計装置）１を、ドメイン抽出手段２、測定手段３、および同期リセット判定手段４として機能させる。
【００１６】
ドメイン抽出手段２は、設計対象の回路における順序回路の同期リセット信号の候補となる信号のドメインを抽出する。
具体的には、順序回路にイネーブル端子が存在する場合、ドメイン抽出手段２は、イネーブル端子からバックトレースし、外部入力端子、他の順序回路またはブラックボックスに到達した端子の信号をドメインとして抽出するのが好ましい。これにより、ドメインを容易かつ確実に抽出することができる。
【００１７】
例えば、図１に示す回路５では、Ｄフリップフロップ６のイネーブル端子からバックトレースし、インバータ７およびＡＮＤ回路８を経由して外部入力端子に到達している。そしてその端子の信号（Ｃｌｅａｒ）をドメインとして抽出する。
【００１８】
また、図１には図示していないが、順序回路にイネーブル端子が存在しない場合、ドメイン抽出手段２は、順序回路の出力信号の論理に関係する条件の属する信号のドメインを抽出するのが好ましい。これにより、フリップフロップのドメインを容易かつ確実に抽出することができる。
【００１９】
測定手段３は、抽出されたドメインの信号の論理を変化させて順序回路に入力される信号値を測定する。図１に示す回路５では、信号（Ｃｌｅａｒ）の論理を変化させてＤフリップフロップ６に入力される信号値を測定する。
【００２０】
同期リセット判定手段４は、測定手段によって測定された信号値に基づいて同期リセット信号が存在するか否かを判定する。具体的には、順序回路に入力される信号値が、定数、かつ、定数が全て同一である場合、同期リセット信号が存在すると判断するのが好ましい。これにより、リセット信号が存在するか否かを確実に判定することができる。
【００２１】
このような回路設計装置１によれば、ドメイン抽出手段２によりドメインを抽出し、同期リセット判定手段４により、同期リセット信号が存在するか否かを判定することで、同期リセット信号を容易かつ確実に抽出することができる。
【００２２】
以下、実施の形態をより具体的に説明する。
図２は、回路設計装置のハードウェア構成例を示す図である。
回路設計装置１０は、ＣＰＵ（Central Processing Unit）１０１によって装置全体が制御されている。ＣＰＵ１０１には、バス１０８を介してＲＡＭ（Random Access Memory）１０２、ハードディスクドライブ（ＨＤＤ:Hard Disk Drive）１０３、グラフィック処理装置１０４、入力インタフェース１０５、外部補助記憶装置１０６および通信インタフェース１０７が接続されている。
【００２３】
ＲＡＭ１０２には、ＣＰＵ１０１に実行させるＯＳ（Operating System）のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ１０２には、ＣＰＵ１０１による処理に必要な各種データが格納される。ＨＤＤ１０３には、ＯＳやアプリケーションプログラムが格納される。また、ＨＤＤ１０３内には、プログラムファイルが格納される。
【００２４】
グラフィック処理装置１０４には、モニタ１０４ａが接続されている。グラフィック処理装置１０４は、ＣＰＵ１０１からの命令に従って、画像をモニタ１０４ａの画面に表示させる。入力インタフェース１０５には、キーボード１０５ａとマウス１０５ｂとが接続されている。入力インタフェース１０５は、キーボード１０５ａやマウス１０５ｂから送られてくる信号を、バス１０８を介してＣＰＵ１０１に送信する。
【００２５】
外部補助記憶装置１０６は、記録媒体に書き込まれた情報を読み取ったり、記録媒体に情報を書き込んだりする。外部補助記憶装置１０６で読み書きが可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等が挙げられる。磁気記録装置としては、例えば、ＨＤＤ、フレキシブルディスク（ＦＤ）、磁気テープ等が挙げられる。光ディスクとしては、例えば、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ（Random Access Memory）、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）等が挙げられる。光磁気記録媒体としては、例えば、ＭＯ（Magneto-Optical disk）等が挙げられる。
【００２６】
通信インタフェース１０７は、ネットワーク３０に接続されている。通信インタフェース１０７は、ネットワーク３０を介して、他のコンピュータとの間でデータの送受信を行う。
【００２７】
以上のようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。このようなハードウェア構成の回路設計装置１０内には、以下のような機能が設けられる。
【００２８】
図３は、回路設計装置の構成を示すブロック図である。
回路設計装置１０は、ＨＤＬ記述格納部１１と、ライブラリ格納部１２と、同期リセット抽出部１３と、同期リセット格納部１４とを有している。
【００２９】
ＨＤＬ記述格納部１１は、ＲＴＬ（Register Transfer Level）またはネットリスト等の設計対象の回路に関するハードウェア記述言語（Hardware Description Language:HDL）で表したＨＤＬ記述を格納している。
【００３０】
ライブラリ格納部１２は、ネットリストの部品情報やピンアサインに一致するライブラリを格納している。
同期リセット抽出部１３は、ハードウェア記述言語のフリップフロップ記述部分を取り出して、そのフリップフロップのイネーブル端子の有無によって異なる方法で同期リセット記述部分を抽出（以下、単に「同期リセットを抽出」と言う）する。
【００３１】
同期リセット格納部１４は、同期リセット抽出部１３によって抽出された同期リセットの信号名やリセット値を格納する。
次に、同期リセット抽出部１３の機能を説明する。
【００３２】
図４は、同期リセット抽出部の機能を示すブロック図である。
同期リセット抽出部１３は、ドメイン抽出部１３１と、ドメイン一覧格納部１３２と、定数伝播部１３３と、同期リセット判定部１３４とを有している。
【００３３】
ドメイン抽出部１３１は、Ｄフリップフロップにイネーブル端子が存在するか否かにより異なった抽出方法でドメインを抽出する。ここで、イネーブル端子は、ＲＴＬ記述を読み込み、パーズ（文法違反のチェック）、およびエラボレート（モジュールの階層チェック）を行った後の簡易合成により、Ｄフリップフロップの出力データが決定する条件が全て網羅されていない場合、網羅されない条件として生成される端子である。
【００３４】
まず、Ｄフリップフロップにイネーブル端子が存在する場合のドメイン抽出部１３１の処理を説明する。
ドメイン抽出部１３１は、Ｄフリップフロップのイネーブル端子から組み合わせ論理をバックトレースし、外部入力端子、Ｄフリップフロップ出力端子またはブラックボックスに到達した端子の属するネット信号をドメインとして抽出する。抽出したドメインは、ドメイン一覧格納部１３２に格納する。ここで、ブラックボックスとは、ＨＤＬ記述が存在しない、または、ＰＬＬ、Ｉ／Ｏ等合成スタイルに則っていないＲＴＬ記述を言う。
【００３５】
図５は、Ｄフリップフロップにイネーブル端子が存在する場合のドメイン抽出部の処理を示す図である。
図５に示す回路２０は、セレクタＳｅｌ１とレジスタＲｅｇ１とを備えるＤフリップフロップ２１と、Ｃｌｅａｒ信号をＤフリップフロップ２１に供給するＡＮＤ回路ＡＮＤ１およびＡＮＤ回路ＡＮＤ２と、インバータＩｎｖ１〜Ｉｎｖ３とを有している。
【００３６】
レジスタＲｅｇ１には、クロック信号（ｃｌｋ）が供給されている。
図５に示す例では、ドメイン抽出部１３１は、イネーブル端子Ｅからバックトレースを開始する。すると、インバータＩｎｖ１を経由してＡＮＤ回路ＡＮＤ２に到達する。
【００３７】
ＡＮＤ回路ＡＮＤ２は、外部入力端子、Ｄフリップフロップ出力端子またはブラックボックスのいずれにも該当しないので、ＡＮＤ回路ＡＮＤ２の入力側から再度バックトレースを開始する。すると、インバータＩｎｖ２を経由して到達したネット信号（Ｃｌｅａｒ）を抽出する。
【００３８】
次に、ドメイン抽出部１３１は、イネーブル端子Ｅから再びバックトレースを開始する。すると、インバータＩｎｖ１を経由してＡＮＤ回路ＡＮＤ２に到達する。ＡＮＤ回路ＡＮＤ２の入力側から再度バックトレースを開始する。すると、インバータＩｎｖ３を経由して到達したネット信号（ＩｎＣｔｒｌ）を抽出する。
【００３９】
次に、Ｄフリップフロップにイネーブル端子が存在しない場合のドメイン抽出部１３１の処理を説明する。
図６は、Ｄフリップフロップにイネーブル端子が存在しない場合のドメイン抽出部の処理を示す図である。
【００４０】
ドメイン抽出部１３１は、ＲＴＬ記述を読み込み、パーズ・エラボレート後に、その記述の制御とデータの流れを示すＣＤＦＧ（Control Data Flow Graph）を作成する。そして、Ｄフリップフロップとなる信号の論理に関係する条件（コントロール）の属するネット信号をドメインとして抽出する。抽出したドメインは、ドメイン一覧格納部１３２に格納する。
【００４１】
図６に示す例では、ＲＴＬ記述３１を読み込んで作成されたＣＤＦＧ３２を図示している。
ｉｆ文やＣａｓｅ文等の分岐条件がコントロール部（図６中、三角の部分）になる。また、代入文がデータ部（図６中、四角い部分）になる。
【００４２】
ドメイン抽出部１３１は、ＣＤＦＧ３２から、Ｄフリップフロップとなる信号（Ｏｕｔｄａｔａ）の論理に関係する条件の属するネット信号（ＣｌｅａｒおよびＩｎＣｔｒｌ）をドメインとして抽出する。
【００４３】
定数伝播部１３３は、抽出したドメインに全パターン（２のべき乗）の定数を設定する。そして、シミュレーションにより、定数を伝播させる。具体的には、抽出したドメインのネット信号に「０」および「１」を与える。また、それ以外のネット信号に論理「Ｘ」を与える。
【００４４】
そして、ドメインの全パターンについて、シミュレーションによる定数伝播を行い、Ｄフリップフロップ入力のネット信号値を観測する。
図５に示す回路２０を用いて定数伝播の観測処理を説明すると、抽出したドメインのネット信号（ＣｌｅａｒおよびＩｎＣｔｒｌ）にそれぞれ「０」および「１」を与える。また、それ以外のネット信号（ＩｎＤａｔａ）に論理「Ｘ」を与える。そして、ドメインの全パターン２2数＝４について、シミュレーションを行って定数を伝播させ、Ｄフリップフロップ２１の入力端子Ｄのネット信号値を観測する。
【００４５】
同期リセット判定部１３４は、ドメインの全パターンのシミュレーション結果で、観測箇所のＤフリップフロップ入力が定数（０または１）となることがあり、かつ、定数の値が全て同一である場合、同期リセット信号が、抽出したドメインの中に存在すると判定する。
【００４６】
また、同期リセット判定部１３４は、同期リセット信号が存在すると判定した場合、Ｄフリップフロップ入力が定数となるドメインの入力パターンをＡＮＤ論理とし、定数となるパターン数分のＯＲ論理として論理式を生成する。そして、その論理式の論理最適化を行う。そして、論理最適化した論理式に残った信号を同期リセット信号として、論理式の信号が肯定・否定によりリセット値を「１」・「０」として抽出する。
【００４７】
図７は、同期リセット判定部の処理を説明する図である。
図７に示すテーブル４１は、観測結果を示すテーブル（表）である。
テーブル４１は、ドメインのネット信号、ドメイン以外のネット信号および観測するＤＦＦ入力の欄が設けられており、横方向に並べられた情報同士が互いに関連づけられている。
【００４８】
ドメインのネット信号の欄には、抽出されたドメインを識別するドメイン名が設定されている。そして、その下部には観測処理にてドメインのネット信号に与えた論理のパターンが設定されている。
【００４９】
ドメイン以外のネット信号の欄には、ドメイン以外のネット信号を識別する信号名が設定されている。そして、その下部にはその信号名が取り得る論理のパターンが設定されている。
【００５０】
ＤＦＦ入力の欄には、ドメインのネット信号の欄に設定された論理のパターンが入力されたときのＤフリップフロップの入力端子で観測された値が設定されている。
図７に示す例では、観測箇所のＤフリップフロップの入力端子の論理が、テーブル４１の３番目および４番目のパターンにていずれも「０」になっている。このため、観測箇所のＤフリップフロップの入力が定数（０または１）となることがあり、かつ、定数の値が全て同一であるという条件を満たしている。従って、同期リセット判定部１３４は、同期リセット信号が存在すると判定する。
【００５１】
そして、Ｄフリップフロップの入力端子の論理が定数となるドメインの論理のパターン（図７中、３番目および４番目のパターン）をＡＮＤ論理とし、定数となるパターン数分のＯＲ論理として論理式を生成する。そして、生成された論理式（Clear & ~InCtrl + Clear & InCtrl）から論理最適化した論理式（Clear）に残ったネット信号（Clear）を同期リセット信号として抽出する。
【００５２】
次に、同期リセット抽出部１３の全体処理を説明する。
図８は、同期リセット抽出部の全体処理を示すフローチャートである。
まず、同期リセット抽出対象のＤフリップフロップを取り出す（ステップＳ１）。
【００５３】
次に、ドメイン抽出部１３１が、取り出したＤフリップフロップのドメインを抽出する（ステップＳ２）。
次に、定数伝播部１３３が、定数伝播の観測を行う（ステップＳ３）。すなわち、ドメインに定数値、それ以外に「Ｘ」を設定し、シミュレーション後のＤフリップフロップの入力端子の論理を観測する。
【００５４】
次に、同期リセット判定部１３４が、判定処理を行う（ステップＳ４）。
以上で全体処理の説明を終了する。
次に、イネーブル端子が存在するＤフリップフロップのドメイン抽出部１３１の処理を説明する。
【００５５】
図９は、Ｄフリップフロップにイネーブル端子が存在する場合のドメイン抽出部の処理を示すフローチャートである。
まず、Ｄフリップフロップのイネーブル端子からバックトレースを行う（ステップＳ１１）。
【００５６】
次に、バックトレースが終了したか否かを判断する（ステップＳ１２）。
バックトレースが終了した場合（ステップＳ１２のＹｅｓ）、ドメイン抽出処理を終了する。
【００５７】
一方、バックトレースが終了していない場合（ステップＳ１２のＮｏ）、到達したポイントをチェックする（ステップＳ１３）。
そして、到達したポイントが外部入力、フリップフロップまたはブラックボックスのいずれか否かを判断する（ステップＳ１４）。
【００５８】
ポイントが、外部出力、フリップフロップまたはブラックボックスのいずれかではない場合、到達したポイントの入力側からバックトレースする（ステップＳ１５）。その後、ステップＳ１２に移行し、ステップＳ１２以降の処理を引き続き行う。
【００５９】
一方、ポイントが、外部出力、フリップフロップまたはブラックボックスのいずれかである場合（ステップＳ１４のＹｅｓ）、到達したネット信号をドメインとしてドメイン一覧格納部１３２に格納（追加）する（ステップＳ１６）。その後、ステップＳ１２に移行し、ステップＳ１２以降の処理を引き続き行う。
【００６０】
以上でドメイン抽出部１３１の処理の説明を終了する。
次に、イネーブル端子が存在しないＤフリップフロップのドメイン抽出部１３１の処理を説明する。
【００６１】
図１０は、Ｄフリップフロップにイネーブル端子が存在しない場合のドメイン抽出部の処理を示すフローチャートである。
まず、ＣＤＦＧからＤフリップフロップの条件信号を抽出する（ステップＳ２１）。
【００６２】
次に、Ｄフリップフロップの条件信号の抽出が終了したか否かを判断する（ステップＳ２２）。
抽出が終了した場合（ステップＳ２２のＹｅｓ）、処理を終了する。
【００６３】
一方、抽出が終了していない場合（ステップＳ２２のＮｏ）、Ｄフリップフロップ信号のコントロールを抽出する（ステップＳ２３）。
そして、抽出した条件信号をドメインとしてドメイン一覧格納部１３２に格納（追加）する（ステップＳ２４）。その後、ステップＳ２２に移行し、ステップＳ２２以降の処理を引き続き行う。
【００６４】
以上でドメイン抽出部の処理の説明を終了する。
次に、ステップＳ４の判定処理を説明する。
図１１は、判定処理を示すフローチャートである。
【００６５】
まず、観測結果を示すテーブル４１を読み込む（ステップＳ３１）。
次に、テーブル４１の、あるビットのＤＦＦ入力の信号値が定数値か否かを判断する（ステップＳ３２）。
【００６６】
ＤＦＦ入力の観測値が定数値ではない場合（ステップＳ３２のＮｏ）、ステップＳ３５に移行する。
一方、ＤＦＦ入力の観測値が定数値である場合（ステップＳ３２のＹｅｓ）、ドメインに設定したパターンよりＡＮＤ論理を生成する（ステップＳ３３）。
【００６７】
次に、生成したＡＮＤ論理をＯＲ論理に追加する（ステップＳ３４）。
次に、全てのパターンの論理式を生成したか否かを判断する（ステップＳ３５）。
全てのパターンの論理式を生成していない場合（ステップＳ３５のＮｏ）、ステップＳ３２に移行し、次のビットのＤＦＦ入力の観測値について、ステップＳ３２以降の処理を引き続き行う。
【００６８】
一方、全てのパターンの論理式を生成した場合（ステップＳ３５のＹｅｓ）、生成した論理式を最適化する（ステップＳ３６）。そして、論理式に残った信号を同期リセット信号として抽出する。
【００６９】
以上で判定処理の説明を終了する。なお、判定処理は、フリップフロップの１ビット毎に行う。
次に、同期リセット抽出処理の具体例を説明する。
【００７０】
＜具体例１＞
図１２は、同期リセット抽出処理の具体例を示す図である。
図１２（ａ）に示すＲＴＬ記述３１ａは、定数が出力に代入されている。すなわち、入力信号はないが、制御信号でフリップフロップの「０」、「１」を変える。具体的には、ＩｎＣｔｒｌ１のときに１になる。Ｉｎｃｔｒｌ２のときに「０」になる。
【００７１】
ドメイン抽出部１３１は、ＲＴＬ記述３１ａからネット信号（ＩｎＣｔｒｌ１およびＩｎＣｔｒｌ２）をドメインとして抽出する。
そして、同期リセット判定部１３４は、図１２（ｂ）に示す、定数伝播部１３３が定数伝播の観測処理を行って得られたテーブル４１ａを参照する。すると、Ｄフリップフロップの入力端子の論理が定数になることはあるが、定数の値が同一ではないため同期リセットが存在しないと判定する。
【００７２】
＜具体例２＞
図１３は、同期リセット抽出処理の具体例を示す図である。
ドメイン抽出部１３１は、図１３（ａ）に示すＲＴＬ記述３１ｂからネット信号（Ｃｌｅａｒ、ＩｎｉｔおよびＩｎＣｔｒｌ）をドメインとして抽出する。
【００７３】
そして、同期リセット判定部１３４は、図１３（ｂ）に示す、定数伝播部１３３が定数伝播の観測処理を行って得られたテーブル４１ｂを参照する。すると、Ｄフリップフロップの入力端子の論理が３番目〜８番目のパターンにていずれも同一の定数「０」になっている。
【００７４】
このため、定数となるドメインの論理のパターンをＡＮＤ論理とし、定数となるパターン数分のＯＲ論理として生成される論理式（~Clear & Init & ~InCtrl + ~Clear & Init & InCtrl + Clear & ~Init & ~InCtrl + Clear & ~Init & InCtrl + Clear & Init & ~InCtrl + Clear & Init & InCtrl）から論理最適化した論理式（Clear + Init）に残ったネット信号（Clear，Init）を同期リセット信号として抽出する。リセット値は、ともに「１」である。
【００７５】
＜具体例３＞
図１４は、同期リセット抽出処理の具体例を示す図である。
ドメイン抽出部１３１は、図１４（ａ）に示すＲＴＬ記述３１ｃからネット信号（Ｃｌｅａｒ、ＩｎｉｔおよびＩｎＣｔｒｌ）をドメインとして抽出する。
【００７６】
そして、同期リセット判定部１３４は、図１４（ｂ）に示す、定数伝播部１３３が定数伝播の観測処理を行って得られたテーブル４１ｃを参照する。すると、Ｄフリップフロップの入力端子の論理が７番目および８番目のパターンにていずれも「０」になっている。
【００７７】
このため、定数となるドメインの論理のパターンをＡＮＤ論理とし、定数となるパターン数分のＯＲ論理として生成される論理式（Clear & Init & ~InCtrl + Clear & Init & InCtrl）から論理最適化した論理式（Clear & Init）に残ったネット信号（Clear，Init）を同期リセット信号として抽出する。リセット値は、ともに「１」である。
【００７８】
＜具体例４＞
図１５は、同期リセット抽出処理の具体例を示す図である。
ドメイン抽出部１３１は、図１５（ａ）に示すＲＴＬ記述３１ｄからネット信号（ＣｌｅａｒおよびＩｎＣｔｒｌ）をドメインとして抽出する。
【００７９】
そして、同期リセット判定部１３４は、図１５（ｂ）に示す、定数伝播部１３３が定数伝播の観測処理を行って得られたテーブル４１ｄを参照する。すると、Ｄフリップフロップの入力端子の論理が定数になることがないため同期リセットが存在しないと判定する。
【００８０】
以上述べたように、回路設計装置１０によれば、同期リセット抽出部１３が同期リセットを抽出するようにした。これにより、例えば、疑似エラーに対し、抽出した同期リセット信号とその値を入力することにより、そのエラーを設計者に通知しないようにすることで、設計者の手間を省くことができる。
【００８１】
また、同期リセット信号を指定することで、フリップフロップのデータ入力前にリセットのかからない論理を生成せずに論理合成することで、エラーの発生を防止することができる。以下具体例を用いて説明する。
【００８２】
図１６は、抽出した同期リセットを回路設計に適用する場合の処理フローを示す図である。
回路設計装置１０は、さらに、設計仕様格納部５１と、ＲＴＬ設計部５２と、記述スタイルチェック部５３と、非同期構造チェック部５４と、論理合成部５５と、ネットリスト格納部５６とを有している。
【００８３】
なお、図１６では、ライブラリ格納部１２および同期リセット抽出部１３の図示を省略している。
ＲＴＬ設計部５２は、設計仕様格納部５１に格納されている設計仕様からＲＴＬを設計する。設計したＲＴＬ設計記述のＨＤＬをＨＤＬ記述格納部１１に格納する。
【００８４】
記述スタイルチェック部５３は、ＲＴＬ設計記述の文法エラーや、文法エラーにならない問題点をチェックする。
非同期構造チェック部５４は、同期リセット格納部１４に格納されている同期リセットの信号名やリセット値に基づいて、異なるクロックで動作する回路間でデータを転送する際に、誤動作等の問題が起こるか否かをチェックする。
【００８５】
論理合成部５５は、同期リセット格納部１４に格納されている同期リセットの信号名やリセット値に基づいて論理合成を行い、ＲＴＬからゲートレベルのネットリストを生成する。
【００８６】
図１７は、非同期構造チェック部にレポートを読み込ませたときの例を示す図である。
周波数が異なるクロック信号（Ｔｃｌｋ）およびクロック信号（Ｒｃｌｋ）でデータを転送する場合、メタ・ステーブルが発生することがある。これを防ぐためにクロックＲｃｌｋ（受信側のクロック）でＤフリップフロップ２１、２１ａを２つ並べて二段受けするシンクロナイザ６１が設けられている。図１７に示すようにＤフリップフロップ２１、２１ａ間に同期リセットを挿入するＡＮＤ回路ＡＮＤ３が配置される場合がある。
【００８７】
メタ・ステーブルを回避するためには、Ｄフリップフロップ２１、２１ａ間に論理があるのは好ましくないため、非同期構造チェック部５４はエラーを検出する。しかし、ネット信号（Ｃｌｅａｒ）からＡＮＤ回路ＡＮＤ１およびＡＮＤ回路ＡＮＤ３に至る経路は、クリアがかからなければ回路６０には何も影響しないが、同期リセットの影響で、シンクロナイザ６１に論理が存在するという疑似エラーが発生するからである。
【００８８】
回路設計装置１０によれば、ＡＮＤ回路ＡＮＤ１およびＡＮＤ回路ＡＮＤ３に入力されるＣｌｅａｒ信号が、同期リセット信号であることを抽出し、そのレポートを非同期構造チェック部５４に読み込ませることでＡＮＤ回路ＡＮＤ１およびＡＮＤ回路ＡＮＤ３を無視することができ、そのエラーを設計者に通知しないようにすることで、設計者の手間を省くことができる。
【００８９】
次に、非同期構造チェック部５４の処理を詳しく説明する。
図１８は、非同期構造チェック部の処理を示すフローチャートである。
まず、同期リセットがＯＮにならない（抽出したリセット値の反対）値をネットに設定して定数を伝播する（ステップＳ４１）。
【００９０】
次に、非同期パスを抽出する（ステップＳ４２）。
次に、非同期パスの前後に論理が存在するか否かを判断する（ステップＳ４３）。
非同期パスの前後に論理が存在しない場合（ステップＳ４３のＮｏ）、ステップＳ４６に移行する。
【００９１】
一方、非同期パスの前後に論理が存在する場合（ステップＳ４３のＹｅｓ）、多入力で１入力以外が定数か否かを判断する（ステップＳ４４）。
多入力で１入力以外が定数ではない場合（ステップＳ４４のＮｏ）、ステップＳ４６に移行する。
【００９２】
一方、多入力で１入力以外が定数の場合（ステップＳ４４のＹｅｓ）、当該論理にマークをつける（ステップＳ４５）。
次に、全ての非同期パスを抽出したか否かを判断する（ステップＳ４６）。
【００９３】
全て抽出していない場合（ステップＳ４６のＮｏ）、ステップＳ４２に移行し、ステップＳ４２以降の処理を引き続き行う。
一方、全て抽出した場合（ステップＳ４６のＹｅｓ）、マークされた論理を無視して非同期構造チェックを行う（ステップＳ４７）。その後、処理を終了する。
【００９４】
以上で非同期構造チェック部５４の処理の説明を終了する。
次に、論理合成部５５にレポートを読み込ませたときの処理を説明する。
図１９は、論理合成部にレポートを読み込ませたときの例を示す図である。
【００９５】
同期リセットが存在すると、最適化オプション（面積や、タイミングを短くする）の影響で、フリップフロップのリセットがかからない。
図１９（ａ）に示すように、セレクタＳｅｌ２の前段に同期リセットを含むＡＮＤ−ＯＲ論理が存在する論理合成をされてしまうと、セレクタＳｅｌ２が出力する信号の論理が「Ｘ」となり、Ｄフリップフロップ２１ｂに対してリセットがいつまでもかからない。何故なら、セレクタの制御信号に不定Ｘが入っていると、セレクタは「Ｘ」を出力するからである。
【００９６】
一方、回路設計装置１０では、ＡＮＤ回路ＡＮＤ４およびＡＮＤ回路ＡＮＤ５に入力される信号（Ｃｌｅａｒ）が、同期リセット信号であることを抽出することができるため、その信号を使わない論理合成ができる。
【００９７】
すなわち、図１９（ｂ）に示すように、セレクタＳｅｌ２の後に同期リセット信号を含むＡＮＤ−ＯＲ論理で回路を構成することにより、ＡＮＤ回路ＡＮＤ６に入力されるＣｌｅａｒ＝０でセレクト信号が「０」となり、エラーを回避することができる。
【００９８】
なお、本実施の形態では、同期リセット格納部１４に格納された同期リセットのレポートを非同期構造チェック部５４または論理合成部５５に読み込ませるようにした。しかし、これに限らず、非同期構造チェック部５４および論理合成部５５が、それぞれ、同期リセット抽出部１３の機能に該当する機能を備えるようにしてもよい。
【００９９】
また、回路設計装置１０が行った処理が、複数の装置によって分散処理されるようにしてもよい。例えば、１つの装置が、ＲＴＬ生成処理までを行ってＲＴＬを生成しておき、他の装置が、そのＲＴＬを用いてリセット信号を抽出するようにしてもよい。
【０１００】
以上、本発明の回路設計プログラム、回路設計方法および回路設計装置を、図示の実施の形態に基づいて説明したが、本発明はこれに限定されるものではなく、各部の構成は、同様の機能を有する任意の構成のものに置換することができる。また、本発明に、他の任意の構成物や工程が付加されていてもよい。
【０１０１】
また、本発明は、前述した実施の形態のうちの、任意の２以上の構成（特徴）を組み合わせたものであってもよい。
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、回路設計装置１０が有する機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等が挙げられる。磁気記録装置としては、例えば、ハードディスク装置（ＨＤＤ）、フレキシブルディスク（ＦＤ）、磁気テープ等が挙げられる。光ディスクとしては、例えば、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ（Random Access Memory）、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）等が挙げられる。光磁気記録媒体としては、例えば、ＭＯ（Magneto-Optical disk）等が挙げられる。
【０１０２】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭ等の可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【０１０３】
回路設計プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送される毎に、逐次、受け取ったプログラムに従った処理を実行することもできる。
【符号の説明】
【０１０４】
１、１０  回路設計装置
２  ドメイン抽出手段
３  測定手段
４  同期リセット判定手段
５、２０、６０  回路
６、２１、２１ａ、２１ｂ  Ｄフリップフロップ
７、Ｉｎｖ１、Ｉｎｖ２、Ｉｎｖ３  インバータ
８、ＡＮＤ１〜ＡＮＤ６  ＡＮＤ回路
１１  ＨＤＬ記述格納部
１２  ライブラリ格納部
１３  同期リセット抽出部
１４  同期リセット格納部
３１〜３１ｄ  ＲＴＬ記述
３２  ＣＤＦＧ
４１〜４１ｄ  テーブル
５１  設計仕様格納部
５２  ＲＴＬ設計部
５３  記述スタイルチェック部
５４  非同期構造チェック部
５５  論理合成部
５６  ネットリスト格納部
６１  シンクロナイザ
１３１  ドメイン抽出部
１３２  ドメイン一覧格納部
１３３  定数伝播部
１３４  同期リセット判定部
Ｒｅｇ１  レジスタ
Ｓｅｌ１、Ｓｅｌ２  セレクタ
【図１】
2010211550.tif 000003
【図２】
2010211550.tif 000004
【図３】
2010211550.tif 000005
【図４】
2010211550.tif 000006
【図５】
2010211550.tif 000007
【図６】
2010211550.tif 000008
【図７】
2010211550.tif 000009
【図８】
2010211550.tif 000010
【図９】
2010211550.tif 000011
【図１０】
2010211550.tif 000012
【図１１】
2010211550.tif 000013
【図１２】
2010211550.tif 000014
【図１３】
2010211550.tif 000015
【図１４】
2010211550.tif 000016
【図１５】
2010211550.tif 000017
【図１６】
2010211550.tif 000018
【図１７】
2010211550.tif 000019
【図１８】
2010211550.tif 000020
【図１９】
2010211550.tif 000021