(57)【特許請求の範囲】
【請求項１】
動作合成により生成された回路中の一つの転送路について、前記動作合成により生成された回路に関する情報である回路情報、前記回路上のデータの流れを示すデータフロー情報、前記回路を構成する機能素子の割り当て情報を基に、該転送路に割り当てられたデータフローを全て特定するデータフロー特定手段と、
前記回路情報、前記データフロー情報、前記割り当て情報、を基に前記回路中の各転送路がアクティブになる条件情報を抽出するアクティブ条件抽出手段と、
前記条件情報を前記転送路毎に前記回路情報に関連付けて格納するアクティブ条件付き回路情報データベースと、
前記アクティブ条件付き回路情報データベースを参照して、回路動作の組み合わせにおいてアクティブにならないパスであるフォールスパスを前記転送路毎に探索処理するフォールスパス探索手段とを具備することを特徴とするフォールスパス検出装置。
【請求項２】
前記フォールスパス探索手段は、
一つまたは複数の前記転送路を含むパスに対して、前記アクティブ条件付き回路情報データベースを参照して、該複数の転送路がアクティブになる条件について論理積をとることで、該パスがアクティブかどうか判別することを特徴とする請求項１に記載のフォールスパス検出装置。
【請求項３】
アクティブになるパスに関する情報であるアクティブパス情報または前記転送路を格納するアクティブパス格納手段と、
フォールスパスの探索処理の対象となる転送路に関する転送路情報を格納する転送路情報格納手段とを更に具備し、
前記フォールスパス探索手段は、
前記回路中のすべての転送路を前記アクティブパス格納手段へ格納し、
前記アクティブパス格納手段に格納される前記転送路またはアクティブパスの任意の１つを読み出し、読み出した転送路またはアクティブパスの入力側の端にある素子が入力端子または記憶素子かどうか判断し、
入力端子でも記憶素子でもなかった場合、該転送路またはアクティブパスを出力とする素子の入力側に接続している転送路を前記回路情報から特定し、該転送路情報を前記転送路情報格納手段へ格納し、
前記転送路情報格納手段に格納されている転送路の任意の１つを読み出し、読み出した転送路と、前記アクティブパス格納手段より読み出した転送路またはアクティブパスとで構成される新たなパスを生成し、
前記新たなパス中のすべての転送路について、前記アクティブ条件付き回路情報データベースを参照して、アクティブになる条件について論理積をとることで、前記新たなパスがアクティブかどうか判別し、
前記新たなパスがアクティブの場合は、該新たなパスをアクティブパス情報として前記アクティブパス格納手段へ格納し、前記新たなパスがアクティブでない場合は、該新たなパスをフォールスパスとして出力することを特徴とする請求項１または請求項２に記載のフォールスパス検出装置。
【請求項４】
フォールスパス検出装置のデータフロー特定手段が、
動作合成により生成された回路中の一つの転送路について、前記動作合成により生成された回路に関する情報である回路情報、前記回路上のデータの流れを示すデータフロー情報、前記回路を構成する機能素子の割り当て情報を基に、該転送路に割り当てられたデータフローを全て特定する第一のステップと、
フォールスパス検出装置のアクティブ条件抽出手段が、
前記回路情報、前記データフロー情報、前記割り当て情報、を基に前記回路中の各転送路がアクティブになる条件情報を抽出する第二のステップと、
フォールスパス検出装置のフォールスパス探索手段が、
前記条件情報を前記転送路毎に前記回路情報に関連付けて格納するアクティブ条件付き回路情報データベースを参照して、回路動作の組み合わせにおいてアクティブにならないパスであるフォールスパスを前記転送路毎に探索処理する第三のステップと
を実行することを特徴とするフォールスパス検出方法。
【請求項５】
フォールスパス検出装置のフォールスパス探索手段は、前記第三のステップにおいて、
一つまたは複数の前記転送路を含むパスに対して、前記アクティブ条件付き回路情報データベースを参照して、該複数の転送路がアクティブになる条件について論理積をとることで、該パスがアクティブかどうか判別する
ことを特徴とする請求項４に記載のフォールスパス検出方法。
【請求項６】
フォールスパス検出装置のフォールスパス探索手段は、前記第三のステップにおいて、
前記回路中のすべての転送路をアクティブパス格納手段へ格納し、
前記アクティブパス格納手段に格納される前記転送路またはアクティブパスの任意の１つを読み出し、読み出した転送路またはアクティブパスの入力側の端にある素子が入力端子または記憶素子かどうか判断し、
入力端子でも記憶素子でもなかった場合、該転送路またはアクティブパスを出力とする素子の入力側に接続している転送路を前記回路情報から特定し、該転送路情報を転送路情報格納手段へ格納し、
前記転送路情報格納手段に格納されている転送路の任意の１つを読み出し、読み出した転送路と、前記アクティブパス格納手段より読み出した転送路またはアクティブパスとで構成される新たなパスを生成し、
前記新たなパス中のすべての転送路について、前記アクティブ条件付き回路情報データベースを参照して、アクティブになる条件について論理積をとることで、前記新たなパスがアクティブかどうか判別し、
前記新たなパスがアクティブの場合は、該新たなパスをアクティブパス情報として前記アクティブパス格納手段へ格納し、前記新たなパスがアクティブでない場合は、該新たなパスをフォールスパスとして出力する
ことを特徴とする請求項４または請求項５に記載のフォールスパス検出方法。
【請求項７】
動作合成により生成された回路中の一つの転送路について、前記動作合成により生成された回路に関する情報である回路情報、前記回路上のデータの流れを示すデータフロー情報、前記回路を構成する機能素子の割り当て情報を基に、該転送路に割り当てられたデータフローを全て特定する第一のステップと、
前記回路情報、前記データフロー情報、前記割り当て情報、を基に前記回路中の各転送路がアクティブになる条件情報を抽出する第二のステップと、
前記条件情報を前記転送路毎に前記回路情報に関連付けて格納するアクティブ条件付き回路情報データベースを参照して、回路動作の組み合わせにおいてアクティブにならないパスであるフォールスパスを前記転送路毎に探索処理する第三のステップと
をコンピュータに実行させるプログラム。
【請求項８】
前記第三のステップは、
一つまたは複数の前記転送路を含むパスに対して、前記アクティブ条件付き回路情報データベースを参照して、該複数の転送路がアクティブになる条件について論理積をとることで、該パスがアクティブかどうか判別する
ことをコンピュータに実行させる請求項７に記載のプログラム。
【請求項９】
前記第三のステップは、
前記回路中のすべての転送路をアクティブパス格納手段へ格納し、
前記アクティブパス格納手段に格納される前記転送路またはアクティブパスの任意の１つを読み出し、読み出した転送路またはアクティブパスの入力側の端にある素子が入力端子または記憶素子かどうか判断し、
入力端子でも記憶素子でもなかった場合、該転送路またはアクティブパスを出力とする素子の入力側に接続している転送路を前記回路情報から特定し、該転送路情報を転送路情報格納手段へ格納し、
前記転送路情報格納手段に格納されている転送路の任意の１つを読み出し、読み出した転送路と、前記アクティブパス格納手段より読み出した転送路またはアクティブパスとで構成される新たなパスを生成し、
前記新たなパス中のすべての転送路について、前記アクティブ条件付き回路情報データベースを参照して、アクティブになる条件について論理積をとることで、前記新たなパスがアクティブかどうか判別し、
前記新たなパスがアクティブの場合は、該新たなパスをアクティブパス情報として前記アクティブパス格納手段へ格納し、前記新たなパスがアクティブでない場合は、該新たなパスをフォールスパスとして出力することをコンピュータに実行させる請求項７または請求項８に記載のプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、動作合成により生成された回路において、回路動作の組み合わせでアクティブにならないパスであるフォールスパスを検出するフォールスパス検出装置、フォールスパス検出方法およびそのプログラム関するものである。
【０００２】
【従来の技術】
従来、特に大規模な論理回路の設計において用いられる技術として、ハードウェアの構造を含まない、動作のみを記述した動作記述から、ＲＴＬ（Ｒｅｇｉｓｔｅｒ  Ｔｒａｎｓｆｅｒ  Ｌｅｖｅｌ）回路を自動生成する動作合成技術がある。さらに、このＲＴＬ回路を、ゲートレベルのネットリストへ変換する論理合成技術があり、この時に生成される回路は、全てのパス（データの経路）の遅延が所定の時間内に収まるよう、所定の遅延制約の基で回路が生成される。この時、特に状態遷移のある回路等において、全ての状態に渡って同時にはアクティブにならない転送路の組み合わせパスがある。このパスがフォールスパスであり、他の状態でアクティブになるパス（以下、トゥルーパスという）の組み合わせで、最終的なフォールスパスが決まる。
【０００３】
上述した論理合成の回路では、トゥルーパスの遅延制約さえ満足していれば、フォールスパスの遅延がいくら大きくなっても回路は正常に動作する。そこで、論理合成時にトゥルーパスとフォールスパスに関する情報を反映させ、フォールスパスに対して遅延制約を行わないようにしていた。この際、動作合成後の回路情報からトゥルーパスとフォールスパスに関する情報を抽出する方法として、回路における全てのパスのパターンについて、トゥルーパスの情報を参照し比較することで、トゥルーパスであるかフォールスパスであるかを検証する方法がある。以下にその方法を用いたフォールスパス検出装置について図を用いて説明する。
【０００４】
図６は、従来のフォールスパス検出装置を示す図である。フォールスパス検出装置３は、動作合成システム１から出力される回路情報と、データフロー情報と、リソース割り当て情報とを記憶装置４を介して受信し、以下に示す処理を行ってフォールスパス情報を出力する。
トゥルーパス列挙手段３１は、回路情報とデータフロー情報、リソース割り当て情報から、回路中のトゥルーパスをすべて抽出し、トゥルーパス格納手段３４へ格納する。フォールスパス候補生成手段３２は、トゥルーパス格納手段３４中の任意の組み合わせで構成される部分回路のうち演算器が共有されているものすべてに対して、当該部分回路を構成したトゥルーパス以外に当該部分回路中に存在するすべてのパスを抽出し、フォールスパス最短化手段３３へ出力する。フォールスパス最短化手段３３は、すべてのフォールスパス候補に対して、当該フォールスパス候補がトゥルーパスでないことを確認しながら当該パスを両端から縮めていき、冗長なパスを含まない最短のフォールスパスを出力装置２へ出力する。
【０００５】
【発明が解決しようとする課題】
上述したように、従来は、全てのトゥルーパスの情報を格納するので、大規模な集積回路の回路情報となると、大量のメモリが必要になるという問題があった。また、フォールスパス候補の最短化を行うのに、トゥルーパスとの比較を繰り返し行うため、処理に時間がかかるという問題があった。また、集積回路の規模が今後更に増大するのは確実であり、場合によっては、メモリ不足や、処理時間が実使用に耐えうる処理時間に収まりきれない等の原因で、更なる大規模回路に適用できないという問題があった。
【０００６】
この発明は、上述した事情を考慮してなされたもので、メモリの使用量がより少なく、処理が高速であるフォールスパス検出装置、フォールスパス検出方法およびそのプログラムを提供することを目的とする。
【０００７】
【課題を解決するための手段】
この発明は、上述した課題を解決すべくなされたもので、本発明によるフォールスパス検出装置においては、動作合成により生成された回路に関する情報である回路情報、回路上のデータの流れを示すデータフロー情報、回路を構成する機能素子の割り当て情報、を基に回路中の各転送路がアクティブになる条件情報を抽出するアクティブ条件抽出手段と、条件情報を転送路毎に回路情報に関連付けて格納するアクティブ条件付き回路情報データベースと、アクティブ条件付き回路情報データベースを参照して、回路動作の組み合わせにおいてアクティブにならないパスであるフォールスパスを転送路毎に探索処理するフォールスパス探索手段とを具備することを特徴とする。
【０００８】
これにより、動作合成により生成された回路に関する情報である回路情報、回路上のデータの流れを示すデータフロー情報、回路を構成する機能素子の割り当て情報、を基に回路中の各転送路がアクティブになる条件情報を抽出するアクティブ条件抽出手段と、条件情報を転送路毎に回路情報に関連付けて格納するアクティブ条件付き回路情報データベースと、アクティブ条件付き回路情報データベースを参照して、回路動作の組み合わせにおいてアクティブにならないパスであるフォールスパスを転送路毎に探索処理するフォールスパス探索手段とを具備するので、条件情報を基にフォールスパスを転送路毎に探索処理することができる。
【０００９】
また、本発明によるフォールスパス検出装置においては、上記フォールスパス探索手段は、一つまたは複数の転送路を含むパスに対して、アクティブ条件付き回路情報データベースを参照して、該複数の転送路がアクティブになる条件について論理積をとることで、該パスがアクティブかどうか判別することを特徴とする。
【００１０】
これにより、フォールスパス探索手段は、一つまたは複数の転送路を含むパスに対して、アクティブ条件付き回路情報データベースを参照して、該複数の転送路がアクティブになる条件について論理積をとることで、該パスがアクティブかどうか判別するので、転送路が複数連なったパスにおいて、簡便にアクティブパスであるかを判別できる。
【００１１】
また、本発明によるフォールスパス検出装置においては、アクティブになるパスに関する情報であるアクティブパス情報または転送路を格納するアクティブパス格納手段と、フォールスパスの探索処理の対象となる転送路に関する転送路情報を格納する転送路情報格納手段とを更に具備し、上記フォールスパス探索手段は、回路中のすべての転送路をアクティブパス格納手段へ格納し、アクティブパス格納手段に格納される転送路またはアクティブパスの任意の１つを読み出し、読み出した転送路またはアクティブパスの入力側の端にある素子が入力端子または記憶素子かどうか判断し、入力端子でも記憶素子でもなかった場合、該転送路またはアクティブパスを出力とする素子の入力側に接続している転送路を回路情報から特定し、該転送路情報を転送路情報格納手段へ格納し、転送路情報格納手段に格納されている転送路の任意の１つを読み出し、読み出した転送路と、アクティブパス格納手段より読み出した転送路またはアクティブパスとで構成される新たなパスを生成し、新たなパス中のすべての転送路について、アクティブ条件付き回路情報データベースを参照して、アクティブになる条件について論理積をとることで、新たなパスがアクティブかどうか判別し、新たなパスがアクティブの場合は、該新たなパスをアクティブパス情報としてアクティブパス格納手段へ格納し、新たなパスがアクティブでない場合は、該新たなパスをフォールスパスとして出力することを特徴とする。
【００１２】
これにより、上記フォールスパス探索手段は、アクティブパス情報格納手段に格納される転送路またはアクティブパスの任意の１つを読み出し、転送路またはアクティブパスを出力とする素子の入力側に接続している転送路を回路情報から特定し、該転送路情報を転送路情報格納手段へ格納し、転送路情報格納手段に格納されている転送路の任意の１つを読み出し、読み出した転送路と、アクティブパス格納手段より読み出した転送路またはアクティブパスとで構成される新たなパスを生成し、新たなパス中のすべての転送路について、アクティブになる条件について論理積をとることで、新たなパスがアクティブかどうか判別し、新たなパスがアクティブでない場合は、該新たなパスをフォールスパスとして出力するので、転送路を入力側へ遡ってフォールスパスであるかを検証することができる。
【００１３】
また、本発明によるフォールスパス検出方法においては、動作合成により生成された回路に関する情報である回路情報、回路上のデータの流れを示すデータフロー情報、回路を構成する機能素子の割り当て情報、を基に回路中の各転送路がアクティブになる条件情報を抽出する第一のステップと、条件情報を転送路毎に回路情報に関連付けて格納するアクティブ条件付き回路情報データベースを参照して、回路動作の組み合わせにおいてアクティブにならないパスであるフォールスパスを転送路毎に探索処理する第二のステップとを有することを特徴とする。
【００１４】
また、本発明によるフォールスパス検出方法においては、上記第二のステップは、一つまたは複数の転送路を含むパスに対して、アクティブ条件付き回路情報データベースを参照して、該複数の転送路がアクティブになる条件について論理積をとることで、該パスがアクティブかどうか判別することを特徴とする。
【００１５】
また、本発明によるフォールスパス検出方法においては、上記第二のステップは、回路中のすべての転送路をアクティブパス格納手段へ格納し、アクティブパス格納手段に格納される転送路またはアクティブパスの任意の１つを読み出し、読み出した転送路またはアクティブパスの入力側の端にある素子が入力端子または記憶素子かどうか判断し、入力端子でも記憶素子でもなかった場合、該転送路またはアクティブパスを出力とする素子の入力側に接続している転送路を回路情報から特定し、該転送路情報を転送路情報格納手段へ格納し、転送路情報格納手段に格納されている転送路の任意の１つを読み出し、読み出した転送路と、アクティブパス格納手段より読み出した転送路またはアクティブパスとで構成される新たなパスを生成し、新たなパス中のすべての転送路について、アクティブ条件付き回路情報データベースを参照して、アクティブになる条件について論理積をとることで、新たなパスがアクティブかどうか判別し、新たなパスがアクティブの場合は、該新たなパスをアクティブパス情報としてアクティブパス格納手段へ格納し、新たなパスがアクティブでない場合は、該新たなパスをフォールスパスとして出力することを特徴とする。
【００１６】
また、本発明によるプログラムは、動作合成により生成された回路に関する情報である回路情報、回路上のデータの流れを示すデータフロー情報、回路を構成する機能素子の割り当て情報、を基に回路中の各転送路がアクティブになる条件情報を抽出する第一のステップと、条件情報を転送路毎に回路情報に関連付けて格納するアクティブ条件付き回路情報データベースを参照して、回路動作の組み合わせにおいてアクティブにならないパスであるフォールスパスを転送路毎に探索処理する第二のステップとをコンピュータに実行させるプログラムである。
【００１７】
また、本発明によるプログラムは、上記第二のステップは、一つまたは複数の転送路を含むパスに対して、アクティブ条件付き回路情報データベースを参照して、該複数の転送路がアクティブになる条件について論理積をとることで、該パスがアクティブかどうか判別することをコンピュータに実行させるプログラムである。
【００１８】
また、本発明によるプログラムは、上記第二のステップは、回路中のすべての転送路をアクティブパス格納手段へ格納し、アクティブパス格納手段に格納される転送路またはアクティブパスの任意の１つを読み出し、読み出した転送路またはアクティブパスの入力側の端にある素子が入力端子または記憶素子かどうか判断し、入力端子でも記憶素子でもなかった場合、該転送路またはアクティブパスを出力とする素子の入力側に接続している転送路を回路情報から特定し、該転送路情報を転送路情報格納手段へ格納し、転送路情報格納手段に格納されている転送路の任意の１つを読み出し、読み出した転送路と、アクティブパス格納手段より読み出した転送路またはアクティブパスとで構成される新たなパスを生成し、新たなパス中のすべての転送路について、アクティブ条件付き回路情報データベースを参照して、アクティブになる条件について論理積をとることで、新たなパスがアクティブかどうか判別し、新たなパスがアクティブの場合は、該新たなパスをアクティブパス情報としてアクティブパス格納手段へ格納し、新たなパスがアクティブでない場合は、該新たなパスをフォールスパスとして出力することをコンピュータに実行させるプログラムである。
【００１９】
【発明の実施の形態】
以下、発明の実施の形態を通じて本発明を説明する。ただし、以下の実施の形態は特許請求の範囲に記載された発明を限定するものではなく、また実施の形態の中で説明されている特徴の組み合わせのすべてが発明の解決手段に必要であるとは限らない。
図１は、本発明の一実施形態によるフォールスパス検出装置を用いたシステムの全体構成を示すブロック図である。この図において符号１、２、４は、図６で示した従来の装置と同じ機能である。符号５は、動作合成システム１から出力される回路情報と、データフロー情報と、リソース割り当て情報とを記憶装置４を介して受信し、それらの情報を処理してフォールスパス情報を出力するフォールスパス検出装置である。
【００２０】
次に、フォールスパス検出装置５の内部について説明する。５１は、動作合成システム１により生成され、記憶装置４を介して受信した、回路に関する情報である回路情報、回路上のデータの流れを示すデータフロー情報、回路を構成する機能素子の割り当て情報、を基に回路中の各転送路がアクティブになる条件情報を抽出するアクティブ条件抽出処理部である。５２は、アクティブ条件抽出処理部５１が抽出した条件情報を転送路毎に回路情報に関連付けて格納するアクティブ条件付き回路情報データベースである。５３は、一つまたは複数の転送路を含むパスに対して、アクティブ条件付き回路情報データベース５２を参照して、該複数の転送路がアクティブになる条件について論理積をとることで、該パスがアクティブかどうか判別し、アクティブにならないパスであるフォールスパスを転送路毎に探索処理するフォールスパス探索処理部である。尚、フォールスパス探索処理部５３の詳細な動作については後述する。
【００２１】
５４は、フォールスパス探索処理部５３が処理するアクティブになるパスに関する情報であるアクティブパス情報または、アクティブ条件付き回路情報データベース５２より読み出した転送路情報を格納するアクティブパス格納部である。５５は、フォールスパス探索処理部５３が、フォールスパスの探索処理を行う際に、処理対象となる転送路に関する転送路情報を格納する転送路情報格納部である。５６は、フォールスパス探索処理部５３が出力するフォールスパスの中より冗長なフォールスパスを省いて最短のフォールスパスのみを出力する冗長フォールスパス除去処理部である。
【００２２】
尚、上記に示した各処理部は専用のハードウェアにより実現されるものであってもよく、また、各処理部はメモリおよびＣＰＵ（中央演算装置）により構成され、各処理部の機能を実現する為のプログラムをメモリにロードして実行することによりその機能を実現させるものであってもよい。
また、上記メモリは、ハードディスク装置や光磁気ディスク装置、フラッシュメモリ等の不揮発性のメモリや、ＣＤ−ＲＯＭ等の読み出しのみが可能な記録媒体、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）のような揮発性のメモリ、あるいはこれらの組み合わせによるコンピュータ読み取り、書き込み可能な記録媒体より構成されるものとする。
【００２３】
次に、上述したフォールスパス検出装置５の動作について図２、図３を用いて説明する。フォールスパス検出装置５の動作は、アクティブ条件抽出処理部５１での処理動作と、フォールスパス探索処理部５３での処理動作の２つに分けることが出来る。まずは、アクティブ条件抽出処理部５１での処理動作について図２を用いて説明する。
図２は、本発明の一実施形態によるアクティブ条件抽出処理部５１での処理動作を示すフロー図である。アクティブ条件抽出処理部５１は、動作合成システム１により生成され、記憶装置４を介して受信した、回路に関する情報である回路情報より、回路中の転送路の全てに以下の処理を行う。まず、一つの転送路について、受信したデータフロー情報、および割り当て情報を基に、該転送路に割り当てられたデータフローをすべて特定する（ステップＳ２０２）。
【００２４】
次に、該転送路に割り当てられた各データフロー発生条件を所定の識別子にして、該識別子の論理和（条件情報）を抽出する（ステップＳ２０３）。以上により、アクティブ条件抽出処理部５１は、各転送路がアクティブになるデータフロー発生条件の識別子とその論理和を抽出する。すなわち、具体的には、ある回路に複数の動作モードがある場合に、該動作モードを識別する識別子が、各動作モード時に動作する回路中の転送路へ付加される。
【００２５】
次に、アクティブ条件抽出処理部５１が抽出した識別子の論理和を各転送路に付加した回路情報をアクティブ条件付き回路情報データベース５２へ格納する（ステップＳ２０４）。一つの転送路について以上の処理を終えると、ステップＳ２０１へ戻り、次の転送路について同様の処理を行う。そして、上記の処理を回路中の全ての転送路において行った時点で終了となる（ステップＳ２０１のｙｅｓ）。以上により、図４に示すように、識別子の論理和を付加した回路情報がアクティブ条件付き回路情報データベース５２に格納される。
【００２６】
尚、図４において、Ｒ１〜Ｒ８は入力端子、Ｒ９〜Ｒ１１は出力端子、Ｆ１〜Ｆ４は演算子や比較器であり、Ｓ１、Ｓ２はセレクタである。データフロー発生条件で示す所定の識別子を”ＳＴ１”、”ＳＴ２”、”Ｃ１”として、各転送路に割り当て、複数の識別子が割り当てられている場合は、データフロー発生条件を基に論理和および論理積を行い該論理式を割り当てる。また、図４の回路情報を基にした場合、アクティブ条件付き回路情報データベース５２には、少なくとも図５（ａ）に示すデータが格納される。
【００２７】
次に、フォールスパス探索処理部５３での処理動作について図３を用いて説明する。
図３は、本発明の一実施形態によるフォールスパス探索処理部５３での処理動作を示すフロー図である。フォールスパス探索処理部５３は、アクティブ条件付き回路情報データベース５２より回路中の全ての転送路に関する情報（図５（ａ）の左列）を読み出し、アクティブパス格納部５４へ格納する（ステップＳ１０１）。次に、フォールスパス探索処理部５３は、アクティブパス格納部５４に格納されたデータがあるかを確認する（ステップＳ１０２）。ここでは、ステップ１０１で転送路に関する情報を格納したばかりなので、ステップＳ１０２のｎｏへ進む。次に、アクティブパス探索処理部５３は、アクティブパス格納部５４から任意の一つの転送路（ここでは、図５（ａ）において下線を付した”Ｆ３→Ｆ４”とする）を読み出す（ステップＳ１０３）。尚、読み出された転送路に関する情報は、アクティブパス格納部５４より削除される。
【００２８】
次に、アクティブパス探索処理部５３は、読み出した転送路”Ｆ３→Ｆ４”の入力側の素子が入力端子または記憶素子であるか確認する（ステップＳ１０４）。ここで、転送路の入力側の素子が、入力端子または、記憶素子であれば（ステップＳ１０４のｙｅｓ）、ステップＳ１０２へ戻る。ここでは、そうでないので（ステップＳ１０４のｎｏ）、次のステップへ進む。次に、アクティブパス探索処理部５３は、転送路の入力側に接続された素子（Ｆ３）において、該素子の入力側に接続されている全ての転送路（Ｆ２→Ｆ３、Ｒ５→Ｆ３、Ｒ６→Ｆ３、Ｒ７→Ｆ３）を、アクティブ条件付き回路情報データベース５２より読み出し、転送路情報格納部５５へ格納する（ステップＳ１０５）。
【００２９】
次に、フォールスパス探索処理部５３は、転送路情報格納部５５に格納されたデータがあるかを確認する（ステップＳ１０６）。ここでは、ステップ１０５で転送路に関する情報を格納したばかりなので次のステップへ進む（ステップＳ１０６のｎｏ）。次に、フォールスパス探索処理部５３は、転送路情報格納部５５より任意の一つ（ここでは、Ｆ２→Ｆ３とする）を読み出しアクティブパス（ここでは、基となった転送路Ｆ３→Ｆ４）と合せて新たなパス”Ｆ２→Ｆ３→Ｆ４”を構成する（ステップＳ１０７）。尚、読み出された時点で”Ｆ２→Ｆ３”は、転送路情報格納部５５から削除され、”Ｒ５→Ｆ３、Ｒ６→Ｆ３、Ｒ７→Ｆ３”が転送路情報格納部５５に格納されたままとなる。
【００３０】
次に、フォールスパス探索処理部５３は、構成されたパス”Ｆ２→Ｆ３→Ｆ４”がアクティブであるか、”Ｆ２→Ｆ３”に割り当てられた識別子”ＳＴ１”と”Ｆ３→Ｆ４”に割り当てられた識別子”ＳＴ２”の論理積をとることで判別する（ステップＳ１０８）。ここでは、ＳＴ１＊ＳＴ２＝０となり、パス”Ｆ２→Ｆ３→Ｆ４”はフォールスパスと判別される（ステップＳ１０８のｎｏ）ので、フォールスパス探索処理部５３は、構成されたパスを冗長フォールスパス除去処理部５６へ出力する（ステップＳ１１０）。
【００３１】
次に、フォールスパス探索処理部５３は、ステップＳ１０６へ戻り、転送路情報格納部５５にデータが残っているか確認する。ここで、ステップＳ１０８でアクティブと判別される場合の処理を以下に示す。フォールスパス探索処理部５３は、”Ｒ６→Ｆ３”を転送路情報格納部５５より読み出し、新たなパス”Ｒ６→Ｆ３→Ｆ４”を構成したとする（ステップＳ１０７）。次に、フォールスパス探索処理部５３は、構成されたパスがアクティブであるか、”Ｆ３→Ｆ４”と”Ｒ６→Ｆ３”に割当てられた識別子の論理積を求めて判別する。ここでは、ＳＴ１＊（ＳＴ１＋ＳＴ２＊Ｃ１）＝ＳＴ１より、アクティブと判別される（ステップＳ１０８のｙｅｓ）ので、フォールスパス探索処理部５３は、構成された新たなパス”Ｒ６→Ｆ３→Ｆ４”をアクティブパス格納部５４へ格納する（ステップＳ１０９）。次は、ステップＳ１０６へ戻る。
【００３２】
以後、ステップＳ１０６からステップＳ１１０までの処理を、転送路情報格納部５５が空になる（ステップＳ１０６のｙｅｓ）まで繰り返す。以上により、Ｆ３の入力側に接続される全ての転送路について、”Ｆ３→Ｆ４”の転送路と合せてアクティブパスであるかどうかを判別する。図５（ｂ）に”Ｆ３→Ｆ４”を基に構成したパスの判別結果の一覧を示す。フォールスパスと判別されたパスは冗長フォールスパス除去処理部５６へ出力され、アクティブパスと判別されたパスは、アクティブパス格納部５４へ格納される。次に、ステップＳ１０２へ戻り、アクティブパス格納部５４へ格納されているデータがあるか確認する。以後、Ｓ１０２からＳ１１０までのステップを、アクティブパス探索処理部５３は、アクティブパス格納部５４において、ステップＳ１０１で格納した転送路に関する情報または、ステップＳ１０９で格納したアクティブパスに関する情報を全て読み出し、削除して、空になるまで繰り返す。
【００３３】
以上により、記憶装置４から読み出された回路におけるフォールスパスと判別されたパスが、フォールスパス探索処理部５３より出力され、冗長フォールスパス除去処理部５６へ入力される。冗長フォールスパス除去処理部５６は、フォールスパスと判別されたパスが冗長な転送路を含むものであるか以下の処理により判別を行う。まず、冗長フォールスパス除去処理部５６は、フォールスパスの入力側から順に転送路に割当てられた識別子の論理積を計算し、論理積が０になるまで計算する。次に、冗長フォールスパス除去処理部５６は、論理積が０になった時点で、計算されていない転送路が残っていた場合、該転送路が冗長な転送路を含むフォールスパスと判別し、除去する。以上により、冗長な転送路を含むフォールスパスを除去し、冗長でないフォールスパスのみを出力装置２へ出力する。
【００３４】
尚、上述したフォールスパス探索処理部５３は、アクティブパスの入力側の端にある素子が入力端子または記憶素子かどうか判断し、入力端子あるいは記憶素子であった場合は、他の転送路またはアクティブパスの処理に移る（ステップＳ１０４のｙｅｓ）また、フォールスパス探索処理部５３は、入力端子でも記憶素子でもなかった場合、該アクティブパスを出力とする素子の入力側に接続している転送路を回路情報から特定し、該転送路情報を転送路情報格納部５５へ格納する（ステップ１０５）また、フォールスパス探索処理部５３は、転送路情報格納部５５に転送路が格納されているかどうか判定する（ステップＳ１０６）。転送路が格納されている場合（ステップＳ１０６のｎｏ）、フォールスパス探索処理部５３は、任意の１つを読み出し、読み出した転送路とアクティブパスとで構成される新たなパスを生成する（ステップＳ１０７）。
【００３５】
また、図１における各種処理を行う処理部の機能を実現する為のプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより各処理を行っても良い。なお、ここでいう「コンピュータシステム」とは、ＯＳや周辺機器等のハードウェアを含むものとする。
【００３６】
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発メモリ（ＲＡＭ）のように、一定時間プログラムを保持しているものも含むものとする。
【００３７】
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように情報を伝送する機能を有する媒体のことをいう。
また、上記プログラムは、前述した機能の一部を実現する為のものであっても良い。さらに、前述した機能をコンピュータシステムに既に記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であっても良い。
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【００３８】
【発明の効果】
以上説明したように本発明によるフォールスパス検出装置においては、動作合成により生成された回路に関する情報である回路情報、回路上のデータの流れを示すデータフロー情報、回路を構成する機能素子の割り当て情報、を基に回路中の各転送路がアクティブになる条件情報を抽出するアクティブ条件抽出手段と、条件情報を転送路毎に回路情報に関連付けて格納するアクティブ条件付き回路情報データベースと、アクティブ条件付き回路情報データベースを参照して、回路動作の組み合わせにおいてアクティブにならないパスであるフォールスパスを転送路毎に探索処理するフォールスパス探索手段とを具備するので、条件情報を基にフォールスパスを転送路毎に探索処理することができる。
【００３９】
これにより、回路中における全ての組み合わせのパスを一つ一つアクティブパスと比較する従来の方法と比べて、処理時に保持する必要のある情報は、転送路を含むパスの情報のみでよく。処理時に一時的に保持する情報量を減らすことで、コンピュータでの処理速度の向上する効果が得られる。また、大規模集積回路を処理する為に、従来だと一時的な情報保持用のキャッシュメモリ容量を増量させる必要がある場合でも、本発明では必要とならず設備コストを削減する効果が得られる。
【００４０】
また、本発明によるフォールスパス検出装置においては、上記フォールスパス探索手段は、一つまたは複数の転送路を含むパスに対して、アクティブ条件付き回路情報データベースを参照して、該複数の転送路がアクティブになる条件について論理積をとることで、該パスがアクティブかどうか判別するので、転送路が複数連なったパスにおいて、簡便にアクティブパスであるかを判別できる。これにより、従来のように全てのアクティブパスをメモリに保持して、フォールスパスの検証を行う必要がなく、メモリ資源の節約と処理速度の向上の効果が得られる。
【図面の簡単な説明】
【図１】  本発明の一実施形態によるフォールスパス検出装置を用いたシステムの全体構成を示すブロック図である。
【図２】  本発明の一実施形態によるアクティブ条件抽出処理部５１での処理動作を示すフロー図である。
【図３】  本発明の一実施形態によるフォールスパス探索処理部５３での処理動作を示すフロー図である。
【図４】  本発明の一実施形態による識別子および識別子の論理式を付加した回路のブロック図である。
【図５】  本発明の一実施形態によるフォールスパス検出装置５で処理するデータ例を示す図である。
【図６】  従来のフォールスパス検出装置を示す図である。
【符号の説明】
１    動作合成システム
２    出力装置
４    記憶装置
５    フォールスパス検出装置
５１  アクティブ条件抽出処理部
５２  アクティブ条件付き回路情報データベース
５３  フォールスパス探索処理部
５４  アクティブパス格納部
５５  転送路情報格納部
５６  冗長フォールスパス除去処理部
【図１】
0004549571.tif 000002
【図２】
0004549571.tif 000003
【図３】
0004549571.tif 000004
【図４】
0004549571.tif 000005
【図５】
0004549571.tif 000006
【図６】
0004549571.tif 000007