(57)【特許請求の範囲】
【請求項１】
コンピュータを、
検証対象に関するネットリストを取得する取得手段、
前記取得手段によって取得されたネットリストにより特定される前記検証対象内の各機能ブロック内の動作記述を、信号を発生させる信号発生スレッドと動作内容をチェックするチェックスレッドとに置換することにより、接続元となる機能ブロックの信号発生スレッドと接続先となる機能ブロックのチェックスレッドとが接続された接続チェックモデルを生成する生成手段、
前記生成手段によって生成された接続チェックモデルに関する論理シミュレーションを実行することにより、前記信号発生スレッドからハイインピーダンスに関する信号を出力した結果、前記チェックスレッドの入力端子のうちある値にクリップされている被信号クリップ入力端子に、期待値となるクリップ信号が取り込まれるか否かのクリップチェックを実行する確認手段、
前記確認手段による前記クリップチェックのチェック結果を出力する出力手段、
として機能させることを特徴とする論理接続チェックプログラム。
【請求項２】
前記確認手段は、
前記論理シミュレーションを実行することにより、前記信号発生スレッドから不定値に関する信号を出力した結果、前記チェックスレッドの入力端子がオープンか否かをチェックするオープンチェックを実行し、
前記出力手段は、
前記オープンチェックのチェック結果を出力することを特徴とする請求項１に記載の論理接続チェックプログラム。
【請求項３】
コンピュータを、
検証対象に関するネットリストを取得する取得手段、
前記取得手段によって取得されたネットリストにより特定される前記検証対象内の各機能ブロック内の動作記述を、信号を発生させる信号発生スレッドと動作内容をチェックするチェックスレッドとを含む機能ブロックに置換することにより、接続元となる機能ブロックの信号発生スレッドと接続先となる機能ブロックのチェックスレッドとが接続された接続チェックモデルを生成する生成手段、
前記生成手段によって生成された接続チェックモデルに関する論理シミュレーションを実行することにより、前記信号発生スレッドからハイインピーダンスに関する信号を出力した結果、前記チェックスレッドの入力端子のうちある値にクリップされている被信号クリップ入力端子に、期待値となるクリップ信号が取り込まれるか否かのクリップチェックを実行する確認手段、
前記確認手段による前記クリップチェックのチェック結果として前記ハイインピーダンスに関する信号以外の信号が前記被信号クリップ入力端子に入力された場合、前記被信号クリップ入力端子とその入力信号の値との組み合わせとなる接続情報を保持する保持手段、
として機能させることを特徴とする論理接続チェックプログラム。
【請求項４】
検証対象に関するネットリストを取得する取得手段と、
前記取得手段によって取得されたネットリストにより特定される前記検証対象内の各機能ブロック内の動作記述を、信号を発生させる信号発生スレッドと動作内容をチェックするチェックスレッドとに置換することにより、接続元となる機能ブロックの信号発生スレッドと接続先となる機能ブロックのチェックスレッドとが接続された接続チェックモデルを生成する生成手段と、
前記生成手段によって生成された接続チェックモデルに関する論理シミュレーションを実行することにより、前記信号発生スレッドからハイインピーダンスに関する信号を出力した結果、前記チェックスレッドの入力端子のうちある値にクリップされている被信号クリップ入力端子に、期待値となるクリップ信号が取り込まれるか否かのクリップチェックを実行する確認手段と、
前記確認手段による前記クリップチェックのチェック結果を出力する出力手段と、
を備えることを特徴とする論理接続チェック装置。
【請求項５】
検証対象に関するネットリストを取得する取得手段と、
前記取得手段によって取得されたネットリストにより特定される前記検証対象内の各機能ブロック内の動作記述を、信号を発生させる信号発生スレッドと動作内容をチェックするチェックスレッドとを含む機能ブロックに置換することにより、接続元となる機能ブロックの信号発生スレッドと接続先となる機能ブロックのチェックスレッドとが接続された接続チェックモデルを生成する生成手段と、
前記生成手段によって生成された接続チェックモデルに関する論理シミュレーションを実行することにより、前記信号発生スレッドからハイインピーダンスに関する信号を出力した結果、前記チェックスレッドの入力端子のうちある値にクリップされている被信号クリップ入力端子に、期待値となるクリップ信号が取り込まれるか否かのクリップチェックを実行する確認手段と、
前記確認手段による前記クリップチェックのチェック結果として前記ハイインピーダンスに関する信号以外の信号が前記被信号クリップ入力端子に入力された場合、前記被信号クリップ入力端子とその入力信号の値との組み合わせとなる接続情報を保持する保持手段と、
を備えることを特徴とする論理接続チェック装置。
【請求項６】
取得手段、生成手段、確認手段、および出力手段を備えるコンピュータが、
前記取得手段により、検証対象に関するネットリストを取得する取得工程と、
前記生成手段により、前記取得工程によって取得されたネットリストにより特定される前記検証対象内の各機能ブロック内の動作記述を、信号を発生させる信号発生スレッドと動作内容をチェックするチェックスレッドとに置換することにより、接続元となる機能ブロックの信号発生スレッドと接続先となる機能ブロックのチェックスレッドとが接続された接続チェックモデルを生成する生成工程と、
前記確認手段により、前記生成工程によって生成された接続チェックモデルに関する論理シミュレーションを実行することにより、前記信号発生スレッドからハイインピーダンスに関する信号を出力した結果、前記チェックスレッドの入力端子のうちある値にクリップされている被信号クリップ入力端子に、期待値となるクリップ信号が取り込まれるか否かのクリップチェックを実行する確認工程と、
前記出力手段により、前記確認工程による前記クリップチェックのチェック結果を出力する出力工程と、
を実行することを特徴とする論理接続チェック方法。
【請求項７】
取得手段、生成手段、確認手段、および保持手段を備えるコンピュータが、
前記取得手段により、検証対象に関するネットリストを取得する取得工程と、
前記生成手段により、前記取得工程によって取得されたネットリストにより特定される前記検証対象内の各機能ブロック内の動作記述を、信号を発生させる信号発生スレッドと動作内容をチェックするチェックスレッドとを含む機能ブロックに置換することにより、接続元となる機能ブロックの信号発生スレッドと接続先となる機能ブロックのチェックスレッドとが接続された接続チェックモデルを生成する生成工程と、
前記確認手段により、前記生成工程によって生成された接続チェックモデルに関する論理シミュレーションを実行することにより、前記信号発生スレッドからハイインピーダンスに関する信号を出力した結果、前記チェックスレッドの入力端子のうちある値にクリップされている被信号クリップ入力端子に、期待値となるクリップ信号が取り込まれるか否かのクリップチェックを実行する確認工程と、
前記保持手段により、前記確認工程による前記クリップチェックのチェック結果として前記ハイインピーダンスに関する信号以外の信号が前記被信号クリップ入力端子に入力された場合、前記被信号クリップ入力端子とその入力信号の値との組み合わせとなる接続情報を保持する保持工程と、
を実行することを特徴とする論理接続チェック方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ＬＳＩ論理回路（ハードウェア記述言語（ＨＤＬ）またはＳｙｓｔｅｍＣ等のシステム記述言語で記述されたＲＴＬおよびネットリスト）のうちネットリストに関する論理接続チェックプログラム、論理接続チェック装置、および論理接続チェック方法に関する。
【背景技術】
【０００２】
従来のテストパターンの作成方法では、簡単な機能マクロ（モジュール）の場合は端子の信号の組合せで可能であるが、ほとんどのケースで検証は不可能である（たとえば、下記特許文献１を参照。）。その理由として、
（１）端子の信号の組み合わせは無限であること
（２）通常は信号（端子）に「意味のあるパターン」を入れないと回路は動作しないこと
が挙げられる。
【０００３】
実はこの「意味のあるパターン」が困難であり、従来のテストパターンの作成方法では、手間がかかり検証作業の長期化を招く原因となる。したがって、従来では、静的にネットリスト記述を解析し、ルールベースで接続が正しいか判断する方法がとられている。
【０００４】
【特許文献１】特開平１０−１２４５５７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、上述した従来技術では、ネットリストを言語解析し、接続情報を取得して接続先を調べるというように、開発コストが増大し、バグを作りこむ確率が高いという問題があった。また、検証パターンにより動的に機能検証をおこなう方法では、検証すべき機能のすべてを網羅するようなパターンを準備することが困難であるという問題があった。またこれにより、アーキテクチャの再構成のたびにテストパターンが必要となり、開発コストが増大するという問題があった。
【０００６】
アーキテクチャが再構成可能なプロセッサは、特定機能を有する複数の機能ブロック（演算用プロセッサや機能マクロ、ＲＡＭなど）を組み合わせて、論理設計レベルで、ハードウェアを作り変えることで、特定のアプリケーションを高速に実行できるものである。図１８は、アーキテクチャ再構成プロセッサを示す概要図である。
【０００７】
しかしながら、図１８に示した構成情報１８００ではアーキテクチャを作り変えるため、そのプロセッサに載せるプログラムがすべてのリソース（上記機能ブロック０〜ｎ）を使用するとは限らない。そのプログラムで動いても違うプログラムでは動く保証がないからである。したがって、それを検証するためには、すべてのリソースを動かすような、テストパターン（テストプログラム）を作成しなければならない。アーキテクチャが再構成可能なプロセッサでは、アーキテクチャが固定ではないため、アーキテクチャを変更するたびに、大変な作業が発生するという問題があった。
【０００８】
各種機能ブロック０〜ｎは、単体で動作することを検証済みなため、論理的に正しく接続されていることを検証すれば、全体を検証したことと同等となる。したがって、接続をチェックするシステムが必要となる。
【０００９】
この発明は、上述した従来技術による問題点を解消するため、自動合成されたネットリストの正当性を、少工数かつ高精度で確認することができる論理接続チェックプログラム、論理接続チェック装置、および論理接続チェック方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上述した課題を解決し、目的を達成するため、第１の発明にかかる論理接続チェックプログラム、論理接続チェック装置、および論理接続チェック方法は、検証対象に関するネットリストを取得し、取得されたネットリストにより特定される前記検証対象内の各機能ブロック内の動作記述を、信号を発生させる信号発生スレッドと動作内容をチェックするチェックスレッドとに置換することにより、接続元となる機能ブロックの信号発生スレッドと接続先となる機能ブロックのチェックスレッドとが接続された接続チェックモデルを生成し、生成された接続チェックモデルに関する論理シミュレーションを実行することにより、前記ネットリストの正当性を確認し、確認された確認結果を出力することを特徴とする。
【００１１】
この発明によれば、機能ブロック間の接続関係を単純化することができ、接続確認の容易化を図ることができる。
【００１２】
また、上記発明において、前記論理シミュレーションを実行することにより、前記信号発生スレッドからハイインピーダンスに関する信号を出力した結果、前記チェックスレッドの入力端子のうちある値にクリップされている被信号クリップ入力端子に、期待値となるクリップ信号が取り込まれるか否かのクリップチェックを実行し、前記クリップチェックのチェック結果を出力することとしてもよい。
【００１３】
この発明によれば、クリップチェックの効率化を図ることができる。
【００１４】
また、上記発明において、前記論理シミュレーションを実行することにより、前記信号発生スレッドから不定値に関する信号を出力した結果、前記チェックスレッドの入力端子がオープンか否かをチェックするオープンチェックを実行し、前記オープンチェックのチェック結果を出力することとしてもよい。
【００１５】
この発明によれば、どこにも接続されていないオープンな入力端子を簡単なオープンチェックにより特定することができる。
【００１６】
また、上記発明において、前記論理シミュレーションを実行することにより、前記信号発生スレッドから不定値に関する信号を出力した結果、前記被信号クリップ入力端子において前記クリップ信号が他の信号と衝突しているか否かをチェックするクリップ信号衝突チェックを実行し、前記クリップ信号衝突チェックのチェック結果を出力することとしてもよい。
【００１７】
この発明によれば、クリップ信号衝突チェックの効率化を図ることができる。
【００１８】
また、上記発明において、前記論理シミュレーションを実行することにより、前記信号発生スレッドの中から選ばれた一の信号発生スレッドから二値のうちいずれか一方の値の信号を出力し、かつ、残余の信号発生スレッドから前記ハイインピーダンスに関する信号を出力した結果、前記一の信号発生スレッドの前記一方の値の信号を出力した出力端子と、その接続先となるチェックスレッドの入力端子とが接続されているか否かをチェックする接続チェックを実行し、前記接続チェックのチェック結果を出力することとしてもよい。
【００１９】
この発明によれば、端子間の接続チェックの効率化を図ることができる。
【００２０】
特に、前記接続先となるチェックスレッドの入力端子に前記二値のうち他方の値の信号が入力された場合、前記接続チェックのチェック結果として反転エラーを出力することとしてもよい。
【００２１】
この発明によれば、接続エラーとして値が反転するバグを検出することができる。
【００２２】
また、前記接続先となるチェックスレッドの入力端子に不定値に関する信号が入力された場合、前記接続チェックのチェック結果として信号衝突エラーを出力することとしてもよい。
【００２３】
この発明によれば、接続エラーとして信号衝突によるバグを検出することができる。
【００２４】
また、上記発明において、前記論理シミュレーションを実行することにより、前記信号発生スレッドの中から選ばれた一の信号発生スレッドから二値のうちいずれか一方の値の信号を出力し、かつ、残余の信号発生スレッドから不定値に関する信号を出力した結果、前記一の信号発生スレッドの前記一方の値の信号と前記不定値に関する信号が信号衝突しているか否かをチェックする信号衝突チェックを実行し、前記信号衝突チェックのチェック結果を出力することとしてもよい。
【００２５】
この発明によれば、信号衝突チェックの効率化を図ることができる。
【００２６】
また、第２の発明にかかる論理接続チェックプログラム、論理接続チェック装置、および論理接続チェック方法は、検証対象に関するネットリストを取得し、取得されたネットリストにより特定される前記検証対象内の各機能ブロック内の動作記述を、信号を発生させる信号発生スレッドと動作内容をチェックするチェックスレッドとを含む機能ブロックに置換することにより、接続元となる機能ブロックの信号発生スレッドと接続先となる機能ブロックのチェックスレッドとが接続された接続チェックモデルを生成し、生成された接続チェックモデルに関する論理シミュレーションを実行することにより、前記検証対象に関するネットリストの正当性を確認し、正当性が確認されたときの接続情報を保持することを特徴とする。
【００２７】
この発明によれば、論理接続チェックに用いる接続情報を自動生成することができる。
【００２８】
また、上記発明において、前記論理シミュレーションを実行することにより、前記信号発生スレッドからハイインピーダンスに関する信号を出力した結果、前記チェックスレッドの入力端子のうちある値にクリップされている被信号クリップ入力端子に、期待値となるクリップ信号が取り込まれるか否かのクリップチェックを実行し、前記クリップチェックのチェック結果として前記ハイインピーダンスに関する信号以外の信号が前記被信号クリップ入力端子に入力された場合、前記被信号クリップ入力端子とその入力信号の値との組み合わせを前記接続情報として保持することとしてもよい。
【００２９】
この発明によれば、クリップチェックにおいて被信号クリップ入力端子とその期待値との組み合わせ（クリップ情報）の集合データとなるクリップ情報テーブルを作成することができ、クリップチェックの効率化を図ることができる。
【００３０】
また、上記発明において、前記論理シミュレーションを実行することにより、前記信号発生スレッドの中から選ばれた一の信号発生スレッドから二値のうちいずれか一方の値の信号を出力し、かつ、残余の信号発生スレッドから前記ハイインピーダンスに関する信号を出力した結果、前記一の信号発生スレッドの前記一方の値の信号を出力した出力端子と、その接続先となるチェックスレッドの入力端子とが接続されているか否かをチェックする接続チェックを実行し、前記接続チェックのチェック結果として前記ハイインピーダンスに関する信号以外の信号が前記接続先となるチェックスレッドの入力端子に入力された場合、前記一方の値の信号を出力した出力端子と前記接続先となるチェックスレッドの入力端子との組み合わせを前記接続情報として保持することとしてもよい。
【００３１】
この発明によれば、接続しあう出力端子と入力端子との組み合わせ（接続端子情報）の集合データとなる接続端子情報テーブルを作成することができ、接続チェックの効率化を図ることができる。
【発明の効果】
【００３２】
本発明にかかる論理接続チェックプログラム、論理接続チェック装置、および論理接続チェック方法によれば、自動合成されたネットリストの正当性を、少工数かつ高精度で確認することができるという効果を奏する。
【発明を実施するための最良の形態】
【００３３】
［実施の形態１］
以下に添付図面を参照して、この発明にかかる論理接続チェックプログラム、論理接続チェック装置、および論理接続チェック方法の好適な実施の形態１を詳細に説明する。
【００３４】
（論理接続チェック装置のハードウェア構成）
まず、この発明の実施の形態１にかかる論理接続チェック装置１００のハードウェア構成について説明する。図１は、この発明の実施の形態１にかかる論理接続チェック装置１００のハードウェア構成を示す説明図である。
【００３５】
図１において、論理接続チェック装置１００は、コンピュータ本体１１０と、入力装置１２０と、出力装置１３０と、から構成されており、不図示のルータやモデムを介してＬＡＮ，ＷＡＮやインターネットなどのネットワーク１４０に接続可能である。
【００３６】
コンピュータ本体１１０は、ＣＰＵ，記憶装置，インターフェースを有する。ＣＰＵは、論理接続チェック装置１００の全体の制御を司る。記憶装置は、ＲＯＭ，ＲＡＭ，ＨＤ，光ディスク１１１，フラッシュメモリから構成される。ＲＡＭはＣＰＵのワークエリアとして使用される。
【００３７】
また、記憶装置には各種プログラムが格納されており、ＣＰＵからの命令に応じてロードされる。ＨＤおよび光ディスク１１１はディスクドライブによりデータのリード／ライトが制御される。また、光ディスク１１１およびフラッシュメモリはコンピュータ本体１１０に対し着脱自在である。インターフェースは、入力装置１２０からの入力、出力装置１３０への出力、ネットワーク１４０に対する送受信の制御をおこなう。
【００３８】
また、入力装置１２０としては、キーボード１２１、マウス１２２、スキャナ１２３などがある。キーボード１２１は、文字、数字、各種指示などの入力のためのキーを備え、データの入力をおこなう。また、タッチパネル式であってもよい。マウス１２２は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などをおこなう。スキャナ１２３は、画像を光学的に読み取る。読み取られた画像は画像データとして取り込まれ、コンピュータ本体１１０内の記憶装置に格納される。なお、スキャナ１２３にＯＣＲ機能を持たせてもよい。
【００３９】
また、出力装置１３０としては、ディスプレイ１３１、プリンタ１３２、スピーカ１３３などがある。ディスプレイ１３１は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。また、プリンタ１３２は、画像データや文書データを印刷する。またスピーカ１３３は、効果音や読み上げ音などの音声を出力する。
【００４０】
（接続チェックモデル２００の構成）
つぎに、この発明の実施の形態１にかかる接続チェックモデル２００について説明する。図２は、この発明の実施の形態１にかかる接続チェックモデル２００の構成図である。図２において、接続チェックモデル２００は、ハードウェア記述言語（ＨＤＬ）またはＳｙｓｔｅｍＣ等のシステム記述言語（以下、これらを単に「記述言語」と称す）を使用して記述されたテストベンチ２０１である。
【００４１】
このテストベンチ２０１は、制御部ＣＮＴＬと外部信号発生器ＥＸＴとチェック対象となるネットリストＮＬが上述した記述言語により記述されて構成されている。ネットリストＮＬは機能ブロックＹＹＹ，ＺＺＺ間の接続を記述している。制御部ＣＮＴＬ、外部信号発生器ＥＸＴおよび機能ブロックＹＹＹ，ＺＺＺは、コア（図２中、○○＿ＣＯＲＥで表記）を有する。コアＹＹＹ＿ＣＯＲＥ，ＺＺＺ＿ＣＯＲＥ自体は単体検証済であるので、本実施の形態１においては、論理接続チェックのため、あらかじめ作成しておいたスレッドＴｃｔ，Ｔｇｅ，Ｔｃｈをインスタンスする。
【００４２】
具体的には、制御部コアＣＮＴＬ＿ＣＯＲＥには、制御スレッドＴｃｔがインスタンスされる。外部信号発生器コアＥＸＴ＿ＣＯＲＥには、信号発生スレッドＴｇｅおよびチェックスレッドＴｃｈがインスタンスされる。同様に、各機能ブロックコア（ＹＹＹ＿ＣＯＲＥ，ＺＺＺ＿ＣＯＲＥ）にも、それぞれ信号発生スレッドＴｇｅおよびチェックスレッドＴｃｈがインスタンスされる。
【００４３】
制御スレッドＴｃｔ、信号発生スレッドＴｇｅ、およびチェックスレッドＴｃｈは並列動作する。また、各信号発生スレッドＴｇｅおよびチェックスレッドＴｃｈがインスタンスされている機能ブロックは異なるが、共通の動作をおこなう。
【００４４】
また、図２中、点線で囲まれた領域は機能ブロックコアの入力端子および出力端子をあらわしているが、機能ブロックの入力端子および出力端子が複数あっても、内部の機能ブロックコアにおいてともに１本でコンカチネートすることで、信号発生スレッドＴｇｅおよびチェックスレッドＴｃｈを共通化することができる。
【００４５】
また、各信号発生スレッドＴｇｅは同一記述である。また、各チェックスレッドＴｃｈも同一記述である。したがって、ライブラリ作成も単純化することができる。図２に示した接続チェックモデル２００では、制御スレッドＴｃｔ、信号発生スレッドＴｇｅおよびチェックスレッドＴｃｈを論理シミュレーションにより並列動作させることにより、論理接続チェックを実行する。
【００４６】
図３は、この発明の実施の形態１にかかる論理接続チェックの概念図である。図３において、論理接続チェックでは、制御スレッドＴｃｔから各種チェックコマンドを発行する。信号発生スレッドＴｇｅはすべての出力端子に信号を発生し、発生された信号は、チェックスレッドＴｃｈに入力されてチェックスレッドＴｃｈにおいてチェックされる。すべてのチェックスレッドＴｃｈが並列動作するため、信号の到達イベントで処理を判断することができる。
【００４７】
（論理接続チェック手法）
つぎに、この発明の実施の形態１にかかる論理接続チェック手法について説明する。この論理接続チェックにおいては、かならずイベント（信号変化）が発生するような設定をおこなう。論理接続チェックとしては、クリップチェック、クリップ信号衝突／オープンチェック、接続チェックおよび信号衝突チェックをおこなう。
【００４８】
順序としては、まず、クリップチェックを最初におこない、そのあとに、クリップ信号衝突／オープンチェック、接続チェックおよび信号衝突チェックをおこなう。クリップ信号衝突／オープンチェック、接続チェックおよび信号衝突チェックの順番は限定されない。また、これらのチェックでは、４値シミュレーションにより実行される。
【００４９】
図４は、４値シミュレーションにおける信号衝突による出力結果を示す図表である。４値とは‘０’、‘１’、‘Ｘ’、‘Ｚ’である。Ｘは不定値であり、Ｚはハイインピーダンスである。
【００５０】
また、図５は、正しい接続状態（仮定）を示す説明図であり、図６−１はクリップチェックを示す説明図であり、図６−２はクリップ信号衝突／オープンチェックを示す説明図であり、図７−１〜図７−４は接続チェックを示す説明図であり、図８−１および図８−２は信号衝突チェックを示す説明図である。図６−１〜図８−２には誤った接続がある。
【００５１】
なお、図５〜図８−２において、機能ブロックＡＡＡはコアＡＡＡ＿ＣＯＲＥを有し、信号発生スレッドＴｇｅ１をインスタンスしている。同様に、機能ブロックＢＢＢはコアＢＢＢ＿ＣＯＲＥを有し、信号発生スレッドＴｇｅ２をインスタンスしている。また、機能ブロックＣＣＣはコアＣＣＣ＿ＣＯＲＥを有し、チェックスレッドＴｃｈをインスタンスしている。
【００５２】
また、図５において、正しい接続では、信号発生スレッドＴｇｅ１の出力端子ｏ１はチェックスレッドＴｃｈの入力端子ｉ１に接続されている。信号発生スレッドＴｇｅ２の出力端子ｏ２はチェックスレッドＴｃｈの入力端子ｉ４に接続されている。また、値‘１’に固定された値（以下「‘１’クリップ」と称す。）は、入力端子ｉ２，ｉ３に接続されている。このように、あらかじめ値が固定されている状態を、“信号クリップ”と称す。すなわち、入力端子ｉ２，ｉ３は、値‘１’で信号クリップされている。また、入力端子ｉ５は他の機能ブロックに接続されている。
【００５３】
図６−１〜図８−２において、誤って、信号発生スレッドＴｇｅ２の出力端子ｏ２は、チェックスレッドＴｃｈの入力端子ｉ１に接続されている。および、同様に誤って信号発生スレッドＴｇｅ２の出力端子ｏ３は、チェックスレッドＴｃｈの入力端子ｉ２，ｉ３に接続されている。
【００５４】
すなわち、設計ルール上エラーであり、出力端子ｏ１および出力端子ｏ２の値は信号衝突する。同様に、‘１’クリップの値‘１’と出力端子ｏ３の値は信号衝突する。また、チェックスレッドＴｃｈの入力端子ｉ４はオープン、すなわち、他の機能ブロック（厳密には信号発生スレッドＴｇｅ）の入力端子と接続されておらず、これも設計ルール上エラーとなり、誤って接続されていないことになる。オープンの場合は、値‘Ｚ’が入力されている事と同等の意味になる。
【００５５】
以下に、クリップチェック、クリップ信号衝突／オープンチェック、接続チェックおよび信号衝突チェックを実行順として説明する。
【００５６】
＜クリップチェック＞
クリップチェックとは、ある値に信号クリップされている入力端子にその値が期待値として取り込まれるか否かを確認することである。具体的には、信号発生スレッドＴｇｅにおいてすべての出力端子を値‘Ｚ’で駆動する場合、チェックスレッドＴｃｈにおいて信号クリップ（固定）されている入力端子（以下、「被信号クリップ入力端子」という）が必ず‘Ｚ’以外の値となるか否かをチェックする。なお、すべての出力端子ｏ１〜ｏ３を値‘Ｚ’で駆動することは、本アルゴリズムの初期化を兼ねる（クリップチェックするかしないかの違いである）。
【００５７】
ここで、被信号クリップ入力端子に入力される信号をクリップ信号と称す。さらに、‘Ｚ’以外の値を取った場合、その値が正しい値（すなわち、期待値）か否かのチェックもおこない、正しい値でない場合、クリップエラーとなる。
【００５８】
図６−１に示した例では、入力端子ｉ２，ｉ３は‘１’クリップと接続されているため、値‘１’に信号クリップされている被信号クリップ入力端子に該当する。そして、信号発生スレッドＴｇｅ１，Ｔｇｅ２からチェックコマンドとして値‘Ｚ’の信号が駆動されると、チェックスレッドＴｃｈの入力端子ｉ１には信号‘Ｚ’が入力される。
【００５９】
また、入力端子ｉ２の接続先は‘１’クリップと出力端子ｏ１であるため、値‘１’のクリップ信号と値‘Ｚ’のチェックコマンド信号との信号衝突が発生する。この場合、図４を参照すると、入力端子ｉ２には値‘１’のクリップ信号が入力される。入力端子ｉ３も同様、値‘１’のクリップ信号が入力される。
【００６０】
チェックスレッドＴｃｈでは、被信号クリップ入力端子ｉ２，ｉ３に取り込まれたクリップ信号の値についてクリップチェックを実行する。なお、入力端子ｉ２，ｉ３にはそれぞれ値‘１’のクリップ信号が取り込まれているが、この状態ではクリップエラーであるか否かは不明であり、クリップ情報テーブルとの比較チェックをおこなう。その結果一致していない場合、クリップエラーとなる。
【００６１】
図９は、クリップ情報テーブルを示す説明図である。クリップ情報テーブル９００は、クリップ情報の集合データであり、図５に示した正しい接続におけるクリップ情報が記述されている。クリップ情報とは、被信号クリップ入力端子と当該被信号クリップ入力端子に入力される入力信号の期待値との組み合わせである。クリップ情報テーブル９００はクリップチェックに用いられる。クリップチェックにおいて、被信号クリップ入力端子に入力された入力信号の値が‘Ｚ’ではなく‘１’または‘０’である場合、その入力信号はクリップ信号である可能性が高い。
【００６２】
このため、クリップ情報テーブル９００によりその入力端子に関連付けられている値を検索して、入力信号の値と一致するか否かをチェックする。一致すれば、被信号クリップ入力端子においてネットリストＮＬの正当性ありと判断できる。一方、不一致であれば、被信号クリップ入力端子において期待値がクリップできていないこととなりクリップエラーとなる。
【００６３】
＜クリップ信号衝突／オープンチェック＞
クリップ信号衝突／オープンチェックとは、被信号クリップ入力端子に入力されるクリップ信号について他の信号が衝突したか否かを確認するクリップ信号衝突チェックと、入力信号の値からその入力端子がオープンであるか否かを確認するオープンチェックである。
【００６４】
クリップ信号衝突／オープンチェックでは、信号発生スレッドＴｇｅのすべての出力端子を値‘Ｘ’で駆動することで、チェックスレッドＴｃｈの入力端子の値をチェックする。具体的には、被信号クリップ入力端子については、他の信号が衝突していると、値‘Ｘ’のクリップ信号が取り込まれる。
【００６５】
ここで、図６−２を用いて説明する。図６−２において、チェックスレッドＴｃｈ内の矢印の始端側の値は、初期化により書き換えられた値であり、終端側の値は、クリップ信号衝突／オープンチェックにより書き換えられた値である。
【００６６】
たとえば、図６−２において、被信号クリップ入力端子ｉ２，ｉ３では、値‘１’のクリップ信号と値‘Ｘ’のチェックコマンド信号とが衝突するため、図４を参照することにより、最終的に、値‘Ｘ’のクリップ信号が被信号クリップ入力端子ｉ２，ｉ３に取り込まれる。したがって、信号衝突が発生していることがわかる（信号衝突エラー）。
【００６７】
また、被信号クリップ入力端子以外の他の入力端子については、値‘Ｘ’が取り込まれていると、信号発生スレッドＴｇｅからの値‘Ｘ’のチェックコマンド信号がそのまま伝搬していると判断するため、オープンではなく、信号発生スレッドＴｇｅと接続されていることがわかる。
【００６８】
たとえば、入力端子ｉ１には、出力端子ｏ１からの値‘Ｘ’のチェックコマンド信号がそのまま取り込まれているため、出力端子ｏ１と入力端子ｉ１とは接続されていると判断される。一方、入力端子ｉ４は、値‘Ｘ’のチェックコマンド信号が駆動されても、値‘Ｚ’のままである。したがって、入力端子ｉ４はオープン、すなわち、信号発生スレッドＴｇｅ１，Ｔｇｅ２のいずれの出力端子ｏ１，ｏ２，ｏ３にも接続されていないことがわかる（オープンエラー）。
【００６９】
＜接続チェック＞
接続チェックとは、出力信号の値とその出力元と接続されている出力先に取り込まれた信号の値との一致／不一致により、出力元と出力先とが接続されているか否かを確認することである。具体的には、接続チェック対象の出力端子は、‘０’または‘１’の値の信号を駆動し、それ以外の出力端子は、すべて値‘Ｚ’の信号を駆動することで、チェック対象の入力端子（ファンアウトが多いと複数ある）は、‘０’または‘１’の値の信号を受け取る。接続が間違っていれば、他の入力端子がその値の信号を受け取ることとなる。この接続チェックでは、接続端子情報テーブルを用いる。
【００７０】
図１０は、接続端子情報テーブルを示す説明図である。接続端子情報テーブル１０００とは、接続端子情報の集合データである。接続端子情報テーブル１０００には、図５に示した正しい接続状態における接続端子情報が保持されている。接続端子情報とは、階層にまたがって接続しあう出力元の機能ブロック（にインスタンスされた信号発生スレッドＴｇｅ）の出力端子と出力先の機能ブロック（にインスタンスされたチェックスレッドＴｃｈ）の入力端子との組み合わせである。なお、ネットリストＮＬには同一階層の接続関係が記述されている。
【００７１】
チェックスレッドＴｃｈにおいて、接続チェック対象となる出力端子について、接続端子情報テーブル１０００を参照してその接続先となる入力端子を検索して特定する。特定されなければ結線エラーとなる。
【００７２】
そして、接続元の出力端子からの出力信号の値（‘１’または‘０’）と接続先の入力端子に入力される信号の値が一致すれば、接続関係に正当性ありと判断される。一方、不一致である場合、接続先の入力端子に入力された信号の値が反転している場合、反転エラーとなり、値が不定値‘Ｘ’であれば信号衝突エラーとなる。
【００７３】
ここで、図７−１を用いて説明する。図７−１において、チェックスレッドＴｃｈ内の矢印の始端側の値は、初期化により書き換えられた値であり、終端側の値は、接続チェックにより書き換えられた値である。図７−１では、信号発生スレッドＴｇｅ１の出力端子ｏ１からの信号の値を‘１’で駆動し、残余の出力端子ｏ２，ｏ３からの信号の値を‘Ｚ’で駆動する例である。
【００７４】
このあと、接続端子情報テーブル１０００を参照して、接続チェック対象となる出力端子ｏ１の接続先とされる入力端子を検索する。そして、検索された入力端子ｉ１に取り込まれた値が駆動された信号の値‘１’と同じ値‘１’であるので、接続の正当性が確認される。
【００７５】
つぎに、図７−２について説明する。図７−２では、信号発生スレッドＴｇｅ１の出力端子ｏ２からの信号の値を‘１’で駆動し、残余の出力端子ｏ１，ｏ３からの信号の値を‘Ｚ’で駆動する例である。
【００７６】
このあと、接続端子情報テーブル１０００を参照して、チェック対象となる出力端子ｏ２の接続先とされる入力端子を検索する。そして、検索された入力端子ｉ４にはイベントが起こらず、入力端子ｉ１にイベントが起こり、接続が間違っていることが確認される。
【００７７】
つぎに、図７−３について説明する。図７−３では、信号発生スレッドＴｇｅ１の出力端子ｏ３からの信号の値を‘１’で駆動し、残余の出力端子ｏ１、ｏ２からの信号の値を‘Ｚ’で駆動する例である。
【００７８】
この場合、すべての信号が変化しないため、チェックスレッドＴｃｈは、動作しないため誤りを検出できないが、出力端子ｏ３からの信号の値を‘０’で駆動すれば（図７−４）、検出が可能である。
【００７９】
つぎに、図７−４について説明する。図７−４では、信号発生スレッドＴｇｅ２の出力端子ｏ３からの信号の値を‘０’で駆動し、残余の出力端子ｏ１、ｏ２からの信号の値を‘Ｚ’で駆動する例である。
【００８０】
このあと、接続端子情報テーブル１０００を参照して、チェック対象となる出力端子ｏ３の接続先とされる入力端子を検索する。そして、検索された入力端子ｉ５（図７−４では表現してしない。図５参照）にはイベントが起こらず、入力端子ｉ２，ｉ３にイベントが発生し、接続が間違っていることが確認されるだけでなく、値‘Ｘ’が取り込まれているため信号衝突エラーとなる。
【００８１】
＜信号衝突チェック＞
信号衝突チェックとは、出力信号が他の信号と衝突しているか否かを確認することである。具体的には、信号衝突チェック対象の出力端子は、‘０’（または‘１’）の値の信号を駆動し、それ以外の出力端子は、すべて値‘Ｘ’の信号を駆動することで、接続先となる信号衝突チェック対象の入力端子は、‘０’（または‘１’）または‘Ｘ’の値の信号を受け取る。値‘Ｘ’を受け取った場合、信号衝突となる。
【００８２】
ここで、図８−１を用いて説明する。図８−１において、チェックスレッドＴｃｈ内の矢印の始端側の値は、初期化により書き換えられた値であり、終端側の値は、信号衝突チェックにより書き換えられた値である。図８−１では、信号発生スレッドＴｇｅ１の出力端子ｏ１からの信号の値を‘１’で駆動し、残余の出力端子ｏ２，ｏ３からの信号の値を‘Ｘ’で駆動する例である。
【００８３】
図７−１では正常接続と判断されたが、図８−１では、信号衝突チェック対象となる入力端子ｉ１に取り込まれた信号の値は‘Ｘ’であるため、信号衝突が発生していることがわかる。また、入力端子ｉ２，ｉ３に取り込まれた値も‘Ｘ’であるが、すでに、クリップ信号衝突チェックで確認済みである。
【００８４】
つぎに、図８−２を用いて説明する。図８−２において、チェックスレッドＴｃｈ内の矢印の始端側の値は、初期化により書き換えられた値であり、終端側の値は、信号衝突チェックにより書き換えられた値である。図８−２では、信号発生スレッドＴｇｅ２の出力端子ｏ３からの信号の値を‘１’で駆動し、残余の出力端子ｏ１，ｏ２からの信号の値を‘Ｘ’で駆動する例である。図８−２では、この信号に対しては、他の信号からの‘Ｘ'の影響を受けないため、本チェックの対象外であるが、すでに、クリップ信号衝突チェックで確認済みである。
【００８５】
（論理接続チェック装置１００の機能的構成）
つぎに、この発明の実施の形態１にかかる論理接続チェック装置１００の機能的構成について説明する。図１１は、この発明の実施の形態１にかかる論理接続チェック装置１００の機能的構成を示すブロック図である。図１１において、論理接続チェック装置１００は、ライブラリ１１００と、取得部１１０１と、生成部１１０２と、確認部１１０３と、出力部１１０４と、から構成される。
【００８６】
これら各機能１１０１〜１１０４は、論理接続チェック装置１００内のメモリに格納された当該機能に関するプログラムを論理接続チェック装置１００内のプロセッサに実行させることにより、または、入出力Ｉ／Ｆにより、当該機能を実現することができる。
【００８７】
また、各機能１１０１〜１１０４からの出力データはメモリに保持される。また、図１１中矢印で示した接続先の機能１１０１〜１１０４は、接続元の機能１１０１〜１１０４からの出力データをメモリから読み込んで、当該機能１１０１〜１１０４に関するプログラムを論理接続チェック装置１００内のプロセッサに実行させる。
【００８８】
まず、ライブラリ１１００は、上述した制御スレッドＴｃｔ、信号発生スレッドＴｇｅ、およびチェックスレッドＴｃｈの３つのスレッドが格納されたデータベースである。この各スレッドＴｃｔ，Ｔｇｅ，Ｔｃｈが図２に示したテストベンチ２０１内の制御部ＣＮＴＬの動作記述、外部信号発生器ＥＸＴの動作記述、および機能ブロック（ＹＹＹ，ＺＺＺ）の動作記述（ネットリストＮＬ）と置き換えられる。このように、ライブラリ１１００に格納される情報は３つのスレッドＴｃｔ，Ｔｇｅ，Ｔｃｈのみであるため、作成が簡単である。
【００８９】
また、取得部１１０１は、検証対象に関するネットリストＮＬを取得する機能を有する。具体的には、図１８に示した検証対象の構成情報１８００をアーキテクチャ再構成ツール１１１０に与えることにより出力される記述言語のネットリストＮＬを読み込む。
【００９０】
また、生成部１１０２は、取得されたネットリストＮＬにより特定される検証対象内の各機能ブロック（ＹＹＹ，ＺＺＺ）内の動作記述を、信号発生スレッドＴｇｅとチェックスレッドＴｃｈとに置換することにより、接続元となる機能ブロックの信号発生スレッドＴｇｅと接続先となる機能ブロックのチェックスレッドＴｃｈとが接続された接続チェックモデル２００を生成する機能を有する。
【００９１】
具体的には、図２に示したテストベンチ２０１を生成する。すなわち、制御部ＣＮＴＬの動作記述を制御スレッドＴｃｔに置換し、外部信号発生器ＥＸＴの動作記述を信号発生スレッドＴｇｅおよびチェックスレッドＴｃｈに置換し、機能ブロックの動作記述であるネットリストＮＬを信号発生スレッドＴｇｅおよびチェックスレッドＴｃｈに置換する。これにより、図２に示したテストベンチ２０１を接続チェックモデル２００として生成することができる。
【００９２】
なお、ネットリストＮＬには通常接続情報が記述されているため、クリップ情報テーブル９００および接続端子情報テーブル１０００を作成してテストベンチ２０１に埋め込んでおくこととしてもよい。
【００９３】
また、確認部１１０３は、生成された接続チェックモデル２００に関する論理シミュレーションを実行することにより、ネットリストＮＬの正当性を確認する機能を有する。具体的には、各機能ブロック（ＹＹＹ，ＺＺＺ）内部の動作記述は、信号発生スレッドＴｇｅおよびチェックスレッドＴｃｈに置き換わっている。
【００９４】
したがって、論理シミュレーションを実行することで、制御スレッドＴｃｔからの制御コマンドが発行されて、信号発生スレッドＴｇｅおよびチェックスレッドＴｃｈにより、上述したクリップチェック、クリップ信号衝突／オープンチェック、接続チェック、および信号衝突チェックが実行される。
【００９５】
また、出力部１１０４は、確認部１１０３によって確認されたチェック結果１１２０を出力する機能を有する。チェック結果１１２０としては、クリップエラー、オープンエラー、信号衝突エラー、結線エラー、反転エラー、確認ＯＫなどを出力する。
【００９６】
（論理接続チェック処理手順）
つぎに、この発明の実施の形態１にかかる論理接続チェック処理手順について説明する。図１２は、この発明の実施の形態１にかかる論理接続チェック処理手順を示すフローチャートである。
【００９７】
図１２において、まず、取得部１１０１によりネットリストＮＬを取得し（ステップＳ１２０１）、生成部１１０２により接続チェックモデル２００を生成する（ステップＳ１２０２）。そして、確認部１１０３により、論理シミュレーションを実行することで、ネットリストＮＬの正当性確認処理を実行する（ステップＳ１２０３）。最後に、出力部１１０４によりチェック結果の出力処理を実行する（ステップＳ１２０４）。
【００９８】
つぎに、上述したネットリストＮＬの正当性確認処理（ステップＳ１２０３）およびチェック結果の出力処理（ステップＳ１２０４）を詳細に説明する。図１３および図１４は、ネットリストＮＬの正当性確認処理（ステップＳ１２０３）およびチェック結果の出力処理（ステップＳ１２０４）の詳細なフローチャートである。なお、図１３および図１４における信号発生スレッドＴｇｅおよびチェックスレッドＴｃｈの処理手順は、任意の信号発生スレッドＴｇｅおよびチェックスレッドＴｃｈに着目した処理手順である。
【００９９】
信号発生スレッドＴｇｅおよびチェックスレッドＴｃｈの処理は、制御スレッドＴｃｔから発行されるコマンドのイベント（コマンドの変化）待ちによる無限ループになっている。これらの３つのスレッドは、同期を取って動作させる必要がある。ここでは、コマンドのイベントにより動作の同期を取っているが、時間指定による同期でもよい。また厳密には、信号発生スレッドＴｇｅからの信号発生には、デルタ遅延（無限に小さい遅延）が生じるため、チェックスレッドＴｃｈは、発生スレッドＴｇｅの動作より、少しの時間（例えば１ピコ秒）遅らせる必要がある。
【０１００】
まず、クリップチェックの処理手順について説明する。図１３において、まず、制御スレッドＴｃｔでは、初期化をおこない（ステップＳ１３００）、クリップチェックコマンドをすべての信号発生スレッドＴｇｅに発行する（ステップＳ１３０１）。そのあと、制御スレッドＴｃｔはクリップチェックが完了するまで待機処理をおこなう（ステップＳ１３０２）。
【０１０１】
また、信号発生スレッドＴｇｅでは、初期化をおこない（ステップＳ１３１０）、制御スレッドＴｃｔからコマンドイベントを待ち受ける（ステップＳ１３１１）。入力コマンドが初期化コマンドか、クリップチェックコマンドである場合（ステップＳ１３１２：Ｙｅｓ）、値‘Ｚ’をすべての出力端子から駆動（出力）して（ステップＳ１３１３）、ステップＳ１３１１に戻る。一方、入力コマンドが初期化コマンドか、クリップチェックコマンドでない場合（ステップＳ１３１２：Ｎｏ）、ステップＳ１３１４に移行する。
【０１０２】
さらに、チェックスレッドＴｃｈでは、初期化をおこない（ステップＳ１３２０）、制御スレッドＴｃｔからコマンドを待ち受ける（ステップＳ１３２１）。入力コマンドが初期化コマンド且つクリップコマンドでない場合（ステップＳ１３２２：Ｎｏ）、ステップＳ１３２７に移行する。
【０１０３】
一方、入力コマンドがクリップチェックコマンドである場合（ステップＳ１３２２：Ｙｅｓ）、チェックスレッドＴｃｈの入力端子に入力された信号の値が‘１’または‘０’であるか否かを判断する（ステップＳ１３２３）。
【０１０４】
‘１’または‘０’のいずれの値でもない場合（ステップＳ１３２３：Ｎｏ）、ステップＳ１３２１に戻る。一方、‘１’または‘０’である場合（ステップＳ１３２３：Ｙｅｓ）、クリップ情報テーブル９００を検索して（ステップＳ１３２４）、検索され且つ、被信号クリップ入力端子の期待値と一致するか否かを判断する（ステップＳ１３２５）。
【０１０５】
クリップ信号の値が一致する場合（ステップＳ１３２５：Ｙｅｓ）、正当性が確認されたこととなり、ステップＳ１３２１に戻る。一方、検索されない、または不一致である場合（ステップＳ１３２５：Ｎｏ）、クリップエラーを出力する（ステップＳ１３２５）。すべての入力信号に対し、ステップＳ１３２３〜ステップＳ１３２５を繰り返して、クリップチェックを終了する。
【０１０６】
つぎに、クリップ信号衝突／オープンチェックをおこなう。まず、制御スレッドＴｃｔでは、入力ＯＰＥＮチェックコマンドを発行する（ステップＳ１３０４）。そのあと、クリップ信号衝突／オープンチェックが完了するまで待機処理をおこない（ステップＳ１３０５）、全チェックスレッドＴｃｈがイベント（信号遷移）を検出したか否かを判断する（ステップＳ１３０６）。すなわち、信号発生回数（信号発生スレッドＴｇｅが実行した回数）と信号変化イベント検出回数（チェックスレッドＴｃｈが実行した回数）をカウントし一致するかどうかで判断する。一致しなければ、一本の信号も接続していないチェックスレッドＴｃｈが存在することになる。
【０１０７】
任意のチェックスレッドＴｃｈがイベント（信号遷移）を検出しなかった場合（ステップＳ１３０６：Ｎｏ）、そのチェックスレッドＴｃｈの全信号未接続エラーを出力する（ステップＳ１３０７）。一方、全チェックスレッドＴｃｈがイベント（信号遷移）を検出した場合（ステップＳ１３０６：Ｙｅｓ）、初期化コマンドの発行をおこない（ステップＳ１３０８）、初期化コマンド完了を待つ。信号発生スレッドＴｇｅは、コマンドイベントを待ち受け（ステップＳ１３１１）、入力コマンドが、初期化コマンドであるため（ステップＳ１３１２：Ｙｅｓ）、値‘Ｚ’をすべての出力端子から駆動（出力）して（ステップＳ１３１３）、ステップＳ１３１１に戻る。
【０１０８】
また、信号発生スレッドＴｇｅでは、制御スレッドＴｃｔからコマンドイベントを待ち受ける（ステップＳ１３１１）。入力コマンドが入力ＯＰＥＮチェックコマンドである場合（ステップＳ１３１２：Ｎｏ、ステップＳ１３１４：Ｙｅｓ）、値‘Ｘ’をすべての出力端子から駆動（出力）して（ステップＳ１３１５）、ステップＳ１３１１に戻る。一方、入力コマンドが入力ＯＰＥＮチェックコマンドでない場合（ステップＳ１３１２：Ｎｏ、ステップＳ１３１４：Ｎｏ）、ステップＳ１４１０に移行する。
【０１０９】
さらに、チェックスレッドＴｃｈでは、制御スレッドＴｃｔからコマンドを待ち受ける（ステップＳ１３２１）。入力コマンドが入力ＯＰＥＮチェックコマンドでない場合（ステップＳ１３２２：Ｎｏ，ステップＳ１３２７：Ｎｏ）、ステップＳ１４２０に移行する。一方、入力コマンド入力ＯＰＥＮチェックコマンドである場合（ステップＳ１３２２：Ｎｏ，ステップＳ１３２７：Ｙｅｓ）、チェックスレッドＴｃｈの被信号クリップ入力端子に入力されたクリップ信号の値が‘Ｚ’であるか否かを判断する（ステップＳ１３２７）。
【０１１０】
‘Ｚ’である場合（ステップＳ１３２８：Ｙｅｓ）、ＯＰＥＮエラーを出力する（ステップＳ１３２８）。一方、‘Ｚ’でない場合（ステップＳ１３２７：Ｎｏ）、クリップ信号の値が‘Ｘ’であるか否かを判断する（ステップＳ１３２９）。
【０１１１】
‘Ｘ’である場合（ステップＳ１３３０：Ｙｅｓ）、信号衝突エラーを出力する（ステップＳ１３３１）。一方、‘Ｘ’でない場合（ステップＳ１３３０：Ｎｏ）、ステップＳ１３２１に戻る。すべての入力信号に対し、ステップＳ１３２１〜ステップＳ１３３０を繰り返し、クリップ信号衝突／オープンチェックを終了する。
【０１１２】
つぎに、接続チェックの処理手順について説明する。図１４において、まず、制御スレッドＴｃｔにおいて、結線正当性チェックコマンドを発行する（ステップＳ１４００）。このコマンドと共に、接続端子情報テーブル１０００から出力端子を読み込み、順番に出力端子を指定しその指定端子を有する信号発生スレッドＴｇｅは、その指定端子に値‘１’（または‘０’）を駆動させ、それ以外の出力端子には、‘Ｚ’を駆動させる。また残余の信号発生スレッドＴｇｅについては、すべての出力端子に対し、値‘Ｚ’を駆動させるコマンドである。このあと、待機処理をおこなう（ステップＳ１４０１）。
【０１１３】
そのあと、イベントを検出したチェックスレッドＴｃｈがあったか否かを判断する（ステップＳ１４０２）。イベントを検出したチェックスレッドＴｃｈがない場合（ステップＳ１４０２：Ｎｏ）、未接続エラーを出力し（ステップＳ１４０３）、ステップＳ１４０４に移行する。一方、イベントを検出したチェックスレッドＴｃｈがあった場合（ステップＳ１４０２：Ｙｅｓ）、ステップＳ１４０４に移行する。
【０１１４】
このあと、ステップＳ１４０４において、接続端子情報テーブル１０００を参照して、すべての接続情報（出力端子と入力端子のペア）に対して処理されたか否か（すべての接続端子情報テーブル１０００がループしたか？）を判断する（ステップＳ１４０４）。処理していない場合（ステップＳ１４０４：Ｎｏ）、ステップＳ１４００に戻る。一方、処理した場合（ステップＳ１４０４：Ｙｅｓ）、初期化コマンドの発行をおこなって（ステップＳ１４０５）、初期化完了待機（ステップＳ１４０６）に移行する。
【０１１５】
また、信号発生スレッドＴｇｅでは、制御スレッドＴｃｔからコマンドイベントを待ち受ける（ステップＳ１３１１）。入力コマンドが結線正当性チェックコマンドでない場合（ステップＳ１３１２：Ｎｏ，ステップＳ１３１４：Ｎｏ，ステップＳ１４１０：Ｎｏ）、ステップＳ１４１２に移行する。一方、入力コマンドが結線正当性チェックコマンドである場合（ステップＳ１３１２：Ｎｏ，ステップＳ１３１４：Ｎｏ，ステップＳ１４１０：Ｙｅｓ）、信号発生スレッドＴｇｅにおいて、指定端子に値‘１’（または‘０’）を駆動し、残余の信号発生スレッドＴｇｅにおいて値‘Ｚ’を駆動する（ステップＳ１４１１）。このあと、ステップＳ１３１１に戻る。
【０１１６】
さらに、チェックスレッドＴｃｈでは、制御スレッドＴｃｔからコマンドを待ち受ける（ステップＳ１３２１）。入力コマンドが結線正当性チェックコマンドでない場合（ステップＳ１３２２：Ｎｏ，ステップＳ１３２７：Ｎｏ，ステップＳ１４２０：Ｎｏ）、ステップＳ１４２７に移行する。
【０１１７】
一方、入力コマンドが結線正当性チェックコマンドである場合（ステップＳ１３２２：Ｎｏ，ステップＳ１３２７：Ｎｏ，ステップＳ１４２０：Ｙｅｓ）、そのコマンドを取り込んだチェックスレッドＴｃｈの全ての入力端子の値が‘１’、‘０’または‘Ｘ’のいずれかの値であるか否かを判断する（ステップＳ１４２１）。
【０１１８】
いずれにも該当しない場合、すなわち‘Ｚ’である場合（ステップＳ１４２１：Ｎｏ）、ステップＳ１３２１に戻る。一方、いずれかに該当する場合（ステップＳ１４２１：Ｙｅｓ）、接続端子情報テーブル１０００を入力端子で出力端子を検索する（ステップＳ１４２２）。
【０１１９】
検索結果により指定端子と、出力端子が一致しない（すなわち、接続されていない）場合（ステップＳ１４２３：Ｎｏ）、接続エラーを出力する（ステップＳ１４２４）。また、値が‘Ｘ’である場合（ステップＳ１４２３：Ｎｏ）、信号衝突エラーを出力する（ステップＳ１４２４）。一方、接続されており、かつ、値が‘Ｘ’でない場合（ステップＳ１４２３：Ｙｅｓ）、その信号の値が駆動信号の値と一致するか否かを判断する（ステップＳ１４２５）。
【０１２０】
不一致である場合（ステップＳ１４２５：Ｎｏ）、反転エラーを出力する（ステップＳ１４２６）。一方、一致する場合（ステップＳ１４２５：Ｙｅｓ）、ステップＳ１３２１に戻る。以上により、接続チェックを終了する。
【０１２１】
つぎに、信号衝突チェックの処理手順について説明する。まず、制御スレッドＴｃｔにおいて、信号衝突チェックコマンドを発行する（ステップＳ１４０６）。このコマンドと共に、接続端子情報テーブル１０００から出力端子を読み込み、順番に出力端子と入力端子のペアを指定しその指定出力端子を有する信号発生スレッドＴｇｅは、その指定端子に値‘１’（または‘０’）を駆動させ、それ以外の出力端子には、‘Ｘ’を駆動させる。また残余の信号発生スレッドＴｇｅについては値‘Ｘ’を駆動させるコマンドである。つまり‘Ｘ’を駆動することで、正常な接続に対し影響を与えていないかチェックすることで、信号衝突を確認できる。このあと、待機処理をおこなう（ステップＳ１４０８）。
【０１２２】
このあと、ステップＳ１４０９において、接続端子情報テーブル１０００を参照して、すべての接続情報（出力端子と入力端子のペア）に対して処理されたか否か（すべての接続端子情報テーブル１０００がループしたか？）を判断する（ステップＳ１４０８）。処理していない場合（ステップＳ１４０８：Ｎｏ）、ステップＳ１４０６に戻る。一方、処理した場合（ステップＳ１４０８：Ｙｅｓ）、論理シミュレーションが終了する。
【０１２３】
また、信号発生スレッドＴｇｅでは、制御スレッドＴｃｔからコマンドを待ち受ける（ステップＳ１３１１）。入力コマンドが信号衝突チェックコマンドでない場合（ステップＳ１３１２：Ｎｏ，ステップＳ１３１４：Ｎｏ，ステップＳ１４１０：Ｎｏ，ステップＳ１４１２：Ｎｏ）、ステップＳ１３１１に戻る。一方、入力コマンドが信号衝突チェックコマンドである場合（ステップＳ１３１２：Ｎｏ，ステップＳ１３１４：Ｎｏ，ステップＳ１４１０：Ｎｏ，ステップＳ１４１２：Ｙｅｓ）、指定出力端子を有する信号発生スレッドＴｇｅにおいて指定出力端子には値‘１’（または‘０’）を駆動し、それ以外の出力端子には、値‘Ｘ’を駆動する（ステップＳ１４１３）、また、残余の信号発生スレッドＴｇｅにおいては、すべての出力端子に対し、値‘Ｘ’を駆動する（ステップＳ１４１３）。このあと、ステップＳ１３１１に戻る。
【０１２４】
さらに、チェックスレッドＴｃｈでは、制御スレッドＴｃｔからコマンドを待ち受ける（ステップＳ１３２１）。入力コマンドが信号衝突チェックコマンドでない場合（ステップＳ１３２２：Ｎｏ，ステップＳ１３２７：Ｎｏ，ステップＳ１４２０：Ｎｏ，ステップＳ１４２７：Ｎｏ）、ステップＳ１３２１に戻る。
【０１２５】
一方、入力コマンドが値‘１’（または‘０’）の信号衝突チェックコマンドである場合（ステップＳ１３２２：Ｎｏ，ステップＳ１３２７：Ｎｏ，ステップＳ１４２０：Ｎｏ，ステップＳ１４２７：Ｙｅｓ）、指定入力端子を有するチェックスレッドＴｃｈは、その入力端子の信号（対象信号）の値が‘Ｘ’であるか否かを判断する（ステップＳ１４２８）。
【０１２６】
‘Ｘ’でない場合（ステップＳ１４２８：Ｎｏ）、ステップＳ１３２１に戻る。一方、‘Ｘ’である場合（ステップＳ１４２８：Ｙｅｓ）、信号衝突エラーを出力する（ステップＳ１４２９）。以上により、信号衝突チェックを終了する。
【０１２７】
このように、上述した実施の形態１によれば、ＨＤＬやシステム記述言語という言語の特徴を利用し、ネットリストＮＬに動作記述（各スレッド）を埋め込み、動的な論理シミュレーションを実行することで、接続をチェックすることができる。通常、ネットリストＮＬには回路動作が記述され、その動作をシミュレートするものであるが、本実施の形態では、接続チェックに応用している。
【０１２８】
このネットリストＮＬには接続情報が記述されておりそのまま利用できるため、言語解析によるバグの作りこみがないうえ、記述言語のシミュレータも一般的であるため、開発コストの低減化を図ることができる。
【０１２９】
［実施の形態２］
つぎに、実施の形態２について説明する。実施の形態１では、あらかじめ作成されたクリップ情報テーブル９００や接続端子情報テーブル１０００を参照することで、各機能ブロック（ＹＹＹ，ＺＺＺ）に埋め込まれたチェックスレッドＴｃｈによりクリップチェックや接続チェックを実行することにより、機能ブロック（ＹＹＹ，ＺＺＺ）間においてクリップエラーや接続エラーがあるか否かをチェックする構成としたが、実施の形態２では、各機能ブロック（ＹＹＹ，ＺＺＺ）に埋め込まれたチェックスレッドＴｃｈによりクリップチェックや接続チェックを実行することにより、未作成のクリップ情報テーブル９００や接続端子情報テーブル１０００を作成する構成である。
【０１３０】
これにより、クリップ情報テーブル９００や接続端子情報テーブル１０００がまだ得られていない場合においても、自動的に作成することができる。また、すでに作成されている場合であっても、実施の形態２を実行することにより、クリップ情報テーブル９００や接続端子情報テーブル１０００の正確さをチェックすることができる。
【０１３１】
以下に、実施の形態２について説明する。なお、実施の形態２のハードウェア構成は図１に示したハードウェア構成と同一である。また、実施の形態１で用いた接続チェックモデル２００（図２）、論理接続チェックの概念（図３）、および４値シミュレーションにおける信号衝突による出力結果（図４）も実施の形態２でそのまま適用する。さらに、実施の形態２では、クリップチェックと接続チェックを実行するため、図５および図７−１〜図７−４もそのまま適用する。また、図１１に示した構成と同一構成には同一符号を付し、その説明を省略する。
【０１３２】
（論理接続チェック装置１００の機能的構成）
図１５は、この発明の実施の形態２にかかる論理接続チェック装置１００の機能的構成を示すブロック図である。実施の形態１と相違する構成は、確認部１５０３と保持部１５０４である。確認部１５０３は、生成された接続チェックモデル２００に関する論理シミュレーションを実行することにより、検証対象に関するネットリストＮＬの正当性を確認する機能を有する。
【０１３３】
具体的には、論理シミュレーションを実行することにより、チェックスレッドＴｃｈにおいてクリップチェックと接続チェックを実行して、正当性を確認する。このクリップチェックおよび接続チェックは、図５および図７−１〜図７−４の内容と同じであるが、クリップ情報テーブル９００および接続端子情報テーブル１０００が未作成であるため、正当性の確認に際しては参照しない。
【０１３４】
また、保持部１５０４は、正当性が確認されたときの接続情報を保持する。接続情報とは、クリップチェックにおいては、入力端子に取り込まれた信号の値の正当性が確認されたときの、その入力端子とその信号の値の組み合わせとなるクリップ情報である。このクリップ情報をクリップ情報テーブル９００に書き込む。
【０１３５】
同様に、接続チェックにおいては、入力端子に取り込まれた信号の値の正当性が確認されたときのその入力端子と信号の出力元である出力端子との組み合わせとなる接続端子情報である。この接続端子情報を接続端子情報テーブル１０００に書き込む。この処理をすべての入力端子についておこなうことにより、最終的にクリップ情報テーブル９００および接続端子情報テーブル１０００が作成される。
【０１３６】
（論理接続チェック処理手順）
つぎに、この発明の実施の形態２にかかる論理接続チェック処理手順について説明する。図１６は、この発明の実施の形態２にかかる論理接続チェック処理手順を示すフローチャートである。
【０１３７】
図１６において、まず、取得部１１０１によりネットリストＮＬを取得し（ステップＳ１６０１）、生成部１１０２により接続チェックモデル２００を生成する（ステップＳ１６０２）。そして、確認部１５０３により、論理シミュレーションを実行することで、ネットリストＮＬの正当性確認処理を実行する（ステップＳ１６０３）。最後に、保持部１５０４により接続情報（クリップ情報、接続端子情報）を保持することで、クリップ情報テーブル９００および接続端子情報テーブル１０００の作成処理を実行する（ステップＳ１６０４）。
【０１３８】
つぎに、上述したネットリストＮＬの正当性確認処理（ステップＳ１６０３）およびテーブル作成処理（ステップＳ１６０４）を詳細に説明する。図１７は、ネットリストＮＬの正当性確認処理（ステップＳ１６０３）およびテーブル作成処理（ステップＳ１６０４）の詳細なフローチャートである。なお、図１７における信号発生スレッドＴｇｅおよびチェックスレッドＴｃｈの処理手順は、任意の信号発生スレッドＴｇｅおよびチェックスレッドＴｃｈに着目した処理手順である。
【０１３９】
図１７において、一点鎖線で区切られた上半部は、クリップチェックの処理手順である。まず、制御スレッドＴｃｔでは、初期化をおこない（ステップＳ１７００）、クリップ情報取得コマンドをすべての信号発生スレッドＴｇｅに発行する（ステップＳ１７０１）。そのあと、制御スレッドＴｃｔはクリップ情報取得が完了するまで待機処理をおこなう（ステップＳ１７０２）、
【０１４０】
また、信号発生スレッドＴｇｅでは、初期化をおこない（ステップＳ１７１０）、制御スレッドＴｃｔからコマンドイベントを待ち受ける（ステップＳ１７１１）。入力コマンドがクリップ情報取得コマンドである場合（ステップＳ１７１２：Ｙｅｓ）、全ての出力端子から値‘Ｚ’を駆動（出力）して（ステップＳ１７１３）、ステップＳ１７１１に戻る。一方、入力コマンドがクリップ情報取得コマンドでない場合（ステップＳ１７１２：Ｎｏ）、ステップＳ１７１４に移行する。
【０１４１】
さらに、チェックスレッドＴｃｈでは、初期化をおこない（ステップＳ１７２０）、制御スレッドＴｃｔからコマンドイベントを待ち受ける（ステップＳ１７２１）。入力コマンドが初期化コマンド且つクリップ情報取得コマンドでない場合（ステップＳ１７２２：Ｎｏ）、ステップＳ１７２５に移行する。
【０１４２】
一方、入力コマンドがクリップ情報取得コマンドである場合（ステップＳ１７２２：Ｙｅｓ）、チェックスレッドＴｃｈの被信号クリップ入力端子に入力されたクリップ信号の値が‘１’または‘０’であるか否かを判断する（ステップＳ１７２３）。
【０１４３】
‘１’または‘０’のいずれの値でもない場合（ステップＳ１７２３：Ｎｏ）、ステップＳ１７２１に戻る。一方、‘１’または‘０’である場合（ステップＳ１７２３：Ｙｅｓ）、クリップ情報となる被信号クリップ入力端子名とその値（‘１’または‘０’）の組み合わせを、クリップ情報テーブル９００に書き込む（ステップＳ１７２４）。そして、ステップＳ１７２１に戻る。以上により、クリップ情報取得を終了する。
【０１４４】
図１７の一点鎖線で区切られた下半部は、接続情報取得チェックの処理手順である。まず、制御スレッドＴｃｔにおいて、すべてのインスタンス（信号発生スレッドＴｇｅ）に対し順番に接続端子情報取得コマンドを発行する（ステップＳ１７０３）。このコマンドは、対象となるインスタンス内の信号発生スレッドＴｇｅに全ての出力端子に対し、順番に値‘１’（または‘０’）を駆動させ、それ以外の出力端子には値‘Ｚ’を駆動させ、残余の信号発生スレッドＴｇｅについては，すべての出力端子に対し，値‘Ｚ’を駆動させるコマンドである。このあと、待機処理をおこなう（ステップＳ１７０４）。
【０１４５】
このあと、ステップＳ１７０５において、すべてのインスタンスに対し接続端子情報取得に対して処理されたか否か（すべてのインスタンスがループしたか？）を判断する（ステップＳ１７０５）。処理していない場合（ステップＳ１７０５：Ｎｏ）、ステップＳ１７０３に戻り、次のインスタンスを指定する。一方、完了した場合（ステップＳ１７０５：Ｙｅｓ）、制御スレッドＴｃｔの処理を終了する。
【０１４６】
また、信号発生スレッドＴｇｅでは、制御スレッドＴｃｔからコマンドイベントを待ち受ける（ステップＳ１７１１）。入力コマンドが接続端子情報取得コマンドでない、または、対象インスタンスでない場合（ステップＳ１７１２：Ｎｏ、ステップＳ１７１４：Ｎｏ）、ステップＳ１７１１に戻る。一方、入力コマンドが接続端子情報取得コマンドで且つ、対象インスタンスである場合（ステップＳ１７１４：Ｙｅｓ）、信号発生スレッドＴｇｅにおいて値‘１’（または‘０’）を駆動し、残余の出力信号において値‘Ｚ’を駆動する（ステップＳ１７１５）。このあと、ステップＳ１７１１に戻る。
【０１４７】
さらに、チェックスレッドＴｃｈでは、制御スレッドＴｃｔからコマンドイベントを待ち受ける（ステップＳ１７２１）。入力コマンドが接続端子情報取得コマンドでない場合（ステップＳ１７２２：Ｎｏ，ステップＳ１７２４：Ｎｏ）、ステップＳ１７２１に戻る。
【０１４８】
一方、入力コマンドが接続端子情報取得コマンドである場合（ステップＳ１７２５：Ｙｅｓ）、そのコマンドを取り込んだチェックスレッドＴｃｈの入力端子の値が‘１’または ‘０’のいずれかの値であるか否かを判断する（ステップＳ１７２５）。
【０１４９】
いずれにも該当しない場合（ステップＳ１７２６：Ｎｏ）、ステップＳ１７２１に戻る。一方、いずれかに該当する場合（ステップＳ１７２６：Ｙｅｓ）、そのときの出力端子と入力端子の組み合わせを接続端子情報として、接続端子情報テーブル１０００に書き込む（ステップＳ１７２７）。そして、ステップＳ１７２１に戻る。以上により、接続チェックを終了する。
【０１５０】
このように、上述した実施の形態２によれば、ＨＤＬやシステム記述言語という言語の特徴を利用し、ネットリストＮＬに動作記述（各スレッド）を埋め込み、動的な論理シミュレーションを実行することで、接続情報を取得することができる。通常、ネットリストＮＬには回路動作が記述され、その動作をシミュレートするものであるが、本実施の形態２では、接続情報の取得、ひいてはテーブル作成に応用している。
【０１５１】
したがって、ネットリストＮＬに接続情報が記述されておらず、あらかじめクリップ情報テーブル９００や接続端子情報テーブル１０００が作成されていなくても、自動作成することができる。また、言語解析によるバグの作りこみがないうえ、記述言語のシミュレータも一般的であるため、開発コストの低減化を図ることができる。さらに、すでに作成されている場合であっても、再度作成して比較することで、クリップ情報テーブル９００や接続端子情報テーブル１０００の正確さをチェックすることができる。
【０１５２】
以上説明したように、本実施の形態によれば、自動合成されたネットリストの正当性を、少工数かつ高精度で確認することができるという効果を奏する。
【０１５３】
なお、本実施の形態で説明した論理接続チェック方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またこのプログラムは、インターネット等のネットワークを介して配布することが可能な伝送媒体であってもよい。
【０１５４】
また、本実施の形態で説明した論理接続チェック装置１００は、スタンダードセルやストラクチャードＡＳＩＣなどの特定用途向けＩＣ（以下、単に「ＡＳＩＣ」と称す。）やＦＰＧＡなどのＰＬＤによっても実現することができる。具体的には、たとえば、上述した論理接続チェック装置１００の機能的構成１１０１〜１１０４，１５０３，１５０４をＨＤＬ記述によって機能定義し、そのＨＤＬ記述を論理合成してＡＳＩＣやＰＬＤに与えることにより、論理接続チェック装置１００を製造することができる。
【０１５５】
（付記１）コンピュータを、
検証対象に関するネットリストを取得する取得手段、
前記取得手段によって取得されたネットリストにより特定される前記検証対象内の各機能ブロック内の動作記述を、信号を発生させる信号発生スレッドと動作内容をチェックするチェックスレッドとに置換することにより、接続元となる機能ブロックの信号発生スレッドと接続先となる機能ブロックのチェックスレッドとが接続された接続チェックモデルを生成する生成手段、
前記生成手段によって生成された接続チェックモデルに関する論理シミュレーションを実行することにより、前記ネットリストの正当性を確認する確認手段、
前記確認手段によって確認された確認結果を出力する出力手段、
として機能させることを特徴とする論理接続チェックプログラム。
【０１５６】
（付記２）前記確認手段は、
前記論理シミュレーションを実行することにより、前記信号発生スレッドからハイインピーダンスに関する信号を出力した結果、前記チェックスレッドの入力端子のうちある値にクリップされている被信号クリップ入力端子に、期待値となるクリップ信号が取り込まれるか否かのクリップチェックを実行し、
前記出力手段は、
前記クリップチェックのチェック結果を出力することを特徴とする付記１に記載の論理接続チェックプログラム。
【０１５７】
（付記３）前記確認手段は、
前記論理シミュレーションを実行することにより、前記信号発生スレッドから不定値に関する信号を出力した結果、前記チェックスレッドの入力端子がオープンか否かをチェックするオープンチェックを実行し、
前記出力手段は、
前記オープンチェックのチェック結果を出力することを特徴とする付記２に記載の論理接続チェックプログラム。
【０１５８】
（付記４）前記確認手段は、
前記論理シミュレーションを実行することにより、前記信号発生スレッドから不定値に関する信号を出力した結果、前記被信号クリップ入力端子において前記クリップ信号が他の信号と衝突しているか否かをチェックするクリップ信号衝突チェックを実行し、
前記出力手段は、
前記クリップ信号衝突チェックのチェック結果を出力することを特徴とする付記２または３に記載の論理接続チェックプログラム。
【０１５９】
（付記５）前記確認手段は、
前記論理シミュレーションを実行することにより、前記信号発生スレッドの中から選ばれた一の信号発生スレッドから二値のうちいずれか一方の値の信号を出力し、かつ、残余の信号発生スレッドから前記ハイインピーダンスに関する信号を出力した結果、前記一の信号発生スレッドの前記一方の値の信号を出力した出力端子と、その接続先となるチェックスレッドの入力端子とが接続されているか否かをチェックする接続チェックを実行し、
前記出力手段は、
前記接続チェックのチェック結果を出力することを特徴とする付記２〜４のいずれか一つに記載の論理接続チェックプログラム。
【０１６０】
（付記６）前記出力手段は、
前記接続先となるチェックスレッドの入力端子に前記二値のうち他方の値の信号が入力された場合、前記接続チェックのチェック結果として反転エラーを出力することを特徴とする付記５に記載の論理接続チェックプログラム。
【０１６１】
（付記７）前記出力手段は、
前記接続先となるチェックスレッドの入力端子に不定値に関する信号が入力された場合、前記接続チェックのチェック結果として信号衝突エラーを出力することを特徴とする付記５に記載の論理接続チェックプログラム。
【０１６２】
（付記８）前記確認手段は、
前記論理シミュレーションを実行することにより、前記信号発生スレッドの中から選ばれた一の信号発生スレッドから二値のうちいずれか一方の値の信号を出力し、かつ、残余の信号発生スレッドから不定値に関する信号を出力した結果、前記一の信号発生スレッドの前記一方の値の信号と前記不定値に関する信号が信号衝突しているか否かをチェックする信号衝突チェックを実行し、
前記出力手段は、
前記信号衝突チェックのチェック結果を出力することを特徴とする付記２〜７のいずれか一つに記載の論理接続チェックプログラム。
【０１６３】
（付記９）コンピュータを、
検証対象に関するネットリストを取得する取得手段、
前記取得手段によって取得されたネットリストにより特定される前記検証対象内の各機能ブロック内の動作記述を、信号を発生させる信号発生スレッドと動作内容をチェックするチェックスレッドとを含む機能ブロックに置換することにより、接続元となる機能ブロックの信号発生スレッドと接続先となる機能ブロックのチェックスレッドとが接続された接続チェックモデルを生成する生成手段、
前記生成手段によって生成された接続チェックモデルに関する論理シミュレーションを実行することにより、前記検証対象に関するネットリストの正当性を確認する確認手段、
前記確認手段によって正当性が確認されたときの接続情報を保持する保持手段、
として機能させることを特徴とする論理接続チェックプログラム。
【０１６４】
（付記１０）前記確認手段は、
前記論理シミュレーションを実行することにより、前記信号発生スレッドからハイインピーダンスに関する信号を出力した結果、前記チェックスレッドの入力端子のうちある値にクリップされている被信号クリップ入力端子に、期待値となるクリップ信号が取り込まれるか否かのクリップチェックを実行し、
前記保持手段は、
前記クリップチェックのチェック結果として前記ハイインピーダンスに関する信号以外の信号が前記被信号クリップ入力端子に入力された場合、前記被信号クリップ入力端子とその入力信号の値との組み合わせを前記接続情報として保持することを特徴とする付記９に記載の論理接続チェックプログラム。
【０１６５】
（付記１１）前記確認手段は、
前記論理シミュレーションを実行することにより、前記信号発生スレッドの中から選ばれた一の信号発生スレッドから二値のうちいずれか一方の値の信号を出力し、かつ、残余の信号発生スレッドから前記ハイインピーダンスに関する信号を出力した結果、前記一の信号発生スレッドの前記一方の値の信号を出力した出力端子と、その接続先となるチェックスレッドの入力端子とが接続されているか否かをチェックする接続チェックを実行し、
前記保持手段は、
前記接続チェックのチェック結果として前記ハイインピーダンスに関する信号以外の信号が前記接続先となるチェックスレッドの入力端子に入力された場合、前記一方の値の信号を出力した出力端子と前記接続先となるチェックスレッドの入力端子との組み合わせを前記接続情報として保持することを特徴とする付記９または１０に記載の論理接続チェックプログラム。
【０１６６】
（付記１２）検証対象に関するネットリストを取得する取得手段と、
前記取得手段によって取得されたネットリストにより特定される前記検証対象内の各機能ブロック内の動作記述を、信号を発生させる信号発生スレッドと動作内容をチェックするチェックスレッドとに置換することにより、接続元となる機能ブロックの信号発生スレッドと接続先となる機能ブロックのチェックスレッドとが接続された接続チェックモデルを生成する生成手段と、
前記生成手段によって生成された接続チェックモデルに関する論理シミュレーションを実行することにより、前記ネットリストの正当性を確認する確認手段と、
前記確認手段によって確認された確認結果を出力する出力手段と、
を備えることを特徴とする論理接続チェック装置。
【０１６７】
（付記１３）検証対象に関するネットリストを取得する取得手段と、
前記取得手段によって取得されたネットリストにより特定される前記検証対象内の各機能ブロック内の動作記述を、信号を発生させる信号発生スレッドと動作内容をチェックするチェックスレッドとを含む機能ブロックに置換することにより、接続元となる機能ブロックの信号発生スレッドと接続先となる機能ブロックのチェックスレッドとが接続された接続チェックモデルを生成する生成手段と、
前記生成手段によって生成された接続チェックモデルに関する論理シミュレーションを実行することにより、前記検証対象に関するネットリストの正当性を確認する確認手段と、
前記確認手段によって正当性が確認されたときの接続情報を保持する保持手段と、
を備えることを特徴とする論理接続チェック装置。
【０１６８】
（付記１４）検証対象に関するネットリストを取得する取得工程と、
前記取得工程によって取得されたネットリストにより特定される前記検証対象内の各機能ブロック内の動作記述を、信号を発生させる信号発生スレッドと動作内容をチェックするチェックスレッドとに置換することにより、接続元となる機能ブロックの信号発生スレッドと接続先となる機能ブロックのチェックスレッドとが接続された接続チェックモデルを生成する生成工程と、
前記生成工程によって生成された接続チェックモデルに関する論理シミュレーションを実行することにより、前記ネットリストの正当性を確認する確認工程と、
前記確認工程によって確認された確認結果を出力する出力工程と、
を含んだことを特徴とする論理接続チェック方法。
【０１６９】
（付記１５）検証対象に関するネットリストを取得する取得工程と、
前記取得工程によって取得されたネットリストにより特定される前記検証対象内の各機能ブロック内の動作記述を、信号を発生させる信号発生スレッドと動作内容をチェックするチェックスレッドとを含む機能ブロックに置換することにより、接続元となる機能ブロックの信号発生スレッドと接続先となる機能ブロックのチェックスレッドとが接続された接続チェックモデルを生成する生成工程と、
前記生成工程によって生成された接続チェックモデルに関する論理シミュレーションを実行することにより、前記検証対象に関するネットリストの正当性を確認する確認工程と、
前記確認工程によって正当性が確認されたときの接続情報を保持する保持工程と、
を含んだことを特徴とする論理接続チェック方法。
【産業上の利用可能性】
【０１７０】
以上のように、本発明にかかる論理接続チェックプログラム、論理接続チェック装置、および論理接続チェック方法は、ＬＳＩやシステムＬＳＩの検証に有用であり、特に、アーキテクチャ再構成プロセッサの検証に適している。
【図面の簡単な説明】
【０１７１】
【図１】この発明の実施の形態１にかかる論理接続チェック装置のハードウェア構成を示す説明図である。
【図２】この発明の実施の形態１にかかる接続チェックモデルの構成図である。
【図３】この発明の実施の形態１にかかる論理接続チェックの概念図である。
【図４】４値シミュレーションにおける信号衝突による出力結果を示す図表である。
【図５】正しい接続状態（仮定）を示す説明図である。
【図６−１】クリップチェックを示す説明図である。
【図６−２】クリップ信号衝突／オープンチェックを示す説明図である。
【図７−１】接続チェックを示す説明図（その１）である。
【図７−２】接続チェックを示す説明図（その２）である。
【図７−３】接続チェックを示す説明図（その３）である。
【図７−４】接続チェックを示す説明図（その４）である。
【図８−１】信号衝突チェックを示す説明図（その１）である。
【図８−２】信号衝突チェックを示す説明図（その２）である。
【図９】クリップ情報テーブルを示す説明図である。
【図１０】接続端子情報テーブルを示す説明図である。
【図１１】この発明の実施の形態１にかかる論理接続チェック装置の機能的構成を示すブロック図である。
【図１２】この発明の実施の形態１にかかる論理接続チェック処理手順を示すフローチャートである。
【図１３】ネットリストの正当性確認処理およびチェック結果の出力処理の詳細なフローチャート（前半）である。
【図１４】ネットリストの正当性確認処理およびチェック結果の出力処理の詳細なフローチャート（後半）である。
【図１５】この発明の実施の形態２にかかる論理接続チェック装置の機能的構成を示すブロック図である。
【図１６】この発明の実施の形態２にかかる論理接続チェック処理手順を示すフローチャートである。
【図１７】ネットリストの正当性確認処理およびテーブル作成処理の詳細なフローチャートである。
【図１８】アーキテクチャ再構成プロセッサを示す概要図である。
【符号の説明】
【０１７２】
１００  論理接続チェック装置
２００  接続チェックモデル
２０１  テストベンチ
９００  クリップ情報テーブル
１０００  接続端子情報テーブル
１１００  ライブラリ
１１０１  取得部
１１０２  生成部
１１０３，１５０３  確認部
１１０４  出力部
１１１０  アーキテクチャ再構成ツール
１１２０  チェック結果
ＮＬ    ネットリスト
Ｔｃｈ  チェックスレッド
Ｔｃｔ  制御スレッド
Ｔｇｅ  信号発生スレッド
【図１】
0004782743.tif 000002
【図２】
0004782743.tif 000003
【図３】
0004782743.tif 000004
【図４】
0004782743.tif 000005
【図５】
0004782743.tif 000006
【図６−１】
0004782743.tif 000007
【図６−２】
0004782743.tif 000008
【図７−１】
0004782743.tif 000009
【図７−２】
0004782743.tif 000010
【図７−３】
0004782743.tif 000011
【図７−４】
0004782743.tif 000012
【図８−１】
0004782743.tif 000013
【図８−２】
0004782743.tif 000014
【図９】
0004782743.tif 000015
【図１０】
0004782743.tif 000016
【図１１】
0004782743.tif 000017
【図１２】
0004782743.tif 000018
【図１３】
0004782743.tif 000019
【図１４】
0004782743.tif 000020
【図１５】
0004782743.tif 000021
【図１６】
0004782743.tif 000022
【図１７】
0004782743.tif 000023
【図１８】
0004782743.tif 000024