(57)【要約】【課題】  ＬＳＩ設計時に、論理合成による最適化が行われても、二重化回路と本体回路を統合しない集積回路設計装置、及び集積回路設計方法を提供する【解決手段】  階層化指定を含むＲＴＬ（Register  Transfer  Level：レジスタトランスファーレベル）記述を有するＲＴＬファイルと、前記階層化指定に対応して階層化される二つのモジュールの出力ポートの対応を示す対応ファイルとを備える記憶装置と、前記ＲＴＬファイルに対応して、集積回路を設計する演算処理装置とを備え、前記演算処理装置は、前記ＲＴＬファイルに対応して設計する回路の階層化を実行し、前記回路を構成する階層化されたモジュール群の出力ポートを示す出力ポートファイルを生成し、前記出力ポートファイルと前記対応ファイルに基づいて出力ポートを選択し、前記選択された出力ポートまでのパスを構成する論理ゲートを調査する集積回路設計装置によってＬＳＩの設計を行う。【選択図】        図２
2005165681.tif 000002
【特許請求の範囲】
【請求項１】
階層化指定を含むＲＴＬ（Register  Transfer  Level：レジスタトランスファーレベル）記述を有するＲＴＬファイルと、前記階層化指定に対応して階層化される二つのモジュールの出力ポートの対応を示す対応ファイルとを備える記憶装置と、
前記ＲＴＬファイルに対応して、集積回路を設計する演算処理装置と
を備え、
前記演算処理装置は、前記ＲＴＬファイルに対応して設計する回路の階層化を実行し、前記回路を構成する階層化されたモジュール群の出力ポートを示す出力ポートファイルを生成し、
前記出力ポートファイルと前記対応ファイルに基づいて出力ポートを選択し、前記選択された出力ポートまでのパスを構成する論理ゲートを調査する
集積回路設計装置。
【請求項２】
請求項１に記載の集積回路設計装置において、
前記演算処理装置は論理合成部と、選択されたパスのスタートポイントからエンドポイントまでの論理ゲートを調査する回路調査部とを含み、
前記論理合成部は、前記階層化されたモジュール群の階層を保持したままのゲートレベル論理回路を生成し、前記ゲートレベル論理回路を示すネットリストを出力し、
前記回路調査部は、前記選択された出力ポートを前記スタートポイントに設定し、前記選択された出力ポートに信号を送信する送信部に前記エンドポイントを設定し、前記ネットリストに基づいて論理ゲートを調査する
集積回路設計装置。
【請求項３】
請求項２に記載の集積回路設計装置において、
前記演算処理装置は調査ポート出力部を含み、
前記調査ポート出力部は前記出力ポートファイルと前記対応ファイルに基づいて選択される出力ポートの対を示す出力ポート対を生成し、前記出力ポート対は階層化された複数のモジュールの各々の出力ポートを第１ポートと第２ポートとして一対一に対応させた対応ポート情報を有し、
前記回路調査部は、前記第１ポートを前記スタートポイントに設定し、前記第１ポートに信号を送信する送信部に前記エンドポイントを設定し、前記ネットリストに基づいて論理ゲートを調査した第１調査結果と、前記第２ポートを前記スタートポイントに設定し、前記第２ポートに信号を送信する送信部に前記エンドポイントを設定し、前記ネットリストに基づいて論理ゲートを調査した第２調査結果とを比較し、前記比較結果を出力する
集積回路設計装置。
【請求項４】
請求項２または３に記載の集積回路設計装置において、
前記送信部は前記出力ポートに信号を出力するフリップフロップまたはプライマリ入力である
集積回路設計装置。
【請求項５】
請求項４に記載の集積回路設計装置において、
前記ＲＴＬファイルに対応して設計する回路の階層化を実行し、前記回路を構成する階層化されたモジュール群の出力ポートを示す出力ポートファイルを生成する階層化部を備え、
前記階層化部は、前記出力ポートファイルを前記記憶装置に格納し、前記出力ポートファイルの格納完了に応答して前記論理合成部に前記格納完了を通知し、前記通知に対応して前記調査ポート出力部に出力ポート対の生成を指示し、
前記論理合成部は、前記通知に応答して前記ネットリストを出力し、前記ネットリストを前記記憶装置に格納し、前記ネットリストの格納完了に応答して前記回路調査部に前記ネットリストの格納完了を通知し、
前記調査ポート出力部は、前記指示に応答して前記出力ポートファイルと前記対応ファイルを前記記憶装置から読み込み、前記出力ポートファイルと前記対応ファイルに基づいて作成した出力ポート対を前記記憶装置に格納し、前記出力ポート対の格納完了を前記回路調査部に通知し、
前記回路調査部は、前記ネットリストの格納完了の通知と前記出力ポート対の格納完了の通知に対応して、前記ネットリストと前記出力ポート対を前記記憶装置から読み込み、前記出力ポート対に含まれる前記第１ポートを前記スタートポイントに設定し、前記第１ポートに信号を送信する送信部に前記エンドポイントを設定し、前記ネットリストに基づいて論理ゲートを調査した第１調査結果と、前記第２ポートを前記スタートポイントに設定し、前記第２ポートに信号を送信する送信部に前記エンドポイントを設定し、前記ネットリストに基づいて論理ゲートを調査した第２調査結果とを比較し、前記比較結果を出力する
集積回路設計装置。
【請求項６】
階層化指定を含むＲＴＬ（Register  Transfer  Level：レジスタトランスファーレベル）記述を有するＲＴＬファイルと、前記階層化指定に対応して階層化される二つのモジュールの出力ポートの対応を示す対応ファイルとを格納するステップと、
前記ＲＴＬファイルに対応して設計する回路の階層化を実行し、前記回路を構成する階層化されたモジュール群の出力ポートを示す出力ポートファイルを生成するステップと、
前記出力ポートファイルと前記対応ファイルに基づいて出力ポートを選択するステップと、
前記選択された出力ポートまでのパスを構成する論理ゲートを調査するステップ
を具備する集積回路設計方法。
【請求項７】
請求項６に記載の集積回路設計方法において、
選択されたパスのスタートポイントからエンドポイントまでの論理ゲートを調査するステップと、
前記階層化されたモジュール群の階層を保持したままのゲートレベル論理回路を生成するステップと、
前記ゲートレベル論理回路を示すネットリストを出力するステップと、
前記選択された出力ポートを前記スタートポイントに設定し、前記選択された出力ポートに信号を送信する送信部に前記エンドポイントを設定するステップと、
前記ネットリストに基づいて論理ゲートを調査するステップ
を具備する集積回路設計方法。
【請求項８】
請求項７に記載の集積回路設計方法において、
階層化された複数のモジュールの各々の出力ポートを第１ポートと第２ポートとして一対一に対応させた対応ポート情報を生成するステップと
前記対応ポート情報をに基づいて出力ポートの対を示す出力ポート対を生成するステップと、
前記出力ポート対に含まれる前記第１ポートを前記スタートポイントに設定し、前記第１ポートに信号を送信する送信部に前記エンドポイントを設定し、前記ネットリストに基づいて論理ゲートを調査した第１調査結果を出力するステップと、
前記第２ポートを前記スタートポイントに設定し、前記第２ポートに信号を送信する送信部に前記エンドポイントを設定し前記ネットリストに基づいて論理ゲートを調査した第２調査結果を出力するステップと
前記第１調査結果と前記第２調査結果を比較するステップと、
前記比較結果を出力するステップ
を具備する集積回路設計方法。
【請求項９】
請求項７または８に記載の集積回路設計方法において、
前記送信部は前記出力ポートに信号を出力するフリップフロップまたはプライマリ入力である
集積回路設計方法。
【請求項１０】
請求項９に記載の集積回路設計方法において、
前記ＲＴＬファイルに対応して設計する回路の階層化を実行するステップと、
前記回路を構成する階層化されたモジュール群の出力ポートを示す出力ポートファイルを生成するステップと、
前記出力ポートファイルを格納するステップと、
前記出力ポートファイルの格納完了に応答して前記格納完了を通知するステップと、
前記出力ポートファイルの格納完了の通知に対応して出力ポート対の生成を指示するステップと、
前記出力ポートファイルの格納完了の通知に応答して前記ネットリストを出力するステップと、
前記ネットリストを格納するステップと、
前記ネットリストの格納完了に応答して前記ネットリストの格納完了を通知するステップと、
前記指示に応答して前記出力ポートファイルと前記対応ファイルを読み込むステップと、
前記出力ポートファイルと前記対応ファイルに基づいてポート対を生成するステップと、前記生成した出力ポート対を格納するステップと、
前記出力ポート対の格納完了を通知するステップと、
前記ネットリストの格納完了の通知と前記出力ポート対の格納完了の通知に対応して、前記ネットリストと前記出力ポート対を読み込むステップと、
前記出力ポート対に含まれる前記第１ポートを前記スタートポイントに設定し、前記第１ポートに信号を送信する送信部に前記エンドポイントを設定し、前記ネットリストに基づいて論理ゲートを調査した第１調査結果を出力するステップと、
前記第２ポートを前記スタートポイントに設定し、前記第２ポートに信号を送信する送信部に前記エンドポイントを設定し前記ネットリストに基づいて論理ゲートを調査した第２調査結果を出力するステップと
前記第１調査結果と前記第２調査結果を比較するステップと、
前記比較結果を出力するステップ
を具備する集積回路設計方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は集積回路設計装置、および、集積回路設計方法に関する。
【背景技術】
【０００２】
パーソナルコンピュータや携帯電話の普及は、半導体デバイスの需要を急激に高めてきている。それらの製品の普及は、より高い信頼性を有する半導体デバイスを要求してきている。特に、ＡＬＵ（Arithmetic  and  Logical  Unit：演算装置）など、演算回路における誤りの発生は、データ化けなどコンピュータの心臓部のエラーとなるため、その装置にとって致命的な問題になる。半導体デバイス、特にＬＳＩ（Large-Scale  Integrated  circuit：大規模集積回路）の設計・製造技術は近年飛躍的に進歩してきている。そのようなＬＳＩの設計において、装置の信頼性を向上させるために設計段階において回路（本体回路）を二重化させ、その回路と二重化させた二重化回路の各々の出力を比較し、異なる出力が発生した場合、設計の見なおしを行っていた（例えば、特許文献１参照。）。
【０００３】
このような回路の二重化手法は、設計されるＬＳＩに信頼性の向上に有効である。このように二重化回路を使用してＬＳＩの設計を行う場合、設計段階の論理合成の過程で二重化回路と本体回路が一つに統合されてしまうことがある。図１は二重化回路と本体回路が論理合成の段階で一つに統合されてしまう様子を示す概念図である。図１に示されるようなことが起こってしまう原因は設計段階における二重化回路は基本的には本体回路と同一の論理であるため、論理合成の過程で回路の最適化が行われた場合に一つに統合されてしまうからである。
【０００４】
ＬＳＩ設計時に、論理合成による最適化が行われても、二重化回路と本体回路を統合しない集積回路設計装置、及び集積回路設計方法が望まれる。
【０００５】
さらに、論理合成後に二重化回路が残っているかどうかを確認する手段を備えた集積回路設計装置、及びその装置による集積回路設計方法が望まれる。
【０００６】
【特許文献１】特開平１１−１０２３８６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
本発明が解決しようとする課題は、ＬＳＩ設計時に、論理合成による最適化が行われても、二重化回路と本体回路を統合しない集積回路設計装置、及び集積回路設計方法を提供することにある。
【０００８】
本発明が解決しようとするさらなる課題は、論理合成後に二重化回路が残っているかどうかを確認する手段を備えた集積回路設計装置、及びその装置による集積回路設計方法を提供することにある。
【課題を解決するための手段】
【０００９】
以下に、［発明を実施するための最良の形態］で使用される番号を用いて、課題を解決するための手段を説明する。これらの番号は、［特許請求の範囲］の記載と［発明を実施するための最良の形態］との対応関係を明らかにするために付加されたものである。ただし、それらの番号を、［特許請求の範囲］に記載されている発明の技術的範囲の解釈に用いてはならない。
【００１０】
階層化指定を含むＲＴＬ（Register  Transfer  Level：レジスタトランスファーレベル）記述を有するＲＴＬファイル（２１）と、前記階層化指定に対応して階層化される二つのモジュールの出力ポートの対応を示す対応ファイル（２４）とを備える記憶装置（２）と、前記ＲＴＬファイル（２１）に対応して、集積回路を設計する演算処理装置（１）とを備え、
前記演算処理装置（１）は、前記ＲＴＬファイル（２１）に対応して設計する回路の階層化を実行し、前記回路を構成する階層化されたモジュール群の出力ポートを示す出力ポートファイル（２２）を生成し、前記出力ポートファイル（２２）と前記対応ファイル（２４）に基づいて出力ポートを選択し、前記選択された出力ポートまでのパスを構成する論理ゲートを調査する集積回路設計装置によってＬＳＩの設計を行う。
【００１１】
その集積回路設計装置において、前記演算処理装置（１）は論理合成部（１２）と、選択されたパスのスタートポイントからエンドポイントまでの論理ゲートを調査する回路調査部（１４）とを含み、前記論理合成部（１２）は、前記階層化されたモジュール群の階層を保持したままのゲートレベル論理回路を生成し、前記ゲートレベル論理回路を示すネットリストを出力し、前記回路調査部（１４）は、前記選択された出力ポートを前記スタートポイントに設定し、前記選択された出力ポートに信号を送信する送信部に前記エンドポイントを設定し、前記ネットリストに基づいて論理ゲートを調査する集積回路設計装置によってＬＳＩの設計を行う。
【００１２】
このような構成の集積回路設計装置を用いてＬＳＩを設計することで、二重化回路を構成する場合に論理合成による統合が行われることが無くなり、設計される回路の信頼性が向上する。
【００１３】
その集積回路設計装置において、前記演算処理装置（１）は調査ポート出力部（１３）を含み、前記調査ポート出力部（１３）は前記出力ポートファイル（２２）と前記対応ファイル（２４）に基づいて選択される出力ポートの対を示す出力ポート対（２５）を生成し、前記出力ポート対（２５）は階層化された複数のモジュールの各々の出力ポートを第１ポートと第２ポートとして一対一に対応させた対応ポート情報を有し、前記回路調査部（１４）は、前記第１ポートを前記スタートポイントに設定し、前記第１ポートに信号を送信する送信部に前記エンドポイントを設定し、前記ネットリストに基づいて論理ゲートを調査した第１調査結果と、前記第２ポートを前記スタートポイントに設定し、前記第２ポートに信号を送信する送信部に前記エンドポイントを設定し、前記ネットリストに基づいて論理ゲートを調査した第２調査結果とを比較し、前記比較結果を出力する集積回路設計装置によってＬＳＩの設計を行う。
【００１４】
その集積回路設計装置において、前記送信部は前記出力ポートに信号を出力するフリップフロップまたはプライマリ入力である集積回路設計装置によってＬＳＩの設計を行う。
【００１５】
このような構成の集積回路設計装置を用いてＬＳＩを設計することで、二重化回路を構成する場合に論理合成による統合が行われることが無くなり、さらに、二重化された回路が適切に動作しているかどうかの検証が実行できるため、設計される回路の信頼性が向上する。
【００１６】
その集積回路設計装置において、前記ＲＴＬファイル（２１）に対応して設計する回路の階層化を実行し、前記回路を構成する階層化されたモジュール群の出力ポートを示す出力ポートファイル（２２）を生成する階層化部（１１）を備え、前記階層化部（１１）は、前記出力ポートファイル（２２）を前記記憶装置（２）に格納し、前記出力ポートファイル（２２）の格納完了に応答して前記論理合成部（１２）に前記格納完了を通知し、前記通知に対応して前記調査ポート出力部（１３）に出力ポート対（２５）の生成を指示し、前記論理合成部（１２）は、前記通知に応答して前記ネットリストを出力し、前記ネットリストを前記記憶装置（２）に格納し、前記ネットリストの格納完了に応答して前記回路調査部（１４）に前記ネットリストの格納完了を通知し、前記調査ポート出力部（１３）は、前記指示に応答して前記出力ポートファイル（２２）と前記対応ファイル（２４）を前記記憶装置（２）から読み込み、前記出力ポートファイル（２２）と前記対応ファイル（２４）に基づいて作成した出力ポート対（２５）を前記記憶装置（２）に格納し、前記出力ポート対（２５）の格納完了を前記回路調査部（１４）に通知し、前記回路調査部（１４）は、前記ネットリストの格納完了の通知と前記出力ポート対（２５）の格納完了の通知に対応して、前記ネットリストと前記出力ポート対（２５）を前記記憶装置（２）から読み込み、前記出力ポート対（２５）に含まれる前記第１ポートを前記スタートポイントに設定し、前記第１ポートに信号を送信する送信部に前記エンドポイントを設定し、前記ネットリストに基づいて論理ゲートを調査した第１調査結果と、前記第２ポートを前記スタートポイントに設定し、前記第２ポートに信号を送信する送信部に前記エンドポイントを設定し、前記ネットリストに基づいて論理ゲートを調査した第２調査結果とを比較し、前記比較結果（２６）を出力する集積回路設計装置によってＬＳＩの設計を行う。
【００１７】
階層化指定を含むＲＴＬ（Register  Transfer  Level：レジスタトランスファーレベル）記述を有するＲＴＬファイル（２１）と、前記階層化指定に対応して階層化される二つのモジュールの出力ポートの対応を示す対応ファイル（２４）とを格納するステップと、前記ＲＴＬファイル（２１）に対応して設計する回路の階層化を実行し、前記回路を構成する階層化されたモジュール群の出力ポートを示す出力ポートファイル（２２）を生成するステップと、前記出力ポートファイル（２２）と前記対応ファイル（２４）に基づいて出力ポートを選択するステップと、前記選択された出力ポートまでのパスを構成する論理ゲートを調査するステップを具備する集積回路設計方法を用いてＬＳＩの設計を行う。
【００１８】
その集積回路設計方法において、選択されたパスのスタートポイントからエンドポイントまでの論理ゲートを調査するステップと、前記階層化されたモジュール群の階層を保持したままのゲートレベル論理回路を生成するステップと、前記ゲートレベル論理回路を示すネットリストを出力するステップと、前記選択された出力ポートを前記スタートポイントに設定し、前記選択された出力ポートに信号を送信する送信部に前記エンドポイントを設定するステップと、前記ネットリストに基づいて論理ゲートを調査するステップを具備する集積回路設計方法を用いてＬＳＩの設計を行う。
【００１９】
その集積回路設計方法において、階層化された複数のモジュールの各々の出力ポートを第１ポートと第２ポートとして一対一に対応させた対応ポート情報を生成するステップと前記対応ポート情報をに基づいて出力ポートの対を示す出力ポート対（２５）を生成するステップと、前記出力ポート対（２５）に含まれる前記第１ポートを前記スタートポイントに設定し、前記第１ポートに信号を送信する送信部に前記エンドポイントを設定し、前記ネットリストに基づいて論理ゲートを調査した第１調査結果を出力するステップと、前記第２ポートを前記スタートポイントに設定し、前記第２ポートに信号を送信する送信部に前記エンドポイントを設定し前記ネットリストに基づいて論理ゲートを調査した第２調査結果を出力するステップと前記第１調査結果と前記第２調査結果を比較するステップと、前記比較結果（２６）を出力するステップを具備する集積回路設計方法を用いてＬＳＩの設計を行う。
【００２０】
その集積回路設計方法において、前記送信部は前記出力ポートに信号を出力するフリップフロップまたはプライマリ入力である集積回路設計方法を用いてＬＳＩの設計を行う。
【００２１】
その集積回路設計方法において、前記ＲＴＬファイル（２１）に対応して設計する回路の階層化を実行するステップと、前記回路を構成する階層化されたモジュール群の出力ポートを示す出力ポートファイル（２２）を生成するステップと、前記出力ポートファイル（２２）を格納するステップと、前記出力ポートファイル（２２）の格納完了に応答して前記格納完了を通知するステップと、前記出力ポートファイル（２２）の格納完了の通知に対応して出力ポート対（２５）の生成を指示するステップと、前記出力ポートファイル（２２）の格納完了の通知に応答して前記ネットリストを出力するステップと、前記ネットリストを格納するステップと、前記ネットリストの格納完了に応答して前記ネットリストの格納完了を通知するステップと、前記指示に応答して前記出力ポートファイル（２２）と前記対応ファイル（２４）を読み込むステップと、前記出力ポートファイル（２２）と前記対応ファイル（２４）に基づいてポート対を生成するステップと、前記生成した出力ポート対（２５）を格納するステップと、前記出力ポート対（２５）の格納完了を通知するステップと、前記ネットリストの格納完了の通知と前記出力ポート対（２５）の格納完了の通知に対応して、前記ネットリストと前記出力ポート対（２５）を読み込むステップと、前記出力ポート対（２５）に含まれる前記第１ポートを前記スタートポイントに設定し、前記第１ポートに信号を送信する送信部に前記エンドポイントを設定し、前記ネットリストに基づいて論理ゲートを調査した第１調査結果を出力するステップと、前記第２ポートを前記スタートポイントに設定し、前記第２ポートに信号を送信する送信部に前記エンドポイントを設定し前記ネットリストに基づいて論理ゲートを調査した第２調査結果を出力するステップと前記第１調査結果と前記第２調査結果を比較するステップと、前記比較結果（２６）を出力するステップを具備する集積回路設計方法を用いてＬＳＩの設計を行う。
【発明の効果】
【００２２】
本発明の効果は、二重化回路を論理合成する場合に最適化が実行されても二重化回路と本体回路が統合されてしまうということが無くなり、設計される回路の信頼性が向上するという効果がある。
【００２３】
本発明の更なる効果は、二重化回路が適切に動作しているかどうかの確認が容易行えるので設計される回路の信頼性が向上するという効果がある。
【発明を実施するための最良の形態】
【００２４】
［実施の構成］
以下に図面を用いて本発明を実施する最良の形態について述べる。
【００２５】
図２は本発明を実施するための最良の形態に述べる集積回路設計装置１０の構成を示すブロック図である。図２を参照すると、本実施の形態に述べる集積回路設計装置１０はデータ処理装置１と情報記憶装置２とＣＰＵ（中央演算処理装置）３とメモリ４と入力装置５と表示装置６とで構成され、それらはバスを介して接続される。
【００２６】
集積回路設計装置１０はＬＳＩなど集積回路を設計するために使用される情報処理装置である。ＨＤＬ（Hardware  Description  Language：ハードウェア記述言語）などを用いて集積回路の設計を行うことが可能な装置である。データ処理装置１は情報記憶装置２およびメモリ４に格納された情報を読出し、読み出した情報に対応して情報処理を行う情報処理機能ブロックである。またデータ処理装置１は処理した情報に対応する情報処理結果を所定のノードに出力する。情報記憶装置２はデータ処理装置１から出力された情報や入力装置５から入力された情報を記憶する情報記憶機能ブロックである。半導体メモリや磁気メモリによって構成され、データ処理装置１やＣＰＵ（中央演算処理装置）３からの命令に対応して情報の書込み／読出しを実行する。
【００２７】
ＣＰＵ（中央演算処理装置）３は集積回路設計装置１０全体の動作に係る情報処理を実行する情報処理機能ブロックである。メモリ４は集積回路設計装置１０全体の動作に係る情報の記憶を行う情報記憶機能ブロックである。入力装置５はデータ処理装置１またはＣＰＵ（中央演算処理装置）３の情報処理結果や、情報記憶装置２またはメモリ４に格納された情報の表示を行う情報表示機能ブロックである。
【００２８】
データ処理装置１は更に階層化部１１と論理合成部１２とチェック箇所加工部１３と二重化回路チェック部１４を含み、それらはバスを介して接続される。階層化部１１は、ＬＳＩ設計時に情報記憶装置２から受け取るＲＴＬ（Register  Transfer  Level）記述の中に、回路を階層化するように指定された記述部分を抽出し、自動的に階層化を行う階層化機能ブロックである。階層化部１１は階層化を行う場合に下位階層の入出力ポートを決定する。階層化部１１が決定する入出力ポートは、その入出力ポートに対して送信される信号の経路が明確になるように決定される。さらに、階層化部１１は階層化されるモジュールの全出力ポートをモジュール毎に出力ポート情報２２として出力する。
【００２９】
論理合成部１２は、ＲＴＬ記述をネットリストに変換する論理合成機能ブロックである。論理合成部１２は、階層を保持したままＲＴＬ記述を論理的に等価なネットリスト２３に変換する。論理合成部１２は変換と概ね同時に論理の最適化を実行する。チェック箇所加工部１３は、二重化回路の出力ポートと、本体回路の出力ポートとの対応を生成する演算機能ブロックである。チェック箇所加工部１３は出力ポート情報２２とチェック箇所指定ファイル２４を読み込み、出力ポート群の各々のポートを二重化回路に対応するポートと本体回路に対応するポートに分離する。チェック箇所加工部１３は各々の出力ポートが一対一の対を構成するファイル（チェック箇所ファイル２５）を生成する。
【００３０】
二重化回路チェック部１４は、二重化回路と本体回路に重なりが存在するかを判定する判定機能ブロックである。二重化回路チェック部１４はネットリスト２３とチェック箇所ファイル２５を読み込みチェック箇所ファイル２５に記述されたポート対の各々のポートからフリップフロップやプライマリ入力に到達するまでファンインコーン（選択されたパスのスタートポイントからエンドポイントまでの論理ゲートを、全階層にわたり表示させたもの）をトレースする。二重化回路チェック部１４は二重化回路と本体回路に重なり部分が存在した場合、エラー情報を生成しログ２６に出力する。
【００３１】
情報記憶装置２は更に階層化指定付ＲＴＬ２１と出力ポート情報２２とネットリスト２３とチェック箇所指定ファイル２４とチェック箇所ファイル２５とログ２６とを含み、それらはバスを介して接続される。階層化指定付ＲＴＬ２１は、階層指定を備えたＲＴＬ記述である。設計者はｖｅｒｉｌｏｇ−ＨＤＬやＶＨＤＬなどのＨＤＬ（Hardware  Description  Language：ハードウェア記述言語）を用いて実現するレジスタとレジスタ間の論理を記述する。階層化指定付ＲＴＬ２１はその記述されたＲＴＬ記述に二重化回路部分の指定を追加したものである。
【００３２】
出力ポート情報２２は、モジュール毎の出力ポートが記載されたファイルである。階層化部１１から出力され、情報記憶装置２に格納される。ネットリスト２３は、ＡＳＩＣ（Application  Specific  Integrated  Circuit）内部のゲートやセルベースの接続関係を表したリストである。ネットリスト２３は階層化指定付ＲＴＬ２１が論理合成部１２によって論理合成された結果が格納されたファイルを構成し、情報記憶装置２に格納されている。
【００３３】
チェック箇所指定ファイル２４は、二重化回路となるモジュール名を含むファイルである。チェック箇所指定ファイル２４は二重化回路となるモジュールのモジュール名と、本体回路を構成するモジュールのモジュール名との対応が記述され、その記述を含むファイルを構成し情報記憶装置２に格納される。また、チェック箇所指定ファイル２４は二重化回路に対応する出力ポートと本体回路に対応する出力ポートが対に構成された対が記述され、その記述を含むファイルを構成し情報記憶装置２に格納される。
【００３４】
チェック箇所ファイル２５は、出力ポートの対を含むファイルである。チェック箇所加工部１３から出力され二重化回路に対応する出力ポートと本体回路に対応する出力ポートとを一対一に対応させたものが記述され、その記述を含みファイルを構成し情報記憶装置２に格納される。ログ２６は、二重化回路チェック部１４によって検証された各々の出力ポート対に対しての出力結果を格納する。ログ２６は二重化回路チェック部１４が生成した二重化回路と本体回路に重なり部分が存在した場合を示すエラー情報、または、二重化回路と本体回路に重なり部分が存在しない場合を示す確認情報を記述したファイルを構成し、情報記憶装置２に格納される。
【００３５】
［実施の動作］
図３は本実施の形態に述べるＬＳＩ設計の動作を示すフローチャートである。図３を参照すると、本実施の形態に述べる動作は、高精度が要求される回路を設計するために記述された階層化指定付ＲＴＬ２１が情報記憶装置２に格納され、その階層化指定付ＲＴＬ２１の読み込み動作が行われると開始する。
【００３６】
ステップＳ１０１にいて、データ処理装置１の階層化部１１はＬＳＩ設計の為に情報記憶装置２から階層化指定付ＲＴＬ２１を読み込む。階層化指定付ＲＴＬ２１の読み込みは入力装置５を介して入力された読み込み命令や半自動設計により予め定められた部分の設計に係った場合に行われる。ステップＳ１０２において、階層化部１１は読み込んだ階層化指定付ＲＴＬ２１に基づいて本体回路と二重化回路との階層化を実行する。下位階層の入出力ポートは入出力される信号の送受信方向に基づいて決定される。階層化部１１は階層化が行われたモジュールの情報を論理合成部１２に出力する。
【００３７】
ステップＳ１０３において、階層化の実行が完了した階層化部１１は、階層化されるモジュールの全出力ポートが記述された出力ポート情報２２を生成し情報記憶装置２に出力する。ステップＳ１０４において、情報記憶装置２は階層化部１１から出力された出力ポート情報２２を格納する。ステップＳ１０５において、階層化部１１から出力された階層化が行われたモジュールを示すのモジュール情報を受信した論理合成部１２は、そのモジュール情報の受信に対応して階層化指定付ＲＴＬ２１の出力を情報記憶装置２に要求する。論理合成部１２はその要求に応答して出力された階層化指定付ＲＴＬ２１とモジュール情報に基づいて、階層を保持したまま論理合成を実行し、ステップＳ１０６においてその論理合成された結果をネットリストに変換する。
【００３８】
ステップＳ１０７において、論理合成部１２はそのネットリストを情報記憶装置２に出力し、情報記憶装置２は出力されたネットリストをネットリスト２３として格納する。ステップＳ１０８において、チェック箇所加工部１３は情報記憶装置２に格納された出力ポート情報２２を読み込む。チェック箇所加工部１３は更にステップＳ１０９において、情報記憶装置２に格納されたチェック箇所指定ファイル２４を読み込む。
【００３９】
ステップＳ１１０において、チェック箇所加工部１３は読み込んだチェック箇所指定ファイル２４に予め設定されたポート対が記載されているかを判断する。その判断の結果予め設定されたポート対がチェック箇所指定ファイル２４に記載されていない場合、処理はステップＳ１１１に進む。その判断の結果予め設定されたポート対がチェック箇所指定ファイル２４に記載されている場合、処理はステップＳ１１２に進む。
【００４０】
ステップＳ１１２において、チェック箇所加工部１３はチェック箇所指定ファイル２４に記載されたポート指定に指定漏れが存在するかどうかを判断する。予め指定されたポートは、二重化回路に対応する出力ポートと本体回路に対応する出力ポートとが一対一に対応していなければならない。チェック箇所加工部１３はチェック箇所指定ファイル２４記載された出力ポートが出力ポート情報２２に記載された出力ポートに照らし合わせた場合、対応しないポートが存在するか、または、重複して対応するポートが存在するかの判断を行う。その判断の結果、対応しないポート、または、重複して対応するポートが存在する場合、ポート指定の不備を集積回路設計装置１０に通知する（ステップＳ１１３）。集積回路設計装置１０はその通知に応答して警告を表示装置６に表示する。
【００４１】
ステップＳ１１４において、チェック箇所加工部１３はチェック箇所指定ファイル２４で指定された出力ポートを対応させた対応テーブルを生成し、ファイルにして出力する（ステップＳ１１５）。またステップＳ１１１において、チェック箇所加工部１３はチェック箇所指定ファイル２４に記載されたモジュール名に基づいて出力ポートの対応テーブルを生成し、ファイルにして出力する（ステップＳ１１５）。ステップＳ１１６において、情報記憶装置２はチェック箇所加工部１３から出力されたファイルをチェック箇所ファイル２５として格納する。
【００４２】
ステップＳ１１７において、二重化回路チェック部１４は情報記憶装置２からネットリスト２３とチェック箇所ファイル２５を読み込む。二重化回路チェック部１４は読み込んだチェック箇所ファイル２５に基づいて二重化回路の出力ポートと、その出力ポートに対応する本体回路の出力ポートを抽出する。二重化回路チェック部１４はその抽出した各々のポートに対して、フリップフロップまたはプライマリ入力に到達するまで入力側にトレースを実行する。二重化回路チェック部１４はそのトレースによって対応する出力ポート同士に重なりが存在するかどうかの確認を実行する。対応する二つの出力ポートの確認が完了した二重化回路チェック部１４は他の対応する二つの出力ポートのトレースを実行し、全てのポート対のトレースが完了するまでこの動作を繰り返す。
【００４３】
ステップＳ１１８において、全てのポート対のトレースが完了した二重化回路チェック部１４は、トレースした結果を情報記憶装置２に出力する。情報記憶装置２は二重化回路チェック部１４から送信された出力をログ２６として格納する。
【００４４】
以下に具体的な階層化指定付ＲＴＬ２１の記述を用いて本実施の形態の動作を具体的に述べる。図４は階層化指定付ＲＴＬ２１の階層化に関する具体的な記述部分の一例を示す図である。図４に示す記述において、「／／＊＃ＳＵＢ」で始まる行が階層化指定を行うための予約コメントである。「／／＊＃ＳＵＢ  ？？？（？は任意の文字）」で示される記述が階層の始まりを表し、「／／＊＃ＳＵＢ  ＥＮＤ」が階層の終わりをあらわす。また、「？？？」は階層の識別に用いられる階層名を示す。図４を参照すると、この場合階層化指定付ＲＴＬ２１には階層ＯＲＧと階層ＤＢＬの二つの階層が指定されている。
【００４５】
「／／＊＃ＳＵＢ  ＯＲＧ」と「／／＊＃ＳＵＢ  ＥＮＤ」で囲まれた部分の記述は階層ＯＲＧの出力ポートのポート番号が「０１」と「０２」であることを示している。同様に「／／＊＃ＳＵＢ  ＤＢＬ」と「／／＊＃ＳＵＢ  ＥＮＤ」で囲まれた部分の記述は階層ＯＲＧの出力ポートのポート番号が「０３」と「０４」であることを示している。
【００４６】
図３に示すステップＳ１０１において、階層化部１１は上記記述を含む階層化指定付ＲＴＬ２１を読み込む。その後ステップＳ１０２において、階層化部１１によって「／／＊＃ＳＵＢ  ＯＲＧ」と「／／＊＃ＳＵＢ  ＥＮＤ」で囲まれた部分に記述されたＨＤＬが階層ＯＲＧに落とし込まれる。同時に「／／＊＃ＳＵＢ  ＤＢＬ」と「／／＊＃ＳＵＢ  ＥＮＤ」で囲まれた部分に記述されたＨＤＬが階層化部１１によって階層ＤＢＬに落とし込まれる。
【００４７】
図５はこのときに出力される出力ポート情報２２の具体的な例を示す図である。図５を参照すると、出力ポート情報２２は階層名と出力ポートを対応させたテーブルを含んでいる。その後論理合成部１２は階層化されたＲＴＬを論理合成する。論理合成部１２は、階層を保持したまま論理合成によって階層化指定付ＲＴＬ２１を論理的に等価なネットリスト２３に変換する。論理合成部１２が階層を保持したまま論理合成を行うことで、階層ＯＲＧと階層ＤＢＬのうち片方が消えてしまうということがない。論理合成部１２はネットリスト２３の出力に応答してその出力完了を二重化回路チェック部１４に通知する。これによって二重化回路を論理合成する場合に最適化が実行されても二重化回路と本体回路が統合されてしまうということが無くなり、設計される回路の信頼性が向上する。
【００４８】
階層化部１１は出力ポート情報２２に出力に応答してチェック箇所加工部１３にチェック箇所ファイル２５の作成を指示する。チェック箇所加工部１３はその指示に応答して出力ポート情報２２、チェック箇所指定ファイル２４の読み込みを行う（図３に示すステップＳ１０８、ステップＳ１０９）。図６、図７はチェック箇所指定ファイル２４に記載されたモジュール指定の具体的な例を示す図である。図６に示す記述はモジュール名のみを対応させた場合の例を示し、図７に示す記述はモジュール名とポート番号とを対応させた場合の例を示す。
【００４９】
チェック箇所加工部１３が読み込んだチェック箇所指定ファイル２４の記載が図６に示すチェック箇所指定ファイル２４であった場合、チェック箇所加工部１３は予め設定された方法で二重化回路の出力ポートと本体回路の出力ポートを対応させる（図３のステップＳ１１０からステップＳ１１１）。図８は予め設定されたポート対応が総当りでの対応であった場合に出力されるチェック箇所ファイル２５の具体例を示す。
【００５０】
チェック箇所加工部１３はチェック箇所ファイル２５の出力に応答して出力完了を二重化回路チェック部１４に通知する。二重化回路チェック部１４は論理合成部１２からの通知とチェック箇所加工部１３からの通知の対応して、ネットリスト２３とチェック箇所ファイル２５を読み込む。二重化回路チェック部１４は読み込んだネットリスト２３とチェック箇所ファイル２５から二重化回路の出力ポートと、その出力ポートに対応する本体回路の出力ポートを抽出する。二重化回路チェック部１４はその抽出した各々のポートに対して、フリップフロップまたはプライマリ入力に到達するまで入力側にトレースを実行する。二重化回路チェック部１４はそのトレースによって対応する出力ポート同士に重なりが存在するかどうかの確認を実行する。対応する二つの出力ポートの確認が完了した二重化回路チェック部１４は他の対応する二つの出力ポートのトレースを実行し、全てのポート対のトレースが完了するまでこの動作を繰り返す。
【００５１】
チェック箇所加工部１３が読み込んだチェック箇所指定ファイル２４の記載が図７に示すチェック箇所指定ファイル２４であった場合、チェック箇所加工部１３はチェック箇所指定ファイル２４に記載の指定に基づいて二重化回路の出力ポートと本体回路の出力ポートを対応させる（図３のステップＳ１１０からステップＳ１１４）。図９はチェック箇所指定ファイル２４に記載の指定に基づいて二重化回路の出力ポートと本体回路の出力ポートを対応させた場合に出力されるチェック箇所ファイル２５の具体例を示す。
【００５２】
チェック箇所加工部１３はチェック箇所ファイル２５の出力に応答して出力完了を二重化回路チェック部１４に通知する。二重化回路チェック部１４は論理合成部１２からの通知とチェック箇所加工部１３からの通知の対応して、ネットリスト２３とチェック箇所ファイル２５を読み込む。二重化回路チェック部１４は読み込んだネットリスト２３とチェック箇所ファイル２５から二重化回路の出力ポートと、その出力ポートに対応する本体回路の出力ポートを抽出する。二重化回路チェック部１４はその抽出した各々のポートに対して、フリップフロップまたはプライマリ入力に到達するまで入力側にトレースを実行する。二重化回路チェック部１４はそのトレースによって対応する出力ポート同士に重なりが存在するかどうかの確認を実行する。対応する二つの出力ポートの確認が完了した二重化回路チェック部１４は他の対応する二つの出力ポートのトレースを実行し、全てのポート対のトレースが完了するまでこの動作を繰り返す。
【００５３】
これにより、二重化回路が適切に動作しているかどうかの確認が容易行えるので、設計される回路の信頼性が向上する。
【００５４】
図１０、図１１は二重化回路チェック部１４が二重化回路の重なる部分のチェックを実行した場合のチェック結果を概念的に示す図である。図１０はポート１を起点としてファンインコーンをトレースした結果と、ポート２を起点としてファンインコーンをトレースした結果に重なり部分が存在する状態を示す。二重化回路チェック部１４はこのような状態を検出した場合、二重化回路に不具合が発生したと判断し、不具合発生を示す情報をログ２６として情報記憶装置２に格納する。図１１はポート１を起点としてファンインコーンをトレースした結果と、ポート２を起点としてファンインコーンをトレースした結果に重なり部分が存在しない状態を示す。二重化回路チェック部１４はこのような状態を検出した場合、その二重化回路が適切に保持されていることを示す情報をログ２６として情報記憶装置２に格納する。
【図面の簡単な説明】
【００５５】
【図１】図１は、従来の設計手法により二重化回路と本体回路が論理合成の段階で一つに統合されてしまう様子を示す概念図である。
【図２】図２は、集積回路設計装置の構成を示すブロック図である。
【図３】図３は、集積回路設計の動作を示すフローチャートである。
【図４】図４は、階層化に関する具体的なＲＴＬ記述部分の一例を示す図である。
【図５】図５は、出力ポート情報の具体的な例を示す図である。
【図６】図６は、チェック箇所指定ファイルに記載されたモジュール指定の具体的な例を示す図である。
【図７】図７は、チェック箇所指定ファイルに記載されたモジュール指定の具体的な例を示す図である。
【図８】図８は、チェック箇所ファイルの具体的な例を示す図である。
【図９】図９は、チェック箇所ファイルの具体的な例を示す図である。
【図１０】図１０は、二重化回路のチェックを実行した場合のチェック結果を概念的に示す図である。
【図１１】図１１は、二重化回路のチェックを実行した場合のチェック結果を概念的に示す図である。
【符号の説明】
【００５６】
１０…集積回路設計装置
１…データ処理装置
１１…階層化部
１２…論理合成部
１３…チェック箇所加工部
１４…二重化回路チェック部
２…情報記憶装置
２１…階層化指定付ＲＴＬ
２２…出力ポート情報
２３…ネットリスト
２４…チェック箇所指定ファイル
２５…チェック箇所ファイル
２６…ログ
３…ＣＰＵ（中央演算処理装置）
４…メモリ
５…入力装置
６…表示装置
【図１】
2005165681.tif 000003
【図２】
2005165681.tif 000004
【図３】
2005165681.tif 000005
【図４】
2005165681.tif 000006
【図５】
2005165681.tif 000007
【図６】
2005165681.tif 000008
【図７】
2005165681.tif 000009
【図８】
2005165681.tif 000010
【図９】
2005165681.tif 000011
【図１０】
2005165681.tif 000012
【図１１】
2005165681.tif 000013