(57)【要約】  デバッギングのための手法は、ハードウェアデバッグサーバ（１０６）により、ブレークポイントをＨＬＬソフトウェア仕様に設定するための高水準言語（ＨＬＬ）デバッギングコマンドを受信すること（４１２）を含む。ハードウェアデバッグサーバは、ＨＬＬデバッギングコマンドを、ソフトウェア仕様の表示であるハードウェア有限状態機械の条件を指定するハードウェアデバッギングコマンドに変換する（４１４）。ハードウェアデバッギングコマンドは、シミュレータ（１０８）に入力される（４１４）。シミュレータは、ハードウェアデバッギングコマンドに応じて有限状態機械上に条件付きブレークポイントを追加し（４２０）、有限状態機械表示のシミュレーションを実行する（４２０、４２６）。有限状態機械における条件の検出に応じて、シミュレーションの実行が中断される（４２８）。【選択図】図４
2019533252.tif 000002
【特許請求の範囲】
【請求項１】
デバッギングの方法であって、
コンピュータシステム上で実行するハードウェアデバッグサーバによって、ブレークポイントをＨＬＬソフトウェア仕様に設定するための第１の高水準言語（ＨＬＬ）デバッギングコマンドを受信することと、
前記ハードウェアデバッグサーバによって、前記第１のＨＬＬデバッギングコマンドを、ソフトウェア仕様の表示であるハードウェア有限状態機械の条件を指定する第１のハードウェアデバッギングコマンドに変換することと、
前記第１のハードウェアデバッギングコマンドを、前記コンピュータシステム上で実行するシミュレータに入力することと、
前記第１のハードウェアデバッギングコマンドに応じて、前記シミュレータによって前記有限状態機械に条件付きブレークポイントを追加することと、
前記有限状態機械の表示のシミュレーションを実行することと、
前記有限状態機械における条件の検出に応じて前記シミュレーションの実行を中断することと
を含むデバッギングの方法。
【請求項２】
前記シミュレーションの実行の中断に応じて、前記ハードウェア有限状態機械内の前記条件に対応する前記ＨＬＬソフトウェア仕様のステートメントを決定することと、
前記ＨＬＬソフトウェア仕様の前記ステートメントを示すデータを出力することと
を更に含む、請求項１に記載の方法。
【請求項３】
前記ハードウェアデバッグサーバによって、前記ＨＬＬソフトウェア仕様に関連するデバッギング情報を入力することと、
前記ハードウェアデバッグサーバによって、前記ＨＬＬソフトウェア仕様の要素の前記ハードウェア有限状態機械の要素へのマッピングを提供するデバッギング情報を入力することと、
前記ＨＬＬソフトウェア仕様に関連する前記デバッギング情報を、データベースの前記ＨＬＬソフトウェア仕様の前記要素の前記ハードウェア有限状態機械の前記要素への前記マッピングと相互参照することと
を更に含み、
前記変換することが、前記データベースから、前記第１のＨＬＬデバッギングコマンドで指定されたＨＬＬステートメントと相互参照される前記ハードウェア有限状態機械の要素を決定することを含む、請求項２に記載の方法。
【請求項４】
前記ＨＬＬソフトウェア仕様の前記ステートメントを決定することが、前記データベースから、発生した前記条件付きブレークポイントによって示される前記ハードウェア有限状態機械の要素と相互参照される前記ＨＬＬソフトウェア仕様の前記ステートメントを決定することを含む、請求項３に記載の方法。
【請求項５】
前記ハードウェアデバッグサーバによって、前記ＨＬＬソフトウェア仕様の変数の値を要求する第２のＨＬＬデバッギングコマンドを受信することと、
前記ハードウェアデバッグサーバによって、前記第２のＨＬＬデバッギングコマンドを、前記ハードウェア有限状態機械の信号の値を取得する第２のハードウェアデバッギングコマンドに変換することと、
前記第２のハードウェアデバッギングコマンドを前記シミュレータに入力することと、
前記シミュレータによって前記信号の前記値を読み取ることと、
前記変数の名前に関連して前記信号の前記値を出力することと
を更に含む、請求項１に記載の方法。
【請求項６】
前記ハードウェアデバッグサーバによって、前記ＨＬＬソフトウェア仕様に関連するデバッギング情報を入力することと、
前記ハードウェアデバッグサーバによって、前記ＨＬＬソフトウェア仕様の要素の前記ハードウェア有限状態機械の要素へのマッピングを提供するデバッギング情報を入力することと、
前記ＨＬＬソフトウェア仕様に関連する前記デバッギング情報を、データベースの前記ＨＬＬソフトウェア仕様の前記要素の前記ハードウェア有限状態機械の前記要素への前記マッピングと相互参照することと
を更に含み、
前記第２のＨＬＬデバッギングコマンドを変換することが、前記データベースから、前記第２のＨＬＬデバッギングコマンドで指定された前記変数の前記名前と相互参照される前記ハードウェア有限状態機械の前記信号を決定することを含む、請求項５に記載の方法。
【請求項７】
前記シミュレーションの実行の中断に応じて、前記ハードウェア有限状態機械内の前記条件に対応する前記ＨＬＬソフトウェア仕様のステートメントを決定することと、
前記ＨＬＬソフトウェア仕様の前記ステートメントを示すデータを出力することと、
前記ハードウェアデバッグサーバによって、前記ＨＬＬソフトウェア仕様の変数の値を要求する第２のＨＬＬデバッギングコマンドを受信することと、
前記ハードウェアデバッグサーバによって、前記第２のＨＬＬデバッギングコマンドを、前記ハードウェア有限状態機械の信号の値を取得する第２のハードウェアデバッギングコマンドに変換することと、
前記第２のハードウェアデバッギングコマンドを前記シミュレータに入力することと、
前記シミュレータによって前記信号の前記値を読み取ることと、
前記変数の名前に関連して前記信号の前記値を出力することと
を更に含む、請求項１に記載の方法。
【請求項８】
デバッギングシステムであって、
プロセッサと、
前記プロセッサに結合されたメモリ装置であって、前記プロセッサによって実行されるとき、前記プロセッサに、
ハードウェアデバッグサーバによって、ブレークポイントをＨＬＬソフトウェア仕様に設定するための第１の高水準言語（ＨＬＬ）デバッギングコマンドを受信することと、
前記ハードウェアデバッグサーバによって、前記第１のＨＬＬデバッギングコマンドを、ソフトウェア仕様の表示であるハードウェア有限状態機械の条件を指定する第１のハードウェアデバッギングコマンドに変換することと、
前記第１のハードウェアデバッギングコマンドをシミュレータに入力することと、
前記第１のハードウェアデバッギングコマンドに応じて、前記シミュレータによって前記有限状態機械に条件付きブレークポイントを追加することと、
前記有限状態機械の表示のシミュレーションを実行することと、
前記有限状態機械における条件の検出に応じて前記シミュレーションの実行を中断することと
を含む動作を実行させる命令で構成されるデバッギングシステム。
【請求項９】
前記メモリ装置が、前記プロセッサによって実行されるとき、前記プロセッサに、
前記シミュレーションの実行の中断に応じて、前記ハードウェア有限状態機械内の前記条件に対応する前記ＨＬＬソフトウェア仕様のステートメントを決定することと、
前記ＨＬＬソフトウェア仕様の前記ステートメントを示すデータを出力することと
を含む動作を実行させる命令で更に構成される、請求項８に記載のシステム。
【請求項１０】
前記メモリ装置が、前記プロセッサによって実行されるとき、前記プロセッサに、
前記ハードウェアデバッグサーバによって、前記ＨＬＬソフトウェア仕様に関連するデバッギング情報を入力することと、
前記ハードウェアデバッグサーバによって、前記ＨＬＬソフトウェア仕様の要素の前記ハードウェア有限状態機械の要素へのマッピングを提供するデバッギング情報を入力することと、
前記ＨＬＬソフトウェア仕様に関連する前記デバッギング情報を、データベースの前記ＨＬＬソフトウェア仕様の前記要素の前記ハードウェア有限状態機械の前記要素への前記マッピングと相互参照することと
を含む動作を実行させる命令で更に構成され、
前記変換することが、前記データベースから、前記第１のＨＬＬデバッギングコマンドで指定されたＨＬＬステートメントと相互参照される前記ハードウェア有限状態機械の要素を決定することを含む、請求項９に記載のシステム。
【請求項１１】
前記ＨＬＬソフトウェア仕様の前記ステートメントを決定するための前記命令が、前記データベースから、発生した前記条件付きブレークポイントによって示される前記ハードウェア有限状態機械の要素と相互参照される前記ＨＬＬソフトウェア仕様の前記ステートメントを決定するための命令を含む、請求項１０に記載のシステム。
【請求項１２】
前記メモリ装置が、前記プロセッサによって実行されるとき、前記プロセッサに、
前記ハードウェアデバッグサーバによって、前記ＨＬＬソフトウェア仕様の変数の値を要求する第２のＨＬＬデバッギングコマンドを受信することと、
前記ハードウェアデバッグサーバによって、前記第２のＨＬＬデバッギングコマンドを、前記ハードウェア有限状態機械の信号の値を取得する第２のハードウェアデバッギングコマンドに変換することと、
前記第２のハードウェアデバッギングコマンドを前記シミュレータに入力することと、
前記シミュレータによって前記信号の前記値を読み取ることと、
前記変数の名前に関連して前記信号の前記値を出力することと
を含む動作を実行させる命令で更に構成される、請求項８に記載のシステム。
【請求項１３】
前記メモリ装置が、前記プロセッサによって実行されるとき、前記プロセッサに、
前記ハードウェアデバッグサーバによって、前記ＨＬＬソフトウェア仕様に関連するデバッギング情報を入力することと、
前記ハードウェアデバッグサーバによって、前記ＨＬＬソフトウェア仕様の要素の前記ハードウェア有限状態機械の要素へのマッピングを提供するデバッギング情報を入力することと、
前記ＨＬＬソフトウェア仕様に関連する前記デバッギング情報を、データベースの前記ＨＬＬソフトウェア仕様の前記要素の前記ハードウェア有限状態機械の前記要素への前記マッピングと相互参照することと
を含む動作を実行させる命令で更に構成され、
前記第２のＨＬＬデバッギングコマンドを変換することが、前記データベースから、前記第２のＨＬＬデバッギングコマンドで指定された前記変数の前記名前と相互参照される前記ハードウェア有限状態機械の前記信号を決定することを含む、請求項１２に記載のシステム。
【請求項１４】
前記ハードウェア状態機械が、前記ハードウェア状態機械が指定されるハードウェア記述言語以外の言語でモデル化されるメモリ内の値を参照し、前記メモリ装置が、前記プロセッサによって実行されるとき、前記プロセッサに、
前記メモリにアクセスするコールバック機能を前記シミュレータに登録することと、
前記ハードウェアデバッグサーバによって、前記ＨＬＬソフトウェア仕様の変数の値を要求する第２のＨＬＬデバッギングコマンドを受信することと、
前記ハードウェアデバッグサーバによって、前記第２のＨＬＬデバッギングコマンドを、前記ハードウェア有限状態機械の信号の値を取得する第２のハードウェアデバッギングコマンドに変換することと、
前記第２のハードウェアデバッギングコマンドを前記シミュレータに入力することと、
前記コールバック機能を実行して、前記シミュレータによって前記メモリから前記信号の前記値を読み出すことと、
前記変数の名前に関連して前記信号の前記値を出力することと
を含む動作を実行させる命令で更に構成される、請求項８に記載のシステム。
【請求項１５】
前記メモリ装置が、前記プロセッサによって実行されるとき、前記プロセッサに、
前記シミュレーションの実行の中断に応じて、前記ハードウェア有限状態機械内の前記条件に対応する前記ＨＬＬソフトウェア仕様のステートメントを決定することと、
前記ＨＬＬソフトウェア仕様の前記ステートメントを示すデータを出力することと、
前記ハードウェアデバッグサーバによって、前記ＨＬＬソフトウェア仕様の変数の値を要求する第２のＨＬＬデバッギングコマンドを受信することと、
前記ハードウェアデバッグサーバによって、前記第２のＨＬＬデバッギングコマンドを、前記ハードウェア有限状態機械の信号の値を取得する第２のハードウェアデバッギングコマンドに変換することと、
前記第２のハードウェアデバッギングコマンドを前記シミュレータに入力することと、
前記シミュレータによって前記信号の前記値を読み取ることと、
前記変数の名前に関連して前記信号の前記値を出力することと
を含む動作を実行させる命令で更に構成される、請求項８に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、一般に、ソフトウェアデバッガを使用してハードウェア記述に変換されたソフトウェアをデバッギングすることに関する。
【背景技術】
【０００２】
ソフトウェアシステムの性能を改善するための１つの技術は、選択されたセクションをハードウェアアクセラレータとして実装することである。高い計算上の複雑さを示し、総ランタイムの大部分を消費するシステムのこれらのセクションは、ハードウェアアクセラレータとして実装するのに適した候補でありうる。ハードウェアアクセラレータは、例えば特定用途向け集積回路（ＡＳＩＣ）、グラフィック処理装置（ＧＰＵ）、又はフィールドプログラマブルゲートアレイ（ＦＰＧＡ）上で動作する回路とすることができるだろう。ハードウェアアクセラレータを作成する際にソフトウェア設計者が採用する一般的な手法は、高水準合成（ＨＬＳ）ツールを使用して、識別されたセクションの元の高水準言語（ＨＬＬ）仕様を等価のレジスタ転送レベル（ＲＴＬ）又は回路の他のハードウェア記述言語（ＨＤＬ）仕様に変換することである。
【０００３】
生成されたＲＴＬ仕様はＨＬＬ仕様と機能的に同一でありうるが、ソフトウェア設計者は、システム開発の過程でＲＴＬ仕様をデバッグしなければならないことがある。タイミング、同時実行性、競合条件に関する問題は、ＨＬＬ仕様の開発時には隠されていることがあり、ハードウェアシミュレーション中に浮上する可能性がある。また、ソフトウェアとハードウェアライブラリの実装の違い、誤った変換、又はメモリアクセスの違いにより、実装に問題が生じる可能性がある。
【０００４】
ＲＴＬ実装のデバッギングは、ＸＩＬＩＮＸ、Ｉｎｃ．のＶＩＶＡＤＯ（登録商標）シミュレータ、又はやＭｅｎｔｏｒ  Ｇｒａｐｈｉｃｓ  ＣｏｒｐｏｒａｔｉｏｎのＱＵＥＳＴ（登録商標）シミュレータなどのシミュレータを介して使って促進することができる。ＲＴＬ実装のテストでは、ソフトウェア設計者が、低レベルの信号とレジスタをトレースし、波形を解釈する。
【発明の概要】
【０００５】
開示されるデバッギング方法は、コンピュータシステム上で実行されているハードウェアデバッグサーバによって、ブレークポイントをＨＬＬソフトウェア仕様に設定するための高水準言語（ＨＬＬ）デバッギングコマンドを受信することを含む。ハードウェアデバッグサーバは、ＨＬＬデバッギングコマンドを、ソフトウェア仕様の表示であるハードウェア有限状態機械の条件を指定するハードウェアデバッギングコマンドに変換する。ハードウェアデバッギングコマンドは、シミュレータに入力され、ハードウェアデバッギングコマンドに応じて、シミュレータが有限状態機械に条件付きブレークポイントを追加する。シミュレータは、有限状態機械表示のシミュレーションを実行し、有限状態機械における条件の検出に応じてシミュレーションの実行を中断する。
【０００６】
開示されたデバッギングシステムは、プロセッサと、プロセッサに結合されたメモリ装置とを含む。メモリ装置は、プロセッサによって実行されると、ハードウェアデバッグサーバによる、ブレークポイントをＨＬＬソフトウェア仕様に設定するための高水準言語（ＨＬＬ）デバッギングコマンドの受信を含む動作をプロセッサに実行させる命令で構成される。ハードウェアデバッグサーバは、ＨＬＬデバッギングコマンドを、ソフトウェア仕様の表示であるハードウェア有限状態機械の条件を指定するハードウェアデバッギングコマンドに変換する。ハードウェアデバッギングコマンドは、シミュレータに入力され、ハードウェアデバッギングコマンドに応じて、シミュレータが有限状態機械に条件付きブレークポイントを追加する。シミュレータは、有限状態機械表示のシミュレーションを実行し、有限状態機械における条件の検出に応じてシミュレーションの実行を中断する。
【０００７】
他の特徴は、以下の詳細な説明及び特許請求の範囲を考慮することから認識されるだろう。
【０００８】
他の特徴は、以下の詳細な説明及び特許請求の範囲の考察から認識されるであろう。
【図面の簡単な説明】
【０００９】
【図１】ソフトウェアデバッグ技法及び手法を使用してハードウェアアクセラレータのデバッギングをサポートするシステムの実施態様を示す。
【図２】ＨＬＬソースコード及びＨＬＳ生成ＲＴＬコードの等価部分の一例を示す。
【図３】ソフトウェアデバッガフロントエンドを使用してハードウェアアクセラレータをデバッギングする際にハードウェアデバッグサーバによって使用されるデータの生成を示すデータフロー図である。
【図４】ソフトウェアデバッガフロントエンドを用いてハードウェアアクセラレータをデバッギングする際にハードウェアデバッグサーバによって使用されるデータを生成するプロセス、及びハードウェアアクセラレータをデバッギングしている間のハードウェアデバッグサーバの動作のフローチャートである。
【図５】ハードウェアデバッグサーバ及びシミュレータカーネルを実装することができる例示的なデータ処理システムを示すブロック図である。
【発明を実施するための形態】
【００１０】
以下の説明では、本明細書に提示された特定の例を説明するために多数の特定の詳細が述べられる。しかしながら、当業者には、１つ又は複数の他の例及び／又はこれらの例の変形は、以下に与えられるすべての具体的な詳細がなくても実施されうることが当然明らかだろう。他の例では、本明細書の実施例の説明を不明瞭にしないために、周知の特徴は詳細に説明されていない。説明を容易にする目的で、同じ要素又は同じ要素の更なる例を指すために、異なる図において、同じ参照番号が使用されることがある。
【００１１】
ソフトウェア設計者が熟知している可能性のあるデバッギング環境は、ＲＴＬシミュレータが提供するデバッギング環境とは実質的に異なる。ソフトウェアデバッガは、プログラムコードを順次実行し、変数を検査し編集する特定の命令又は行にブレークポイントを設定するといった機能を提供し、その変数の値は、プログラム実行中にレジスタ又はメモリに格納されてもよい。ソフトウェアデバッガは、ソースコードレベルでデバッグ情報を表示し、これにより、ソフトウェア設計者は、ソフトウェアデバッガの望ましい動作と実行プログラムの状態をＨＬＬプログラム名及びステートメントと容易に関連付けることができる。
【００１２】
ＲＴＬシミュレータのデバッギング環境は、信号レベルで動作する。ＲＴＬシミュレータは、信号状態に基づきブレークポイントを設定し、信号状態をトレースし、波形を表示し、レジスタを検査する性能を提供する。しかしながら、ソフトウェア設計者は、ＲＴＬ構造、並びにンＨＬＬプログラムの要素と信号名及び特にＲＴＬ構造内の特定のレジスタとの間の関連付けに馴染みがない可能性がある。したがって、ソフトウェア設計者が、ハードウェアアクセラレータをタイムリーにデバッギングすることを阻止される可能性がある。
【００１３】
開示された方法及びシステムは、ソフトウェア設計者に馴染みがあるソフトウェアデバッギング環境とハードウェア設計者に利用可能なＲＴＬデバッギング環境との間のギャップを埋める。方法及びシステムは、ＨＬＬプログラムコードの特定の行にブレークポイントを設定し、変数のＨＬＬ名によって変数の値を検査し、メモリのコンテンツを検査するといった、ソフトウェアデバッガに見られるデバッグ機能をサポートする。システムは、ＨＬＬ構成要素とＲＴＬ構成要素との間のマッピングを処理し、これにより、ソフトウェア設計者は、あたかもソフトウェアデバッガ環境で動作しているかのようにハードウェアアクセラレータをデバッグすることができる。
【００１４】
開示された実施態様では、コンピュータシステム上で実行されているハードウェアデバッグサーバは、ブレークポイントをＨＬＬソフトウェア仕様に設定するためにソフトウェアデバッガフロントエンドからデバッギングコマンドを受信する。ハードウェアデバッグサーバは、デバッギングコマンドを、ソフトウェア仕様の表示であるハードウェア有限状態機械の条件を指定するハードウェアデバッギングコマンドに変換し、ハードウェアデバッギングコマンドをシミュレータに入力する。シミュレータは、ハードウェア有限状態機械に条件付きブレークポイントを追加し、有限状態機械表示のシミュレーションを実行する。シミュレータは、ハードウェア有限状態機械における条件の検出に応じてシミュレーションの実行を中断する。
【００１５】
図１は、ソフトウェアデバッッギング技法及び手法を使用してハードウェアアクセラレータのデバッッギングをサポートするシステム１００の実施形態を示す。このシステムは、ＧＤＢなどのソフトウェアデバッガと、ＨＬＬソースコードから生成されたハードウェアアクセラレータのシミュレーションとの間の対話をサポートする。システムによって提供されるシミュレートされたハードウェアアクセラレータのビューは、ＨＬＬソースコードをデバッギングする際にソフトウェアデバッガによって提供される。システムは、デバッガフロントエンド１０２、ハードウェアデバッグサーバ１０６、及びシミュレータカーネル１０８を含む。シミュレータカーネルは、制御インターフェース１１２を含み、ハードウェアアクセラレータのハードウェアモデル１１０をシミュレートする。ハードウェアモデルは、例えば、レジスタ転送レベル（ＲＴＬ）言語で指定されるようなハードウェア有限状態機械とすることができる。メモリ付きＨＬＬモデル１１４は、ハードウェアモデル１１０によってアクセス可能なＨＬＬ設計のメモリ装置要素をシミュレートする。ハードウェアデバッグサーバ及びシミュレータカーネルは、コンピュータシステム１０４上で実行される。一実施態様では、デバッガフロントエンドもまた、コンピュータシステム１０４上で実行することができる。代替的には、デバッガフロントエンドは、ＬＡＮ又はインターネットといった、ネットワークへのネットワークインターフェースを介してコンピュータシステム１０４に結合されている別のコンピュータシステム（図示せず）上で実行することができる。デバッガフロントエンド１０２及びハードウェアデバッグサーバ１０６は、ＴＣＰ／ＩＰなどのプロトコルを使用して通信可能に結合することができる。
【００１６】
デバッギングソフトウェアをサポートするがハードウェアアクセラレータをサポートしない従来のソフトウェアデバッガの中には、あるコンピュータシステム上で実行されるデバッガフロントエンドが別のコンピュータシステム上で実行されるソフトウェアのデバッギングを制御できるようにするソフトウェアデバッグサーバを含むものがある。一実装形態では、デバッガフロントエンド１０２は、ＧＮＢデバッガ、ＧＤＢといった、一般に入手可能なソフトウェアデバッガの一部とすることができる。デバッガフロントエンドは、元のＨＬＬソースコードに関して実行中のプログラムの状態を提示する際に、標準フォーマットのデバッギング情報、例えばＤＷＡＲＦ情報を使用する。ＨＬＬソースコード内の変数名は、ハードウェアレジスタから読み取られた対応する値と共に表示される。例示的な実施態様では、デバッガフロントエンド１０２は、ソフトウェアデバッグサーバとの通信に使用されるのと同じプロトコルを使用して、ハードウェアデバッグサーバ１０６と通信する。ＧＤＢからのデバッガフロントエンドを含む実施態様では、デバッガフロントエンドは、ＧＤＢからのデバッガフロントエンドがソフトウェアデバッグサーバとの通信に使用するのと同じプロトコルであるＲｅｍｏｔｅ  Ｓｅｒｉａｌ  Ｐｒｏｔｏｃｏｌ（ＲＳＰ）を使用して、ハードウェアデバッグサーバと通信する。
【００１７】
ハードウェアデバッグサーバ１０６は、デバッガフロントエンド１０２とシミュレータカーネル１０８との間でコマンド及びデータを変換する。ハードウェアデバッグサーバは、例えばＴＣＰ／ＩＰを使用して、制御インターフェース１１２を介してシミュレータカーネルに接続する。制御インターフェース１１２は、コマンドを処理し、シミュレートされたハードウェアモデル１１０の値を返すことによって、シミュレータカーネルに代わってハードウェアデバッグサーバとの通信を処理する。ハードウェアデバッグサーバは、ハードウェアモデル１１０デバッギングの際に、デバッガフロントエンドがデバッギングソフトウェアで実行するのと同じように、デバッガフロントエンドが実行できるようにする。ハードウェアデバッグサーバは、ハードウェアシミュレーションのセマンティクスと詳細を抽象化し、ソフトウェア指向のビューをユーザに提示する。シミュレータカーネル１０８は、本明細書に記載された適応を有する既知の回路設計シミュレータの一部とすることができる。
【００１８】
デバッギング状況では、ハードウェアデバッグサーバ１０６は、デバッガフロントエンドから、ブレークポイントをＨＬＬソフトウェア仕様に設定するための高水準言語（ＨＬＬ）デバッギングコマンドを受信する。ハードウェアアクセラレータをデバッギングする人員は、デバッガフロントエンドと対話して、ハードウェアモデル１１０が生成されたＨＬＬソフトウェア仕様の中の特定の命令又は行番号を選択する。当業者は、ＨＬＬソースコードからシミュレーションに適した回路設計記述及び対応するハードウェアモデルを生成するために既知のＨＬＳツールを使用することができることを認識するだろう。
【００１９】
ＨＬＬデバッギングコマンドの受信に応じて、ハードウェアデバッグサーバは、ＨＬＬデバッギングコマンドを、ソフトウェア仕様からＨＬＳツールによって生成された、ハードウェア有限状態機械の条件を指定するハードウェアデバッギングコマンドに変換する。ハードウェアデバッグサーバはその後、シミュレータ１０８への入力のためにハードウェアデバッギングコマンドを制御インターフェース１１２に伝達する。シミュレータは、ハードウェアデバッギングコマンドに応じて、ハードウェア有限状態機械に条件付きブレークポイントを追加する。ハードウェア有限状態機械のシミュレーションを実行する際に、シミュレータは、有限状態機械における状態の検出に応じて、シミュレーションの実行を中断する。
【００２０】
ハードウェア有限状態機械の条件を検出してシミュレーションの実行が中断されると、シミュレータは中断をハードウェアデバッグサーバに伝達し、ハードウェアデバッグサーバは、ＲＴＬ有限状態機械の条件に対応するＨＬＬソフトウェア仕様の行番号、命令、又はステートメントを決定する。次に、ハードウェアデバッグサーバは、ＨＬＬ行番号、ＨＬＬソフトウェア仕様の命令又はステートメント、及びブレークポイントの指示をデバッガフロントエンドに出力する。
【００２１】
場合によっては、シミュレートされたハードウェアアクセラレータは、グローバルメモリがハードウェアアクセラレータ及びシステムの他のハードウェア及び／又はソフトウェア構成要素によってアクセスされるシステム設計の一部とすることができる。大容量メモリは、直接プログラミングインターフェース（ＤＰＩ）を介して、ＨＬＳ生成構成要素（ハードウェアアクセラレータを含む）によってアクセスされるＨＬＬコード（ＨＬＬメモリモデル１１４）を使用することによって、シミュレートされることが多い。デバッガフロントエンド１０２を操作している人員は、ＨＬＬメモリモデルに格納されたＨＬＬ変数の値を検査したいと思うかもしれない。しかしながら、たとえシミュレーションが実行されている間にＨＬＳ生成構成要素がＨＬＬメモリにアクセスすることができるとしても、シミュレータカーネル１０８は、ＨＬＬメモリモデルに直接アクセスすることはできないだろう。シミュレータカーネル１０８によるＨＬＬメモリモデル１１４への直接アクセスを提供するために、シミュレータカーネルは、メモリにアクセスする（すなわち、読み書きする）ためのコールバック機能を登録するよう適合される。ハードウェアデバッグサーバが、ＨＬＬソフトウェア仕様の変数の値を要求するＨＬＬデバッギングコマンドを受信し、その変数がＨＬＬメモリモデルに格納されると、シミュレータは、コールバック機能を実行して、シミュレータによってメモリから信号の値を読み出す。ハードウェアデバッグサーバは、変数の値とＨＬＬ変数名をデバッガフロントエンドに出力する。
【００２２】
図２は、ＨＬＬプログラム変数「カウンタ」を扱うＨＬＬソースコード２０２及びＨＬＳ生成ＲＴＬコード２０４の等価セクションの一例を示す。ＨＬＬソースコードは、機能ステートメント、変数ステートメント、代入ステートメント、制御ステートメント、スコープ区切り文字、及び空行を含む１２の番号付き行を有する。
【００２３】
ＨＬＬ変数「カウンタ」は、ＲＴＬ内の５ビットレジスタにマッピングされ、各レジスタは、生成されたＦＳＭ機械の様々な段階でアクティブになる。レジスタは以下を含む。
ｒｅｇ［４：０］ｖａｄｄ＿ｃｏｕｎｔｅｒ＿ｒｅｇ＿９５；
ｒｅｇ［４：０］ａｐ＿ｐｉｐｅｌｉｎｅ＿ｒｅｇ＿ｉｔｅｒ１＿ｖａｄｄ＿ｃｏｕｎｔｅｒ＿ｒｅｇ＿９５；
ｒｅｇ［４：０］ａｐ＿ｐｉｐｅｌｉｎｅ＿ｒｅｇ＿ｉｔｅｒ２＿ｖａｄｄ＿ｃｏｕｎｔｅｒ＿ｒｅｇ＿９５；
ｒｅｇ［４：０］ａｐ＿ｐｉｐｅｌｉｎｅ＿ｒｅｇ＿ｉｔｅｒ３＿ｖａｄｄ＿ｃｏｕｎｔｅｒ＿ｒｅｇ＿９５；
ｒｅｇ［４：０］ａｐ＿ｐｉｐｅｌｉｎｅ＿ｒｅｇ＿ｉｔｅｒ４＿ｖａｄｄ＿ｃｏｕｎｔｅｒ＿ｒｅｇ＿９５；
ｒｅｇ［４：０］ａｐ＿ｐｉｐｅｌｉｎｅ＿ｒｅｇ＿ｉｔｅｒ５＿ｖａｄｄ＿ｃｏｕｎｔｅｒ＿ｒｅｇ＿９５；
ｒｅｇ［４：０］ａｐ＿ｐｉｐｅｌｉｎｅ＿ｒｅｇ＿ｉｔｅｒ６＿ｖａｄｄ＿ｃｏｕｎｔｅｒ＿ｒｅｇ＿９５；
ｒｅｇ［４：０］ａｐ＿ｐｉｐｅｌｉｎｅ＿ｒｅｇ＿ｉｔｅｒ７＿ｖａｄｄ＿ｃｏｕｎｔｅｒ＿ｒｅｇ＿９５；
ｒｅｇ［４：０］ａｐ＿ｐｉｐｅｌｉｎｅ＿ｒｅｇ＿ｉｔｅｒ８＿ｖａｄｄ＿ｃｏｕｎｔｅｒ＿ｒｅｇ＿９５；
【００２４】
ＨＬＬステートメント、ｃｏｕｎｔｅｒ±＝１は、常にブロック（ａｌｗａｙｓ  ｂｌｏｃｋ）とＲＴＬステートメントの「ｉｆ」部分にマッピングし、
ｖａｄｄ＿ｃｏｕｎｔｅｒ＿ｒｅｇ＿９５＜＝ｐ＿ｒｅｇ２ｍｅｍ＿０＿ｉ＿ｉ＿ｆｕ＿１５２
は、条件（ａｐ＿ＣＳ＿ｆｓｍ＿ｐｐ０＿ｓｔａｇｅ０＝＝１’ｂ１）＆（ａｐ＿ｅｎａｂｌｅ＿ｒｅｇ＿ｐｐ０＿ｉｔｅｒ０＝＝１’ｂ１）＆（ｅｘｉｔｃｏｎｄ＿ｆｕ＿１４６＿ｐ２＝＝１’ｂ０）がメインクロックの立ち上がりエッジで成立するとき、シミュレーションで実行される。
【００２５】
ＨＬＬステートメント、ｃｏｕｎｔｅｒ＝１は、常にブロックの「ｅｌｓｅ  ｉｆ」部分と、ＲＴＬステートメントにマッピングし、
ｖａｄｄ＿ｃｏｕｎｔｅｒ＿ｒｅｇ＿９５＜＝ａｐ＿ｃｏｎｓｔ＿ｌｖ５＿０；
は、条件（ａｐ＿ＣＳ＿ｆｓｍ＿ｓｔａｔｅ１＝＝１’ｂ１）＆〜（ａｐ＿ｓｔａｒｔ＝＝１’ｂ０）がメインクロックの立ち上がりエッジで成立するとき、シミュレーションで実行される。
【００２６】
デバッガフロントエンド１０２からＨＬＬ行６及び１０を指定するブレークポイントコマンドを受信することに応じて、ハードウェアデバッグサーバは、ＨＬＬブレークポイントコマンドをＲＴＬ条件を指定する対応するＲＴＬシミュレータブレークポイントコマンドに変換し、コマンドを制御インターフェース１１２に送信する。シミュレータカーネルの制御インターフェースは、ＲＴＬステートメントがシミュレーションで実行される前にシミュレーションを停止するためのブレークポイントを追加する。ＨＬＬコード行６にブレークポイントを設定するためのデバッガフロントエンドからのコマンドに応じて、ハードウェアデバッグサーバが、メインクロックの立ち上がりエッジで条件（ａｐ＿ＣＳ＿ｆｓｍ＿ｓｔａｔｅ１＝＝１’ｂ１）＆〜（ａｐ＿ｓｔａｒｔ＝＝１’ｂ０）が成立するときに、シミュレーションを停止させるブレークポイントを設定するシミュレータカーネルコマンドを生成するが、これはＲＴＬステートメントｖａｄｄ＿ｃｏｕｎｔｅｒ＿ｒｅｇ＿９５＜＝ａｐ＿ｃｏｎｓｔ＿ｌｖ５＿０；の前に、シミュレーションで実行される。ＨＬＬコード行１０にブレークポイントを設定するためのデバッガフロントエンドからのコマンドに応じて、ハードウェアデバッグサーバが、メインクロックの立ち上がりエッジで条件（ａｐ＿ＣＳ＿ｆｓｍ＿ｐｐ０＿ｓｔａｇｅ０＝＝１’ｂ１）＆（ａｐ＿ｅｎａｂｌｅ＿ｒｅｇ＿ｐｐ０＿ｉｔｅｒ０＝＝１’ｂ１）＆（ｅｘｉｔｃｏｎｄ＿ｆｕ＿１４６＿ｐ２＝＝１’ｂ０）が成立するときに、シミュレーションを停止させるブレークポイントを設定するシミュレータカーネルコマンドを生成するが、これはＲＴＬステートメント、ｖａｄｄ＿ｃｏｕｎｔｅｒ＿ｒｅｇ＿９５＜＝ｐ＿ｒｅｇ２ｍｅｍ＿０＿ｉ＿ｉ＿ｆｕ＿１５２；の前に、シミュレーションで実行される。
【００２７】
図３は、ソフトウェアデバッガフロントエンドを使用してハードウェアアクセラレータをデバッギングする際にハードウェアデバッグサーバによって使用されるデータの生成を示すデータフロー図である。ＨＬＳツール３０４は、ハードウェアアクセラレータによって実施されるべき機能を指定するＨＬＬプログラム３０２を入力する。ＨＬＳツールは、ハードウェアデバッグサーバ１０６によって使用されるデバッギング情報の複数のバージョンを生成する。ＨＬＳツールフローの始めに、フロントエンド解析の後であるが最適化の前に、ＨＬＳ中間表示は、特定のＣＰＵをターゲットにする実行可能プログラム（ハードウェアモデル１１０）を生成するために処理される。実行可能プログラムは、元のＨＬＬプログラム３０２に関連するデバッガフロントエンド（図１、＃１０２）シンボルに提供するために使用される関連する高水準のデバッギング情報３０６を有する。高水準デバッギング情報は、相互参照データベース３１０を構築する際にハードウェアデバッグサーバ１０６によっても使用される。一実施態様では、高水準デバッギング情報は、ＤＷＡＲＦデバッギング情報である。
【００２８】
ＨＬＳツール３０４の最適化及びスケジューリングパスにおいて、ＨＬＳツールは、マッピング情報３０８を生成する。マッピング情報３０８は、ＨＬＬプログラム３０２の要素とハードウェアモデル１１０内の要素との間の関連付けを指定する。ハードウェアモデルは、アクティブ状態がシミュレーション中に同時に処理されるＨＬＬプログラムのこれらのステートメントを指定する有限状態機械を指定する。マッピング情報を用いて、ＨＬＬプログラムの行番号、ステートメント、又は命令のブレークポイントは、ハードウェア状態機械の条件に対応するシミュレータ条件で実現することができる。
【００２９】
ハードウェアデバッグサーバ１０６は、高水準デバッギング情報３０６とマッピング情報３０８を入力し、高水準デバッギング情報３０６とマッピング情報３０８を相互参照する相互参照データベース３１０を生成する。データベース３１０は、ハードウェアモデルを用いたシミュレーション中にハードウェアデバッグサーバ１０６によって照会され、デバッガフロントエンド（図１、＃１０２）からのコマンドで指定されたＨＬＬプログラム要素に対応するハードウェアモデルの要素を検索し、かつシミュレータカーネル（図１、＃１０８）から返されたデータ内で参照されるハードウェアモデルの要素に対応するＨＬＬプログラム要素を検索する。
【００３０】
対応するハードウェア状態機械要素へのブレークポイントを適用することができるＨＬＬプログラム３０２内の行のマッピングの構成は、ＨＬＳ生成ハードウェアモデル１１０の構造に依存する。一実施態様では、ハードウェアモデルは、ＨＬＬステートメントがＲＴＬ信号の条件に対応する有限状態機械を含む。相互参照データベース３１０を照会することによって、ハードウェアデバッグサーバ１０６は、ソフトウェアデバッガフロントエンドからのブレークポイントコマンドをハードウェア有限状態機械上の等価の条件に変換することができる。ハードウェア有限状態機械上の条件は、ハードウェアモデル上に条件付きブレークポイントを追加するためにシミュレータカーネルに入力することができる。ハードウェアデバッグサーバは、相互参照データベースに照会することによって、コマンドが変数の値を要求するソフトウェアデバッガフロントエンドからのコマンドを、ハードウェア信号の値及びシミュレータカーネルからの変数の要求に変換することができる。
【００３１】
高水準言語レベルの変数は、言語によって定義された具体的な基本型から構築された複雑型システムを有する。高水準言語プログラムがＨＬＳツールを使用して合成されると、生成されたハードウェアは、通常これらの型を最適化し、ビットベクトルに平坦化することになる。例えば、ＨＬＳツールは、高水準言語で「ｉｎｔ」と宣言された変数が、１７下位ビットのみを使用し、高水準言語により予想される３２のビットレジスタとは対照的に、１７ビットレジスタとビットベクトルを含むハードウェアを合成すると決定する。
【００３２】
ＨＬＳツールは、ＨＬＬ構成体からＲＴＬ構成体に完全なマッピングを提供するために、型の変換をキャプチャする。表１は、ＨＬＬ構成体からＲＴＬ構成体への型の変換、及びその逆の変換に使用されるマッピング情報の型のテキスト表示を示す。各ＲＴＬ型を元の型に直接マッピングすることは、符号拡張やゼロ拡張などの変換規則を意味する。更に、ＨＬＳツールは、高水準言語構造体が多くの異なるＲＴＬレジスタ又は信号に格納されるハードウェアを作成する決定を行うことがあり、マッピングは、これらの多くのＲＴＬ信号が元の高水準表示にどのように再び組み立てられるかを指定する。このマッピングの実施と格納は、バイナリエンコーディングを通して実行することができる。
2019533252.tif 000003
【００３３】
ＨＬＳ生成ＲＴＬでは、ＨＬＬ変数は、単一のレジスタとしてではなく、異なるクロックサイクルでアクティブでありうるか、又はＨＬＳツールによって行われたパイプライン決定に基づいてすべて同時にアクティブでありうる複数のレジスタ及び信号として実施されうる。マッピング情報３０８は、有限状態機械のためのステートレジスタ及び任意のパイプラインステージ起動レジスタを構成するレジスタ及び信号のセットを指定する。表２は、ＨＬＬ変数「カウンタ」に対する位置情報のマッピング位置の例を示す。
2019533252.tif 000004
【００３４】
すべてのＨＬＬ変数に対して、ＨＬＳツールは、これらのステートレジスタの様々な構成から、その変数がそのクロックサイクルに配置されるアクティブ信号を表す他のＲＴＬ信号のリストへのマッピングを作成する。表２に示すテキストの例は、ＨＬＳツールによって出力されたメタデータのバイナリエンコーディングを表し、特定のビットのすべての置換を単一のマッピングに対して有効であるものとして表すためのワイルドカードを含む。
【００３５】
元のＨＬＬプログラムのソースコードの各行は、特定のＦＳＭ状態がアクティブなときにＲＴＬコードで実行を開始する。ＦＳＭ内の状態は、状態レジスタが特定の構成にあるとき及びメモリのフェッチが完了したときといった、特定のＲＴＬ条件が満たされたときにアクティブになる。
【００３６】
表３にテキストで示されるように、相互参照データベースは、任意の生成されたパイプライン情報を含め、ＦＳＭ状態がいつ実行を開始するかを表す構成に対応する生成されたＲＴＬモデル内の条件への元のＨＬＬプログラム内の行のマッピングを維持する。利用可能なリソースを最大限に活用してスループットを最大にするために、生成されたＲＴＬモデルが複数のステートメントを同時に又は順序を外れて開始する可能性があるため、マッピングは１対１ではない場合があることに留意されたい。
2019533252.tif 000005
【００３７】
図４は、ソフトウェアデバッガフロントエンドを用いてハードウェアアクセラレータをデバッギングする際にハードウェアデバッグサーバによって使用されるデータを生成するプロセス、及びハードウェアアクセラレータをデバッギングしている間のハードウェアデバッグサーバの動作のフローチャートである。ブロック４０２で、高水準合成（ＨＬＳ）ツールは、ＨＬＬプログラムから高水準デバッギング情報を生成する。高水準デバッギング情報は、当技術分野で知られているようにＤＷＡＲＦデバッギング情報とすることができる。ブロック４０４において、ＨＬＳツールは、ＨＬＬプログラムのハードウェアモデルを生成する。ハードウェアモデルは、例えばＲＴＬ有限状態機械とすることができる。ブロック４０６において、ＨＬＳツールは、ＨＬＬプログラム要素のハードウェアモデルの要素へのマッピングを生成する。
【００３８】
ブロック４０８において、ハードウェアデバッグサーバがハードウェアモデルのシミュレーションに使用される前に、ハードウェアデバッグサーバは、ハードウェアモデルが生成されたＨＬＬプログラムの高水準デバッギング情報を入力し、ＨＬＬプログラム要素のハードウェアモデルの要素へのマッピングを入力する。ハードウェアデバッグサーバは、高水準デバッギング情報と、ＨＬＬプログラム要素のハードウェアモデルの要素へのマッピングから相互参照データベースを生成する。
【００３９】
ブロック４１０で、１つ又は複数のコールバック機能がシミュレータカーネルに登録される。コールバック機能は、ハードウェアデバッグサーバを介して行われたデバッガフロントエンドからの要求に応じて、ＨＬＬメモリモデル（図１、＃１１４）への読み書きのためにシミュレータカーネルによって実行することができる。
【００４０】
ブロック４１２において、シミュレータは、１つのコンピュータシステム上で実行されているハードウェアデバッグサーバ及びシミュレータカーネルと、同じ又は別のコンピュータシステム上で実行されているデバッガフロントエンドとで実行を開始する。ブロック４１４で、デバッガフロントエンドは、ユーザからソフトウェアデバッギングコマンドを入力し、デバッガフロントエンドは、コマンドをハードウェアデバッグサーバに送信する。ブロック４１６で、ハードウェアデバッグサーバは、ソフトウェアデバッギングコマンドを、シミュレータカーネルと互換性のあるハードウェアデバッギングコマンドに変換する。デバッガフロントエンドからのコマンドがＨＬＬプログラムの要素を参照する場合、ハードウェアデバッグサーバは、その参照をハードウェアモデルの要素に変換する。
【００４１】
ブロック４１８で、変換されたコマンドが、シミュレータカーネルに入力される。決定ブロック４２０は、特定のコマンドに従って処理を切り替える。ブレークポイントを設定することを指定するコマンドの場合、ブロック４２２で、シミュレータカーネルが、ハードウェアモデルに条件付きブレークポイントを追加する。条件付きブレークポイントは、ハードウェアモデル内の信号の状態を指定することができる。ブロック４２２の後、プロセスはブロック４１４に戻り、別のコマンドを処理する。
【００４２】
信号又は変数の値の読み取りを指定するコマンドの場合、ブロック４２４で、シミュレータカーネルは、信号又は変数の値を読み取り、その値をハードウェアデバッグサーバに返す。
【００４３】
ＨＬＬメモリモデルから値を読み取るコマンドのために、ブロック４２６において、シミュレータカーネルは、値を読み取るためにコールバック機能を呼び出す。ＨＬＬメモリモデルから読み取られた値は、ハードウェアデバッグサーバに返される。
【００４４】
ブロック４２８で、シミュレータにハードウェアモデルの又はＨＬＬメモリモデルからの信号の値を読み取らせるコマンドに対して、ハードウェアデバッグサーバは、相互参照データベースに照会を行い、シミュレータカーネルによって返された名前に対応するＨＬＬプログラム内の名前を決定する。
【００４５】
シミュレーションを開始するコマンドのために、ブロック４３０において、シミュレータカーネルが、ハードウェアモデルのシミュレーションを開始する。ブロック４３２で、ハードウェア有限状態機械上の条件付きブレークポイントの満足度に応じて、シミュレータは、シミュレーションを中断し、制御インターフェース（図１、＃１１２）を介してハードウェアデバッグサーバに中断及び条件付きブレークポイントを伝達する。ブロック４３４で、ハードウェアデバッグサーバは、相互参照データベース（図３、＃３１０）に照会を行い、ハードウェア有限状態機械の要素上の条件付きブレークポイントに対応するＨＬＬステートメントを決定する。
【００４６】
ブロック４３６において、ハードウェアデバッグサーバは、シミュレータカーネルから返されたデータを、デバッガフロントエンドと互換性のあるフォーマットにフォーマットを行い、フォーマットされたデータをデバッガフロントエンドに出力する。次に、処理はブロック４１４に戻り、デバッガフロントエンドからの別のコマンドを処理する。
【００４７】
図５は、ハードウェアデバッグサーバ１０６（図１）及びシミュレータカーネル（１０８）を実装することができる例示的なデータ処理システム（システム）５００を示すブロック図である。高水準合成ツール（図３、＃３０４）もまた、システム５００上に実装することができる。システム５００は、システムバス５１５又は他の適切な回路を介してメモリ及び記憶装置５２０に結合された中央処理装置（ＣＰＵ）５０５といった、少なくとも１つのプロセッサ回路（又は「プロセッサ」）を含む。システム５００は、シミュレータ５５０及びハードウェアモデル１１０を実装するプログラムコードをメモリ及び記憶装置５２０内に格納する。プロセッサ５０５は、システムバス５１５を介して、メモリ及び記憶装置５２０からアクセスされたプログラムコードを実行する。一態様では、システム５００は、プログラムコードを記憶及び／又は実行するのに適したコンピュータ又は他のデータ処理システムとして実施される。しかしながら、システム５００は、本開示内に記載される機能を実行することができるプロセッサ及びメモリを含む任意のシステムの形態で実施することができると理解すべきである。
【００４８】
メモリ及び記憶装置５２０は、例えばローカルメモリ（図示せず）及び永続的記憶装置（図示せず）といった、１つ又は複数の物理的メモリ装置を含む。ローカルメモリとは、プログラムコードの実際の実行中に一般に使用されるランダムアクセスメモリ又は他の非永続的メモリ装置を指す。固定記憶装置は、ハードディスクドライブ（ＨＤＤ）、ソリッドステートドライブ（ＳＳＤ）、又は他の固定データ記憶装置として実装することができる。システム５００はまた、実行中にプログラムコード及びデータをローカルメモリ及び永続的記憶装置から検索しなければならない回数を減らすために、少なくともいくつかのプログラムコード及びデータを一時的に記憶する１つ又は複数のキャッシュメモリ（図示せず）を含んでもよい。
【００４９】
ユーザ入力装置５３０及び表示装置５３５などの入力／出力（Ｉ／Ｏ）装置が、オプションでシステム５００に結合されてもよい。Ｉ／Ｏ装置は、直接又は介在するＩ／Ｏコントローラを介して、システム５００に結合されうる。ネットワークアダプタ５４５はまた、介在するプライベート又はパブリックネットワークを介して、システム５００を他のシステム、コンピュータシステム、リモートプリンタ、及び／又はリモート記憶装置に結合するために、システム５００に結合することもできる。モデム、ケーブルモデム、イーサネット（登録商標）カード、及び無線送受信機は、システム５００と共に使用することができる様々な種類のネットワークアダプタ５４５の例である。
【００５０】
メモリ及び記憶装置５２０は、電子設計自動化（ＥＤＡ）アプリケーションの一部であるシミュレータ５５０を記憶しうる。実行可能プログラムコードの形態で実装されるシミュレータ５５０は、１つ又は複数のプロセッサ５０５によって実行される。そのため、シミュレータ５５０は、システム５００の一部と見なされる。システム５００は、シミュレータ５５０を実行しつつ、ハードウェアモデル１１０を受信して動作する。
【００５１】
シミュレータ５５０、ハードウェアモデル１１０、及びシミュレータ５５０によって使用、生成、及び／又は操作される任意のデータ項目は、システム５００の一部として使用されるとき、又は派生物及び／又はその修正を含むそのような要素がプログラマブルＩＣなどのＩＣにロードされると、プログラマブルＩＣ内の回路設計が実装及び／又は構成されるときに、機能性を付与する機能的データ構造である。
【００５２】
デバッギングの方法が提供されうる。そのような方法は、コンピュータシステム上で実行するハードウェアデバッグサーバによって、ブレークポイントをＨＬＬソフトウェア仕様に設定するための第１の高水準言語（ＨＬＬ）デバッギングコマンドを受信することと；ハードウェアデバッグサーバによって、第１のＨＬＬデバッギングコマンドを、ソフトウェア仕様の表示であるハードウェア有限状態機械の条件を指定する第１のハードウェアデバッギングコマンドに変換することと；第１のハードウェアデバッギングコマンドを、コンピュータシステム上で実行するシミュレータ（１０８）に入力することと；第１のハードウェアデバッギングコマンドに応じて、シミュレータによって有限状態機械に条件付きブレークポイントを追加することと；有限状態機械の表示のシミュレーションを実行することと；有限状態機械における条件の検出に応じてシミュレーションの実行を中断することとを含みうる。
【００５３】
そのような方法は、シミュレーションの実行の中断に応じて、ハードウェア有限状態機械内の条件に対応するＨＬＬソフトウェア仕様のステートメントを決定することと；ＨＬＬソフトウェア仕様のステートメントを示すデータを出力することとを更に含みうる。
【００５４】
そのような方法は、ハードウェアデバッグサーバによって、ＨＬＬソフトウェア仕様に関連するデバッギング情報を入力することと；ハードウェアデバッグサーバによって、ＨＬＬソフトウェア仕様の要素のハードウェア有限状態機械の要素へのマッピングを提供するデバッギング情報を入力することと；ＨＬＬソフトウェア仕様に関連するデバッギング情報を、データベースのＨＬＬソフトウェア仕様の要素のハードウェア有限状態機械の要素へのマッピングと相互参照することとを更に含み；変換することが、データベースから、第１のＨＬＬデバッギングコマンドで指定されたＨＬＬステートメントと相互参照されるハードウェア有限状態機械の要素を決定することを含みうる。
【００５５】
いくつかのそのような方法では、ＨＬＬソフトウェア仕様のステートメントを決定することが、データベースから、発生した条件付きブレークポイントによって示されるハードウェア有限状態機械の要素と相互参照されるＨＬＬソフトウェア仕様のステートメントを決定することを含みうる。
【００５６】
そのような方法は、ハードウェアデバッグサーバによって、ＨＬＬソフトウェア仕様の変数の値を要求する第２のＨＬＬデバッギングコマンドを受信することと；ハードウェアデバッグサーバによって、第２のＨＬＬデバッギングコマンドを、ハードウェア有限状態機械の信号の値を取得する第２のハードウェアデバッギングコマンドに変換することと；第２のハードウェアデバッギングコマンドをシミュレータに入力することと；シミュレータによって信号の値を読み取ることと；変数の名前に関連して信号の値を出力することとを更に含みうる。
【００５７】
そのような方法は、ハードウェアデバッグサーバによって、ＨＬＬソフトウェア仕様に関連するデバッギング情報を入力することと；ハードウェアデバッグサーバによって、ＨＬＬソフトウェア仕様の要素のハードウェア有限状態機械の要素へのマッピングを提供するデバッギング情報を入力することと；ＨＬＬソフトウェア仕様に関連するデバッギング情報を、データベースのＨＬＬソフトウェア仕様の要素のハードウェア有限状態機械の要素へのマッピングと相互参照することとを更に含み；第２のＨＬＬデバッギングコマンドを変換することが、データベースから、第２のＨＬＬデバッギングコマンドで指定された変数の名前と相互参照されるハードウェア有限状態機械の信号を決定することを更に含みうる。
【００５８】
いくつかのそのような方法では、ハードウェア状態機械は、ハードウェア状態機械が指定されうるハードウェア記述言語以外の言語でモデル化されうるメモリ内の値を参照し；メモリにアクセスするコールバック機能をシミュレータに登録し；ハードウェアデバッグサーバによって、ＨＬＬソフトウェア仕様の変数の値を要求する第２のＨＬＬデバッギングコマンドを受信し；ハードウェアデバッグサーバによって、第２のＨＬＬデバッギングコマンドを、ハードウェア有限状態機械の信号の値を取得する第２のハードウェアデバッギングコマンドに変換し；第２のハードウェアデバッギングコマンドをシミュレータに入力し；コールバック機能を実行して、シミュレータによってメモリから信号の値を読み出し；変数の名前に関連して信号の値を出力する。
【００５９】
いくつかの方法では、受信することは、別のコンピュータシステム上で実行されているデバッガフロントエンドへのネットワークインターフェースを介して第１のＨＬＬデバッギングコマンドを受信することを含む。
【００６０】
そのような方法は、シミュレーションの実行の中断に応じて、ハードウェア有限状態機械内の条件に対応するＨＬＬソフトウェア仕様のステートメントを決定することと；ＨＬＬソフトウェア仕様のステートメントを示すデータを出力することと；ハードウェアデバッグサーバによって、ＨＬＬソフトウェア仕様の変数の値を要求する第２のＨＬＬデバッギングコマンドを受信することと；ハードウェアデバッグサーバによって、第２のＨＬＬデバッギングコマンドを、ハードウェア有限状態機械の信号の値を取得する第２のハードウェアデバッギングコマンドに変換することと；第２のハードウェアデバッギングコマンドをシミュレータに入力することと；シミュレータによって信号の値を読み取ることと；変数の名前に関連して信号の値を出力することと更に含みうる。
そのような方法は、ハードウェアデバッグサーバによって、ＨＬＬソフトウェア仕様に関連するデバッギング情報を入力することと；ハードウェアデバッグサーバによって、ＨＬＬソフトウェア仕様の要素のハードウェア有限状態機械の要素へのマッピングを提供するデバッギング情報を入力することと；ＨＬＬソフトウェア仕様に関連するデバッギング情報を、データベースのＨＬＬソフトウェア仕様の要素のハードウェア有限状態機械の要素へのマッピングと相互参照することとを更に含み、ＨＬＬソフトウェア仕様のステートメントを決定することが、データベースから、発生した条件付きブレークポイントによって示されるハードウェア有限状態機械の要素と相互参照されるＨＬＬソフトウェア仕様のステートメントを決定することを含み；第２のＨＬＬデバッギングコマンドを変換することが、データベースから、第２のＨＬＬデバッギングコマンドで指定された変数の名前と相互参照されるハードウェア有限状態機械の信号を決定することを更に含みうる。
【００６１】
デバッギングシステムが提供されうる。そのようなデバッギングシステムは、プロセッサと；プロセッサに結合されたメモリ装置とを含み、メモリは、プロセッサによって実行されると、プロセッサに、ハードウェアデバッグサーバによって、ブレークポイントをＨＬＬソフトウェア仕様に設定するための第１の高水準言語（ＨＬＬ）デバッギングコマンドを受信することと；ハードウェアデバッグサーバによって、第１のＨＬＬデバッギングコマンドを、ソフトウェア仕様の表示でありうるハードウェア有限状態機械の条件を指定する第１のハードウェアデバッギングコマンドに変換することと；第１のハードウェアデバッギングコマンドをシミュレータに入力することと；第１のハードウェアデバッギングコマンドに応じて、シミュレータによって有限状態機械に条件付きブレークポイントを追加することと；有限状態機械の表示のシミュレーションを実行することと；有限状態機械における条件の検出に応じてシミュレーションの実行を中断することとを含む動作を実行させる命令で構成されうる。
【００６２】
いくつかのそのようなシステムでは、メモリ装置は、プロセッサによって実行されると、プロセッサに、シミュレーションの実行の中断に応じて、ハードウェア有限状態機械内の条件に対応するＨＬＬソフトウェア仕様のステートメントを決定することと；ＨＬＬソフトウェア仕様のステートメントを示すデータを出力することとを含む動作を実行させる命令で更に構成されうる。
【００６３】
いくつかのそのようなシステムでは、メモリ装置は、プロセッサによって実行されるとき、プロセッサに、ハードウェアデバッグサーバによって、ＨＬＬソフトウェア仕様に関連するデバッギング情報を入力することと；ハードウェアデバッグサーバによって、ＨＬＬソフトウェア仕様の要素のハードウェア有限状態機械の要素へのマッピングを提供するデバッギング情報を入力することと；ＨＬＬソフトウェア仕様に関連するデバッギング情報を、データベースのＨＬＬソフトウェア仕様の要素のハードウェア有限状態機械の要素へのマッピングと相互参照することとを含み；変換することが、データベースから、第１のＨＬＬデバッギングコマンドで指定されたＨＬＬステートメントと相互参照されるハードウェア有限状態機械の要素を決定することを含みうる動作を実行させる命令で更に構成されうる。
【００６４】
いくつかのそのようなシステムでは、ＨＬＬソフトウェア仕様のステートメントを決定するための命令が、データベースから、発生した条件付きブレークポイントによって示されるハードウェア有限状態機械の要素と相互参照されるＨＬＬソフトウェア仕様のステートメントを決定するための命令を含む。
【００６５】
いくつかのそのようなシステムでは、メモリ装置は、プロセッサによって実行されるとき、プロセッサに、ハードウェアデバッグサーバによって、ＨＬＬソフトウェア仕様の変数の値を要求する第２のＨＬＬデバッギングコマンドを受信することと；ハードウェアデバッグサーバによって、第２のＨＬＬデバッギングコマンドを、ハードウェア有限状態機械の信号の値を取得する第２のハードウェアデバッギングコマンドに変換することと；第２のハードウェアデバッギングコマンドをシミュレータに入力することと；シミュレータによって信号の値を読み取ることと；変数の名前に関連して信号の値を出力することとを含む動作を実行させる命令で更に構成されうる。
【００６６】
いくつかのそのようなシステムでは、メモリ装置は、プロセッサによって実行されるとき、プロセッサに、ハードウェアデバッグサーバによって、ＨＬＬソフトウェア仕様に関連するデバッギング情報を入力することと；ハードウェアデバッグサーバによって、ＨＬＬソフトウェア仕様の要素のハードウェア有限状態機械の要素へのマッピングを提供するデバッギング情報を入力することと；ＨＬＬソフトウェア仕様に関連するデバッギング情報を、データベースのＨＬＬソフトウェア仕様の要素のハードウェア有限状態機械の要素へのマッピングと相互参照することとを更に含み；第２のＨＬＬデバッギングコマンドを変換することが、データベースから、第２のＨＬＬデバッギングコマンドで指定された変数の名前と相互参照されるハードウェア有限状態機械の信号を決定することとを含む動作を実行させる命令で更に構成されうる。
【００６７】
いくつかのそのようなシステムでは、ハードウェア状態機械は、ハードウェア状態機械が指定されうるハードウェア記述言語以外の言語でモデル化されうるメモリ内の値を参照し、メモリ装置は、プロセッサによって実行されるとき、プロセッサに、メモリにアクセスするコールバック機能をシミュレータに登録することと；ハードウェアデバッグサーバによって、ＨＬＬソフトウェア仕様の変数の値を要求する第２のＨＬＬデバッギングコマンドを受信することと；ハードウェアデバッグサーバによって、第２のＨＬＬデバッギングコマンドを、ハードウェア有限状態機械の信号の値を取得する第２のハードウェアデバッギングコマンドに変換することと；第２のハードウェアデバッギングコマンドをシミュレータに入力することと；コールバック機能を実行して、シミュレータによってメモリから信号の値を読み出すことと；変数の名前に関連して信号の値を出力することとを含む動作を実行させる命令で更に構成されうる。
【００６８】
いくつかのそのようなシステムでは、受信するための命令は、別のコンピュータシステム上で実行されているデバッガフロントエンドへのネットワークインターフェースを介して第１のＨＬＬデバッギングコマンドを受信するための命令を含む。
【００６９】
いくつかのそのようなシステムでは、メモリ装置は、プロセッサによって実行されるとき、プロセッサに、シミュレーションの実行の中断に応じて、ハードウェア有限状態機械内の条件に対応するＨＬＬソフトウェア仕様のステートメントを決定することと；ＨＬＬソフトウェア仕様のステートメントを示すデータを出力することと；ハードウェアデバッグサーバによって、ＨＬＬソフトウェア仕様の変数の値を要求する第２のＨＬＬデバッギングコマンドを受信することと；ハードウェアデバッグサーバによって、第２のＨＬＬデバッギングコマンドを、ハードウェア有限状態機械の信号の値を取得する第２のハードウェアデバッギングコマンドに変換することと；第２のハードウェアデバッギングコマンドをシミュレータに入力することと；シミュレータによって信号の値を読み取ることと；変数の名前に関連して信号の値を出力することとを含む動作を実行させる命令で更に構成されうる。
【００７０】
いくつかのそのようなシステムでは、メモリ装置は、プロセッサによって実行されるとき、プロセッサに、ハードウェアデバッグサーバによって、ＨＬＬソフトウェア仕様に関連するデバッギング情報を入力することと；ハードウェアデバッグサーバによって、ＨＬＬソフトウェア仕様の要素のハードウェア有限状態機械の要素へのマッピングを提供するデバッギング情報を入力することと；ＨＬＬソフトウェア仕様に関連するデバッギング情報を、データベースのＨＬＬソフトウェア仕様の要素のハードウェア有限状態機械の要素へのマッピングと相互参照することとを含み；ＨＬＬソフトウェア仕様のステートメントを決定するための命令が、データベースから、発生した条件付きブレークポイントによって示されるハードウェア有限状態機械の要素と相互参照されるＨＬＬソフトウェア仕様のステートメントを決定するための命令を含み、第２のＨＬＬデバッギングコマンドを変換するための命令が、データベースから、第２のＨＬＬデバッギングコマンドで指定された変数の名前と相互参照されるハードウェア有限状態機械の信号を決定するための命令を含む動作を実行させる命令で更に構成されうる。
【００７１】
特定の実施態様は、これらの動作／活動を実行するためにコンピュータ（又は他の電子装置）によって実行されうる命令を記憶した機械又はコンピュータ可読媒体を含む、コンピュータプログラム製品（例えば、不揮発性メモリ装置）を対象にする。
【００７２】
態様及び特徴は、場合によっては個々の図に記載されることがあるが、組合せが明示的に示されていないか又は組合せとして明示的に説明されていなくても、１つの図からの特徴は別の図の特徴と組み合わせることができると理解されよう。
【００７３】
方法及びシステムは、回路設計をデバッギングするための様々なシステムに適用可能であると考えられる。他の態様及び特徴は、本明細書を考慮することから当業者には明らかだろう。方法及びシステムは、ソフトウェアを実行するように構成された１つ又は複数のプロセッサとして、特定用途向け集積回路（ＡＳＩＣ）として、又はプログラマブルロジック装置上のロジックとして実装されうる。明細書及び図面は例としてのみ考慮されることを意図しており、本発明の真の範囲は下記の特許請求の範囲によって示される。
【図１】
2019533252.tif 000006
【図２】
2019533252.tif 000007
【図３】
2019533252.tif 000008
【図４】
2019533252.tif 000009
【図５】
2019533252.tif 000010
【手続補正書】
【提出日】平成30年5月8日(2018.5.8)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
デバッギングの方法であって、
コンピュータシステム上で実行するハードウェアデバッグサーバによって、ブレークポイントをＨＬＬソフトウェア仕様に設定するための第１の高水準言語（ＨＬＬ）デバッギングコマンドを受信することと、
前記ハードウェアデバッグサーバによって、前記第１のＨＬＬデバッギングコマンドを、前記ソフトウェア仕様の表示であるハードウェア有限状態機械の条件を指定する第１のハードウェアデバッギングコマンドに変換することと、
前記第１のハードウェアデバッギングコマンドを、前記コンピュータシステム上で実行するシミュレータに入力することと、
前記第１のハードウェアデバッギングコマンドに応じて、前記シミュレータによって前記有限状態機械に条件付きブレークポイントを追加することと、
前記有限状態機械の表示のシミュレーションを実行することと、
前記有限状態機械における前記条件の検出に応じて、前記シミュレーションの実行を中断することと、
前記シミュレーションの実行の中断に応じて、前記ハードウェア有限状態機械内の前記条件に対応する前記ＨＬＬソフトウェア仕様のステートメントを決定することと、
前記ＨＬＬソフトウェア仕様の前記ステートメントを示すデータを出力することと、
前記ハードウェアデバッグサーバによって、前記ＨＬＬソフトウェア仕様に関連するデバッギング情報を入力することと、
前記ハードウェアデバッグサーバによって、前記ＨＬＬソフトウェア仕様の要素の前記ハードウェア有限状態機械の要素へのマッピングを提供するデバッギング情報を入力することと、
前記ＨＬＬソフトウェア仕様に関連する前記デバッギング情報を、データベースの前記ＨＬＬソフトウェア仕様の前記要素の前記ハードウェア有限状態機械の前記要素への前記マッピングと相互参照することと
を含み、
前記変換することが、前記データベースから、前記第１のＨＬＬデバッギングコマンドで指定されたＨＬＬステートメントと相互参照される前記ハードウェア有限状態機械の要素を決定することを含む、デバッギングの方法。
【請求項２】
前記ＨＬＬソフトウェア仕様の前記ステートメントを決定することが、前記データベースから、発生した前記条件付きブレークポイントによって示される前記ハードウェア有限状態機械の要素と相互参照される前記ＨＬＬソフトウェア仕様の前記ステートメントを決定することを含む、請求項１に記載の方法。
【請求項３】
前記ハードウェアデバッグサーバによって、前記ＨＬＬソフトウェア仕様の変数の値を要求する第２のＨＬＬデバッギングコマンドを受信することと、
前記ハードウェアデバッグサーバによって、前記第２のＨＬＬデバッギングコマンドを、前記ハードウェア有限状態機械の信号の値を取得する第２のハードウェアデバッギングコマンドに変換することと、
前記第２のハードウェアデバッギングコマンドを前記シミュレータに入力することと、
前記シミュレータによって前記信号の前記値を読み取ることと、
前記変数の名前に関連して前記信号の前記値を出力することと
を更に含む、請求項１に記載の方法。
【請求項４】
前記ハードウェアデバッグサーバによって、前記ＨＬＬソフトウェア仕様に関連するデバッギング情報を入力することと、
前記ハードウェアデバッグサーバによって、前記ＨＬＬソフトウェア仕様の要素の前記ハードウェア有限状態機械の要素へのマッピングを提供するデバッギング情報を入力することと、
前記ＨＬＬソフトウェア仕様に関連する前記デバッギング情報を、データベースの前記ＨＬＬソフトウェア仕様の前記要素の前記ハードウェア有限状態機械の前記要素への前記マッピングと相互参照することと
を更に含み、
前記第２のＨＬＬデバッギングコマンドを変換することが、前記データベースから、前記第２のＨＬＬデバッギングコマンドで指定された前記変数の前記名前と相互参照される前記ハードウェア有限状態機械の前記信号を決定することを含む、請求項３に記載の方法。
【請求項５】
前記シミュレーションの実行の中断に応じて、前記ハードウェア有限状態機械内の前記条件に対応する前記ＨＬＬソフトウェア仕様のステートメントを決定することと、
前記ＨＬＬソフトウェア仕様の前記ステートメントを示すデータを出力することと、
前記ハードウェアデバッグサーバによって、前記ＨＬＬソフトウェア仕様の変数の値を要求する第２のＨＬＬデバッギングコマンドを受信することと、
前記ハードウェアデバッグサーバによって、前記第２のＨＬＬデバッギングコマンドを、前記ハードウェア有限状態機械の信号の値を取得する第２のハードウェアデバッギングコマンドに変換することと、
前記第２のハードウェアデバッギングコマンドを前記シミュレータに入力することと、
前記シミュレータによって前記信号の前記値を読み取ることと、
前記変数の名前に関連して前記信号の前記値を出力することと
を更に含む、請求項１に記載の方法。
【請求項６】
デバッギングシステムであって、
プロセッサと、
前記プロセッサに結合されたメモリ装置であって、前記プロセッサによって実行されるとき、前記プロセッサに、
ハードウェアデバッグサーバによって、ブレークポイントをＨＬＬソフトウェア仕様に設定するための第１の高水準言語（ＨＬＬ）デバッギングコマンドを受信することと、
前記ハードウェアデバッグサーバによって、前記第１のＨＬＬデバッギングコマンドを、前記ソフトウェア仕様の表示であるハードウェア有限状態機械の条件を指定する第１のハードウェアデバッギングコマンドに変換することと、
前記第１のハードウェアデバッギングコマンドをシミュレータに入力することと、
前記第１のハードウェアデバッギングコマンドに応じて、前記シミュレータによって前記有限状態機械に条件付きブレークポイントを追加することと、
前記有限状態機械の表示のシミュレーションを実行することと、
前記有限状態機械における前記条件の検出に応じて、前記シミュレーションの実行を中断することと、
前記シミュレーションの実行の中断に応じて、前記ハードウェア有限状態機械内の前記条件に対応する前記ＨＬＬソフトウェア仕様のステートメントを決定することと、
前記ＨＬＬソフトウェア仕様の前記ステートメントを示すデータを出力することと、
前記ハードウェアデバッグサーバによって、前記ＨＬＬソフトウェア仕様に関連するデバッギング情報を入力することと、
前記ハードウェアデバッグサーバによって、前記ＨＬＬソフトウェア仕様の要素の前記ハードウェア有限状態機械の要素へのマッピングを提供するデバッギング情報を入力することと、
前記ＨＬＬソフトウェア仕様に関連する前記デバッギング情報を、データベースの前記ＨＬＬソフトウェア仕様の前記要素の前記ハードウェア有限状態機械の前記要素への前記マッピングと相互参照することと
を含む動作を実行させる命令で構成される、メモリ装置と
を含み、
前記変換することが、前記データベースから、前記第１のＨＬＬデバッギングコマンドで指定されたＨＬＬステートメントと相互参照される前記ハードウェア有限状態機械の要素を決定することを含む、デバッギングシステム。
【請求項７】
前記ＨＬＬソフトウェア仕様の前記ステートメントを決定するための前記命令が、前記データベースから、発生した前記条件付きブレークポイントによって示される前記ハードウェア有限状態機械の要素と相互参照される前記ＨＬＬソフトウェア仕様の前記ステートメントを決定するための命令を含む、請求項６に記載のシステム。
【請求項８】
前記メモリ装置が、前記プロセッサによって実行されるとき、前記プロセッサに、
前記ハードウェアデバッグサーバによって、前記ＨＬＬソフトウェア仕様の変数の値を要求する第２のＨＬＬデバッギングコマンドを受信することと、
前記ハードウェアデバッグサーバによって、前記第２のＨＬＬデバッギングコマンドを、前記ハードウェア有限状態機械の信号の値を取得する第２のハードウェアデバッギングコマンドに変換することと、
前記第２のハードウェアデバッギングコマンドを前記シミュレータに入力することと、
前記シミュレータによって前記信号の前記値を読み取ることと、
前記変数の名前に関連して前記信号の前記値を出力することと
を含む動作を実行させる命令で更に構成される、請求項６に記載のシステム。
【請求項９】
前記メモリ装置が、前記プロセッサによって実行されるとき、前記プロセッサに、
前記ハードウェアデバッグサーバによって、前記ＨＬＬソフトウェア仕様に関連するデバッギング情報を入力することと、
前記ハードウェアデバッグサーバによって、前記ＨＬＬソフトウェア仕様の要素の前記ハードウェア有限状態機械の要素へのマッピングを提供するデバッギング情報を入力することと、
前記ＨＬＬソフトウェア仕様に関連する前記デバッギング情報を、データベースの前記ＨＬＬソフトウェア仕様の前記要素の前記ハードウェア有限状態機械の前記要素への前記マッピングと相互参照することと
を含む動作を実行させる命令で更に構成され、
前記第２のＨＬＬデバッギングコマンドを変換することが、前記データベースから、前記第２のＨＬＬデバッギングコマンドで指定された前記変数の前記名前と相互参照される前記ハードウェア有限状態機械の前記信号を決定することを含む、請求項８に記載のシステム。
【請求項１０】
前記ハードウェア状態機械が、前記ハードウェア状態機械が指定されるハードウェア記述言語以外の言語でモデル化されるメモリ内の値を参照し、前記メモリ装置が、前記プロセッサによって実行されるとき、前記プロセッサに、
前記メモリにアクセスするコールバック機能を前記シミュレータに登録することと、
前記ハードウェアデバッグサーバによって、前記ＨＬＬソフトウェア仕様の変数の値を要求する第２のＨＬＬデバッギングコマンドを受信することと、
前記ハードウェアデバッグサーバによって、前記第２のＨＬＬデバッギングコマンドを、前記ハードウェア有限状態機械の信号の値を取得する第２のハードウェアデバッギングコマンドに変換することと、
前記第２のハードウェアデバッギングコマンドを前記シミュレータに入力することと、
前記コールバック機能を実行して、前記シミュレータによって前記メモリから前記信号の前記値を読み出すことと、
前記変数の名前に関連して前記信号の前記値を出力することと
を含む動作を実行させる命令で更に構成される、請求項６に記載のシステム。
【請求項１１】
前記メモリ装置が、前記プロセッサによって実行されるとき、前記プロセッサに、
前記シミュレーションの実行の中断に応じて、前記ハードウェア有限状態機械内の前記条件に対応する前記ＨＬＬソフトウェア仕様のステートメントを決定することと、
前記ＨＬＬソフトウェア仕様の前記ステートメントを示すデータを出力することと、
前記ハードウェアデバッグサーバによって、前記ＨＬＬソフトウェア仕様の変数の値を要求する第２のＨＬＬデバッギングコマンドを受信することと、
前記ハードウェアデバッグサーバによって、前記第２のＨＬＬデバッギングコマンドを、前記ハードウェア有限状態機械の信号の値を取得する第２のハードウェアデバッギングコマンドに変換することと、
前記第２のハードウェアデバッギングコマンドを前記シミュレータに入力することと、
前記シミュレータによって前記信号の前記値を読み取ることと、
前記変数の名前に関連して前記信号の前記値を出力することと
を含む動作を実行させる命令で更に構成される、請求項６に記載のシステム。
【国際調査報告】
2019533252.tif 000011
2019533252.tif 000012
2019533252.tif 000013