(57)【特許請求の範囲】
【請求項１】
ハードウェア記述言語（ＨＤＬ）による初期プログラムに基づいて製造された電子回路をデバッグするためのデバッグ装置であって、
前記初期プログラムを受信すること、
前記初期プログラムの所定の部分に基づき製造された前記電子回路の部分の二つの識別可能な値の内の一つを出力する動作を表す第１の観測信号をアクティブにすることが可能であり、前記電子回路に組み込まれるべき監視ポイントを決定すること、
前記電子回路の少なくとも一つの所定部分からの入力信号を受信することが可能であり、前記電子回路の動作中に前記入力信号に基づく前記電子回路の動作状態が実現された場合に、該動作状態であることを示す状態信号をアクティブにすることが可能であり、前記電子回路に組み込まれるべき第１の付加ツールと、前記状態信号がアクティブになった場合に第２の観測信号をアクティブにすることが可能であり、前記電子回路に組み込まれるべき第２の付加ツールとを決定すること、
前記第１及び第２の観測信号がアクティブになった順序を表すデータを記憶することが可能であり、前記電子回路に組み込まれるべき付加回路を決定すること、
及び前記監視ポイント、第１、第２の付加ツール及び付加回路のＨＤＬ言語による記述を組み込んだ、前記初期プログラムに基づくＨＤＬ言語による修正されたプログラムを提供すること
を可能になしてあるインストルメントユニットと、
前記修正されたプログラムに基づいて製造された修正された電子回路を、前記付加回路を介して前記修正された電子回路と交信することによってデバッグすることを可能になしてあるデバッギングユニットと
を備えたことを特徴とするデバッグ装置。
【請求項２】
前記デバッギングユニットは更に、前記アクティブになった順序を表すデータに基づいて、前記第１及び第２の観測信号がアクティブになった順序に従って、前記第１の観測信号と関連する監視ポイントの出力値の基準値と、前記第２の観測信号と関連する前記第１の付加ツールの出力値の基準値とを表示することを可能になしてあることを特徴とする請求項１に記載のデバッグ装置。
【請求項３】
前記監視ポイントは、二つの識別可能な値の内の一方の値を前記第１の観測信号に割り当てることが可能であり、前記第１の観測信号の先行する値に対して前記二つの識別可能な値の内の他方の値を前記第１の観測信号に割り当てることによって前記第１の観測信号をアクティブにすることを可能になしてあることを特徴とする請求項１に記載のデバッグ装置。
【請求項４】
前記第２の付加ツールは、二つの識別可能な値の内の一方の値を前記第２の観測信号に割り当てることが可能であり、前記第２の観測信号の先行する値に対して前記二つの識別可能な値の内の他方の値を前記第２の観測信号に割り当てることによって前記第２の観測信号をアクティブにすることを可能になしてあることを特徴とする請求項１に記載のデバッグ装置。
【請求項５】
前記デバッギングユニットは更に、前記第１の観測信号及び／又は前記第２の観測信号の状態を示す状態信号の値を記憶することを可能になしてあることを特徴とする請求項１に記載のデバッグ装置。
【請求項６】
前記電子回路は前記初期プログラムに基づいてプログラムされたプログラム可能なゲートアレイ回路であり、前記修正された電子回路は前記修正されたプログラムに基づいてプログラムされたプログラム可能なゲートアレイ回路であることを特徴とする請求項１に記載のデバッグ装置。
【請求項７】
ハードウェア記述言語（ＨＤＬ）による初期プログラムに基づいて製造された電子回路をデバッグするためのデバッグ方法であって、
前記初期プログラムの所定の部分に基づき製造された前記電子回路の部分の二つの識別可能な値の内の一つを出力する動作を表す第１の観測信号をアクティブにすることが可能であり、前記電子回路に組み込まれるべき監視ポイントを決定するステップと、
前記電子回路の所定部分からの入力信号を受信することが可能であり、前記電子回路の動作中に前記入力信号に基づく前記電子回路の動作状態が実現された場合に、該動作状態であることを示す状態信号をアクティブにすることが可能であり、前記電子回路に組み込まれるべき第１の付加ツールと、前記状態信号がアクティブになった場合に第２の観測信号をアクティブにすることが可能であり、前記電子回路に組み込まれるべき第２の付加ツールとを決定するステップと、
前記第１及び第２の観測信号がアクティブになった順序を表すデータを記憶することが可能であり、前記電子回路に組み込まれるべき付加回路を決定するステップと、
前記監視ポイント、第１、第２の付加ルール及び付加回路のＨＤＬ言語による記述を組み込んだ、前記初期プログラムに基づくＨＤＬ言語による修正されたプログラムを提供するステップと、
前記修正されたプログラムに基づいて修正された電子回路を製造するステップと、
前記付加回路を介して前記修正された電子回路と交信することによって前記修正された電子回路をデバッグするステップと
を含むことを特徴とするデバッグ方法。
【請求項８】
前記アクティブになった順序を表すデータに基づいて、前記第１及び第２の観測信号がアクティブになった順序に従って、前記第１の観測信号と関連する前記監視ポイントの出力値の基準値と、前記第２の観測信号と関連する前記第１の付加ツールの出力値の基準値とを表示するステップを更に含むことを特徴とする請求項７に記載のデバッグ方法。
【請求項９】
前記第１の観測信号及び／又は前記第２の観測信号がアクティブになった場合に、前記状態信号の値を記憶するステップを更に含むことを特徴とする請求項７に記載のデバッグ方法。
【請求項１０】
テストの実行時に、前記初期プログラムのコード全体が実行されたか否かを判定することを特徴とする請求項１乃至６のいずれかに記載のデバッグ装置の使用方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ハードウェア記述言語、即ちＨＤＬによって書かれたプログラムによって記述された電子回路をデバッグするためのデバッグ装置及びデバッグ方法に関し、更にそのようなデバッグ装置の使用方法に関する。
【背景技術】
【０００２】
ＨＤＬ言語は電子回路の動作を正確に記述することが可能であることから、電子回路の設計及びモデル化のために開発され、最適化されたプログラム言語である。たとえば、ＨＤＬ言語とは、ＶＨＤＬ言語（ＶＨＳＩＣ（超高速集積回路）ハードウェア記述言語用）、又はVerilog 言語である。
【０００３】
ＨＤＬプログラムに基づいて形成された電子回路の例としては、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）回路、又は特定用途向け集積回路、即ちＡＳＩＣが挙げられる。より詳細には、ＦＰＧＡ回路は所与のトポロジーに従って回路に予め組み込まれた電子ゲートを備えている。初期段階において、これらのゲートは相互に接続されてはいない。ＦＰＧＡ回路に基づいて特定の機能を組み込んだ電子回路を生成するためには、所望の機能を取得するためにＦＰＧＡのいくつかの電子ゲート間にいくつかの接続（ＭＯＳトランジスタをオンすることによって得られる）を形成すれば充分である。このためには、特に回路接続を表す構成データ（ビットストリーム）が格納されたＲＡＭを使用すればよい。ビットストリームデータは電子回路を記述するＨＤＬプログラムから取得される。
【０００４】
電子回路の設計を完成させる過程の間に、電子回路の動作中におけるエラーの検出、診断及び訂正からなるデバッグ工程を用意する必要がある。ＨＤＬプログラムに基づいて設計された電子回路に関しては、エラーの訂正は電子回路を記述するＨＤＬプログラムの修正と対応する。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
現在、ＨＤＬプログラムから取得される電子回路をデバッグするためには、主として二種類の方法が存在する。
【０００６】
第１の方法はロジックアナライザを使用する方法である。たとえば、それはSignal TAPの商標で知られるALTERA社によって販売されているロジックアナライザである。ロジックアナライザは、一般的に電子回路の動作に影響を与えることなく電子回路をデバッグするために有益な特定の機能を実行する付加回路によって同一の電子回路を記述する修正されたＨＤＬプログラムを取得することが、電子回路を記述する初期ＨＤＬプログラムを修正することにより可能である。付加回路は、電子回路が使用する所与の信号に従って論理動作を行ない、論理状態が実現された場合に警告信号を発し、それと並行して、いくつかの信号の値のチェック等を行なう。初期ＨＤＬプログラムからプログラムされたＦＰＧＡ回路のデバッグは、修正されたＨＤＬプログラムによってそのＦＰＧＡ回路をプログラムすることによって行なわれる。修正されたＦＰＧＡ回路はその後は通常の動作環境でリアルタイムで動作し、前述のロジックアナライザは初期ＨＤＬプログラムによって記述された電子回路に付加された付加回路によって供給された異なる信号を収集するために使用される。
【０００７】
しかしながら、あるロジックアナライザは、電子回路の動作中に付加回路によって供給される信号のタイミングダイアグラムを提供するのみである。動作中のエラーを検出する場合には、このエラーが初期ＨＤＬ記述プログラムの設計の誤りによるものであるか否かを判定するために、そのような信号を事後に解析することが必要であり、もしそうであれば、発生したエラーがそのプログラムのどの部分に関するのかを判定する必要がある。このような解析は非常に複雑になり、電子回路自体もより複雑になる。
【０００８】
第２の方法はＨＤＬプログラムを直接デバッグする方法に対応する。このようなデバッグ方法はIdentifyという商標のSynplicity社製のデバッガによって実行される。このようなデバッガは、電子回路を記述すると共にたとえばＦＰＧＡ回路がプログラムされる元になっている修正されたＨＤＬプログラムを提供する初期ＨＤＬプログラムのいくつかの部分のレベルに監視ポイントを挿入することが可能である。このようにプログラムされた修正されたＦＰＧＡ回路の動作中に、デバッガはＦＰＧＡ回路と信号を交換し、監視ポイントがマークされた初期ＨＤＬプログラムの部分がＦＰＧＡ回路の動作中に実行されたか否かをユーザに表示することが可能である。デバッガは、マークされた初期ＨＤＬプログラムの部分が実行されたときに、初期ＨＤＬプログラムによって使用される信号の値を表示することも可能である。エラーがＦＰＧＡ回路の動作中に発生した場合には、ユーザはそのエラーが発生したレベルにおける初期ＨＤＬプログラムの部分を見つけることができる。
【０００９】
しかしながら、純粋にコード指向のデバッガはＦＰＧＡ回路によって使用される信号の値に基づいて、複雑な確認のシナリオを設計することはできない。ロジックアナライザタイプのツールがない場合には、ＦＰＧＡ回路の動作中にいくつかのエラーを検出すること、または検出されたいくつかのエラーの発生源を判定することが困難になる。
【００１０】
本発明の目的は、電子回路のデバッグ動作を容易にするＨＤＬプログラムによって記述された電子回路をデバッグするためのデバッグ装置及びデバッグ方法、更にそのようなデバッグ装置の使用方法を提供することにある。
【課題を解決するための手段】
【００１１】
この目的を達成するために、本発明は、ハードウェア記述言語（ＨＤＬ）による初期プログラムに基づいて製造された電子回路をデバッグするためのデバッグ装置であって、前記初期プログラムを受信すること、前記初期プログラムの所定の部分に基づき製造された前記電子回路の部分の二つの識別可能な値の内の一つを出力する動作を表す第１の観測信号をアクティブにすることが可能であり、前記電子回路に組み込まれるべき監視ポイントを決定すること、前記電子回路の少なくとも一つの所定部分からの入力信号を受信することが可能であり、前記電子回路の動作中に前記入力信号に基づく前記電子回路の動作状態が実現された場合に、該動作状態であることを示す状態信号をアクティブにすることが可能であり、前記電子回路に組み込まれるべき第１の付加ツールと、前記状態信号がアクティブになった場合に第２の観測信号をアクティブにすることが可能であり、前記電子回路に組み込まれるべき第２の付加ツールとを決定すること、前記第１及び第２の観測信号がアクティブになった順序を表すデータを記憶することが可能であり、前記電子回路に組み込まれるべき付加回路を決定すること、及び前記監視ポイント、第１、第２の付加ツール及び付加回路のＨＤＬ言語による記述を組み込んだ、前記初期プログラムに基づくＨＤＬ言語による修正されたプログラムを提供することを可能になしてあるインストルメントユニットと、前記修正されたプログラムに基づいて製造された修正された電子回路を、前記付加回路を介して前記修正された電子回路と交信することによってデバッグすることを可能になしてあるデバッギングユニットとを備えたことを特徴とする。
【００１２】
本発明の一実施の形態によれば、前記デバッギングユニットは更に、前記アクティブになった順序を表すデータに基づいて、前記第１及び第２の観測信号がアクティブになった順序に従って、前記第１の観測信号と関連する監視ポイントの出力値の基準値と、前記第２の観測信号と関連する前記第１の付加ツールの出力値の基準値とを表示することを可能になしてあることを特徴とする。
【００１３】
本発明の一実施の形態によれば、前記監視ポイントは、二つの識別可能な値の内の一方の値を前記第１の観測信号に割り当てることが可能であり、前記第１の観測信号の先行する値に対して前記二つの識別可能な値の内の他方の値を前記第１の観測信号に割り当てることによって前記第１の観測信号をアクティブにすることを可能になしてあることを特徴とする。
【００１４】
本発明の一実施の形態によれば、前記第２の付加ツールは、二つの識別可能な値の内の一方の値を前記第２の観測信号に割り当てることが可能であり、前記第２の観測信号の先行する値に対して前記二つの識別可能な値の内の他方の値を前記第２の観測信号に割り当てることによって前記第２の観測信号をアクティブにすることを可能になしてあることを特徴とする。
【００１５】
本発明の一実施の形態によれば、前記デバッギングユニットは更に、前記第１の観測信号及び／又は前記第２の観測信号の状態を示す状態信号の値を記憶することを可能になしてあることを特徴とする。
【００１６】
本発明の一実施の形態によれば、前記電子回路は前記初期プログラムに基づいてプログラムされたプログラム可能なゲートアレイ回路であり、前記修正された電子回路は前記修正されたプログラムに基づいてプログラムされたプログラム可能なゲートアレイ回路であることを特徴とする。
【００１７】
本発明はまた、ハードウェア記述言語（ＨＤＬ）による初期プログラムに基づいて製造された電子回路をデバッグするためのデバッグ方法であって、前記初期プログラムの所定の部分に基づき製造された前記電子回路の部分の二つの識別可能な値の内の一つを出力する動作を表す第１の観測信号をアクティブにすることが可能であり、前記電子回路に組み込まれるべき監視ポイントを決定するステップと、前記電子回路の所定部分からの入力信号を受信することが可能であり、前記電子回路の動作中に前記入力信号に基づく前記電子回路の動作状態が実現された場合に、該動作状態であることを示す状態信号をアクティブにすることが可能であり、前記電子回路に組み込まれるべき第１の付加ツールと、前記状態信号がアクティブになった場合に第２の観測信号をアクティブにすることが可能であり、前記電子回路に組み込まれるべき第２の付加ツールとを決定するステップと、前記第１及び第２の観測信号がアクティブになった順序を表すデータを記憶することが可能であり、前記電子回路に組み込まれるべき付加回路を決定するステップと、前記監視ポイント、第１、第２の付加ルール及び付加回路のＨＤＬ言語による記述を組み込んだ、前記初期プログラムに基づくＨＤＬ言語による修正されたプログラムを提供するステップと、前記修正されたプログラムに基づいて修正された電子回路を製造するステップと、前記付加回路を介して前記修正された電子回路と交信することによって前記修正された電子回路をデバッグするステップとを含むことを特徴とする。
【００１８】
本発明の一実施の形態によれば、前記アクティブになった順序を表すデータに基づいて、前記第１及び第２の観測信号がアクティブになった順序に従って、前記第１の観測信号と関連する前記監視ポイントの出力値の基準値と、前記第２の観測信号と関連する前記第１の付加ツールの出力値の基準値とを表示するステップを更に含むことを特徴とする。
【００１９】
本発明の一実施の形態によれば、前記第１の観測信号及び／又は前記第２の観測信号がアクティブになった場合に、前記状態信号の値を記憶するステップを更に含むことを特徴とする。
【００２０】
本発明はまた、上述のデバッグ装置の使用方法において、テストの実行時に、前記初期プログラムのコード全体が実行されたか否かを判定することを特徴とする。
【００２１】
本発明の以上の目的及び他の目的、特徴、及び利点を、添付の図面を参照して、特定の実施の形態について以下に、詳細にかつ制限を与えないで説明する。
【発明を実施するための最良の形態】
【００２２】
全ての図面を通して同一の要素には同一の参照符号を付す。説明を分かりやすくするために、本発明を理解する上で必要な要素のみを示す。
【００２３】
図１は本発明に係るデバッグ方法を実行するための一例を示すブロック図である。以下においては、本発明に係るデバッグ方法を、初期ＨＤＬプログラム１２に基づいてプログラムすることが所望されるＦＰＧＡ回路１０のデバッグに関して説明する。しかし、本発明は他に、初期ＨＤＬプログラム１２に基づいて製造された専用電子回路、たとえばＡＳＩＣタイプの電子回路のデバッグにも適用可能である。
【００２４】
本発明に係るデバッグ方法は、詳細は後述するが、初期ＨＤＬプログラムを受信することが可能であり、初期ＨＤＬプログラムに基づいて修正されたＨＤＬプログラム１６をユーザから与えられた指示に従って提供することが可能なインストルメントユニット１４を備える。上記の目的のためにインストルメントユニット１４は、たとえば表示スクリーン、マウス及びキーボード、または他の何らかの適合する手段からなるマン・マシンインタフェイスを備える。
【００２５】
そして、修正されたＨＤＬプログラム１６は、この修正されたＨＤＬプログラム１６に基づいてＦＰＧＡ回路１０を従来でもプログラムできるプログラミングユニット１８に与えるが、この動作に関しては詳述しない。
【００２６】
本発明に係るデバッグ装置はデバッギングユニット２０を備える。デバッギングユニット２０は、修正されたＨＤＬプログラムに基づいてプログラムされたＦＰＧＡ回路の動作中にＦＰＧＡ回路１０とデータを交換することが可能であり、またユーザにマン・マシンインタフェイスを介してデバッグ動作の進行を表示することが可能である。デバッギングユニット２０とＦＰＧＡ回路１０との間のデータの交換は、たとえばＩＥＥＥ標準１１４９．１によって定義されたＪＴＡＧテストプロトコルに従って、ＦＰＧＡ回路１０の専用ピンを介して行なわれる。
【００２７】
図２は、初期ＨＤＬプログラム１２を修正するために使用されるインストルメントユニット１４の表示スクリーン上での表示例を示す模式図である。図２（ａ）に示すＨＤＬコードウィンドウと称されるウィンドウ２２によって、ユーザは初期ＨＤＬプログラム１２の全ての命令を見ることが可能である。その一例として、初期ＨＤＬプログラム１２が連続するラインであるライン１からラインＮ（但し、Ｎは整数、各ラインはプログラムの命令に対応する）として表示される。ユーザは従来同様に、図２（ａ）においてブロック２３で示される監視ポイント（ＷＰ）を、コードウィンドウ２２中の初期ＨＤＬプログラムの一本又は何本かのラインのレベルに配置している。このような監視ポイントは、この監視ポイントが関連する初期ＨＤＬプログラムのラインがＦＰＧＡ回路１０によって実行された場合に、アクティブ状態である観測信号を提供することができる。
【００２８】
図２（ｂ）に示すインストルメントウィンドウと称されるウィンドウ２４は、各ブロックがデバッグ動作中にユーザを支援することが可能なデバッギングツール（Ｉ１，Ｉ２，…）に関連するブロック２６のリストをユーザに提供する。これらはＤＬＩという商標でTemento systems 社から販売されているロジックアナライザによって提供されるツールであってもよい。一例として、インストルメントユニット１４によって提供されるツールは特に、以下の全てが示されてはいないリストに対応している：
入力信号を受信し、その入力信号上で、ユーザによっておそらく定義される論理動作を実行することによって一つ又はいくつかの出力信号を送信するツール（第１の付加ツール）；
いくつかの入力信号の値を予め設定した値と同時に比較し、たとえばアクティブ状態の出力信号（状態信号）を送信することによって、所与の時間における入力信号（状態信号）の値が所定値と等しいか否かを示すツール；
信号の時間的変化を観察し、その観察された信号によって取得された値のシーケンスが所定の値のシーケンスと対応するか否かを示すツール；
信号の時間的変化を観察し、その観察された信号が過渡パルスを示すか否かを示すツール；及び
電子回路のバス上のデータの流れを、たとえばそのバスのビットレートまたはそのバスの占有率を計測することによって解析するツール。
【００２９】
ユーザは提供されたツールの中からいくつかのツールを選択し、どの信号がこれらのツールを提供するのかを定義する。ユーザはまた、ツールと、他のツールの入力を駆動するツールの出力とを相互に接続する。これによってユーザはインストルメントユニット１４によって最初に提供されたツールに基づいて、複雑なデバッギングツールを取得することが可能になる。
【００３０】
本発明は、ある観測ツールを、ユーザによって選択された一つ又はいくつかのツール、またはインストルメントユニット１４によって提供されたツールに基づいてユーザによって生成された一つのツールとを関連付けさせることが可能な特定のツールを供給することを含む。この観測ツールを図２（ｂ）にブロック２８として示す。観測ツール（第２の付加ツール）は、たとえば関連するデバッギングツールの出力信号が、たとえばデバッギングツール２６によって観測された状態が実現されたことを示す判定値を取る場合に、アクティブ状態の観測信号を出力する。
【００３１】
一旦、デバッギングツール２６が定義され、観測ツール２８がインストールされてしまうと、インストルメントユニット１４は、ＦＰＧＡ回路がそれに基づいてプログラムされた修正ＨＤＬプログラムを提供するために初期ＨＤＬプログラム１２を修正する。このＦＰＧＡ回路はその後はデバッギングユニット２０に接続されることによって動作する。
【００３２】
デバッギングツール２６に関連する観測ツール２８のインストールは手動、半自動、または全自動で行なうことができる。一例として、インストルメントユニット１４は、特定の機能を実行する各デバッギングツール２６のレベルに観測ツール２８を自動的に配置する。
【００３３】
図３は修正されたＨＤＬプログラム１６に基づいてプログラムされたＦＰＧＡ回路のデバッグ動作における表示スクリーン上の表示の一例を示す模式図である。
【００３４】
図３（ａ）に示すイベントウィンドウと称されるウィンドウ３０は、デバッグ動作中にＲＡＭ等の観測メモリ（付加回路）に記憶されるデータを示している。より具体的には、イベントウィンドウ３０はユーザに、ＦＰＧＡ回路１０の動作時に連続的にアクティブにされるＷＰ１からＷＰＮまでの観測信号の基準値（前記第１及び第２の観測信号がアクティブになった順序に従って、前記第１の観測信号と関連する前記監視ポイントの出力値の基準値、前記第２の観測信号と関連する前記第１の付加ツールの出力値の基準値）を示す。これらは初期ＨＤＬプログラムのラインに関連する監視ポイントに対応し、またデバッギングツールに関連する観測ツールに対応する観測信号である。観測信号の基準値は、それらがＦＰＧＡ回路１０によってアクティブにされる順序でイベントウインドウ３０に表示される。いくつかの観測信号が同時にアクティブにされた場合には、それらはイベントウインドウ３０の同一のライン上に表示されることによって、ユーザにこの同時的な情報を提供する。イベントウインドウ３０を介した観測メモリに対するアクセスはユーザの命令によって、または観測信号の組み合わせを受信することによって自動的に行なわれる。
【００３５】
イベントウィンドウ３０内で初期ＨＤＬプログラムのラインに関連する監視ポイントによって提供された特定の観測信号の基準値を選択することにより、ユーザは図３（ｂ）に示すＨＤＬコードウィンドウと称されるウィンドウ３２を開くことが可能になる。このウィンドウ３２には、初期ＨＤＬプログラムの連続的なライン、たとえばＨＤＬコードウィンドウ３２の中央に配置された対象とすべき監視ポイントに関連するプログラムラインが表示される。更に、イベントウィンドウ３０内で観測ツールに関連する特定の観測信号の基準値を選択することにより、ユーザは、対象とすべき観測ツールに関連するデバッギングツール２６が表示される図３（ｃ）に示すインストルメントウィンドウと称されるウィンドウ３４を開くことができる。更に、イベントウィンドウ３０において観測ツールに関連する特定の観測信号の基準値を選択することにより、ユーザは、ユーザによって定義されたユーザ信号と称される特定の信号から選択した観測信号がアクティブになったときにその値が表示される図３（ｄ）に示すバリューウィンドウと称されるウィンドウ３５を開くことが可能になる。これらは初期ＨＤＬプログラムに使用される信号またはデバッギングツールによって提供された信号である。ユーザはまた、従来はロジックアナライザ用であって、デバッグ動作中に観測された異なる信号のタイミングダイアグラムを提供するタイミングダイアグラムウィンドウと称される図３（ｅ）に示すウィンドウ３６を開くことを要求することができる。
【００３６】
本発明に係るデバッギングユニット２０は、ＦＰＧＡ回路１０のデバッグに際してユーザにとって重要な支援を行なう。即ち、観測ツールに関連する観測信号がアクティブになるときには、デバッギングユニット２０はユーザ信号（状態信号）の値を記録する。ユーザはこうして、観測信号が連続的にアクティブになるときに、ユーザ信号の変化をモニタすることができる。
【００３７】
本発明に係るデバッギングユニット２０はまた、観測されたエラーの論理コードを決定するに際してユーザにとって重要な支援を行なう。一例として、ユーザは特定の状態が実現された場合にアクティブ状態になる信号を供給するデバッギングツール（第２の付加ツール）を生成することができる。このような状態はＦＰＧＡ回路１０の動作中にエラーが発生したことを示している。ユーザはその後、観測ツールをこのようにして生成したデバッギングツールと関連させ、観測ツールによってアクティブな観測信号の供給を要求することにより、イベントウィンドウ３０を自動的に表示させる。イベントウィンドウ３０内で、観測ツールに関連する観測信号と初期ＨＤＬプログラムの監視ポイントに関連する隣接する観測信号との間の相対的な位置を比較することによって、ユーザは初期ＨＤＬプログラムのどの部分がエラーの発生前に実行されたかを判定することが可能になる。これによってユーザはエラーの発生源を更に容易に判定できるようになる。
【００３８】
本発明によるデバッギングユニット２０はまた、初期ＨＤＬプログラムの正しいコード網羅を実行するに際してユーザにとって重要な支援を行なう。即ち、一組のテストが実行された後、ユーザはイベントウィンドウ３０を表示することによって観測メモリの内容にアクセスすることが可能になる。ＦＰＧＡ回路１０の動作中にアクティブにされた観測信号に基づいて、ユーザは初期ＨＤＬプログラムの内のどの部分が異なるテストにおいて実行されたかを判定することができる。ユーザはこのように、初期ＨＤＬプログラムの内のどの部分が実行されていないかを判定でき、また初期ＨＤＬプログラム全体の実行を確実にするために付加すべき新しいテストを定義することができる。
【００３９】
一実施の形態によれば、初期ＨＤＬプログラムに監視ポイントを挿入することは、観測信号の先行する値とは逆の値を二値の観測信号に割り当てる機能の追加に対応する。デバッギングツールに関しては、そのデバッギングツールの出力に接続された観測ツールを挿入することによってＦＰＧＡ回路の動作中にデバッギングツールによって判定された状態が実現されると、二つの識別可能な値を取るように観測信号の先行する値とは逆の値が観測信号に割り当てられる。
【００４０】
観測信号のアクティブ化は、観測信号の値を切り替えるときにこのようにして取得される。監視ポイント又は観測ツールに関連する全ての観測信号は、デバッグ動作中にデバッギングユニット２０によってベクトル内に収束される。全ての観測信号を表すベクトル、及びユーザ信号の値のベクトルの少なくとも一つの観測信号の状態を切り替えることによって、デバッギングユニット２０による記録が行なわれるようになる。
【００４１】
全ての観測信号を収束するベクトルが記憶されるため、いくつかの観測信号が同時に状態を切り替えた場合、その同時的な情報は維持される。
【００４２】
ＨＤＬプログラムは、そのＨＤＬプログラムに基づいてプログラムされるＦＰＧＡ回路の異なる部分を同期化するために、いくつかの制御クロック信号を提供する。各観測ツールはその後、最高の周波数を有する制御クロック信号によって効果的に制御され、観測信号を切り替える任意の状態が感知されるように、最高の制御クロック信号周波数で観測信号の測定が行なわれる。
【００４３】
図４は、デバッグ動作中に観測信号を記録する方法の一例を示すフローチャートである。ステップＳ４０で、デバッギングユニット２０は観測信号Ｓｉの値を計測する。ステップＳ４２で、デバッギングユニット２０は各観測信号Ｓｉについて、計測された値と以前に計測された値とを比較する。少なくとも一つの観測信号に関して、計測値と以前の計測値とが異なる場合には、処理はステップＳ４４に進む。そうでなければ、処理はステップＳ４０へ戻る。ステップＳ４４において、デバッギングユニット２０は、値を切り替えた観測信号Ｓｉの基準値と、ユーザ信号の現在の値とを観測メモリに記録する。ステップＳ４６において、デバッギングユニット２０は、値を切り替えた観測信号Ｓｉがブレークポイントに対応するか否かを判定する。もしそうであれば、処理はステップＳ４８に進む。そうでなければ、処理はステップＳ４２へ戻る。ステップＳ４８において、デバッギングユニット２０はデバッグ動作を停止し、アクティブになったどの観測信号がデバッグ動作を終了させたのかをユーザが確認できるように、表示スクリーン上にイベントウィンドウ３０を表示する。
【００４４】
インストルメントユニット１４は、デバッギングユニット２０が値が変化したか否かを判定する観測信号の数を制限する。ユーザは望むだけの監視ポイント及び／又は観測ツールをインストルメントユニット１４によって配置することが可能であるが、デバッグ動作中にデバッギングユニット２０によって対象とされる観測信号の数に応じて制限される。この目的のために、ユーザはデバッグ動作が開始される前に、どの観測信号が観測されるべきであるかをデバッギングユニット２０に対して示す。このことがＦＰＧＡ回路１０とデバッグ動作中のデバッギングユニット２０との間で交換されるデータの数を制限することを可能にする。インストルメントユニット１４はまた、観測メモリの大きさを有効に制限することが可能である。即ち、決定された数の最後にアクティブになった観測信号の基準値のみが、たとえば観測メモリ内に記憶される。
【００４５】
勿論、本発明については、当業者にとって可能な種々の変更、修正、または改善を行なうことができる。特に、図３に示したいくつかのウィンドウについてはそれぞれを区別する必要はない。
【００４６】
そのような変更、修正、及び改善はこの開示の一部であり、本発明の精神及び範囲内である。従って、上述の説明においては単に一例を示したのみであって、本発明がこの例に限定されることはない。本発明は単に以下の請求の範囲とこれに相当する事項にのみ限定される。
【図面の簡単な説明】
【００４７】
【図１】本発明に係るデバッグ方法を実行するための一例を示すブロック図である。
【図２】初期ＨＤＬプログラムを修正するために使用されるインストルメントユニットの表示スクリーン上での表示例を示す模式図である。
【図３】修正されたＨＤＬプログラムに基づいてプログラムされたＦＰＧＡ回路のデバッグ動作における表示スクリーン上の表示の一例を示す模式図である。
【図４】本発明に係るデバッグ方法のデバッグ動作中に観測信号を記録する方法の一例を示すフローチャートである。
【符号の説明】
【００４８】
１０  ＦＰＧＡ回路
１２  初期ＨＤＬプログラム
１４  インストルメントユニット
１６  修正されたＨＤＬプログラム
１８  プログラミングユニット
２０  デバッギングユニット
【図１】
0004769021.tif 000002
【図２】
0004769021.tif 000003
【図３】
0004769021.tif 000004
【図４】
0004769021.tif 000005