(57)【要約】  【課題】  【解決手段】複数のルールによって記述された機能的挙動を伴う電子回路の構造レベル記述を設計する方法とシステムであり、この回路がデータパス要素と制御パス要素によって特定されており、少なくとも一の制御パス要素が未解決可変要素の形で与えられている。この設計は、制御パス要素中の複数の未解決可変要素を抽出するステップと、状態機械の定式化を実行するためにデータパス要素と制御パス要素の自動処理ステップとを具え、状態機械の状態は、未解決可変要素と、前記複数のルールと予め決められた設計基準を満足する対応する遷移の組み合わせを少なくとも表す状態を含む。【選択図】図２
2008511894.tif 000002
【特許請求の範囲】
【請求項１】
電子回路の構造レベル記述を設計する方法において、当該方法が：
（ａ）電子回路を特定するデータパス要素および制御パス要素を取得するステップであり、少なくとも一の制御パス要素が未解決可変要素の形で与えられているステップと；
（ｂ）少なくとも前記電子回路の機能的挙動を記述した複数のルールを取得するステップと；
（ｃ）前記制御パス要素間の複数の未解決可変要素を抽出するステップと；
（ｄ）状態機械の定式化を実行するためにデータパス要素と制御パス要素を自動処理するステップであって、前記状態機械の状態が、未解決可変要素と、前記複数のルールと予め決められた設計基準を満足する対応する遷移の組み合わせを表す状態を少なくとも含むステップと；
を具えることを特徴とする方法。
【請求項２】
請求項１に記載の方法において、前記自動処理ステップが、正当性を保存して前記構造レベル設計を容易に取り出すことを特徴とする方法。
【請求項３】
請求項１に記載の方法において、前記予め決められた設計基準が：
（ａ）論理的矛盾の基準と；
（ｂ）データ完全性の基準と；
（ｃ）設計フロー可能の基準と；
を具えることを特徴とする方法。
【請求項４】
請求項１に記載の方法において、前記予め決められた設計基準が、特定の目的のために導入された制約を具えることを特徴とする方法。
【請求項５】
請求項４に記載の方法において、前記特定の目的が、前記電子回路の電源消費の低減であることを特徴とする方法。
【請求項６】
請求項１に記載の方法において、前記構造レベル記述が、レジスタトランスファレベル記述を具えることを特徴とする方法。
【請求項７】
請求項１に記載の方法において、前記構造的記述が、Verilog，ＶＨＤＬ，System VerilogおよびSystemC記述を具える群から選択された少なくとも一の言語でのステートメントを具えることを特徴とする方法。
【請求項８】
請求項１に記載の方法において、前記複数の未解決可変要素が、前記制御パス要素中に含まれる全ての未解決可変要素を含むことを特徴とする方法。
【請求項９】
請求項１に記載の方法において、前記状態機械の状態が、解決された可変要素と未解決可変要素の組み合わせを表す状態を含んでいることを特徴とする方法。
【請求項１０】
請求項１に記載の方法において、前記自動処理ステップが：
（ａ）前記複数の未解決可変要素中の未解決可変要素の推定値を表明し、前記値のあり得る組み合わせを特定するステップと；
（ｂ）前記複数の未解決可変要素によって制御されているデータパス要素を特定するステップと；
（ｃ）前記複数の未解決可変要素間の未解決可変要素の値の特定の組み合わせの各々に関して、前記データパス要素が前記複数のルールと予め決められた設計基準に合致しているかどうかを確認して、これによって、前記状態機械の状態において特定するべき複数の未解決可変要素の値の前記複数の組み合わせを有効にするステップと；
を具えることを特徴とする方法。
【請求項１１】
請求項１０に記載の方法において、前記未解決可変要素の推定値が：
（ａ）前記未解決可変要素によって制御されているデータパス要素を含むフローを容易にする値と：
（ｂ）前記未解決可変要素によって制御されているデータパス要素を含むフローを阻止する値と；
を具える群から選択されることを特徴とする方法。
【請求項１２】
請求項１０に記載の方法において、前記未解決可変要素の推定値が、前記複数の未解決可変要素中に含まれる全ての未解決可変要素を表明していることを特徴とする方法。
【請求項１３】
請求項１０に記載の方法において、前記複数の未解決可変要素中の未解決可変要素の推定値の全てのあり得る組み合わせを特定するステップを具えることを特徴とする方法。
【請求項１４】
請求項１０に記載の方法において、前記複数の未解決可変要素によって制御されている全てのデータパス要素を特定するステップを具えることを特徴とする方法。
【請求項１５】
請求項１０に記載の方法において、前記未解決可変要素の値の特定の組み合わせの各対に関して前記確認ステップが与えられることを特徴とする方法。
【請求項１６】
請求項１に記載の方法において、前記自動処理ステップが：
（ａ）前記複数の未解決可変要素中の未解決可変要素の推定値を表明し、前記値のあり得る組み合わせを特定するステップと；
（ｂ）前記複数の未解決可変要素によって制御されているデータパス要素を特定するステップと；
（ｃ）前記複数のルールに従って前記複数の未解決可変要素の値の各特定した組み合わせに関して前記データパス要素の結果としての状態の組み合わせを規定するステップと；
（ｄ）前記複数の未解決可変要素中の未解決可変要素の値の各特定した組み合わせに関して、前記データパス要素の前記結果としての状態の対応する組み合わせが予め決められた設計基準に合致するかどうかを確認して、前記状態機械の状態において特定すべき複数の未解決可変要素の値の組み合わせを有効にするステップと；
を具えることを特徴とする方法。
【請求項１７】
請求項１６に記載の方法において、前記未解決可変要素の推定値が：
（ａ）前記未解決可変要素によって制御されているデータパス要素を含むフローを容易にする値と：
（ｂ）前記未解決可変要素によって制御されているデータパス要素を含むフローを阻止する値と；
を具える群から選択されることを特徴とする方法。
【請求項１８】
請求項１６に記載の方法において前記未解決可変要素の推定値が、前記複数の未解決可変要素に含まれる全ての未解決可変要素を表明していることを特徴とする方法。
【請求項１９】
請求項１６に記載の方法において前記複数の未解決可変要素中の未解決可変要素の推定値の全てのあり得る組み合わせを特定するステップを具えることを特徴とする方法。
【請求項２０】
請求項１６に記載の方法において、前記複数の未解決可変要素によって制御されている全てのデータパス要素を特定するステップを具えることを特徴とする方法。
【請求項２１】
請求項１６に記載の方法において、前記複数の未解決可変要素の値の特定の組み合わせの各対に関して前記確認ステップが与えられることを特徴とする方法。
【請求項２２】
請求項１６に記載の方法において、前記データパス要素の結果としての状態が：
（ａ）データ移動が不可能であることで特徴付けられる状態；
（ｂ）データ移動が強制であることで特徴付けられる状態；
（ｃ）データ移動が可能であるが強制でないことで特徴付けられる状態；
からなる群から選択されることを特徴とする方法。
【請求項２３】
請求項１に記載の方法において、前記自動処理ステップが：
（ａ）データパス要素を特定するステップと；
（ｂ）前記特定したデータパス要素を制御する制御パス要素を特定するステップと；
（ｃ）前記特定した制御パス要素に対応する前記複数の未解決可変要素中の未解決可変要素の推定値を表明し、前記値のあり得る組み合わせを特定するステップと；
（ｄ）前記複数の未解決可変要素中の未解決可変要素の値の特定した組み合わせの各々について、前記データパス要素が前記複数のルールと、予め決められた設計基準に合致するかどうかを確認して、前記状態機械の状態において特定すべき複数の未解決可変要素の値の組み合わせを有効にするステップと；
を具えることを特徴とする方法。
【請求項２４】
請求項２３に記載の方法において、前記未解決可変要素の推定値が：
（ａ）前記未解決可変要素によって制御されているデータパス要素を含むフローを容易にする値と；
（ｂ）前記未解決可変要素によって制御されているデータパス要素を含むフローを阻止する値と；
を具える群から選択されることを特徴とする方法。
【請求項２５】
請求項２３に記載の方法において、前記未解決可変要素の推定値が、前記複数の未解決可変要素に含まれる全ての未解決可変要素を表明していることを特徴とする方法。
【請求項２６】
請求項２３に記載の方法において前記複数の未解決可変要素中の未解決可変要素の推定値の全てのあり得る組み合わせを特定するステップを具えることを特徴とする方法。
【請求項２７】
請求項２３に記載の方法において、前記特定されたデータパス要素を制御している全ての制御パス要素を特定するステップを具えることを特徴とする方法。
【請求項２８】
請求項２３に記載の方法において、前記未解決可変要素の値の特定の組み合わせの各対に関して前記確認ステップが与えられることを特徴とする方法。
【請求項２９】
請求項１に記載の方法において、前記自動処理ステップが：
（ａ）データパス要素を特定するステップと；
（ｂ）前記特定したデータパス要素を制御する制御パス要素を特定するステップと；
（ｃ）前記特定した制御パス要素に対応する前記複数の未解決可変要素中の未解決可変要素の推定値を表明し、前記値のあり得る組み合わせを特定するステップと；
（ｄ）前記複数のルールに従って、前記複数の未解決可変要素の値の各特定の組み合わせに関して前記データパス要素の結果としての状態の組み合わせを規定するステップと；
（ｅ）前記複数の未解決可変要素中の未解決可変要素の値の特定した組み合わせの各々について、前記データパス要素が前記結果としての状態の対応する組み合わせが予め決められた設計基準に合致するかどうかを確認して、前記状態機械の状態において特定すべき複数の未解決可変要素の値の組み合わせを有効にするステップと；
を具えることを特徴とする方法。
【請求項３０】
請求項２９に記載の方法において、前記未解決可変要素の推定値が：
（ａ）前記未解決可変要素によって制御されているデータパス要素を含むフローを容易にする値と；
（ｂ）前記未解決可変要素によって制御されているデータパス要素を含むフローを阻止する値と；
を具える群から選択されることを特徴とする方法。
【請求項３１】
請求項２９に記載の方法において、前記未解決可変要素の推定値が、前記複数の未解決可変要素に含まれる全ての未解決可変要素を表明していることを特徴とする方法。
【請求項３２】
請求項２９に記載の方法において前記複数の前記複数の未解決可変要素中の未解決可変要素の推定値の全てのあり得る組み合わせを特定するステップを具えることを特徴とする方法。
【請求項３３】
請求項２９に記載の方法において、前記特定されたデータパス要素を制御している全ての制御パス要素を特定するステップを具えることを特徴とする方法。
【請求項３４】
請求項２９に記載の方法において、前記未解決可変要素の値の特定の組み合わせの各対に関して前記確認ステップが与えられることを特徴とする方法。
【請求項３５】
請求項２９に記載の方法において、前記データパス要素の結果としての状態が：
（ａ）データ移動が不可能であることで特徴付けられる状態；
（ｂ）データ移動が強制であることで特徴付けられる状態；
（ｃ）データ移動が可能であるが強制でないことで特徴付けられる状態；
からなる群から選択されることを特徴とする方法。
【請求項３６】
電子回路の構造レベル記述を設計する方法において、当該方法が：
（ａ）前記電子回路を特定するデータパス要素と制御パス要素を取得するステップであって、少なくとも一の制御パス要素が未解決可変要素の形で与えられているステップと；
（ｂ）複数のルールを取得するステップと；
（ｃ）前記制御パス要素中の複数の未解決可変要素を抽出するステップと；
（ｄ）前記複数のルールと予め決められている設計基準を満足する未解決可変要素の値を得るために、データパス要素と制御パス要素を自動的に処理するステップと；
を具えることを特徴とする方法。
【請求項３７】
複数のルールによって記述された機能的挙動を伴う電子回路の構造レベル記述を設計するシステムにおいて、前記回路がデータパス要素と制御パス要素によって特定されており、少なくとも一の制御パス要素が未解決可変要素の形で与えられており；前記システムが、状態機械の定式化を実行するためにデータパス要素と制御パス要素の自動処理を行うプロセッサを具え、前記状態機械の状態が、未解決可変要素と、前記複数のルールと予め決められた設計基準を満足する対応する遷移の組み合わせを少なくとも表示する状態を具える、ことを特徴とするシステム。
【請求項３８】
電子回路の構造レベル記述を設計する方法ステップを実行する機械によって実行可能なインストラクションのプログラムを有形で実施する、機械によって読み取り可能なプログラム保存デバイスにおいて：前記方法が：
（ａ）電子回路を特定するデータパス要素および制御パス要素を取得するステップであり、少なくとも一の制御パス要素が未解決可変要素の形で与えられているステップと；
（ｂ）少なくとも前記電子回路の機能的挙動を記述した複数のルールを取得するステップと；
（ｃ）前記制御パス要素間の複数の未解決可変要素を抽出するステップと；
（ｄ）状態機械の定式化を実行するためにデータパス要素と制御パス要素を自動処理するステップであって、前記状態機械の状態が、未解決可変要素と、前記複数のルールと予め決められた設計基準を満足する対応する遷移の組み合わせを少なくとも表す状態を含むステップと；
を具えることを特徴とする方法。
【請求項３９】
電子回路の構造レベル仕様記述を設計するそこで実行されるコンピュータで読み取り可能なプログラムを有するコンピュータで使用可能な媒体を具えるコンピュータプログラム製品において、前記コンピュータプログラム製品が：
（ａ）前記電子回路を特定するデータパス要素および制御パス要素を前記コンピュータに取得させるコンピュータで読み取り可能なプログラムコードであって、少なくとも一の制御パス要素が未解決可変要素の形で与えられており；
（ｂ）前記電子回路の機能的挙動を少なくとも記述する複数のルールを前記コンピュータに取得させるコンピュータで読み取り可能なプログラムコードと；
（ｃ）複数の未解決可変要素を前記制御パス要素間で前記コンピュータに抽出させるコンピュータで読み取り可能なプログラムコードと；
（ｄ）状態機械の定型化を実行するためのデータパス要素と制御パス要素をコンピュータに自動処理させるコンピュータで読み取り可能なプログラムコードであって、前記状態機械の状態が、未解決可変要素と、前記複数のルールと予め決められた設計基準を満足する対応する遷移の組み合わせを少なくとも表示する状態を含んでいるプログラムコードと；
を具えることを特徴とするコンピュータプログラム製品。
【請求項４０】
電子回路の構造レベル記述を設計する方法ステップを実行する機械によって実行可能なインストラクションプログラムを有形で実施する、機械によって読み取り可能なプログラム保存デバイスにおいて、前記方法が：
（ａ）前記電子回路を特定するデータパス要素および制御パス要素を取得するステップであり、少なくとも一の制御パス要素が未解決可変要素の形で与えられているステップと；
（ｂ）複数のルールを取得するステップと；
（ｃ）前記制御パス要素間の複数の未解決可変要素を抽出するステップと；
（ｄ）前記複数のルールと予め決められた設計基準を満足する未解決可変要素の値を取得するためにデータパス要素と制御パス要素を自動処理するステップと；
を具えることを特徴とするプログラム保存デバイス。
【請求項４１】
電子回路の構造レベル記述を設計するそこで実行するコンピュータで読み取り可能なプログラムコードを有するコンピュータで使用可能な媒体を具えるコンピュータプログラム製品において、当該コンピュータプログラム製品が：
（ａ）前記電子回路を特定するデータパス要素および制御パス要素を前記コンピュータに取得させるコンピュータで読み取り可能なプログラムコードであって、少なくとも一の制御パス要素が未解決可変要素の形で与えられており；
（ｂ）複数のルールを前記コンピュータに取得させるコンピュータで読み取り可能なプログラムコードと；
（ｃ）前記制御パス要素間で複数の未解決可変要素を前記コンピュータに抽出させるコンピュータで読み取り可能なプログラムコードと；
（ｄ）前記複数のルールと予め決められた設計基準を満足する未解決可変要素の値を取得するためデータパス要素と制御パス要素を自動処理するステップと；
を具えることを特徴とするコンピュータプログラム製品。
【発明の詳細な説明】
【技術分野】
【０００１】
発明の属する技術分野
本発明は、コンピュータ化した電子回路設計の分野に関し、特に、ハイレベルにシステム設計した構造（例えば、ＲＴＬ）設計記述に関する。
【０００２】
発明の背景
典型的な回路設計方法は、抽象化した回路の記述を提供し、これをシステム設計ツールを用いて物理的レイアウトに変換することを含む。一般的に、設計フローには、図１を参照して以下に詳細に説明するように、さまざまなレベルの設計抽象化と、対応する導出ステップが含まれる。このプロセスは、時間がかかり、人的エラーを受けやすい。現代の電子回路構造は複雑性が急激に増加しているため、設計者は、時にコンピュータを用いた技術を使用せざるを得ない。
【０００３】
システム記述から物理的レイアウトへの変換を自動化することの問題点は、従来技術で認識されており、解決策を提供するためのさまざまなシステムと方法が開発されている。
【０００４】
例えば、米国特許第５，５３７，５８０号（Giomi et al.）は：（ａ）集積回路の機能を記述するステップと；（ｂ）ハードウエア記述言語から状態機械のレジスタレベル状態機械変換テーブルを抽出するステップと；（ｃ）レジスタレベル状態機械記述から状態機械を表す論理レベル状態変換テーブルを生成するステップと；（ｄ）この論理レベル状態変換テーブルから状態機械を表す状態機械構造的ネットリストを生成するステップと；及び（ｅ）この状態機械構造的ネットリストを、独立してシステム設計した構造的ネットリストと組み合わせて、チップコンパイルの基礎を提供する状態機械と、マスクレイアウトと、集積回路製造を提供する状態機械を含む集積回路構造的ネットリストを生成するステップと；を具える集積回路の製造方法を開示している。この方法は、結果としてレジスタ−トランスファ（ＲＴ）レベル表示から抽出される同期状態機械となる。
【０００５】
米国特許第６，４１５，４２０号（Cheng et al.）は、論理回路の一部のシーケンシャル状態要素の必要を評価する、実際のあるいは計画された論理回路の高レベル設計言語（ＨＤＬ）記述の少なくとも一部を表すコンピュータで読み取り可能なストレージ媒体中に多数の制御構造を有する制御データフローグラフ（ＣＤＦＧ）の少なくとも一部を使用する方法を開示している。この方法は、このストレージ媒体中にパスオリジネーションノードを設けることによってストレージ媒体中にグラフ構造を生成するステップと；ストレージ媒体中にパスデスティネーションノードを設けるステップと；ＣＤＦＧの第１の制御構造の各ブランチを、ＣＤＦＧの第２の制御構造の各ブランチとに別々に連結することによって、パスオリジネーションノードとパスデスティネーションノード間にそれぞれ絶対パスを作って、第１の制御構造からの各ブランチと第２の制御構造からの各ブランチの可能な組み合わせのように別々の絶対パスができるようにするステップと；このようなそれぞれの絶対パスを生成するためにその他の対応するブランチに連結された対応するブランチによってＣＤＦＧ中の関連する各制御ステートメントに各絶対パスを関連付けるステップと；グラフ情報構造の各絶対パスを横断して各制御ステートメントに関連していない各パスがあるかどうかを決定するステップと；を具える。
【０００６】
米国特許第６，４２１，８０８号（McGeer et al.）は、ハードウエア設計言語Ｖ＋＋を開示している。Ｖ＋＋は、自動的に設計され実装された通信プロトコルを提供するものであり、設計自体中にコンパイラによって埋め込まれている。このプロトコルは、ハードウエア設計中のモジュール間で透明で自動的な通信が可能である。このプロトコルは、現行の設計プラクティスを一般化するものであり、サイクル時間のみならず、典型的なシステム領域にもインパクトを与えるものではない。言語自体の中にこのプロトコルを含めることによって、設計者は通信コードを記載するタスクから解放され、二つの通信モジュールが同じ低レベルプロトコルを確実に追従することになる。Ｖ＋＋では、各プログラムが有限の状態機械と通信するネットワークとして直接的に読み取られる。二つのＶ＋＋プログラムの成分は、良く規定された、決定的な意味を持つＶ＋＋プログラムである。
【０００７】
米国特許第６，５５７，１６０号（Shalish）は、構造ゲートレベル記述中のＨＤＬ信号名の相関関係を提供するシステムと方法を開示している。一の実施例では、回路のＨＤＬ挙動記述が、相関関係コンパイラによって処理されて中間信号を同定する。この挙動記述は、中間信号が回路の主出力であること特定するように変形される。この変形した挙動記述は、次いで、システム設計ツールで処理して、変形した挙動記述に対応する構造的記述を作る。この構造的記述は、出力として同定された中間信号を具える。
【０００８】
米国特許第６，５９１，４０３号（Bass et al.）は、多様な検証ツールセットをターゲットにしたハードウエア記述言語表明を特定して、この検証ツールセットによって論理設計を検証する、自身を支持する方法とシステムを開示している。論理設計の制約と特性は、論理設計の表明を表す一またはそれ以上の高レベル表明指定マクロを用いてＨＤＬで記載されている。この一またはそれ以上の表明指定マクロは、指定マクロライブラリ内に部品として保存されており、必要に応じて後に取り出す。表明指定マクロに対する表明マクロコールを含むオリジナルのＨＤＬソースコードを読むと、定義ライブラリに含まれていれば、指定マクロプロセッサが保存されている表明マクロの定義にアクセスして、これらの定義をテンプレートとして使用して拡大ＨＤＬコードを自動的にＨＤＬソースコードに書き換えて、ツール特定ＨＤＬコードを対応するツール特定モジュールライブラリに自動的に保存して、一またはそれ以上の認証ツールによって後に使用する。一またはそれ以上の表明マクロの定義が定義ライブラリに含まれていない場合は、必要に応じて書き込むようにする。
【０００９】
米国特許第６，５９７，６６４号（Mithal et al.）は、非同期システムの仕様をまず受け入れることによって、同期デジタル回路を特定しシステム設計する方法を開示している。ここでは、保存された値は、状態遷移ルールセットによって更新される。例えば、状態遷移ルールは、項書き換え系（Term Rewriting System：ＴＲＳ）として特定される。ここでは、各ルールが複数の許容しうる状態遷移を特定しており、保存した値の論理的事前条件と、状態遷移に先立って保存された値の用語に状態遷移した後、保存した値の機能的特定を含む。非同期回路の仕様は、同期回路の仕様に変換され、各クロック期間中に多数の状態遷移が生じうる。この方法は、例えば、ＴＲＳルールセットを認識することによって、単一のクロック期間中に生じることがある状態遷移セットを認識するステップと、同期回路の仕様を形成して、いずれかの状態遷移を単一セットで特定のクロック期間中に生じさせるステップを具える。
【００１０】
米国特許第６，６０４，２３２号（Okada et al.）は、一またはそれ以上の操作を記述した操作記述を、一又はそれ以上の操作とデータのフローを表示する一またはそれ以上のＩ／Ｏブランチを表示する一又はそれ以上のノードを含む制御データフローグラフ（ＣＤＦＧ）に変換するステップと、この変換ステップによって得られたＣＤＦＧをスケジューリングするステップと、このスケジューリングステップによって得られたＣＤＦＧを実行するのに必要な一またはそれ以上の論理回路を割り当てるステップとを具える、高レベルシステム設計方法を開示している。この変換ステップのＣＤＦＧの一部は、ノードを生成する前に論理システム設計の対象となり、このＣＤＦＧの一部がそのノードで置き換えられる。
【００１１】
米国特許第６，６７５，３５９号（Gilford et al.）は、高レベルＩＣ記述言語で回路設計された状態機械を認識する方法と装置を開示している。この発明は、ＶＨＤＬや、Verilog（登録商標）などの、ＩＣ設計の高レベルＩＣ記述言語コードを分析し、状態機械に相当する記述情報を抽出する。この記述情報は、例えば、状態機械に相当する高レベルＩＣ記述言語コード、状態機械の状態図、状態機械用状態テーブル、または状態機械のその他の表示であっても良い。一の実施例では、本発明はＶＨＤＬ「プロセス」ステートメントによって規定されているような一またはそれ以上のプロセスセットを認識する。一またはそれ以上のクロック動作プロセス、一又はそれ以上の遷移プロセス、及び一またはそれ以上の出力プロセスを認識することによって、この発明は、状態機械要旨を提供し、高レベルＩＣ記述言語コード中に認識された状態機械を記述する。
【００１２】
国際公開ＷＯ２００４／０８４０８６（Moehl et al.）は、高レベルソースコード仕様からのデジタル論理の記述を一般化する方法を開示している。ソースコード仕様の少なくとも部分が、少なくとも一の入力または一の出力を有する機能ノードを具える多方向グラフ表示と、機能ノード間の相互接続を表示する接続にコンパイルされる。グラフの各機能ノードと、機能ノード間の各接続用の、ハードウエア要素が規定されている。最後に、グラフの各機能ノードのファイヤリングルールが規定されている。
【００１３】
発明の概要
構造（例えば、レジスタトランスファレベル）設計のあるステップの何らかの誤りが、設計フロー全体の精度に大きく影響するため、取り出した回路構成の整合性を確実なものにすることは明らかに有益である。
【００１４】
本発明のいくつかの態様によれば、電子回路の構造レベル記述の設計方法が提供されており、この方法は：
（ａ）前記電子回路を特定するデータパス要素と制御パス要素を取得するステップであって、少なくとも一の制御パス要素が未解決可変要素の形で与えられているステップと；
（ｂ）複数のルールを取得するステップと；
（ｃ）前記制御パス要素中の複数の未解決可変要素を抽出するステップと；
（ｄ）前記複数のルールと予め定義されている設計基準とを満足する未解決可変要素の値を取得するためにデータパス要素と制御パス要素を自動処理するステップと；
を具える。
【００１５】
本発明の更なる態様によれば、自動処理ステップは、状態機械定式化を実行するために設けられており、状態機械の状態には、少なくとも未解決可変要素の組み合わせと、前記複数のルールと予め定義された設計基準を満足するこれに対応する遷移とを示す状態、が含まれる。
【００１６】
本発明の更なる態様によれば、複数のルールによって記述された機能的挙動を伴う電子回路の構造レベル記述を設計するシステムが提供されており、この回路は、データパス要素と制御パス要素とで特定されており、少なくとも一の制御パス要素が未解決可変要素の形で与えられている。このシステムは、状態機械定式化を実行するためのデータパス要素と制御パス要素を自動処理するプロセッサを具え、状態機械の状態には、未解決可変要素と、前記複数のルールと予め定義された設計基準を満足する対応する遷移との組み合わせを少なくとも表す状態と、が含まれる。
【００１７】
本発明の更なる態様によれば、この自動処理ステップはさらに：
（ａ）前記複数の未解決可変要素中の未解決可変要素の推定値を表明して、これらの値のあり得る組み合わせを特定するステップと；
（ｂ）前記複数の未解決可変要素によって制御されているデータパス要素を特定するステップと；
（ｃ）複数の未解決可変要素中の未解決可変要素の値の各特定の組み合わせに関して、前記データパス要素が前記複数のルールと予め定義された設計基準に合致しているかどうかを確認して、これによって、前記状態機械の状態中に特定するべき複数の未解決可変要素の値の組み合わせを有効にする、ステップと；
を具える。
【００１８】
本発明の更なる特徴によれば、前記自動処理ステップが：
（ａ）前記複数の未解決可変要素中の未解決可変要素の推定値を表明して、これらの値のあり得る組み合わせを特定するステップと；
（ｂ）前記複数の未解決可変要素によって制御されているデータパス要素を特定するステップと；
（ｃ）前記複数のルールに従って、前記複数の未解決可変要素の各特定の組み合わせに関して、前記データパス要素の結果状態の組み合わせを定義するステップと；
（ｄ）複数の未解決可変要素中の未解決可変要素の値の各特定の組み合わせに関して、前記データパス要素の前記結果状態の相当する組み合わせが予め定義した設計基準に合致する場合は、前記状態機械の状態中に特定するべき複数の未解決可変要素の値の組み合わせを有効にする、ステップと；
を具えていても良い。
【００１９】
本発明の更なる態様によれば、前記予め定義された設計基準が、論理的矛盾の基準、データの完全性の基準、および設計フロー可能の基準を具える。
【００２０】
従って、本発明は、いくつかの態様においては、構造レベル設計の正当性を促進し、構造レベル設計の抽出を保存することができる、新規の解決法を提供することを目的としている。
【００２１】
例示的実施例の詳細な説明
以下の詳細な説明において、本発明を完全に理解するためにさまざまな特別な詳細が設定されている。しかしながら、本発明がこれらの特定の詳細なくして実施できることは当業者には自明である。別の場合では、本発明をあいまいなものにしないように、公知の方法、手順、構成部品、および回路は詳細に説明されていない。図面と明細書中では、様々な実施例、または構造に共通する構成部品を同じ符号で表している。
【００２２】
特に記載がない限り、以下の説明から明らかなとおり、本明細書の記載を通じて「処理する」、「演算する」、「計算する」、「決定する」などの用語の使用は、コンピュータまたは演算システム、あるいはプロセッサまたは同様の電子演算装置の動作及び／又はプロセスを意味する。これらは、コンピュータシステムのレジスタ及び／又はメモリ内の電子などの物理的量として表されたデータ、同様に、コンピュータシステムのメモリ、レジスタ又はその他のこのような情報ストレージ、転送又は表示デバイス内の物理的量として表されたデータを、その他のデータに処理する及び／又は変換することを意味する。
【００２３】
このことを考慮して、図１を参照すると、この分野で公知である典型的な電子回路設計フロー（R. Namballa et al. “Control and Data Flow Graph Extraction for High-Level Synthesis” IEEE Computer Society Annual Symposium on VLSI, 2004参照）が示されている。この設計フローには、さまざまなレベルの設計抽象化が含まれている。最も高いレベルの設計抽象化は、システムレベル仕様１０１であり、これは、ほとんど平易な自然言語で記載されている。次に低いレベルは、機能的記述１０３であり、これは、構造的詳細を排除して、電子回路の機能（例えば、動作、順序、あるいはその依存性）を特定するものである。次の抽象化レベルは、構造的記述１０５（例えば、レジスタトランスファレベル（ＲＴＬ）記述）であり、これは、設計の構成主義を提供するものであり、モジュールの場合（例えば、加算器、乗算器、レジスタなど）と、その相互接続を具える。抽象化の次のレベルは、実装記述１０７（例えば、論理ゲートのリスト、およびそれらの間の相互接続）であり、結果としてネットリストになる。物理的レイアウト１０９は、ネットリストを仮想的にウエハ上に置く。システム記述に入ると、電子回路の挙動ビュー（すなわち、システム挙動の記述）は、抽象化のもっと下のレベル（例えば、機能的記述のルールおよび条件のセット、抽象化の構造的および実装レベルでの有限状態にある機械、その他）で更に詳細になる。一般的に、構造的で、より低いレベルの記述は、ハードウエア記述言語（ＨＤＬ）でコードを記載することで構成されている。この目的のために、この分野で知られているいくつかの言語がある。これらの間で共通なものは、VerilogとＶＨＤＬであるが、その他の統語論も使用することができる。
【００２４】
従って、システム仕様を記述した挙動を示すハードウエア回路に翻訳するプロセスは、少なくとも以下のステップ：
−システム記述からの機能的記述のシステム−レベル設計１０２と；
−機能的記述からの構造的（例えば、ＲＴＬ）記述の高レベルシステム設計１０４と；
−結果として実装（例えばゲートレベル）記述になる論理レベルシステム設計１０６と；
−例えば、スクリーン上でまたは印刷可能な図面によって見るといった、レジスタとゲートの実際の物理的位置をエミュレートするレイアウトシステム設計１０８と；
を具える。
【００２５】
本発明は、図１を参照して述べた特定の設計フローに限るものではない。この分野の当業者には、本発明が、構造的レベル設計を抽出するあらゆる設計フローに適用可能であることは自明である。
【００２６】
このことを考慮して、図２を参照すると、本発明のある実施例による高レベルのシステム設計プロセスが示されている。
【００２７】
典型的には、抽象化の機能的レベルにおいて、回路（または回路の下位要素）は、回路への入力、回路からの出力、および回路によって実行されるプロセス（およびその条件）の用語によって記述することができ、これによって、入力信号を出力信号に変換する。機能的記述の非限定的な例が、更に図３に示されている。
【００２８】
本発明の実施例によれば、高レベルシステム設計のプロセスは、まず機能的記述から、制御パス要素２０２、データパス要素２０３、及び回路の機能的挙動を記述する１セットのルール２０１を取得することによって開始する。このルールセットは、機能的記述中に含まれる条件を含んでいても良い。いくつかのルールは、データパス要素及び／又は制御パス要素に関連しており、一方で、設計者によって取り入れられた追加の挙動制約を表している。
【００２９】
機能的記述からデータパス要素と制御パス要素を取得することは、この分野では公知であり、例えば、Wolf, Wayne, FPGA-Based System Design, Prentice-Hall Publishers, Inc., 2004に記載されている。このプロセスは、全面的に自動的に、設計者の介入を伴って自動的に、または全面的に手動で行うことができる。本発明の実施例では、設計者は機能的記述を有するデータ要素と制御パス要素の特定を開始するか、あるいはちょうど考慮している。
【００３０】
データパスは、以下の要素のうちの少なくとも一つを具えている：
−例えば、加算器、乗算器、その他などの数学的演算、論理的演算あるいは関係演算を行う演算要素
−例えばハードウエアレジスタ、ＦＩＦＯｓ、ラッチ、その他の、可変要素と信号に関係する割り当て演算を表すストレージ要素
−サブプログラムモジュールへの発呼を表す発呼要素
−例えば、バスインターフェース、モジュールインターフェース、その他などのインターフェース
−その他を適用することができる。
【００３１】
データパス要素は、その他の設計要素（例えば、多重化動作を制御するバスＭＳＢビット）を明確に制御している可変要素あるいは信号を具えていても良い。
【００３２】
制御パスは、条件構成体、ループ構成体、シーケンシング、および、データパス要素及び／又はその派生物を制御するその他の記述法といった、演算に責任のある要素を具えている。
【００３３】
制御パスは、以下の要素のうちの少なくとも一つを具えている：
−その他の要素を制御する可変要素；
−開始条件および終了条件（対で、あるいは別々に）；
−未解決の可変要素；
−データパス有効性の表示；
−その他も適用することができる。
【００３４】
このプロセスの結果、全ての設計要素がデータパス要素または制御パス要素として特定されることになる。制御パス要素は、その他の要素からの機能であり、例えば、入力データ、入力あるいは出力における有効データの存在、入力に適応させた機能の結果、その他に依存している。この結果、制御パスは、未解決の可変要素を具えていても良い。すなわち、データパス、制御パス及び／又はこれらの組み合わせ中の明確でない表現を具えていてもよい。本発明の特徴によれば、全ての未解決の可変要素は制御パス要素として導出されるということを認識することは重要である。
【００３５】
本発明の実施例によれば、高レベルシステム設計の次のステップは、ルールセット２０１に従った未解決の可変要素の抽出２０４である。このステップに次いで、有効状態の処理が行われる。ここでは、この処理に対する少なくとも一の入力が、少なくとも一の未解決の可変要素を具えている。有効状態の処理は、図４を参照して更に詳細になり、結果として、未解決の可変要素の有効状態と、あり得る遷移の定義がなされ、これによって、状態機械の定式化２０６が可能になる。定式化した状態機械を処理して、対応する可変要素の解決を提供する。このように、制御パス要素は結果の記述２０７のために完全に特化される。本発明の実施例によれば、この処理は、図４を参照して更に詳細に述べるように、正当性を保存する態様で提供されている。
【００３６】
図３ａおよび図３ｂを参照すると、非限定的な例示の形で、例示的回路の図式的な機能説明が示されている。図３ａは、回路の入力、出力、及びデータパス構造を示しており、図３ｂはこれらの可変要素の関係を示す。
【００３７】
図３ａに示すように、例示的なフリップフロップ回路３００は以下の要素を持つ：
−ＤＩ（Data In）入力信号（ある条件の下、ＤＯによってサンプリングされるべきストレージ要素値を表す）３０１；
−ＶＩ（Valid In）入力信号３０２
−「ＧＯ」入力信号３０３
−「ＥＮＤ」入力信号３０４
−ＤＯ（Data Out）出力信号（ある条件の下、ＤＯＶによってサンプリングされるべきストレージ要素値を表す）３０５
−ＤＯＶ（Data Out Virtual）外部反射信号（ある条件の下、ＤＯをサンプリングするストレージ要素を表す）３０６
−ＶＯ（Valid Out）出力信号３０７
−ＲＯ（Ready-Out）出力信号３０９
−「ＤＯＮＥ」出力信号３１０
−ＤＯ出力信号の内部確認のＤＯ．ｖ信号３０８
【００３８】
以下の設計ルールは、この例示的回路の必要な機能的挙動を記述している：
１） 一のクロックパルスである「ＧＯ」入力信号の表明が、入力データ（ＤＩ）信号の受信を開始する；
２） 一のクロックパルスである「ＥＮＤ」入力信号の表明が、入力データ（ＤＩ）信号の受信を終了する；
３） Ｐ１が真であり、以下の条件になれば、データは入力から出力へ（ＤＩからＤＯへ）転送されなければならない：ＶＩ入力信号が、ＲＯ出力信号と共に提供され、別な方法では転送されない場合；
４） 「Ｐ１」が、「真」として規定されており、「ＧＯ」サイクルに続き、「ＥＮＤ」サイクルの終わりまでサイクルが続いている；
５） 更なる処理のための出力データ（ＤＯ）の使用可能性が、ＶＯ信号の規定を受ける；
６） 「Ｐ３」が、「真」として規定されており、最後のＰＩが真のサイクルに続き、ＤＯが有効データを含んでいないとき、すなわち、ＤＯ．ｖが誤りであるときまでサイクルが続く；
７） 一のクロックパルスである「ＤＯＮＥ」信号の表明が、Ｐ３の最後の真のサイクルに続くサイクル中に与えられなければならない。
【００３９】
以下のルールは、図４を参照して更に詳細に設計基準を記述している。
８） データは、回路内で上書き、あるいは生成すべきでない；
９） 「ＧＯ」信号は、ＤＯＮＥ信号が表明されるまで再表明することができない（設計者によって導入された設計条件の例）
１０） データは、可能であればいつでも受領しなければならない（従って、ＤＩからＤＯにサンプリングされる）、また、可能であればいつでもＤＯＶに提供しなければならない（ルール８による）。
【００４０】
従って、図３ｂは、図３ａと上述の条件に関する例示的回路の可変要素の関係を示す。
【００４１】
可変要素Ａから可変要素Ｂへの矢印は、可変要素Ａが可変要素Ｂに影響することを意味しており、両方向の矢印は、可変要素ＡとＢが互いに影響すること、またはその影響状態が、ａ−ｐｒｉｏｒｉ（例えば、ある状況における未解決の可変要素）を決めることができないことを意味している。
【００４２】
上述のルール４および６によれば、Ｐ１（３１１）とＰ３（３１２）は、回路動作プロセスの開始条件と終了条件を表す。
【００４３】
従って、この例示的回路の上記機能的記述から、制御パス要素ＶＩ、ＶＯ、ＲＯ、ＧＯ、ＥＮＤ、ＤＯＮＥおよびＤＯ．ｖによって制御されるデータパス要素ＤＩ、ＤＯ、ＤＯＶを導出することができる。これらのうち、制御パス要素ＲＯ、ＶＯ、及びＤＯ．ｖは明示的な表現を有しておらず、従って、未解決可変要素である。その他の制御パス要素は、明示的な表現割り当てを有している。例えば、ＤＯはルール３の条件の監視の下ＤＩをサンプリングし、ＤＯＶは、ルール５の下にＤＯをサンプリングし、ＤＯＮＥはルール７によって発生し、Ｐ１とＰ３は、それぞれ、ルール４及び６に従って発生する。
【００４４】
取得したデータパス要素と制御パス要素は、状態機械の定式化を実行するために更に処理される。定式化した状態機械の状態は、回路の機能的挙動（例えば、図３ａに関連して説明したもの）を記述する設計ルールを満足している遷移を容易にする未解決可変要素の組み合わせを表していなければならない。この遷移も、図４を参照して更に詳細に述べるように、正当性を保存する設計基準に合致しなければならない。本発明の実施例では、定式化した状態機械の状態のいくつかは、解決した可変要素と未解決の可変要素の組み合わせを表し、及び／又は、この状態のいくつかは、解決した可変要素のみを表す。
【００４５】
対応する有効状態プロセッサ（ＶＳＰ）が、非限定的な例の形で図４に示されている。ＶＳＰは、少なくとも二つの入力カテゴリィを具える：
−データパス要素（ＤＩ、ＤＯ、ＤＯＶ）を具えるデータパス入力４０１及び
−このデータパス要素を制御している未解決可変要素（ＲＯ、ＶＯおよびＤＯ．ｖ）を具える制御パス入力４０２。この制御パス入力は、解決した可変要素またはその部分を具えていても良い。
【００４６】
データパス入力に含まれる全てのデータパス要素は、同じデータフロー（またはその部分）に関連するものでなくてはならず、処理データフローの全ての要素（またはその部分）は、前記入力４０１に含まれていなければならない。従って、制御パス入力は、入力データパス要素を制御している全ての未解決可変要素を具えていなければならない。複雑なデータフロー（例えば、分かれている、合流している、大きなもの、その他）、及び／又は、大量の未解決可変要素を含む制御フローについては、データパス入力と制御パス入力を幾つかの部分の細目処理に同じように分けることができる。
【００４７】
ＶＳＰは、制御パス入力中に含まれる未解決可変要素についての推定値（状態）を表明し、この値のあり得る組み合わせを特定する。図に示す例では、状態テーブル４０３は、図３ａおよび３ｂに関連して示した例示的回路についての制御パス入力に含まれる未解決可変要素の推定状態（アイドル、１−７）のあり得る組み合わせを含む。図に示す各未解決可変要素は、２つの状態を有する。すなわち、対応するデータパス要素のフローを容易にするアクティブ状態（１で示す）と、対応するデータパス要素のフローを阻止するパッシブ状態（０で示す）である。
【００４８】
図３ａと３ｂに関連する例示的回路についての未解決可変要素のアクティブ状態とパッシブ状態の例を表１に示す。
【表１】
2008511894.tif 000003
【００４９】
状態テーブル４０３のアイドル状態は、すべての入力要素のパッシブ状態（０）に対応する。相反する場合（例えば、同じ可変要素を具える少なくとも二つの表現があるが、その可変要素の同じ値が異なる表現の異なる状態（パッシブまたはアクティブ）を引き起こす場合）では、その表現のいずれかが選択され、その可変状態のパッシブ状態を規定する。結果としての状態機械が実現できないことが続く場合は、アイドル状態を規定するために矛盾した表現を選択しなければならず、状態生成プロセスが再度開始される。状態機械が実現できない場合は、ユーザは即座に設計仕様を変えることができる。
【００５０】
本発明の実施例によれば、ＶＳＰは、未解決可変要素の推定状態の特定の組み合わせを全て処理して、この可変要素の有効状態（組み合わせ）を導出する。
【００５１】
未解決可変要素の推定状態の二つの組み合わせは、この状態間の遷移に対応するデータフローが予め決められた設計基準に合致して、少なくとも回路の機能的挙動を記述している予め決められた設計ルール（以下、「合法的遷移」という）を満足している場合に、有効であると考えられる。
【００５２】
本発明の実施例によれば、この処理は以下のように行うことができる：
ａ）ＶＳＰは、アイドル状態から処理を開始し、アイドル状態から合法的遷移を可能にする全ての状態が見つかるまで未解決可変要素の推定値の組み合わせを処理する；
ｂ）ＶＳＰは、推定状態の全ての対に関連する処理を、これらの状態から合法的遷移を可能にする全ての状態が見つかるまで続ける。この対の状態の一つは、以前導出した最後の有効状態である；
ｃ）ＶＳＰは、ｂ）に記載した方法で、新しい有効状態が導出できなくなるまで処理を繰り返す。
【００５３】
本発明は、有効状態を導出するために未解決可変要素の推定値の組み合わせを処理する特定のアルゴリズムに縛られるものではない。一般的な場合は、有効状態の導出後及び／又は導出中に、状態機械の定式化はさまざまな公知の技術によって行うことができる（あるいは低減することができる）ことに留意すべきである（例えば、“Formal Hardware Verification with BDDs：An Introduction,” IEEE Pacific Rim Conference on Communications, Computers, and Signal Processing (PACRIM), pp. 677-682, 1977 参照）。
【００５４】
本発明の実施例によれば、予め決められた設計基準は、有効状態間で正当性を保存した遷移を可能にするものでなければならない。この基準は、以下の条件を具える：
−論理的矛盾を排除する、すなわち、有効状態間でのデータフローは、ステートメントの同時表明と、その否定及び／又は設計ルールの違反を行ってはならない（例えば、“Foundations of Digital Logic Design” World Scientific, 1998 for a digital logic design introduction 参照）；
−特定の設計の条件に応じてデータフローのデータ完全性を保つ（例えば、バストランザクションにおいて、二つの有効状態間のデータフローは、データ生成及び／又はデータ上書きから保護されるべきである；データフローは、遮断信号による一時的なデータサンプリングから保護されず、従って、いくらかのデータが失われる；データフローは、データパス内部、その他でデータが生成されるランダム数発生器から保護されない）；
−特定の設計の条件に従ってデータフローを可能にする、すなわち、データフローは設計ルールを条件として必然性があるときはいつでも可能にするべきである（例えば、データフローは、新規データが導入される場合は常に可能にするべきであり、その他の条件では不可として、データフロー中の「ホール」を除去する）；
−追加の設計ルールおよび機能性、その他（たとえば、ルール９で導入した条件）としてユーザによって導入されたさまざまな要求と制約を維持する。
【００５５】
従って、ＶＳＰは、未解決可変要素によって制御されているデータパス要素を特定しており、この未解決可変要素の推定状態の各特定の組み合わせについて、一対の組み合わせ間の結果としてデータフローの設計ルールと設計基準との合致を分析して、未解決可変要素の有効な組み合わせ４０５を特定する。結果としてのデータフローの分析は、入力条件の全ての組み合わせ（解決した可変要素と、未解決可変要素の各推定値を含む）について与えられなければならない。
【００５６】
本発明の実施例によれば、結果としてのデータフローの分析は、未解決可変要素の推定状態の特定の各組み合わせに関して、設計ルールに従ったデータパス要素４０４の結果として挙動状態の仕様と、この結果としての挙動状態の設計基準との整合性の更なる分析を具える。
【００５７】
データパス要素はデータフローの挙動を記述する３つの状態を有する：
−データ移動が不可能な場合の停止（Ｓ）；
−データ移動が強制である場合のフロー（Ｆ）；及び
−データ移動が可能であるが、強制でない場合の停止／フロー（Ｓ／Ｆ）。
【００５８】
データフロー要素４０４の結果としての挙動状態は、非限定的な例の形で図４に示されている：
−ＶＯ＝０（アイドル、１、４および５）のときの推定状態の全ての組み合わせに対応するＤＯＶデータパス要素の状態はＳでなくてはならない；また、外部回路（ＤＯＶサンプリング）による更なる処理のための出力データ（ＤＯ）の使用可能性がＶＯ規定に左右されるので、ＶＯ＝１（２、３、６、および７）のときの推定状態の全ての組み合わせに対応するＤＯＶデータパス要素の状態はＦ（データフローが強制）でなくてはならない（図３のルール５を参照）；
−ＲＯ＝０（アイドル、１、２および３）の場合の推定状態の全ての組み合わせに対応するＤＯデータパス要素の状態はＳでなくてはならない；また、ＲＯ信号の表明なしでは入力から出力へ（ＤＩからＤＯへ）データが転送されないので、ＲＯ＝１（４、５、６および７）の場合の推定状態の全ての組み合わせに対応するＤＯデータパス要素の状態はＳ／Ｆ（ＶＩ＝１であれば、データフロー可）でなくてはならない（図３のルール３を参照）；
−ＤＩデータパス要素の状態は、ＤＯデータパス要素の状態と同様である。
【００５９】
従って、本発明の実施例によれば、データパス要素の結果としての挙動状態は、特定の設計ルールに左右される未解決可変要素の推定状態の各組み合わせ用に規定される。有効状態プロセッサは、設計基準に従ってデータパス要素の結果としての挙動状態４０４を処理することによって、未解決可変状態４０５の有効状態を取り出すように構成することができる。
【００６０】
このことを考慮して、未解決可変要素４０３の組み合わせと、未解決可変要素（有効状態）４０５の有効な組み合わせとなる対応するデータフローを処理する非限定的な例に注意を払う。この処理は、上述のように定式化された設計基準に従って、図３ａを参照して詳細を述べた所定の設計ルール１−１０と入力条件を考慮して提供される。四角い区切りの中の同様の理由は、データパス要素の挙動状態に基づく分析に関連している。
【００６１】
アイドル状態
次に、Ｐ１＝０（ＶＩ入力は、アイドル状態に関係しない）と仮定する。ＧＯは、設計基準（ルール（９）において、設計者によって導入された制約であり、例えば、上述の“Formal Hardware Verification with BDDs：An Introduction”に記載された技術によって抽出が可能）である。組み合わせ４−７は、情報フローが不可能であるＰ１＝０の時に、ルール（３）との論理的矛盾によって失敗する。組み合わせ１および３は、ＤＯ．ｖが０でなくてはならず、アイドル状態においてデータがＤＯに入力しない［符号４０４のアイドル状態のＤＯの「Ｓ」状態］ので、データの完全性（ルール８）によって失敗する。外側回路は、ＤＯにデータが存在しない場合に有効信号を見ることができないので、データの完全性（ルール８）によって組み合わせ２が失敗する［この組み合わせについての結果としてのＤＯＶの挙動状態はフローが強制であることを意味する「Ｆ」である。ＤＯ．ｖ＝０であるので、ＤＯにはデータが存在せず、従って、この組み合わせは、データの完全性によって失敗である］。従って、次のＰ１＝０の時には、次の有効状態は再びアイドルである。
【００６２】
次にＰ１＝１であると仮定する。ルール（９）によって、ＧＯが可能であり、これはルール（４）によって強制である。組み合わせ１、３、５および７は、データがアイドル状態のＤＯに入らないので、データの完全性によって失敗であり（ルール８）、ＤＯ．ｖは０になる［４０４において、アイドル状態にあるＤＯの「Ｓ」状態］。ＤＯにデータが存在しないので外側回路は有効信号を見ることができず、組み合わせ２および６は、データの完全性によって失敗である（ルール８）［これらの組み合わせのためのＤＯＶの結果としての挙動状態は、フローが強制であることを意味する「Ｆ」である。ＤＯ．ｖ＝０であるため、ＤＯにはデータが存在しておらず、従って、これらの組み合わせは、データの完全性によって失敗である］。アイドルの組み合わせは、入力データが目的なくブロックされているので、設計フローを可能にする点によって失敗である（ルール１０）。従って、次のＰ１＝１のとき、次の有効状態は組み合わせ＃４である。
【００６３】
状態＃４
次のＰ１＝０を仮定する。ルール（９）によって、ＧＯは不可能である。組み合わせ４−７は、フローが可能でないことを意味するＰ１＝０のとき、ルール（３）にのっとって論理的矛盾によって失敗である。組み合わせ２は、ＤＯにデータが存在しない場合に外側回路が有効信号を見ることができないので、データの完全性（ルール８）によって失敗である。［この組み合わせに関するＤＯＶの結果としての挙動状態は、フローが強制であること意味する「Ｆ」である。ＤＯ．ｖ＝０のときに、ＤＯにデータが存在しないので、この組み合わせは、データの完全性によって失敗である］。ＶＩ＝０であれば、組み合わせ１および３は、ＤＯ．ｖは、新しいデータが入らなければ０でなくてはならないので、データの完全性によって失敗である。［４０４において、（ＶＩ＝０のとき）状態４におけるＤＯの「Ｓ」状態］。従って、次の有効状態はアイドルである。ＶＩ＝１であれば、アイドルと２の組み合わせは、新しいデータが入ればＤＯ．ｖが１でなければならないので、データの完全性によって失敗である［４０４において、（ＶＩ＝１のとき）状態４のＤＯの「Ｆ」状態］。組み合わせ１は、目的なく設計フローを可能にすることによって失敗である。従って、次の有効状態は組み合わせ＃４である。ＶＩ＝１であれば、アイドル、２、４および６の組み合わせは、データの完全性によって失敗である。新しいデータが入ってくれば、ＤＯ．ｖは１でなくてはならない［４０４において（ＶＩ＝１のとき）状態４のＤＯの「Ｆ」の状態］。組み合わせ１及び５は、出力データが目的なくブロックされているので、設計フローを可能にする（ルール１０）によって失敗である。組み合わせ３は、入力データが目的なくブロックされているので、設計フローを可能にする（ルール１０）によって失敗である。従って、次の有効状態は組み合わせ＃７である。
【００６４】
組み合わせ３及び７について同様に処理が行われる。以下の表２は、この処理のステップをまとめたものである。「ＬＣ」は、論理的矛盾による確認失敗を表し、「ＤＩ」は、データの完全性による確認失敗を表し、「ＤＦ」は、設計フローの条件による確認失敗を表す。
【表２】
2008511894.tif 000004
【００６５】
本発明は、図４に記載されている有効状態プロセッサとデータ表示の特定の構造に縛られるものではない。当業者には、本発明が、別の方法で統合された、あるいは分割された同等の及び／又は変形した機能性を有するその他の処理に適用可能であることは自明である。
【００６６】
上述の有効状態の処理と導出は、非限定的な例として図５に示す挙動状態機械の定式化を容易にする。
【００６７】
この特許明細書で使用されている「状態機械」という用語は、挙動が入力の知識のみでは規定できず、少なくとも入力変化のシーケンスに依存する場合、状態と遷移でなるすべての種類のシーケンシャルな挙動モデルをカバーするように広く解釈すべきである。このモデルは、例えば、有限状態の機械、制御とデータグラフ、状態図、挙動テーブル、ＰＬＣ言語に用いるモデル、ペトリィネット（Petry-net）、その他といったさまざまな形で表すことができる。ある状態は、過去に関する情報を保存している。すなわち、システムの開始から現在の瞬間までの入力の変化を反映している。遷移は、状態の変化を表示しており、遷移を可能にするために満足する必要がある条件によって記載されている。
【００６８】
図５に示す状態機械は、ノード（図４の符号によれば、アイドル、３、４および７）として表示されている有効状態と、ノードをつなぐ弧として表示されている状態間の遷移を具える。この例示的な状態機械は、非限定的な例として図４に示されている処理によって導出される有効条件に対応する。図に示す例の中の可変要素の依存性とその明確な表示は、非常に単純であるので、状態機械は、Ｐ１条件の次の状態の予想値を認識することによって定式化される。
【００６９】
Ｐ１論理は、ＧＯで「１」になり、ＥＮＤで「０」に戻る（ルール４）。次のＰ１は、従って、まっすぐである。Ｐ３論理は、Ｐ１アクティブとＥＮＤで「１」になり、！ＤＯ．ｖで「０」に戻る（ルール６）。ＤＯＮＥ論理は、一のサイクルの間に、Ｐ３がアクティブになり、！ＤＯ．ｖが満足されると、上がる（ルール７）。ＤＯ．ｖ、ＲＯ及びＶＯは，上述した結果としての状態機械から容易に決定される。ＤＯ．ｖは、状態３または７で「１」である。ＲＯは、状態４または７で「１」である。ＶＯは、状態３又は７で「１」である。
【００７０】
以下の表３は、図５に示す遷移をまとめたものである。状態名は、例えば、情報フローの状況（図５に示すような）、ユーザが決めたルール、その他などさまざまな方法で割り当てられている。状態機械の入力は：Ｐ１（その中のＧＯとＥＮＤ信号を搬送する）とＶＩである。
【表３】
2008511894.tif 000005
【００７１】
従って、本発明の実施例によれば、定式化された状態機械によって、明確な表現を持たず、制御パス要素を完全に特定している可変要素の解決が可能である。
【００７２】
本発明に記載されている方法は、完全に自動的に、いずれかのステップでの設計者の介入付きで自動的に、および完全に手動で行うことができ、また、電子回路の設計に好適なあらゆるプログラム可能な言語を使用することができる。本発明の原理によって、本発明の所定の態様に最適化した特定の言語を定式化することもできる。
【００７３】
図６を参照すると、非限定的な例として、メタ言語で設計機能を記載した機能挙動ルールが示されている。図に示すコードラインと図３ａに示されている設計ルール間の関係は以下の通りである。
【００７４】
構造セクション６０１は、データパス要素に関連する挙動ルールと条件を具える；制御セクション６０２は、制御パス要素に関連する挙動ルールと条件を具え、属性セクション６０３は、一般的な設計情報を伝える設計基準を具える。
【００７５】
ライン１は、ルール３に対応する：ＤＩは、Ｐ１の制御条件の下ＤＯにサンプリングされる。
【００７６】
ライン２は、ルール５に対応する：ＶＯが表明されていれば、ＤＯがサンプリングされる。このことは、ＶＯ条件が制御セクションにおいて詳細になるときの代替の統語論を示す。
【００７７】
ライン３は、ルール７に対応する：ＤＯＮＥ信号はＰ３制御の定義の終了条件のサンプルバージョンである。
【００７８】
ライン４は、ルール４に対応する：Ｐ１がＧＯ信号とＥＮＤ信号の間に表明され、この条件に関連するフローが、ＶＩ＆＆ＲＯの論理的組み合わせの存在によって、更に条件化される。このバーチャル表示状態は、関連するバーチャル条件（すなわち、ＶＩ＆＆ＲＯ）が、外部回路によって入力が有効と考えられる唯一の条件である。
【００７９】
ライン５は、ルール６に対応する：Ｐ３は、Ｐ１の制御条件の終了条件と、ＤＯデータ要素の非有効性との間に表明される。
【００８０】
ライン６は、ルール８に対応する：データは回路内では発生することができず、上書きもされず無視される（データの完全性の設計基準）。
【００８１】
ライン７は、ルール９に対応する：ＧＯの表明用の外部条件が存在する。ＧＯは、以前のＧＯの表明後にＤＯＮＥが表明された場合にのみ表明される。この種の条件は、設計状態機械の可能な遷移を制限する。
【００８２】
本発明の実施例によれば、出力構造レベル記述の簡易に構築された短い仕様が容易になる。以下のVerilog RTLコードは、非限定的な例で一般的な定義（例えば、モジュール、入力、出力）なしで、図３に示す例示的な回路の構造レベル記述を示す。
2008511894.tif 000006
2008511894.tif 000007
2008511894.tif 000008
【００８３】
本発明のアプリケーションは、ここに含まれる記載あるいは図面に示す記載にある詳細に限定されるものではないと解される。本発明は、その他の実施例に適用可能であり、さまざまな方法で実施し、実行することができる。従って、ここで用いられている表現及び用語は、記載の目的のものであり、限定のためのものではないと解される。このように、当業者は、この開示のベースとなる概念が、本発明のいくつかの目的を達成するために、その他の構造、方法およびシステム設計のベースとして容易に使用できることは自明である。
【００８４】
ここに述べた本発明の実施例に、請求の範囲によって規定される発明の範囲から外れることなく、さまざまな変形と変更を加えることができるのは当業者には自明である。
【００８５】
本発明によるシステムは、好適にプログラムされたコンピュータであっても良いと解される。同様に、本発明は、本発明の方法を実行するコンピュータによって読み取り可能なコンピュータプログラムを意図している。本発明は更に、本発明の方法を実行するために機械によって実行可能なインストラクションプログラムを有形に実行する機械によって読み取り可能なメモリも意図している。
【図面の簡単な説明】
【００８６】
本発明を理解するために、および実際に本発明がどのように実行されるかを見るために、好ましい実施例について、非限定的な例の形で、添付図面を参照して述べる。
【図１】図１は、この分野において公知の典型的な電子回路設計フローを示す図である。
【図２】図２は、本発明の実施例による高レベルシステム設計プロセスを示す図である。
【図３ａ】図３ａは、例示的な電子回路の機能的記述を示す図である。
【図３ｂ】図３ｂは、例示的な電子回路の機能的記述を示す図である。
【図４】図４は、本発明の実施例に係る有効状態にあるプロセッサを示す図である。
【図５】図５は、本発明の実施例によって定式化した状態機械を示す図である。
【図６】図６は、本発明の実施例による機能的挙動ルールのメタ言語記述を示す図である。
【図１】
2008511894.tif 000009
【図２】
2008511894.tif 000010
【図３ａ】
2008511894.tif 000011
【図３ｂ】
2008511894.tif 000012
【図４】
2008511894.tif 000013
【図５】
2008511894.tif 000014
【図６】
2008511894.tif 000015
【国際調査報告】
2008511894.tif 000016