(57)【要約】複数のターゲットシステムバスによって相互接続される複数の構成要素を有するターゲットシステム（１０）の設計を検証するための検証エンジン（６０）が開示される。検証エンジン（６０）は、ともに１つの構成要素として構成され、ハードウェアモデル入力／出力ピン（１４７、１６８）の集合を有する、第１ハードウェアモデル（７０）および第２ハードウェアモデル（７２）を備える。さらに、第１バスラッパー８２は第１ハードウェアモデル（７０）に接続され、第２バスラッパー（８４）は第２ハードウェアモデル（７２）に接続される。さらに、バスライン（１１０）の集合が、それぞれ第１バスラッパー（８２）および第２バスラッパー（８４）に接続される。システム制御装置（１１２）はバスライン（１１０）の少なくともいくつかに接続され、バスライン（１１０）によって各バスラッパー制御ブロックに、時間同期情報のシーケンスを送信するように適応されている。最後に、時間スロット番号（３）の所定の番号に応えて、制御ブロックの両方とも、第１ハードウェアモデル（７０）からの少なくとも１つの入力／出力回線が第２ハードウェアモデル（７２）の入力／出力回線に接続されるように、少なくとも１本の入力／出力ピンをバスライン（１１０）との通信連絡に切り替える。
2004500609.tif 000002
【特許請求の範囲】
【請求項１】
複数のターゲットシステムバスによって相互接続される複数の構成要素を有するターゲットシステムの設計を検証するための検証エンジンであって、
（ａ）ともに前記構成要素として構成され、ハードウェアモデル入力／出力ピンの集合を有する第１ハードウェアモデルおよび第２ハードウェアモデルと、
（ｂ）前記第１ハードウェアモデルに接続される第１バスラッパー、および第２ハードウェアモデルに接続される第２バスラッパーと、
（ｃ）それぞれの前記バスラインが前記第１バスラッパーおよび前記第２バスラッパーに接続されている、バスラインの集合と、
（ｄ）ここで、各前記バスラッパーが、さらに、各前記ハードウェアモデル入力／出力ピンをバスラインに切り替え自在に通信可能に接続する切り換え可能通信回路と、該切り替え可能通信回路を制御する制御ブロックとを有し、
（ｅ）前記バスラインの少なくともいくつかに接続され、それぞれの前記バスラッパー制御ブロックに時間同期情報のシーケンスを送信するように適応されているシステム制御装置であって、前記時間同期情報が、前記制御ブロックが時間スロット番号を統一して決定できるようにするほど十分であるシステム制御装置と、
（ｆ）ここで、前記制御ブロックが、前記時間同期情報に応えて前記時間スロット番号を統一して決定し、それに応えて、各制御ブロックが、少なくとも１つの前記入力／出力ピンを前記バスラインとの通信接続の状態に切り替えて、前記第１ハードウェアモデルからの少なくとも１つの前記入力／出力ピンが前記第２ハードウェアモデルの前記入力／出力ピンに接続されるようにするものである、
を備える前記検証エンジン。
【請求項２】
前記バスラインの集合に接続される追加バスラッパーにそれぞれが接続される追加のハードウェアモデルを含む、請求項１に記載される検証エンジン。
【請求項３】
前記システム制御装置が、各時間スロット番号の間にターゲットシステムクロック情報の中から１つを送信し、前記第１ハードウェアモデルが第１ターゲットシステムクロック入力ピンを有し、前記第１バスラッパーがクロック入力を生成し、第１ターゲットシステムクロック表示信号に応えて、それを前記第１ターゲットシステムクロック入力ピンに送信することができる請求項１に記載される検証エンジン。
【請求項４】
前記ターゲットシステムクロック情報の集合が、前記ターゲットシステムクロック信号が、前記バスラッパーのどれかによって送信されてはならないことを示すヌルコマンドを含む、請求項３に記載される検証エンジン。
【請求項５】
前記第２ハードウェアモデルが、第２ターゲットシステムクロック入力ピンを含み、前記第２バスラッパーが、さらに、前記第２ターゲットシステムクロック入力ピンに接続される第２バスラッパーターゲットシステムクロック出力ピンを含み、前記第２バスラッパーが、それぞれの前記時間スロットで、前記ターゲットシステムクロック表示信号に基づき、前記第２バスラッパーターゲットシステムクロック出力ピンでターゲットシステムクロック信号を送信するかどうかを決定する、請求項３に記載される検証エンジン。
【請求項６】
前記ターゲットシステムクロック信号の集合が第１クロック表示信号および第２クロック表示信号を含み、前記第１バスラッパーが、前記第１クロック表示信号に応えて前記第１バスラッパーターゲットシステムクロック出力ピンでターゲットシステムクロックを送信し、前記第２バスラッパーが、前記第２クロック表示信号に応えて、前記第２バスラッパーターゲットシステムクロック出力ピンでターゲットシステムクロックを送信する、請求項５に記載される検証エンジン。
【請求項７】
前記ターゲットシステムクロック信号の集合が、さらに、第２クロック表示信号を含み、前記第１ハードウェアモデルが、さらに、第２ターゲットシステムクロック入力ピンを含み、前記第１バスラッパーがさらに第２クロック入力を生成し、第２ターゲットシステムクロック表示信号に応えて前記第２ターゲットシステムクロック入力ピンにそれを送信することができる、請求項３に記載される検証エンジン。
【請求項８】
前記時間同期情報が、複数の時間スロット内で送信される時間スロット番号を含む、請求項１に記載される検証エンジン。
【請求項９】
複数のターゲットシステムバスによって相互接続される複数の構成要素を有するターゲットシステムの設計を検証するための検証エンジンであって、
（ａ）それぞれが、バスラッパー／ハードウェアモデル集合のピンおよびバスラッパー／バスライン集合のピンと、それぞれの前記バスラッパー／ハードウェアモデルピンをバスラッパー／バスラインピンに切り替え自在に通信可能に接続する切り替え可能通信回路と、前記切り替え可能通信回路を制御する制御ブロックとを有する複数の再構成可能なバスラッパーと、
（ｂ）バスラインの集合であって、該バスラインのそれぞれがバスラッパーごとにバスライン／バスラッパーピンを有し、各バスライン／バスラッパーピンがバスラッパー／バスラインピンに接続されている、バスラインの集合と、
（ｃ）前記バスラインの少なくともいくつかに接続され、前記制御ブロックが時間スロット番号を統一して決定するために十分な時間同期情報を送信するように適応されているシステム制御装置と
を備え、
（ｄ）ここで、前記時間同期信号に応えて、各前記制御ブロックが前記時間スロット番号を決定し、前記時間スロット番号の内の所定の番号に応えて、少なくとも１本のバスラッパー／ハードウェアモデルピンを、バスラッパー／バスラインピンとの通信連絡に切り替える、
前記検証エンジン。
【請求項１０】
前記時間同期情報が時間スロット番号を含む、請求項９に記載される検証エンジン。
【請求項１１】
第１ドライバの第１ドライバ入力ピンに通信可能に接続される第１回路ノードと、第２ドライバの第２ドライバ入力に通信可能に接続される第２回路ノードとの間で駆動方向を決定する方法であって、前記第１ドライバおよび前記第２ドライバが接続回線により接続され、前記第１回路ノードおよび第２回路ノードが、前記第１ドライバまたは前記第２ドライバのどちらかを、それぞれ前期第１回路ノードまたは前記第２回路ノードからの入力でイネーブルすることによって接続されるように一時的に命令され、
（ａ）前記第１回路ノードが駆動されているかどうかを判断することによって第１試験結果を自動的に形成することと、
（ｂ）第１フォーマットで、前記第１試験結果を記録することと、
を備える前記方法。
【請求項１２】
さらに、
（ａ）前記第２回路ノードが駆動されているかどうかを判断することによって第２試験結果を自動的に形成するステップと、
（ｂ）前記第１フォーマットで前記第２試験結果を記録するステップと、
（ｃ）前記第１試験結果を前記第２試験結果と比較するステップと、
（ｄ）前記第１試験結果が前記第２試験結果と異なる場合に、前記第１ドライバまたは前記第２ドライバを使用して、前記回路ノードのどちらかがが駆動されている前記相互接続回線を駆動するステップと
を含む、請求項１１の駆動方向を決定する方法。
【請求項１３】
前記第１回路ノードと前記第２回路ノードの両方とも駆動されている場合に、これが競争状態として記録され、前期第１回路ノードと前記第２回路ノードのどちらも駆動されていない場合に、これが浮動状態として記録される、請求項１２に記載される方法。
【請求項１４】
前記競争状態により、前記第１ノードと前記第２ノードのコネクションのために前記一時コマンドの取消しが引き起こされる、請求項１２に記載される方法。
【請求項１５】
前記浮動状態により、システム動作への割込みが引き起こされる、請求項１２に記載される方法。
【請求項１６】
前記第１ノードが、第１ハードウェアモデルと第１バスラッパーの間で第１導リンクを含み、前記第２ノードが第２ハードウェアモデルと第２バスラッパーの間で第２導線リンクを含み、前記相互接続回線が、前記第１バスラッパーを前記第２バスラッパーに接続するバスラインである、請求項１２に記載される方法。
【請求項１７】
前記第１ノードが、非常に多数の第１ノードの中からのノードであり、それぞれが、前記第１ハードウェアモデルと、検証エンジンの一部である第１バスラッパーの間の導線リンクを含み、前記第２ノードが非常に多数の第２ノードの内のノードであり、それぞれが、前記検証エンジン内で前記第２ハードウェアモデルと前記第２ラッパーの間の導線リンクを含み、前記バスラインが、前記第１バスラッパーを前記第２バスラッパーに接続する非常に多数のバスラインの中からの１つである、請求項１２に記載される方法。
【請求項１８】
前記検証エンジンが、さらに、前記バスライン上の将来のバス競争が、検証エンジン動作の割込みを生じさせることかどうかを示す少なくとも１つのバイナリ値を各バスラインに関して指定するバス競争報告テーブルを含む、請求項１３に記載される方法。
【請求項１９】
前記検証エンジンが、さらに、前記バスライン上の将来のバス浮動が、検証エンジン動作の割込みを生じさせることかどうかを示す少なくとも１つのバイナリ値を、各バスラインごとに指定するバス浮動報告テーブルを含む、請求項１３に記載される方法。
【請求項２０】
前記バスラインが時間スロットに時間多重化され、ここで前記バス競争報告テーブルが、前記時間スロット内の前記バスラインでの将来のバス競争が、検証エンジン動作の割込みを生じさせることかどうかを示す各時間スロットのバイナリ値を、バスラインごとに指定する、請求項１８に記載される方法。
【請求項２１】
前記バスラインの動作が時間スロットに時間多重化され、前記バス浮動報告テーブルが、前記時間スロット内の前記バスラインでの将来のバス浮動が、検証エンジン動作の割込みを生じさせるかどうかを示すバイナリ値を、各バスラインごとに、各時間スロットごとに指定する、請求項１９に記載される方法。
【請求項２２】
（ａ）（ｉ）前記第１構成要素入力／出力ピンに接続されるように適応されている第１バスラッパー対構成要素ピンの集合と、
（ｉｉ）第１バスラッパーバスラインピンの集合と、
（ｉｉｉ）各前記ラッチが、前記第１バスラッパー対構成要素ピンに、および前記第１バスラッパーバスラインピンに、切り替え自在で通信可能に接続されているラッチの集合と、
（ｉｖ）ローカル状態センサと
を有する第１バスラッパーと、
（ｂ）（ｉ）前記第２構成要素入力／出力ピンに接続されるように適応されている第２バスラッパー対構成要素ピンの集合と、
（ｉｉ）第２バスラッパーバスラインピンの集合と、
（ｉｉｉ）各前記ラッチが、前記第２バスラッパー対構成要素ピンおよび前記第２バスラッパーバスラインピンに切り替え自在に通信可能に接続されているラッチの集合と
を有する第２バスラッパーと、
（ｃ）各前記第１バスラッパーバスラインピンを前記第２バスラッパーバスラインピンに接続するバスライン導体の集合と、
（ｄ）バスライン導体の前記集合に接続されるシステム制御装置バスラインピンの集合を有し、前記バスラッパーが時間スロット番号を統一して決定するために十分な時間同期情報を前記バスラッパーに送信するように適応されているシステム制御装置と
を備え、
（ｅ）ここで、各バスラッパーが、前記各時間スロット番号について、その前記ラッチの内のどれが前記時間スロットの間にアクティブであるのかを、アクティブなものがある場合には、判断するように適応されており、前記第１バスラッパーがさらに前記ローカル状態センサおよび前記時間スロット番号によって少なくとも部分的に、どの前記アクティブラッチが前記第１バスラッパー対構成要素ピンとの送信通信結合状態に切り替えられるのか、およびどれが前記第１バスラッパーバスラインピンとの送信通信結合に切り替えられるのかを判断するように適応されている、
第２構成要素入力／出力ピンの集合を有する第２電気的構成要素へと第１構成要素入力／出力ピンの集合を有する第１電気的構成要素を選択的に結合するように適応されているバス。
【請求項２３】
前記ローカル状態センサが、前記第１電気的構成要素の第１入力／出力ピンが駆動しているのかどうかを感知する、請求項２２に記載されるバス。
【請求項２４】
構成要素間でデータの定められたフローを可能にする複数のバスによって接続される複数の前記構成要素から構成されているターゲットシステム設計の検証試験用の方法であって、
（ａ）前記構成要素の少なくともいくつかのハードウェアモデルを、時間多重化バスに接続することと、
（ｂ）前記時間多重化バスを制御し、前記ハードウェアモデル間のデータの前記定められたフローを可能にすることと
を備えた方法。
【請求項２５】
双方向ピンを備える集積回路に接続するための装置であって、
（ａ）高駆動時間中に、前記双方向ピンを高にソフト駆動し、低駆動時間中に前記双方向ピンを低にソフト駆動するように適応されているソフト駆動装置と、
（ｂ）その高駆動時間中に、前記双方向ピンの出力を保存するように構成される第１フリップフロップと、
（ｃ）その低駆動時間中に、前記双方向ピンの出力を保存するように構成される第２フリップフロップと、
（ｄ）前記第１フリップフロップの前記出力に接続される第１入力、および前記第２フリップフロップの前記出力に接続される第２入力を有し、前記高駆動時間および低駆動時間の後に、それによりピン駆動方向を示す出力を有する、排他的ＯＲゲートと
を備えた装置。
【請求項２６】
さらに、前記双方向ピン用の双方向バッファを含み、前記双方向バッファが、前記排他ＯＲゲートの前記出力に応えて駆動方向を変更する、請求項２５に記載される装置。
【請求項２７】
構成要素の集合を有するターゲットシステムをモデル化するように適応されている検証エンジンであって、
（ａ）各ハードウェアモデルが前記構成要素を表す、非常に多数のハードウェアモデルと、
（ｂ）前記ハードウェアモジュールをともにリンクし、システム制御装置を含むバスと、
（ｃ）前記ハードウェアモデルによって表されずに、シミュレーションされた構成要素である前記構成要素についてのシミュレーションプログラムを実行するコンピュータであって、さらに、前記システム制御装置と通信可能に接続されている前記コンピュータと
を備えた検証エンジン。
【請求項２８】
設計者によるターゲットシステム電子回路設計の試作を容易にするための装置であって、前記ターゲットシステム電子回路設計が、前記開発者に未知であってよい内部構造を有し、第１ピンを有する第１構成要素、第２構成要素、および前記第１構成要素の前記第１ピンに第１信号を送信する第３構成要素を含み、
（ａ）ソケット、およびシミュレーション言語で記述されたプログラムを格納しているメモリアセンブリとを含み、前記第３構成要素をシミュレーションし、前記第１信号をモデル化する第１モデル状態を形成するように適応されているコンピュータと、
（ｂ）前記コンピュータの前記メモリ内に記憶され、さらに前記第１モデル状態を前記ソケットコマンドに変換し、それによって前記第１信号をモデル化する第１ソケット出力信号を、前記ソケットから転送させるように適応されているコンピュータソフトウェアオブジェクトと、
（ｃ）前記ソケットに作動できるように結合される通信アセンブリと、
（ｄ）前記第１構成要素をモデル化するように適応され、前記第１ピンをモデル化する第１モデルピンを含む第１ハードウェアモデルであって、前記第１モデルピンが前記通信アセンブリに作動できるように接続される第１ハードウェアモデルと、
（ｅ）前記第２構成要素をモデル化するように適応され、前記通信アセンブリに作動できるように接続される第２ハードウェアモデルと
を備えた装置。
【請求項２９】
前記第１ハードウェアモデルが前記第１構成要素に物理的に同一である、請求項２８に記載される装置。
【請求項３０】
前記第１ハードウェアモデルが、第１構成要素の回路を実現するように構成されるＦＰＧＡを備える、請求項２８に記載される装置。
【請求項３１】
開発者によるターゲットシステム電子機器回路設計の試作を容易にするためのデバイスであって、前記ターゲットシステム電子機器回路設計が、前記開発者に未知であってよい内部構造を有し、第１ピンを有する第１構成要素、第２構成要素、および前記第１構成要素の前記第１ピンから第１信号を受信し、前記第１信号に応えて第１状態を形成する第３構成要素を含み、
（ａ）通信アセンブリと、
（ｂ）前記第１構成要素をモデル化するように適応されている第１ハードウェアモデルであって、前記第１ピンをモデル化する第１モデルピンを含み、前記第１モデルピンが前記通信アセンブリに作動できるように接続され、さらに前記第１ピンより前記第１信号を送信するように適応されている前記第１ハードウェアモデルと、
（ｃ）前記第２構成要素をモデル化するように適応され、前記通信アセンブリに作動できるように接続される第２ハードウェアモデルと、
（ｄ）シミュレーション言語で記述されたプログラムを持つソケットとメモリアセンブリを含み、前記第３構成要素をシミュレーションし、前記ソケットで第１ソケット信号を受信するように適応され、前記ソケットが前記通信アセンブリに作動できるように接続されるコンピュータと、
（ｅ）前記コンピュータの前記メモリ内に記憶され、前記第３構成要素をモデル化し、前期第１ソケット信号を受信し、前記第１ソケット信号に応えて第１モデル状態を形成するように適応され、前記第１モデル状態が前記第１状態をモデル化するコンピュータソフトウェアオブジェクトと、
を備える前記デバイス。
【請求項３２】
開発者によるターゲットシステム電子機器回路設計の試作を容易にするためのデバイスであって、前記電子機器回路設計は、マイクロプロセッサと、前記マイクロプロセッサ上で実行するように適応されているプログラムを格納する第１メモリアセンブリと、前記開発者に未知である場合がある内部構造を有する構成要素と、前記マイクロプロセッサを前記コンピュータメモリおよび前記構成要素に接続する第１通信リンクアセンブリとを含み、
（ａ）少なくとも部分的に前記マイクロプロセッサをモデル化するように適応されているハードウェアによって実現されるマイクロプロセッサモデルと、
（ｂ）前記構成要素をモデル化するように適応されているハードウェア構成要素モデルと、
（ｃ）前記プログラムおよびメモリの内容を格納すしている第２メモリアセンブリと、
（ｄ）前記モデルメモリアセンブリおよび前記構成要素モデルを前記マイクロプロセッサモデルに接続するモデル通信アセンブリと、
（ｅ）コンピュータと、
（ｆ）前記コンピュータを前記モデル通信アセンブリにリンクし、前記プログラムの開発者によって指定される点で、前記メモリ内容の選択された内容を前記コンピュータに送達するように適応されているリンク報告アセンブリと
を備えたデバイス。
【請求項３３】
前記マイクロプロセッサモデルが、物理的に、前記マイクロプロセッサを備える、請求項３２に記載される方法。
【請求項３４】
構成要素の集合を試験するための検証エンジンであって、各構成要素が、入力／出力ピンを集合を有し、前記検証エンジンが、構成要素ピンの集合のトグルカバレージを測定する能力を有し、
（ａ）前記入力／出力ピンごとにトグル検出器を有する相互接続アセンブリと、
（ｂ）各トグル検出器の出力を記録するためのメモリ空間と、
（ｃ）存在する場合には、前記入力／出力ピンのどれがトグルされていないのかを検出し、ユーザに報告するための検出報告アセンブリと
を備えた、構成要素の集合を試験するための検証エンジン。
【請求項３５】
それぞれのターゲットシステム構成要素が、システムレベルハードウェア記述内のターゲットシステム構成要素名によって指定される、ターゲットシステム構成要素の集合を含むシステムレベルハードウェア記述を、それぞれがハードウェアモデルのライブラリ内に存在し、仮想校正要素名によって指定される仮想構成要素の集合にマッピングするための方法であって、
（ａ）前記システムレベルハードウェア記述をターゲットシステム構成要素の前記集合中に展開し、前記ターゲットシステム構成要素を表す前記ターゲットシステム構成要素名を表示するステップと、
（ｂ）前記仮想構成要素名を表示するステップと、
（ｃ）ユーザが、前記ターゲットシステム構成要素名を、前記仮想構成要素名に一致させることを可能にし、それにより前記ターゲットシステム構成要素の前記仮想構成要素名と関連付けられる前記ハードウェアモデルを指定するステップとを備えた方法。
【請求項３６】
複数の前記仮想構成要素名が同時に表示される、請求項３５に記載される方法。
【請求項３７】
複数の前記ターゲットシステム構成要素名が同時に表示さえる、請求項３５に記載される方法。
【請求項３８】
ターゲットシステム構成要素の集合を含み、各前記ターゲットシステム構成要素が前記システムレベルハードウェア記述のターゲットシステム構成要素名によって指定されている、システムレベルハードウェア記述を、検証エンジン内でモデル化される構成要素の第１サブ集合と、シミュレータ内でモデル化される構成要素の第２サブ集合とに区分する方法であって、
（ａ）前記システムレベルハードウェア記述を、前記ターゲットシステム構成要素の集合に解析し、前記ターゲットシステム構成要素名を表示するステップと、
（ｂ）ユーザが、前記ターゲットシステム構成要素名に対応する前記ターゲットシステム構成要素を、構成要素の前記第１サブ集合または構成要素の前記第２に属するとして指定できるようにするステップと、
（ｃ）前記構成要素の第１集合と前記構成要素の第２集合の間で相互接続ネットリストを作成するステップと
を備えた方法。
【請求項３９】
複数のターゲットシステム構成要素名が同時に表示される、請求項３８に記載される方法。
【請求項４０】
前記ターゲットシステム構成要素名に対応する前記ターゲットシステム構成要素が、前記ターゲットシステム構成要素が構成要素の前記第２サブ集合に属さなければならないことを前記ユーザが明確に示さない限り、構成要素の第１サブ集合に属するとして自動的に指定される、請求項３８に記載される方法。
【請求項４１】
副部分入力／出力ピンの集合を有する副部分を含む、第１構成要素、第２構成要素、および追加の部分を有するターゲットシステムの設計を検証するための検証エンジンであって、
（ａ）それぞれ前記第１構成要素および前記第２構成要素として構成される、第１ハードウェアモデルおよび第２ハードウェアモデルと、
（ｂ）前記第１ハードウェアモデルおよび前記第２ハードウェアモデルをともに通信でリンクする相互接続アセンブリと、
（ｃ）（ｉ）前記相互接続アセンブリに接続されるプロセッサアセンブリ入力／出力ピンの集合と、
（ｉｉ）前記プロセッサアセンブリで実行されるときに、前記副部分の行動モデルを作成するように適応され、ターゲットシステム動作中に、前記副部分入力／出力ピンが応答するにつれて刺激に応えるためにプロセッサアセンブリ入力／出力ピンの前記集合を制御するように適応されているプログラムを格納しているメモリアセンブリと
を含むプロセッサアセンブリと
を備えた検証エンジン。
【請求項４２】
前記再構成可能相互接続アセンブリが時間多重化バスを備える、請求項４１に記載される検証エンジン。
【請求項４３】
さらに、前記再構成可能相互接続アセンブリに接続される、実行シミュレーションプログラムをホストするコンピュータを含む、請求項１に記載される検証エンジン。
【請求項４４】
第１構成要素、第２構成要素、および副部分を含む追加部分を有するターゲットシステムの設計を検証するための方法であって、
（ａ）それぞれ前記第１構成要素および前記第２構成要素として構成される第１ハードウェアモデルおよび第２ハードウェアモデルを提供するステップと、
（ｂ）前記第１ハードウェアモデルおよび第２ハードウェアモデルをともに通信可能にリンクする相互接続アセンブリを提供するステップと、
（ｃ）前記相互接続アセンブリに接続されるプロセッサアセンブリを提供するステップと、
（ｄ）前記第１ハードウェアモデルおよび前記第２ハードウェアモデルを動作し、それにより、相互接続アセンブリ信号を作成し、前記相互接続アセンブリ信号を前記プロセッサアセンブリが使用できるようにするステップと、
（ｅ）前記プロセッサでプログラムを実行し、前記プログラムが
（ｉ）前記副部分のサイクルベースの行動モデルを確立するステップと、
（ｉｉ）前記相互接続アセンブリ出力信号を、前記行動モデルに直接的にポートし、前記行動モデル出力信号を前記相互接続アセンブリに直接ポートするステップと
を実行するステップと
を備えた前記方法。
【請求項４５】
前記再構成可能相互接続アセンブリが時間多重化バスを備える、請求項４４に記載される方法。
【請求項４６】
さらに、前記再構成可能相互接続アセンブリに接続される、実行するシミュレーションプログラムをホストするコンピュータを提供することを含む、請求項４４に記載される方法。
【請求項４７】
第１電気的構成要素および第２電気的構成要素を有しているターゲットシステムの設計を検証するための検証エンジンであって、この検証エンジンは、第１入力／出力ピンの集合を有していて前記第１および第２電気的構成要素に作動できるように接続されているような電気機械装置を、制御するように適応されており、さらに、
（ａ）それぞれ第１構成要素および第２構成要素として構成される第１ハードウェアモデルおよび第２ハードウェアモデルと、
（ｂ）前記第１ハードウェアお出るおよび第２ハードウェアモデルをともに通信可能にリンクする相互接続アセンブリと、
（ｃ）（ｉ）前記相互接続アセンブリに接続される第２入力／出力ピンの集合と、
（ｉｉ）前記プロセッサアセンブリでの実行時に前記電子機械装置の行動モデルを生成するように適応し、ターゲットシステム運用中に第１入力／出力ピンの前記集合が応えるように、第２入力／出力ピンの前記集合に刺激に応えさせるようにも適応されているプログラムを格納しているメモリアセンブリと
を含むプロセッサアセンブリと
を備えた検証エンジン。
【請求項４８】
第１電気的構成要素、第２電気的構成要素、および副部分を含む追加部分を有するターゲットシステムの設計を検証するための検証エンジンであって、
（ａ）それぞれ前記第１構成要素および前記第２構成要素として構成される第１ハードウェアモデルおよび第２ハードウェアモデルと、
（ｂ）前記第１ハードウェアモデルおよび前記第２ハードウェアモデルをともに通信可能にリンクする相互接続アセンブリと、
（ｃ）前記相互接続アセンブリに作動できるように接続され、前記相互接続アセンブリを介して、システムクロック信号を前記第１ハードウェアモデルおよび前記第２ハードウェアモデルに送信するシステム制御装置と、
（ｄ）（ｉ）前記相互接続アセンブリに接続される入力／出力ピンの集合と、（ｉｉ）前記プロセッサアセンブリでの実行時に、行動モデルを作成するように適応されているプログラムを格納しているメモリアセンブリと、
（ｉｉｉ）前記マイクロプロセッサのクロック入力に電気的に接続され、前記システムクロックより高速である内蔵クロックと、
（ｉｖ）前記プロセッサアセンブリが、単一システムクロック期間内に前記相互接続アセンブリから受信される入力の集合に応えるように適応されている、
を含むプロセッサアセンブリと
を備えた前記検証エンジン。
【請求項４９】
前記再構成可能相互接続アセンブリが、時間多重化バスを備える、請求項４８に記載される検証エンジン。
【請求項５０】
さらに、前記再構成可能相互接続アセンブリに接続される、実行するシミュレーションプログラムをホストするコンピュータを含む、請求項４８に記載される検証エンジン。
【発明の詳細な説明】
【０００１】
本特許協力条約出願は、以下の４つの米国特許出願より優先順位を主張する。つまり、１９９９年１月６日に提出された出願番号第０９／２２８，５４２号、ともに１９９９年６月１８日に提出された出願番号第０９／３３６，４４５号および第０９／３３６，２８４号、ならびに１９９９年１１月１９日に提出された出願番号第０９／４４３，１７５号である。
【０００２】
（発明の背景）
本発明は、多くのマルチトランジスタ構成部品を含むターゲットシステム電子設計で開発用の試験を実行するための装置および方法に関連している。このような設計は、チップ実装システムまたはＰＣ基板実装として実現できるだろう。
【０００３】
ＩＣ設計の複雑度が高まるにつれて、各設計を検証するために要する時間も増す。典型的な現在の設計検証方法論での第１ステップとは、設計を多様な機能ブロックに分割してから、各ブロックを別個に設計し、検証することである。（「構成要素」とも呼ばれる）これらのブロックは、複雑度で５０ゲートから１０万ゲート以上であり、第１信頼順序までブロックを検証するには数時間から数日の間のコンピュータシミュレーション実行を要することがある。この用途の文脈では、用語「構成要素」はこの種のブロックを指す。
【０００４】
しかしながら、これらのすでに検証されたブロックから構成されるターゲットシステム全体の性能を検証するという必要性により大きな課題が提示されている。ターゲットシステム設計は数百万ゲートを含むことがあるため、設計全体をシミュレーションするには、コンピュータ時間の１週間が必要とされる可能性がある。さらに、設計が変更されるたびに、新しいシミュレーション実行が実行されなければならず、設計プロセスを大幅に低速化する。加えて、ターゲットシステムシミュレーションは、電子ファイルフォーマット（「ネットリスト」）での完全な回路説明が使用できる場合にだけ実行することができる。将来は、ある会社が、該会社にとって固有であるいくつかの構成要素、およびターゲットシステム設計者により設計されるそれ以外の構成要素を含むターゲットシステムを製造することはますます典型的となるだろう。典型的には、会社に固有な構成要素にはネットリストは使用できないだろう。
【０００５】
さらにプロセスを複雑化するのは、今日、大部分の電子システムが、それらがハードウェア構成要素と埋め込まれているソフトウェア構成要素の両方を含むという点で「埋め込みシステム」である。過去においては、境界線は比較的に単純であった。マイクロプロセッサがシステムのコアとして選ばれ、このプロセッサが特定用途向け集積回路（ＡＳＩＣ）およびその他のカスタム論理回路を含むその周辺環境に接続された。これが基本的なハードウェアシステムを完成させ、ソフトウェア開発のために試作品基板が構築され、使用された。速度が重大であったタスクの場合、生産と開発の両方で多大なコストがかかったが、カスタムハードウェアで実現できたソフトウェアルーチンがあった。今日、ＩＣ設計者は、以前はソフトウェアによって実行されていたハードウェア内の多くのタスクを実現し、このようにしてはるかに高速なシステムを作成する大型ＩＣを製造する能力を備えている。このようなシステム内でのハードウェアの大半は特定のソフトウェアと作業するように設計されるため、これには、ハードウェアとソフトウェアの両方をいっしょに開発することが必要となる。残念なことに、ソフトウェア検証には、ハードウェア検証を行うより数桁多いシミュレーションパターンが必要となる。現在では、システムのハードウェア試作品が、典型的にはハードウェア設計の完了時に存在するまで、これらの検証試験を実行する手段はない。ハードウェアエラーがソフトウェア試験中に明らかにされると、それにより、最終化されたハードウェア設計に対する非常に高価な変更を取るか、あるいは面倒くさく、おそらくゆっくりとしたソフトウェアの回避策を講じるかの間で難しい決定を下すことが強制される。
【０００６】
埋め込みシステム内に常駐するソフトウェアをデバッグするというタスクを容易にするために、多様な特別なソフトウェアツールが開発されてきた。これらのパッケージは、典型的には、マイクロセッサがアクセス可能である読取専用メモリアセンブリ内に常駐するＲＯＭモニタ構成要素を含む。マイクロプロセッサは、ブート時、ＲＯＭモニタ内の命令を使用して動作を開始する。別のデバッグパッケージ構成要素は、マイクロプロセッサのピンの何本かに接続される試験コンピュータ上に常駐する。試験コンピュータは、ＲＯＭモニタに対し、動作をＲＯＭモニタにジャンプさせるブレークポイントとともにマイクロコントローラ上で実行するソフトウェアプログラムをロードするように命令することができる。ＲＯＭモニタ命令により、マイクロコントローラＣＰＵは、開発者に表示するために試験コンピュータに接続されるピンを通して指定されたレジスタの内容を送出する。現在では、すべてのハードウェア構成要素が完成され、システム全体が試験される準備ができるまでこの種のデバッグパッケージをその完全な効果まで使用することは、通常、不可能である。代わりに、デバッグパッケージは、ハードウェア構成要素がなくても使用できるだろう。言うまでもなく、これはソフトウェアとハードウェアの対話で発生する問題に遭遇しないだろう。このようなデバッグパッケージが初期に使用されると、システム全体が構築される前にソフトウェアをデバッグするためのその作業においてソフトウェア開発者にとって相当有益となるだろう。
【０００７】
ターゲットシステム設計の検証時間を加速するために、多様な方法が使用されてきた。これらは、通常、以下の３つのカテゴリに該当する。つまり、ハードウェアモデラ、エミュレータ、およびシミュレーションアクセラレータである。
【０００８】
ハードウェアモデラは、ターゲットシステムブロックの１つにネットリストが存在しないという前記に注記された問題のある状況に対処する。この状況では、ブロックの物理的な実施態様がＩＣまたは外部で接合されたＩＣコア（抽出され、コネクタピンを備えられたＩＣの一部）という形で存在することが通常のケースである。ハードウェアモデラは、このような物理的な実施態様をシミュレーションモデル（「シミュレータ」）を実行しているコンピュータに接続するように設計される。残念なことに、単一のハードウェアもデラは単一の物理実施態様をシミュレータに接続するだけである。追加のハードウェアモデラによってシミュレータに追加の物理実施態様を接続することはできるが、２つの物理的な実施態様間の通信はシミュレータによって実現されねばならず、大幅にシステム性能を低速化するだろう。このため、ハードウェアモデラは、通常、複雑なシステムのシミュレーションプロセスを大幅に加速しない。
【０００９】
少なくとも１つのカレントハードウェアモデラにより、ユーザは、モデラの中に挿入されるアダプタボード上に１つまたは複数の物理構成要素を設置できるようになる。このモデラもシミュレータに接続される。モデラにより、設計者は、アダプタボード上の構成要素をイベント駆動型シミュレーションに実装できるようになり、このようにしてネットリストを必要としなくとも構成要素の正確なモデルを入手する。残念なことに、それにも関わらず、物理実施態様間のすべてのコネクションはシミュレータを通過しなければならない。マイクロプロセッサは、ハードウェアモデラ内に設置されると、すべての通信がシミュレータを通して送られなければならないため、それはその目的のために有用であるにははるかに低速すぎるという点を除き、ハードウェア／ソフトウェア共同検証を実行するために使用できるだろう。
【００１０】
１つの最近にリリースされた製品は、マイクロプロセッサＩＣまたは外部に接合されたコアを採用し、それをイベント駆動型シミュレータに接続し、ハードウェアおよびソフトウェアの設計者がシステム設計検証中にコアプロセッサの本物のハードウェアモデルを使用できるようにするために、ソフトウェアデバッグツールを活用することを目標としている。しかしながら、この製品を用いて開発されているシステムの実行の全体的な速度は、常に、設計の主要な部分が存在するイベント駆動型シミュレータの速度によって制限されるだろう。これは、効果的なハードウェア／ソフトウェアシミュレーションには低速すぎるだろう。
【００１１】
別の使用可能な製品は、システムレベルの高速試作解決策であることが意図される。製品は、事前に穿孔された穴があり、ＩＣが取り付けられていない２つの試作品領域を有する一般試作基板から成り立っている。試作品領域とは、カスタマが、ＩＣ、またはプリント回路基板設計でのさまざまなビルディングブロックを表す利用者書き込み可能ゲートアレイ（ＦＧＰＡ）を設置するところである。両方の試作領域内のピンのすべては、固有のカスタムクロスバースイッチの集合を介して（任意のピンから任意のピンへ）送ることができる。これらのクロスバースイッチはプログラム可能であり、その結果送る際の誤りは容易に補正することができる。この製品は、ターゲットシステムの設計速度に近く実行でき、ハードウェア設計が完了した後のソフトウェア開発のために、あるいはシステムレベルの検証のために使用することができる柔軟な試作品の作成を容易にする。残念なことに、この製品とのソフトウェアデバッグツールまたはイベント駆動型シミュレータの統合がないため、それは開発段階中の容易なハードウェア／ソフトウェア共同検証を可能としない。さらに、システムが３つまたは４つ以上の構成要素を含むとき、この素子はかなり有用ではない。
【００１２】
シミュレーションアクセラレータは、基本的には、シミュレーション実行時間を大幅に加速するカスタマイズされた並列処理コンピュータである。しかしながら、アクセラレータは、ネットリストが使用できないシステム構成要素に関して前記に注記された問題に対処しない。
【００１３】
エミュレータは、作成されている設計をエミュレートするためにＦＰＧＡを使用する。ソフトウェアツールを使用すると、設計ネットリストは、ＦＧＰＡのハードウェアエミュレーションセットの間で細分される。ＦＧＰＡの相互接続セットは、ＦＰＧＡのハードウェアエミュレーションセットを再構成できるように相互接続するために使用される。エミュレータは、他のシミュレーション方法より大幅に高速であるが、それらは設計ソースファイルのフォーマットに大きな制約を課し、大幅に拡張し、チップ上でシステムをエミュレートするのは困難である。
【００１４】
新しいターゲットシステム設計方法論は、仮想構成要素（ＶＣ）の再利用に大いに依存するだろう。ＶＣは、典型的には、ＦＰＧＡロード可能符号化ファイルの形で開発者が利用できるだろう。加えて、契約会社は、ＶＣをシリコン上にエッチングするためのホトリトグラフィマスクを含む、生産ツールのセットにアクセスするだろう。ターゲットシステムの中に実装される多様なＶＣを設計し、販売することから成り立つ新規事業分野が展開されている。実際のシステム設計は、通常、ＶＣの集合体を使用し、通常複数の新しいカスタム設計ブロックを追加し、完全なシステムを作成する同期設計となるだろう。設計を中規模の設計ブロックに区分することは、設計者によって実行され、これらのブロックは２本から４本の標準バスによって相互接続されるだろう。
【００１５】
電子設計に精通している者は、集積回路上で実現されなければならない複雑な設計の場合、概略図セットの作成が冗長なプロセスの第１歩にすぎないことを容易に認識するだろう。そこで、集積回路の物理レイアウトが決定されなければならない。特にシリコンの中にエッチングすることが物理的なレイアウトに対しいくつかの制約を課すことが考慮される場合には、これはときには困難なプロセスである。いったん設計が集積回路の中に提供されると、会社がＩＣを生産できるようにするホトリトグラフィマスクを含む情報および生産のツールは、典型的には企業秘密として守られる１つの貴重な知的財産となる。しかしながら、製品設計を企業秘密として守りたいという希望は、設計の使用、または設計の構成要素部分を、設計創始者と直接的に競合していない可能性のある関心のある関係者に販売したいという希望と矛盾する。例えば、第１の企業が、それがレーダシステム用の信号処理を実行するチップで使用できる（おそらく数千のトランジスタを含む）信号処理構成部品を設計したことがある。第２の企業が、同じ構成部品を音声認識ＩＣの一部として、あるいはおそらく地震信号を解析するために使用されるだろうＩＣの一部として使用することを希望する場合がある。
【００１６】
この問題に対処するため、第１企業のためにＩＣを生産する会社は、第２企業のために全体的な設計の一部として構成部品を生産することを許可されてよい。このようにして、設計は、第２企業が設計の詳細に一度もアクセスすることなく許可されてよい。しかしながら、第２企業は、この時点で、面倒な設計問題に直面する。つまり、その内部活動が第２企業には未知である構成部品を使用するシステムの設計をどのようにして検証できるのかである。第２企業の状況を緩和するために、第１企業は、構成部品をモデル化するが、第２企業が回路説明にアクセスできないように符号化されているＦＧＰＡロード可能ファイルを供給してよい。代わりに、ＩＣまたは外部に接合されているＩＣコアが使用されてもよい。しかしながら、これは、それにも関わらずシステム統合を困難なタスクとして残し、構成部品をシステムの残りの中にモデル化するように構成されているＦＧＰＡをブレッドボード上に組むことを必要とする。さらに、試験段階においても、構成部品の内部活動を知らなければ、チップを他の構成部品に相互接続するタスクは問題となる可能性がある。
【００１７】
電子システムを試験する上で遭遇されるもう１つの問題とは、試験の完全さの何らかのレベルを保証することである。複雑なシステムのあらゆる状態を完全に試験することは、何世紀でなくても数十年を要するだろうため実際的ではない。試験の完全さのより達成可能なレベルとは、あらゆる構成要素ピンをトグル（両方のバイナリ状態へ駆動）することである。現在のところ、ユーザが少なくともこのレベルの完全さまでターゲットシステムを試験することを許すハードウェアシステムは使用できない。
【００１８】
回路の少なくとも一部がハードウェア内でモデル化されるシステムにおいて、問題は、シミュレータ内の行動モデルが検証されているシステムの一部を表すときに遭遇される。設計者は、自分がある構成部品の内部論理回路を設計していないが、行動モデル、つまり設計者が完成した攻勢部品内に存在することを期待する入力対出力の関係性を模倣するコンピュータプログラムを開発したときに、これを行うことを選ぶことができる。検証エンジンに常駐するハードウェアモデルであらゆるそれ以外の構成要素をモデル化することは可能であることがあるが、これまで検証エンジン内で行動モデルをホストすることは可能ではなかっただろう。
【００１９】
この制限が、少なくとも２つの悩ませる問題を提起する。第１の問題は、設計の一部またはターゲットシステム自体の一部が、ネットリストが使用できる点まで最終化されないときに遭遇される。関連する問題は、ターゲットシステムが、利用者書き込み可能ゲートアレイ（ＦＧＰＡ）によってエミュレートできない電気機械装置を制御する、あるいは制御しない場合には電気機械装置と接続するときに遭遇される。
【００２０】
実際の世界のインタフェースも、回路検証者に問題を提起する。例えば、原子力発電所内の電子機器回路は、操作上使用される前に完全に検証されなければならない。しかしながら、原子力発電所を運用するためにそれを使用せずに、この制御回路要素を検証することは困難である。原子力災害の危険を冒さずに制御回路の動作を検証する１つの方法は、制御回路をシミュレーションするシミュレーションプログラムの中に原子力発電所の電気機械部分の行動モデルを含めることである。制御回路がハードウェア内でモデル化されている場合、現在では、前述されたように通信上制限されていない関連付けられた電気機械要素の行動をモデル化するための準備ができた機能はない。
【００２１】
（発明の要約）
第１の好ましい実施態様においては、本発明は、複数のターゲットシステムバスにより相互接続される複数の構成要素を有するターゲットシステムの設計を検証するための検証エンジンである。検証エンジンは、ともに１つの前記構成要素として構成され、ハードウェアモデル入力／出力ピンの集合を有する第１ハードウェアモデルおよび第２ハードウェアモデルを備える。さらに、第１バスラッパーが第１ハードウェアモデルに接続され、第２バスラッパーが第２ハードウェアモデルに接続される。さらに、バスラインの集合はそれぞれ第１バスラッパーおよび第２バスラッパーに接続される。各バスラッパーは、バスラインにそれぞれのハードウェアモデル入力／出力ピンを切り替え自在に通信可能に接続し、切り替え可能通信構成回路を制御する制御ブロックを有する切り替え可能通信回路も有する。バスラインの少なくとも数本に接続されるシステム制御装置は、バスラインによって前記バスラッパーごとに時間同期情報のシーケンスを送信するように適応されている。時間同期情報は、前記制御ブロックが、時間スロット番号を統一して決定できるようにするのに十分である。応えて、制御ブロックは、時間スロット番号を統一して決定し、そこに応えて、それぞれの制御ブロックは少なくとも１本の入力／出力ピンを、第１ハードウェアモデルからの少なくとも１本の入力／出力回線が第２ハードウェアモデルの入力／出力回線に接続されるように、前記バスラインとの通信連絡に切り替える。
【００２２】
別個の好ましい態様では、本発明は、複数のターゲットシステムバスによって相互接続される複数の構成要素を有するターゲットシステムの設計を検証するための検証エンジンである。検証エンジンは、それぞれがピンのバスラッパー／ハードウェアモデル集合、およびピンのバスラッパー／バスライン集合を有する複数の再構成可能なバスラッパー、各前記バスラッパー／ハードウェアモデルピンをバスラッパー／バスラインピンに切り替え自在に通信可能に接続する切り替え可能通信回路、および前記切り替え可能通信回路を制御する制御ブロックを備える。バスラインの集合は、それぞれバスラッパーごとにバスライン／バスラッパーピンを有する。各バスライン／バスラッパーピンは、バスラッパー／バスラインピンに接続される。システム制御装置は、バスラインの少なくとも数本に接続され、制御ブロックが時間スロット番号を統一して決定するのに十分な時間同期情報を伝送するように適応されている。さらに、時間同期情報に応えて、各制御ブロックは、時間スロット番号を決定し、時間スロット番号の所定の番号に応えて、少なくとも１つのバスラパー／ハードウェアモデルピンを、前記バスラッパー／バスラインピンとの通信連絡に切り替える。
【００２３】
追加の別個の好ましい態様においては、本発明は、第１ドライバの第１ドライバ入力ピンに通信可能に接続される第１回路ノードと、第２ドライバの第２ドライバ入力ピンに通信可能に接続される第２回路ノードの間の駆動方向を決定する方法である。第１ドライバおよび第２ドライバは、１本の接続回線により相互に反対に接続される。さらに、第１および第２回路ノードは、第１ドライバまたは第２ドライバのどちらかをイネーブルすることによって、それぞれ第１回路ノードまたは第２回路ノードからの入力と接続されるように一時的に命令される。方法は、第１回路ノードが駆動中であり、第１フォーマットで第１試験結果を記録しているかどうかを判断することによって自動的に第１試験結果を備える。
【００２４】
依然として別の追加の別個の好ましい態様においては、本発明は、第１構成要素入力／出力ピンの集合を有する第１電気的構成要素を、第２構成要素入力／出力ピンの集合を有する第２電気的構成要素に選択的に結合するように適応されているバスである。バスは、前記第１構成要素入力／出力ピンに接続されるように適応された第１バスラッパー対構成要素ピンの集合、第１バスラッパーバスラインピンの集合、各ラッチが、前記第１バスラッパー対構成要素ピンへ、および前記第１バスラッパーバスラインピンに切り替え自在で通信可能に接続されるラッチの集合、およびローカル状態センサを有する第１バスラッパーを備える。第２バスラッパーは、第２構成要素入力／出力ピンに接続されるように適応されている第２バスラッパー対構成要素ピンの集合、第２バスラッパーバスラインピンの集合、および各ラッチが、前記第２バスラッパー対構成要素ピンへ、および前記第２バスラッパーバスラインピンへ切り替え自在で通信可能に接続されているラッチの集合を有する。バスライン導線の集合は、各第１バスラッパーバスラインピンを第２バスラッパーバスラインピンに接続する。システム制御装置は、バスライン導線の集合に接続され、時間スロットのシーケンスを定義する時間スロット番号のシーケンスを前記バスラッパーに送信するように適応されているシステム制御装置バスラインピンの集合を有する。各バスラッパーは、各時間スロット番号列挙子の受信時に、存在するならば、そのラッチの内のどれが時間スロット番号の間にアクティブであるのかを決定するように適応され、第１バスラッパーではさらに、少なくとも部分的に前記ローカル状態センサおよび前記時間スロット番号によって、どのアクティブラッチが第１バスラッパー対構成要素ピンとの送信通信結合に切り替えられるのか、およびどれが第１バスラッパーバスラインピンとの送信通信結合に切り替えられるのかを判断するように適応されている。
【００２５】
依然として別の追加の別の好ましい態様においては、本発明は、前記構成要素間でデータの定められたフローを可能にする複数のバスによって接続される複数の構成部品から構成されるターゲットシステム設計の検証試験のための方法であり、該方法は、構成要素の少なくともいくつかのハードウェアモデルを時間多重化されたバスに接続することと、時間多重化されたバスを制御し、ハードウェアモデルの間の前記定められたデータのフローを可能にすることを備える。
【００２６】
追加の別個の好ましい態様においては、本発明は、装置または双方向ピンを備える集積回路に接続するために、装置用のネットリストを記憶するコンピュータ読取り専用メモリデバイスを備える仮想装置のどちらかである。装置または仮想装置は、高駆動時間中に双方向ピンを高にソフト駆動するように、および低駆動時間中に双方向ピンを低にソフト駆動するように適応されているソフト駆動装置を備える。さらに、第１フリップフロップは、その高駆動時間中に双方向ピンの出力を保存するように構成され、第２フリップフロップは、その低駆動時間中に双方向ピンの出力を保存するように構成される。さらに、排他的論理和ＯＲゲートは、第１フリップフロップの出力に接続される第１入力、および第２フリップフロップの出力に接続される第２入力を有する。高駆動時間および低駆動時間の後、排他的論理和ＯＲゲートの出力は、それによりピン駆動方向を示す。この段落の説明に従って、回路用の回路記述を記憶するコンピュータ読取り可能媒体は、本発明のまた別の別個の好ましい態様である。
【００２７】
依然としてさらに好ましい態様においては、本発明は、開発者によるターゲットシステム電子機器回路設計の試作を容易にするための装置を備える。試作されなければならないターゲットシステム電子機器回路設計は、開発者にとって未知である場合がある内部構造を有し、第１ピンを有する第１構成要素、第２構成要素、および第１構成要素の第１ピンに第１信号を送信する第３構成要素を含む必要がある。デバイスは、ソケット、およびシミュレーション言語で作成されるプログラムを持ち、第３構成要素をシミュレーションし、第１信号をモデル化する第１モデル状態を形成するように適応されているメモリアセンブリを含むコンピュータを備える。コンピュータのメモリ内に記憶されているコンピュータソフトウェアオブジェクトは、第１モデル状態を第１ソケットコマンドに変換し、それにより第１信号をモデル化する第１ソケット出力信号をソケットから送信させるように適応されている。さらに、通信アセンブリは、コンピュータ、および第１構成要素をモデル化するように適応されている第１ハードウェアモデルに作動できるように結合され、第１ピンをモデル化し、通信アセンブリに作動できるように接続される第１モデルピンを含む。さらに、第２ハードウェアモデルは、第２構成要素をモデル化するように適応され、通信アセンブリに作動できるように接続される。最後に、サーバアセンブリは、ソケットと通信アセンブリの間で相互接続され、第１ソケット出力信号に応えて、第１信号をモデル化する第１通信アセンブリ信号を作成するように適応され、ここで通信アセンブリは第１通信アセンブリ信号を第１モデルピンに渡すように適応されている。
【００２８】
依然としてさらに別個の好ましい態様においては、本発明は、開発者によるターゲットシステム電子設計の試作を容易にするための装置である。ターゲットシステム電子設計は、開発者にとっては未知である場合がある内部構造を有し、第１ピンを有する第１構成要素、第２構成要素、および第１構成要素の第１ピンから第１信号を受信し、第１信号に応えて第１状態を形成する第３構成要素を含む必要がある。デバイス自体は、通信アセンブリ、および第１構成要素をモデル化するように適応され、第１ピンをモデル化する第１モデルピンを含む第１ハードウェアモデルを備える。さらに、第１モデルピンは、通信アセンブリに作動できるように接続され、第１ハードウェアモデルは、第１ピンから第１信号を送信するようにさらに適応されている。デバイスは、さらに、第２構成要素をモデル化するように適応されている第２ハードウェアモデルを含み、それは通信アセンブリに作動できるように接続されている。コンピュータは、ソケット、および第１構成要素をシミュレーションし、ソケット上で第１ソケット信号を受信するプログラムを持つメモリアセンブリを含む。コンピュータは、さらに、通信アセンブリに作動できるように接続される。コンピュータソフトウェアオブジェクトは、コンピュータのメモリ内に記憶され、第３構成要素をモデル化し、第１ソケット信号を受信し、第１ソケット信号に応えて第１状態をモデル化する第１モデル状態を形成するように適応されている。サーバアセンブリは、ソケットと通信アセンブリの間で相互接続され、第１通信アセンブリ信号の受信に応えて、第１信号をモデル化する第１ソケット信号を作成、送信するように適応されている。
【００２９】
依然としてまだ別個の好ましい態様においては、本発明は、開発者によるターゲットシステム電気機器回路の試作を容易にするデバイスである。電子機器回路設計は、レジスタ内容を持つレジスタを有するマイクロプロセッサ、マイクロプロセッサ上で実行するように適応されているプログラムを持つコンピュータメモリアセンブリ、および開発者およびマイクロプロセッサをコンピュータメモリおよび構成要素と接続する第１通信リンクアセンブリにとって未知である場合がある内部構造を有する構成要素とを含まなければならない。デバイスは、モデルレジスタ内容を形成することにより少なくとも部分的にマイクロプロセッサをモデル化するように適応されているハードウェアで実現されるマイクロプロセッサモデルを備える。構成要素モデルメモリアセンブリをモデル化するように適応されている構成要素モデルは、プログラムおよびメモリ内容を持つ。モデル通信アセンブリはモデルメモリアセンブリおよび構成要素モデルをマイクロプロセッサモデルに接続する。コンピュータおよびリンクと報告アセンブリが、コンピュータをモデル通信アセンブリにリンクし、メモリ内容の選択された内容をプログラム内の開発者によって指定される点でコンピュータに送達するように適応されている。
【００３０】
依然としてさらに別個の好ましい態様においては、本発明は、構成要素の集合を試験するための検証エンジンであり、そのそれぞれは入力／出力ピンの集合を有する。検証エンジンは、構成要素ピンの集合のトグルカバレージを保証する能力を有する。検証エンジンは、入力／出力ピンのそれぞれにトグル検出器を有する相互接続アセンブリを備える。各トグル検出器の出力はメモリ空間に記録される。検出および報告アセンブリは、存在する場合、入力／出力ピンのどれがトグルされていないのかを検出し、ユーザに対し報告する。
【００３１】
依然としてさらに別個の好ましい態様においては、本発明は、そのそれぞれがシステムハードウェア記述のターゲットシステム構成要素名によって指定されるターゲットシステム構成要素の集合を含むシステムレベルハードウェア記述を、そのそれぞれがハードウェアモデルのライブラリ内に存在し、仮想構成要素名によって指定される仮想構成要素の集合の中にマッピングする方法である。方法は、システムレベルハードウェア記述をターゲットシステム構成要素の中に解析するステップと、ターゲットシステム構成要素を表すターゲットシステム構成要素名を表示するステップとを備える。仮想構成要素名が表示され、ユーザは、ターゲットシステム構成要素名を仮想構成要素名に一致させ、それにより仮想構成要素名に対応するハードウェアモデルをターゲットシステム構成要素用のモデルとして指定する。
【００３２】
依然としてさらに別個の好ましい態様においては、本発明は、ターゲットシステム構成要素の集合を含むシステムレベルハードウェア記述を、検証エンジン内でモデル化されなければならない構成要素の第１サブ集合、およびシミュレータの中でモデル化されなければならない構成要素の第２サブ集合に区分する方法である。各ターゲットシステム構成要素は、ターゲットシステム構成名により指定される。方法は、システムレベルハードウェア記述をターゲットシステム構成要素の集合の中に解析するステップと、ターゲットシステム構成要素名を表示するステップと、ユーザがターゲットシステム構成要素名に対応するターゲットシステム構成要素を、構成要素の第１サブ集合または構成要素の第２サブ集合に属するとして指定することができるようにするステップとを備える。
【００３３】
依然としてさらに別個の好ましい態様においては、本発明は、その内部構造およびＩＣ生産情報が存在するが、設計者が利用できない構成要素を有する集積回路（ＩＣ）の第１部分を、および第２部分モデルが存在するＩＣの第２部分に構成要素を相互接続するための相互接続方式を効率的に設計するために、設計者によって使用されるための方法である。方法は、再構成可能相互接続アセンブリ、ＦＰＧＡ、およびそのそれぞれが使用可能なＦＰＧＡロード可能ファイルによって実現されてよく、その内部構造に関し生産情報が存在するが、設計者が利用できない仮想構成要素指示子の集合を提供するステップとを備える。設計者は、第１部分のさらに高いレベルのシステム記述を作成するために電子設計ソフトウェアパッケージを使用し、さらに高いレベルのシステム記述が構成要素の第１機能記述を含む。それから、設計者は、仮想構成要素の集合にアクセスし、第１機能記述に基づき、ライブラリから仮想構成要素を選択する。第１ＦＰＧＡロード可能ファイルは、仮想構成要素をＦＰＧＡで実現するために利用できる。第１ＦＰＧＡロード可能ファイルは第１ＦＰＧＡにロードされる。再構成可能相互接続アセンブリは、第１ＦＰＧＡを第２部分モデルに相互接続し、多成分電子システムを形成するために使用される。多成分電子システムはその動作を検証するために試験され、補正された多成分電子システムを形成するために、エラーが発見されると補正される。
【００３４】
依然として別の追加の別個の好ましい態様においては、本発明は、構成要素の集合を有するターゲットシステムをモデル化するように適応されている検証エンジンである。検証エンジンは、各ハードウェアモデルが１つの構成要素を表す、非常に多数のハードウェアモデルを備える。バスは、ともにハードウェアモデルをリンクし、システム制御装置を含む。コンピュータはハードウェアモデルによって表されない構成要素のシミュレーションプログラムを実行し、それによりシミュレーションされる構成要素である。さらに、コンピュータは、システム制御装置の作動できるように接続される。ラッチの集合はバスに作動できるように接続される。システム制御装置は、すべての出力信号をシミュレーションプログラムからラッチの集合に向け、ラッチの集合はバスおよびハードウェアモデルに対してシミュレーションされた構成要素を表す。
【００３５】
発明の前記およびそれ以外の目的、特徴、および優位点は、添付図面とともに解釈される本発明の以下の詳細な説明を考慮するときにさらに容易に理解されるだろう。
【００３６】
（好ましい実施態様の詳細な説明）
Ｉ．架空ターゲットシステム
図１は、本発明の好ましい実施態様によってどのようにターゲットシステムが検証されてよいのかを図解する目的で、架空音声認識ターゲットシステムを示す。以下の説明においては、用語「ターゲットシステム」は、検証エンジンの一部であるというのと対照的に、ターゲットシステム設計の動作または一部を示すための形容として使用される。例えば、ターゲットシステムクロック信号とは、検証されているターゲットシステム設計の一部であるクロック信号である。検証エンジンシステムクロック信号とは、検証エンジンが独自のタイミングを調整するために使用する信号のことである。
【００３７】
ターゲットシステム１０は、アナログ／デジタル（Ａ／Ｄ）変換器１２、離散フーリエ変換（ＤＦＴ）エンジン１４、音素認識プロセッサ１６、データプロセッサ１８（８０５１マイクロプロセッサ）、およびデータプロセッサ１８がプロセッサ１６からの音素情報に基づいたワード認識を可能とするためのプログラムを含むＤＲＡＭ２０を含む。さらに、コンテキスト認識ポストプロセッサ４０は、同音異義語の場合、どの同音異義語が正しいのか、あるいはワードが部分的に不鮮明に発音される場合には、話者が言わんとすることが何かを判断するためにデータプロセッサ１８によって生じるワードを調べる。コンテキスト認識ポストプロセッサ４０によって補正されたワードは、データプロセッサ１８が話者の音声パターンに適応できるように、データプロセッサ１８に戻される。それから、データプロセッサ１８は、コンテキスト認識プロセッサ４０から受け取られるワードから音素を決定し、これらの音素を、それが話者の音声パターンに適応できるように、音素認識プロセッサ１６に送り返す。
【００３８】
提案されているターゲットシステム１０は、典型的にはマイクロフォンまたはテーププレーヤーに接続される、入力回線２２によって外界に接続される。出力バス２３は、ＡＳＣＩＩフォーマットで、認識されたワードを表す一連の文字を、表示システムなどのなんらかの受信装置に送達する。ターゲットシステムクロック３６は、通常、システム１０を２００ＭＨＺで駆動するが、出力バスは子の速度の１０２４分の１でクロックされる。出力バスはターゲットシステム１０の内部バスより長く、さらに多くのエネルギーを使用するため、エネルギーを節約するにはさらに低速度が望ましいが、依然としてターゲットシステム１０の出力を送達するほど十分に速い。さらに低速のバス速度を実現するには、ポストプロセッサ４０は２つのクロック入力「Ａ」と「Ｂ」を含み、「Ａ」はコンテキスト認識回路を駆動し、「Ｂ」はポストプロセッサ４０の出力を読み出し、１０２４カウンタ４２による除算によって駆動される。
【００３９】
ターゲットシステム１０の内部コネクションは、デジタル化された音をＤＦＴエンジン１４に移す１６ビットＡ／Ｄ出力データバス２４、ＤＦＴ出力データを音素認識プロセッサ１６に移す９６ビットＤＦＴ出力データバスを含む。４０ビット双方向マルチポートデータプロセッサバス２８は、データプロセッサ１８にコメントデータとともに認識された音素を送信し、データプロセッサ１８から音素認識プロセッサ１６にときおり補正される音素を送信し、コンテキスト認識ポストプロセッサ４０にワードを送信し、ポストプロセッサ４０からデータプロセッサ１８に補正されたワードを送信し、データプロセッサ１８がＤＲＡＭ２０から指示を得ることができるようにする。さらに、離散データ回線３４の第２集合がデータプロセッサ１６をＡ／Ｄ変換器１２にリンクするに従って、離散データ回線３２の第１集合が、データプロセッサ１８を音素認識回路１６にリンクする。
【００４０】
システム運用では、前記に注記されたように、Ａ／Ｄが６５マイクロ秒ごとに入力回線２２をサンプリングする。ターゲットシステムクロックは２００ＭＨｚ速度で動作する。しかしながら、人間の耳は１０ミリ秒未満内に発生する遷移を検出することはできないため、スペクトルは毎秒１００回だけ９６ビットＤＦＴバス上で送達される。しかしながら、スペクトルが送達されるとき、音素認識回路１６を送達するには、１，０００クロックサイクル、つまり５マイクロ秒を要する。音素認識回路１６は、それが音素を認識するたびに、音素コードをデータプロセッサ１８に送信する。このイベントは、非周期的に発生し、データＰロセッサ１８に送信される割込みを生じさせ、それがその後で、音素コードおよび識別タグを検索するためにデータ処理バス２８を制御する。音素認識は、平均毎秒約９回発生する。データプロセッサ１８によって実行されるワード認識は、平均毎秒約３回発生する。コンテキスト認識明確化は、平均４秒毎に発生し、その結果識別タグによって特定される正しい音素を音素認識回路に送り返すデータプロセッサに、逆方向に送られなければならない。
【００４１】
ＩＩ．架空ターゲットシステムのモデル化
図２は、本発明に従った検証エンジン６０を示す。音素認識回路１６を除き、ターゲットシステム１０の構成要素のすべては、ハードウェアモデルによってモデル化され、データプロセッサ１８は、実際の８０５１マイクロコントローラの動作を模倣するように構成されるＦＰＧＡ６６によってモデル化されている。また、抽出され、入力／出力ピンを備えるＩＣ設計の一部である、外部に接合されたＩＣコアを使用することも可能である。多くの状況では、マイクロプロセッサは、直接的に使用されてよいチップとして販売されてよい。ＤＦＴエンジン１４およびＡ／Ｄ変換器１２は、それぞれＤＦＴエンジンＩＣ６４およびＡＤ変換器ＩＣ６２によってシミュレーションされる。エスオーディム（ＳＯＤＩＭＭ）モジュールを含む中央メモリ装置６８がＤＲＡＭ２０をモデル化する。コンテキスト認識ポストプロセッサ４０は、ＦＰＧＡロード可能ファイルで適切に構成されている利用者書き込み可能ゲートアレイ（ＦＰＧＡ）７０によってモデル化される。ダミーハードウェアモデルＦＰＧＡ７２は、シミュレーションされた音素認識回路１６のために入力／出力データを記憶する。リンク機構は、以下にさらに詳細に説明されるだろう。ハードウェアモデル６２、６４，６６、６８、７０および７２のそれぞれ一つが、再構成可能な、適切に構成された「バスラッパー」それぞれＦＰＧＡ７４、７６、７８、８０、８２、および８４を介して検証エンジン１２８ビット時間多重化バス（ＴＭＢ）１１０にリンクされる。システム制御装置１１２は、時間多重化バス１１０を制御する。さらに、「スヌープ」バッファ６７には、「スヌープ」バッファバスラッパー７９が備えられ、ユーザが標準モード動作の割込みの後に、ＴＭＢ１１０で送信されるメッセージを見ることができるようにする。これらの値はデバッグに有効である。人間の話のテープ録音を収容するテーププレーヤー８９は、Ａ／Ｄ変換器ＩＣ６２に対する入力として使用され、それによって検証エンジン６０に対する試験ベクタの集合を提供する。
【００４２】
図３を参照すると、ＴＭＢ１１０は、その動作を時間スロット番号のシーケンスに分離し、各時間スロット番号で少なくとも１つのターゲットシステムバスによって取り扱われる通信の少なくとも一部を実行することによってターゲットシステムの構成要素を接続するバスの動作を連続してモデル化させられる。時間スロット番号のシーケンスは、検証エンジン６０の標準モード動作中に連続して反復される。特に、バス１１０は、Ａ／Ｄ出力バス２４およびＤＦＴバス２６（時間スロット番号１）、データプロセッサバス２８（時間スロット番号２）、離散信号（時間スロット番号３）、および出力バス２３（時間スロット番号４）の機能を実行する。代替の好ましい実施態様においては、システム制御装置１１２から時間スロット番号は送信されないが、各バスラッパー１４４が、独立してであるが、統一して時間スロット番号をシステムクロックおよび／またはシステム制御装置１１２から送信されるその他の信号から計算する。
【００４３】
ＩＩＩ．外部ツールへの検証エンジンコネクション
図２を参照すると、システム制御装置１１２は、標準インテル（Ｉｎｔｅｌ）Ｒ９６０バス１３４に接続される。インテルＲ９６０バスは、アダプタカード１３６を介して、その結果としてシステム制御装置１１２を制御するワークステーション１１４に接続される標準周辺コネクションインタフェース（ＰＣＩ）バス１３８に接続される。
【００４４】
ホストワークステーション１４は、後述されるサーバプロセス１１７も干すとする。さらにホストワークステーション１１４に接続されているのは、開発者の検証エンジン６０の構成および使用を容易にするＧＵＩ１１５をホストするグラフィックユーザインタフェース（ＧＵＩ）ホストコンピュータ１１９である。さらに標準ローカルエリアネットワーク１１６を介してホストワークステーション１１４に接続されているのは、音素認識回路１６のシミュレーションプログラム８６を実行しているシミュレーションホストコンピュータ１１８である。
【００４５】
デバッグプログラム１２６も、コンピュータ１１８によってホストされ、コンピュータ１１８に着席している開発者にパラメータ値送達する目的で８０５１マイクロコントローラのフラッシュＲＡＭ内の協調プログラムと対話する。
【００４６】
ＧＵＩ１１５は、開発者からシステム設計情報を受信する。それから開発者は、ＧＵＩを使用し、シミュレーションプログラム８６によってシミュレーションされなければならない部分と検証エンジン６０内に常駐する部分の間でターゲットシステム設計を分割する。それから、ＧＵＩ１１５はシミュレーションプログラム８６内に挿入される適切な設計データ、（後述され、典型的にはやはりワークステーション１１４に常駐する）サーバプロセス１１７用のデータ変換テーブル、および検証エンジン６０にロードされる構成データを作成する。さらに、ＧＵＩ１１５は、検証エンジン６０内に記憶され、ユーザ設計の一部を表すＦＰＧＡの中にロードされなければならないあらゆるＦＰＧＡ構成ファイルのユーザによる入力を容易にする。検証システム問題が発生すると、ＧＵＩは、デバッグモードで検証エンジンを制御するために使用することもできる。その他の動作中、ＧＵＩ１１５はスヌープバッファ６７からのデータ検索を容易にすることができる。それから、ＧＵＩ１１５はこの情報をフォーマットし、開発者に表示することができる。
【００４７】
ホストワークステーション１１４上で実行しているサーバプロセス１１７は、検証エンジン６０およびＧＵＩ１１５と対話するシミュレーションプログラム８６などの多様なソフトウェアプログラム間でのリアルタイム連続通信を担当する。要求がホストコンピュータ１１８または１１９から出現すると、サーバ１１７はその要求を、エンジンシステム制御装置１１２に適切なフォーマットにフォーマットし直し、接続するＰＣＩバス１３８を介して制御装置１１２にそれを送信する。検証エンジン６０がホストコンピュータ１１８または１１９に転送されるデータを有するとき、それはまずこのデータを、それをフォーマットし直してから、データを適切なホストコンピュータ１１８または１１９に戻すサーバ１１７に転送する。
【００４８】
シミュレーションプログラム８６は、ダミーハードウェアモジュール７２を介してターゲットシステム１０の残りの検証エンジン実現と通信する。ダミーハードウェアモジュール７２は、ハードウェアモデル７２の外部導線に、ターゲットシステム１０内の音素認識回路１６の入力／出力ピンの動作を模倣させるラッチの集合を含む。バスラッパー８４は、すべてのバスラッパー７４−８４が含む（後述される）標準レジスタを含む。したがって、ダミーハードウェアモデル７２は、定期検証エンジン６０動作中にダミーハードウェアモデル７２が残りの検証エンジン６０にとって実際の音素認識回路１６のように見えるように、他のハードウェアモデル６２から７０のすべてが行うのと同じように検証エンジン６０の残りに接続する。
【００４９】
技能のある人が認識するように、ダミーハードウェアモデル７２は、シミュレーションプログラム８６が新しい出力を持つたびにシミュレーションプログラム８６によって更新されなければならない。同様に、検証エンジンインプリメンテーションからの新規データ、ターゲットシステム１０の他の部分は、ダミーハードウェアモデル７２に対してだけではなくシミュレーションプログラム８６にも送信されなければならない。この通信は、ＴＭＢ１１０からの新しい、変更された入力を受信し、割込みを介してこのイベントをシステム制御装置１１２に通知するダミーハードウェアモデル７２で開始する一連のステップで実行される。それから、システム制御装置１１２は、ダミーハードウェアモデル７２内に記憶されるデータワードをフェッチし、それらをシミュレーションホストコンピュータ１１８に中継する。
【００５０】
システム制御装置１１２は、それが、ダミーハードウェアモデル７２に中継するシミュレーションホストコンピュータ１１８からの応答を受信するまでＴＭＢの動作を凍結する。このようにして、ダミーハードウェアモデル７２は、ＴＭＢ１１０に対して、実際のターゲットシステム１０内で音素認識回路によって提示されるだろう出力状態を提示する。これらの更新を行うのに必要な時間はシステム運用を低速化するが、それは、シミュレーションプログラム８６が実行し、データを送信し、ホストワークステーション１１４からデータを受信するのに必要なはるかに長い時間と比較すると、かなり小さい時間要求である。
【００５１】
ダミーハードウェアモデル７２は、おもに試験中に割込み信号を発光または受信する目的で、外部出力ピン７３および外部入力ピン７５も含む。
【００５２】
シミュレータに接続する検証エンジン６０での１つの潜在的な問題は、音素認識回路がソフトウェアでシミュレーションされる場合、ＤＦＴバス２６で発生する。このバスは、実際には、ターゲットシステムが動作中である時間の．０５％だけデータを送達している。しかしながら、バスは技術的にはつねに動作中であり、実際のデータ伝送が発生していないときにはすべてのゼロの集合を読み出すだけである。音素認識はネットワーク１１６によってホストワークステーション１１４に接続されるコンピュータ１１８でシミュレーションされる（図２を参照すること）ため、データをそれに送信するのに必要とされる時間の長さは、それがハードウェアモデル化された回路にとってよりはるかに長くなる。ダミーのすべてのゼロの出力がクロックサイクルごとにコンピュータ１１８に送信されなければならなかった場合、システム動作は徐行まで低速化されるだろう。この状況を回避するために、ダミーハードウェアモジュール７２は、ＴＭＢ１１０からのその入力が変更するときだけ、システム制御装置１１２に割込みを送信するように構成される。その結果として、ＤＦＴ　ＩＣ６４がＤＦＴを発しない限り、検証エンジン６０の動作は実際の予測される可動速度に相対的に近い高速ペースで進行する。前記に注記されたように、ＤＦＴは１０ミリ秒ごとに発せられるにすぎない。検証エンジン動作はＤＦＴの送達に必要とされる１，０００のターゲットシステムクロックサイクルの間、大幅に低速化するが、これはすべての総ターゲットシステムクロックサイクルの２％を表すにすぎない。
【００５３】
検証エンジン６０の１つの考えられる優位点とは、設計の多様な段階でのシステム構成要素は、システム試験のためにともにリンクされてよいという点である。この例では、データプロセッサ１８、ＤＦＴエンジン１４、およびＡ／Ｄ変換機１２はすべて完了された設計である。この執筆の時点では、さらに大きな設計に組み込むためにこのような設計を購入することはますます容易になってきている。しかしながら、この図解では、音素認識回路１６およびコンテキスト認識ポストプロセッサ４０は、ともに依然として開発中である。図示されている試験構成では、音声認識回路１６の設計は、最も注意深く精査されており、シミュレータ内で試験中に変更されてよい。試験のそれ以降の区切りで、音素認識回路１６の設計がＦＰＧＡにロードされ、ポストプロセッサ４０の設計がシミュレーションされ、さらにデバッグされ、開発されることが考えられる。
【００５４】
図４は検証エンジン６０の汎用化された物理図面であり、コアカードと呼ばれるハードウェアモデル／バスラッパーカードを、時間多重バス物理バックプレーン１２４のバスピンソケット１２２へのユニット内のプラグとして示す。各コアカードはバスラッパー１４０およびハードウェアモデル１４２を含む。図４Ａは、それぞれのコアカード１２０が１組のカード、つまりバスラッパーカード１２０ａと合わせハードウェアモデルカード１２０ｂに分割される代替の好ましい実施態様を示す。図４Ｂは、バスラッパーとハードウェアモデルの両方として信号ＦＰＧＡ１４１が使用される代替の好ましい実施態様を示す。図４Ｃに示されている代替の好ましい実施態様においては、システム制御装置１１２は、別個のプラグイン式のカードとしてではなく、物理バックプレーン１２４の底部上の一連の構成要素として実現される。
【００５５】
ＩＶ．バスラッパー構成
図５を参照すると、それぞれの汎用化されたバスラッパー１４０が、ＴＭＢ１１０バスデータ回線（ＢＤＬ）１４４の瞬間的な内容を採取し、時間スロット番号で、およびハードウェアモデルデータピン１４７の集合の適切なもので、取り付けられている汎用化されたハードウェアモデル１４２の入力が、この内容を使用できるようにしなければならない（本出願では、たとえワイヤの集合がバスラッパー１４０をハードウェアモデル１４２に接続するにしても、用語「ピン」が使用される。このような場合、ハードウェアモデルに最も近い各ワイヤの部分が、バスラッパー１４０にとってハードウェアモデルピン１４０および同様に見なされるだろう）。同様に、各バスラッパー１４０は、取り付けられているハードウェアモデルピン１４７の出力を採取し、それぞれの適切な時間スロット番号の間、ＴＭＢ　ＢＥＬ１１４がそれを使用できるようにしなければならない。入力機能と出力機能の両方とも、双方向ドライバ１４６の集合によって達成される。しかしながら、モデル化され、検証されているターゲットシステム１０では、多くの構成要素が、複数のバスを使用することにより通信してよい。したがって、いくつかのバスラッパー１４０は、複数の仮想バスのために複数の仮想バスラッパーの機能を果さなければならない。ある好ましい実施態様では、この特徴は、レジスタの完全な集合１５０、１５２および１５４を有することにより最高３つの仮想バスに達成される。特定の時間スロット中に特定のレジスタ１５０、１５２または１５４を使用するかどうかは、レジスタ集合１５０、１５２および１５４ごとに時間スロットバスライン１２６の集合からの入力を使用し、それぞれ制御ブロック１５５、１５６および１５７によって比較される時間スロット番号によって決定される。一致が検出されると、関連付けられたレジスタがカレント時間スロットの間、アクティブになる。（集合１５０、１５２、または１５４の）一次レジスタは、カレント時間スロット中にどのピン１４７がアクティブになるのかを記述し、これらのピンは対応するＢＥＬ１４４と連絡させられる。それらがどのように連絡させられるのか（つまり、それらが駆動しているのか、それとも受信しているのか）は、添付図７の説明で詳細に記述される。
【００５６】
２ビットｏｐコードが、ＴＭＢｏｐコード回線１２９の組で各バスラッパー１４０に送信される。ｏｐコードに含まれているのは、発行される任意のターゲットシステムクロックに対し正でなければならないターゲットシステムクロック表示信号である（図９の説明を参照すること）。さらに、特定のクロックドメインでのクロック入力ピンの場合、クロックドメインに対応する時間スロット番号−比較レジスタ１３０内に一致がなければならない。これが発生すると、ターゲットシステム事前クロック回線ドライバの１つが、ハードウェアモデル１４２内のターゲットシステム事前クロック入力ピン（複数の場合がある）１６８の集合の内の１つにクロック入力を発行する。
【００５７】
図３を参照すると、ターゲットシステム１０の場合、時間スロット番号３と４は、レジスタ１３０内の単独のエントリにすぎず、時間スロット３はクロックドメインＡに関連付けられており、それはポストプロセッサ４０のクロック入力ピンＢを除きあらゆるターゲットシステムクロック入力ピンを含む。図３に図示されるように、時間スロット番号３が発生するたびに、ｏｐコード内のターゲットシステムクロックビットは正になり、クロックドメインＡ（図３を参照）内のあらゆるピンがクロック入力を受け取るだろう。しかし、このビットは時間スロット番号４の１０２４番目の発生のたびだけに正になり、その時点では（およびこの時点だけで）クロックドメインＢの単独ピンがクロック入力を受け取るだろう。
【００５８】
（図５に示されている）この好ましい実施態様では、レジスタのそれぞれ１つは完全１２８ビット幅で、ＴＭＢ１１０上のバスデータ回線（ＢＤＬＳ）の数に一致する。代替の好ましい実施態様では、レジスタの６つの完全な集合、６倍スロット復号一致および接続される６集合ターゲットシステムピンがあるが、空間の制限のため、各レジスタは６４ビット幅にすぎない。
【００５９】
１つの好ましい実施態様では、バスラッパー１４０はＦＰＧＡで実現されるが、代替の好ましい実施態様では、バスラッパーは、図５に図示されている構造に類似する基本構造を持つ、配線による回路として実現される。バスラッパーがハードウェアモデルを実現するためにＦＧＰＡと（コアカードを供給してよい）ともに使用されることが予定される場合、ピンルーティングはハードウェアモデルＦＰＧＡ内で実行でき、このタスクを実行するニーズからバスラッパーを救うだろう。バスラッパーが、ＩＣまたは外部に接合されるＩＣコアなどの、配線によるハードウェアモデルとともに使用されることが予定される場合には、それはＩＣピン１４７からＴＭＢ１１０までのピンルーティングにはクロスバースイッチの集合を必要とするであろう。
【００６０】
Ｖ．試験検証プロセス
図６を参照すると、図２に示されている検証エンジン構成は、示されているステップによって（必要なＩＣを入手し、設置した後に）構成、実行されてよく、さらに高いレベルでの設計言語での構成要素レベルシステム記述の特定、およびＦＰＧＡでモデル化されるそれらのハードウェアアイテムのＦＰＧＡロード可能ファイル（ブロック３１０）の特定で開始する。これらのファイルは、典型的にはフロッピーディスクまたはＣＤ−ＲＯＭなどのコンピュータ読取り可能媒体で使用できるだろう。次に、ＧＵＩプログラム１１５は、ＦＰＧＡロード可能ファイルに一覧表示されているピンを、さらに高いレベルのターゲットシステム設計ファイルのピンと一致させようとし、ユーザは結果を補正する機会を与えられる（ブロック３１２）。
【００６１】
好ましい実施態様では、ユーザはハードウェアモデルのそれぞれ１つごとにバスラッパーを設計する（ブロック３１４）検証エンジンホストワークステーション１１４内でのコンピュータプログラムの実行を命令する。このプログラムの出力は、そのそれぞれがバスラッパーＦＰＧＡ内にロードされるＦＰＧＡロード可能ファイルに変換される（ブロック３１６）ネットリストの集合であり、ハードウェアモデルＦＰＧＡも、中央メモリ６８（ターゲットシステム１０のＤＲＡＭ２０に常駐しなければならない、データプロセッサ１８用のプログラム）の内容とともにこの時点でロードされる。
【００６２】
代替の好ましい実施態様では、各バスラッパーネットリストが、前述されるように、例えば、ネットリストの事前に設計された集合から選ばれ、１つの設計は３集合のレジスタ１５０、１５２および１５４を有し、別の設計は６集合のレジスタを有する。各バスラッパーは、ＦＰＧＡロード可能ファイルでＦＰＧＡがロードされた後にホストワークステーションによってロードされる多くのレジスタを含めることにより、多様なターゲットシステムバスの間で分散される、入力ピン、出力ピン、および入出力ピンのさまざまな構成に対処するために個々に区別される。これらのレジスタは、さらに詳細に説明されるだろう。この時点では、検証エンジンは、典型的には中央メモリ６８に記憶されているプログラムによって起動される（ブロック３１８）。加えて、外部刺激データ３１９の集合が導入されてよい。例えば、テーププレーヤー８９は、このデータをＡ／Ｄ変換器カード６２、架空例では図２に示されている検証集合アップに送る。
【００６３】
実行の各段階では、問題が検出されてよい（決定ボックス３２０）。問題が検出されない場合、実行が続行する。しかし、問題が検出されると、「スヌープ」バッファ６７がワークステーション１１４の赤に読み出され、問題の原因を突き止めるために検討されてよい（ブロック３２１）。スヌープバッファ６７は、ＴＭＢ１１０の最近の履歴のＢＤＬ１４値のすべてを記憶している。このアプローチが答えを出さない場合（決定ボックス３２３）、デバッグ（レジスタ）モードが使用され（ブロック３２２）、ワークステーション１１４の人間のオペレータが、コアカード１２０内のレジスタの内容を調べることができるようになる。問題が無視できる、あるいは検証されているターゲットシステムの部分を設計し直さなくても補正できる場合（決定ボックス３２４）には、試験は続行してよい（ブロック３１８）。それ以外の場合、試験は停止され、再設計が開始される（ブロック３２６）。
【００６４】
ＶＩ．ハードウェアモデルピン駆動方向の検出、およびバス競争および浮動状態の回避
双方向ピンを含む試験回路では、数多くの問題が発生する。第１に、双方向ピンが、どの方向で任意の時点でハードウェアモデル１４２によって駆動されているのかを判断する問題がある。これは数多くの理由から予測できない。第１に、ハードウェアモデルがＩＣまたは外部に接合されたＩＣコアである場合、製造メーカは、予想される模倣者より有利な立場を保つためにシステム設計のいくつかの要素の排他的な知識を保持するだろう。さらに、完全な回路記述が入手できる場合、回路記述とともにロードされたＦＰＧＡでの場合のように、それは双方向ピン状態を予測するためにかなりの努力を伴う。しかしながら、バスラッパーが、（バス出力を使用して）ピン１４７を駆動するのか、あるいはピンがバスデータ回線１４を駆動できるようにするのかを知るためには、駆動方向が決定されなければならない。
【００６５】
別の問題は、ターゲットシステムが完全に設計され、検証されていないという事実によって生じる。このため、２本のピンが同じ時間スロットの間に同じバスコネクション（ワイヤ）を駆動しようとするという状況がある場合がある。これが「バス競争」と呼ばれ、どちらの駆動信号も受信されないため、送信側回路が予測するように、それによりシステム動作がつまずく。関連した状況では、ある特定の時間スロット中に接続される双方向ピンの集合のどちらもコネクションを駆動せず、各ピンに、予測された信号よりむしろ無作為な雑音を受信させる。この状態が「バス浮動」として知られて言える。再び、これにより、典型的にはシステム動作はつまづく。従来の試験において、この種の問題は、検出するのがやや難しく、システム検証人員にとっての不満の源であった。
【００６６】
これらの問題を回避するために、検証エンジン６０は、各双方向ピンに関して、それが駆動中であるのか、それとも入力信号に対し開いているのかを判断するように設計されたサブシステムを有する。加えて、ある特定の時間スロット中に接続されなければならない双方向ピンの集合ごとに、システム制御装置は、バス競争があるのか、それともバス浮動があるのかを判断する。
【００６７】
【表１】
2004500609.tif 000003
【００６８】
図７を参照すると、切り替え可能接続回路１４６ａが、特定のターゲットシステムピン１４４ａが入力であるのか、出力であるのか、あるいは双方向ピン１４４であるのかに関係なく、各ハードウェアモデルターゲットシステムピンまたは回路ノード１４４をバッファに入れるために提供される。各バッファの駆動方向は、部分的には、表１に記載されるようなレジスタセット１５０からのコアカードレジスタによって決定され、入力によってピンがどのように処理されるのかをともに決定するスイッチ１８２と１８４に示される。駆動方向オプション１と２は自明である。オプション３は、バスラッパー用の特殊化した設計を必要とする。これは、典型的には、１本の特定のピンが、ハードウェアモデル内のピンのすべてまたは一部が現在の時間スロットまたは将来の時間スロットのための特定の方向を有する信号として動作する場合に実現されるだろう。駆動方向がある特定のターゲットシステム構成要素ピンによって信号で知らされるいくつかの種類のターゲットシステム内蔵バスがある。この種のバスの場合、ローカル論理回路は、信号ピンの状態を試験し、他のピンの駆動方向をこのピンの状態に基づかせるように構成されてよい。
【００６９】
オプション４では、ピンの駆動方向は、それがそれ自体駆動されているかどうかを判断するために、ピン１４７ａを試験することによって決定される。この機能を実行する回路は、それがバスラッパー１４０によって遭遇される状態を感知するため、ローカル状態センサである。この決定は、ピン１４７ａがソフトドライバ、つまり高インピーダンスドライバによって駆動できるかどうかを検出することによって下される。このソフトドライバは、シフトレジスタ２１８、および抵抗器Ｒ１によって形成される。シフトレジスタ２１８は、ターゲットシステム事前クロックＡ信号がブロック１３０から受信されると（図５）、ゼロから数え上げ始める。ターゲットシステム事前クロックＡの発行後の第１ＴＭＢクロックサイクルでは、実際のターゲットシステムクロックは、ターゲットシステムクロックＡ入力回線１６８上のハードウェアモデルに送信される。
【００７０】
入力ドライバ２４０がイネーブルされると、ピン１４７ａは、ターゲットシステムクロック信号が回線１６８に適用される瞬間にドライバ２４０から入力を受け入れるだろう。しかしながら、ピン１４７ａが双方向である場合、それはターゲットシステムクロックの到来直後に（つまり、次のターゲットシステムクロックパルスの前に）出力値も形成してよい。次のシステムクロックでは、シフトレジスタ２１８が、ＡＮＤゲート２４４に対する低入力によって入力ドライバ２４０をディスエーブルする。この目的とは、ハードウェアモデル１４２が駆動ピン１４７ａであるかどうかが判断される期間中、このような入力は試験と干渉し、潜在的にピン１４７ａからの出力と矛盾するため、ピン１４７ａへの入力を妨げることである。それ以降、シフトレジスタ２１８は、低を発してから、抵抗器Ｒ１に接続される回線で高を発する。
【００７１】
ハードウェアモデルピン１４７ａが（抵抗器Ｒ１のための）この高インピーダンスによって高と低の両方に駆動できる場合には、それはハードウェアモデル１４２によって駆動されていない。この場合には、第１フリップフロップ２２０が、第２フリップフロップ２２２とは異なる出力を有し、駆動方向ＸＮＯＲゲート２２４の出力は低になり、入力フリップフロップ２２５のＱ出力をハードウェアモデルピン１４７ａに送信する入力ドライバ２４０をイネーブルする。それ以外の場合、ＸＮＯＲゲート２２４の出力は高になり、ピン１４７ａからである出力フリップフロップ２２６のＱ出力をＴＭＢ　ＢＤＬ１１４ａに送信する出力ドライバ２４２をイネーブルする。それぞれＡＮＤゲート２６０および２６２は、競争状態または浮動状態をそれぞれ競争レジスタおよび浮動レジスタ２６２、２６６に報告する。このような競争または浮動の状態は、例えば一次レジスタ１が駆動方向を決定するために選択されたが、このレジスタが決定した駆動方向がシフトレジスタ２１４およびフリップフロップ２２０と２２２によって実行される試験と矛盾していた場合に発生するだろう。１組のレジスタ２６４と２６６の内容は隠され、ともに論理和を取られ、バスラッパー１４０から「エラー」出力を生じさせる。マスク操作は、競争または浮動が予想される、および／または許容できる例があるため実行される。マスクはこの現実を反映し、予想されたあるいは許容できる競争または浮動が発生したときにエラーフラグが発行されるのを妨げるためにユーザによって構成される。
【００７２】
図８、図９および図１１を参照すると、システムレベルでバス競争状態およびバス浮動状態を検出するタスクは、システム制御装置１１２とダミーハードウェアモデル７２の両方によって実行される。システム制御装置１１２（図９）は、競争または浮動がエラーを示さないときに、競争エラーまたは浮動エラーが発行されるのを防ぐために、それぞれ１２８のビットから構成されている競争マスクアプリケーション論理回路４０２、および浮動マスクアプリケーション論理回路４０４を有する。例えば、浮動マスクアプリケーション論理回路４０４を使用しない場合に、特定のＴＭＢ　ＢＤＬ１４４が使用されると、これはシステム制御装置によって競争エラーとして誤って報告されるだろう。ダミーハードウェアモデル７２は、シミュレーションソフトウェアプログラムでは標準的である２ビットフォーマットで「高」、「低」、「競争」または「浮動」のどれかの存在を記録し、報告するだけである。モデル７２はエラー検出時に処置を講じないため、競争または浮動がエラー状態を示さない例でエラーを宣言するのを回避するために、競争検出および浮動検出を隠す必要はない。
【００７３】
システム制御装置では、競争および浮動マスクレジスタメモリ４０６（図９）は、アクティブ時間スロット、および時間スロットでアクティブである各基板ごとに適切なマスクの中にロードされる１２８ビットのワードを含む。マスクでは、それぞれの「０」がそれぞれ競争状態または浮動状態がないかチェックされなければならないビットを示し、「１」はこのようにしてチェックされてはならない各ビットがないか示す。マスク操作を容易にするため、コアカード時間スロットレジスタ４０８が、どのコアカードが各時間スロットの間にアクティブであるのかを示す。「定期」モード動作では、各時間スロットの前、それぞれの時間スロットアクティブカードのピン駆動レジスタがポーリングされる。すなわち、図１１を参照すると、時間スロットＮが増分された後（ブロック６２０）、駆動方向データ（時間スロット番号比較に応じたレジスタセット１５０、１５２、または１５４からの一次レジスタ１が各アクティブコアカードから順番に（ブロック６２２と６２４、および決定ボックス６２６と６２８）読み出される。図８を参照すると、各ビット、回線１４７ａ（図８）の結果が第１フリップフロップ４１２に読み込まれ、その出力が駆動する第１フリップフロップ４１２、およびその他の入力が再び回線１４７ａである２つの入力ＡＮＤゲート４１４を備える。ゲート４１４の出力は第２フリップフロップ４１６に送り込まれる。バス競争は高くなるフリップフロップ４１６の出力によって示されるが、バス浮動はプロセスの最後で低状態のままとなる第１フリップフロップ４１２の出力によって示される。第１フリップフロップ４１２出力（段階１）は、時間スロットＮ（ブロック６３２）の間浮動マスク適用機構４０２で隠され、第２フリップフロップ４１６出力（段階２）は競争マスク適用機構４０４で隠される（ブロック６３０）。試験結果は、ブロック５５８とブロック５７０の中でともに論理和を取られ、結果として生じるビットは、コアカード割込みピン５７２上のシステム制御装置でコアカード１２０から受け取られる割込みで論理和が取られる。このため、ピンのどれかに関してバス競争またはバス浮動のどちらかが検出される（決定ボックス６３４と６３６）と、割込みがホストワークステーション１１４（ブロック６３８）に送信される。バス競争またはバス浮動が検出されない場合、ＴＭＢ１１０がハードウェアモデル１４２間での転送の現実を可能にするために起動される（ブロック６４０）。
【００７４】
前述されたポーリングを実行するためには、システム制御装置１１２が、各コアカーアド１２０を別個に処理できることが必要である。実際にはこれが達成できるようにするための機構がある。時間多重化バスでは６本のコアカード選択回線５４０（図９および図１０を参照すること）がある。各コアカードスロットは、６本のカード選択回線５４０によって一致されるときに、挿入されたカードの選択を引き起こす、一つの６ビット配線済みコードを有する。６本の回線が番号６３、（１つの特定の実施態様における）その最高可能数を表すとき、これはカードが特に選択されていないこと、およびすべてのカードが時間スロット回線１２６に呼応する必要があることを示す。
【００７５】
標準モード動作の２つのそれ以外のサブモード、つまり高速サブモードおよびチェックサブモードが、システム制御装置１１２のために存在する。高速モードでは、ポーリングが実行されない。バス競争または浮動は未検出のままとなるだろうが、システムは定期サブモードでは何倍も高速で動作するだろう。高速サブモードは、典型的には、ターゲットシステムが大いに検証され、かなりの信頼度で使用できたときに使用されるだろう。チェックサブモードは、以下の問題に対処する。
【００７６】
検証を必要とするいくつかのシステムは、完全には同期でないことがある。ときどき、コネクションの検証シーケンスのために非同期信号が時間内に正しく表されないことが考えられる。例えば、非同期離散信号は、実際のシステムで発生する内蔵バスクロックの前に発生するが、検証エンジン６０内では後に表示される可能性がある。非同期離散信号がバス通信への正しい時間関係性でモデルかされたならば、バス状態の内の１つは異なるだろうと考えられる。そこで、チェックモードでは、すべての非同期通信がその適切な効果を出すことができるためには、第１インスタンス作動の出力が第２インスタンス作動によって正確に一致されるまで、毎回、各時間スロット番号が、ターゲットシステムクロックが発生されなくても繰り返される。
【００７７】
ＶＩＩ．システム制御装置の動作
図９および図１０は、それぞれ標準モードおよびデバッグモード中にアクティブであるシステム制御装置１１２のそれらの部分を示す。９６０バス１３４からの入力は、９６０バス１３４上の限られた数のワイヤがそれ以外の場合許可するよりはるかに幅広い情報のアレイが、ワークステーション１１４によってシステム制御装置１１２に送達できるように、符号化される。したがって、システム制御装置の左側に示されるポートは、物理ピンとしてよりむしろアドレス空間内に存在する。
【００７８】
システム制御装置１１２には３つの本質的なタスクがある。第１に、それはシステム試験の始めにコアカードＦＰＧＡをロードし、試験しなければならない。第２に、それは標準モードでＴＭＢ１１０を循環しなければならない。これは、前述された競争／浮動チェックを含む。第３に、デバッグモードでは、それはホストワークステーション１１４からコアカード１２０へ情報に対する要求を転送し、関心のあるコアカード１２０からホストワークステーション１１４に情報の回答を転送して戻さなければならない。
【００７９】
図１０を参照すると、ＦＰＧＡロードポート５０８を通したＦＰＧＡのロードは、技術では古く、ここでは詳細に取り扱われないだろう。情報はＦＰＧＡロードポート５０６上のホストワークステーション１１４から受信され、ＦＰＧＡロード回線５０８からコアカードに創出される。ＪＴＡＧインタフェースポート５４２およびＪＴＡＧインタフェース回線５４４の集合が、標準ＦＰＧＡ試験を、システム制御装置１１２を通してホストワークステーション１１４によって実施できるようにする。
【００８０】
図９を参照すると、標準モードでは、開始時間スロット番号ポート５８４で示される時間スロット番号で、および開始基板番号５８４で示される基板で開始するシーケンサ５１０は、時間スロットポート５１３の番号で示されるように各時間スロットを通って順番に並ぶ。各時間スロットが、（レジスタ４０８によって知らされる）各コアカードを通して前述されたバス競争／浮動を達成するため（ロードマスク記憶装置４０６およびレジスタ４０８用のポートがあるが、簡略さのためそれらは図示されていない）。周波数シンセサイザ５８０によって生じるシステムクロック５１４は、検証エンジン６０用の基本的な時間単位である。周波数シンセサイザ５９０によって生じるシステムクロック５１４の周波数は、ポート（図示されていない）を通してワークステーション１１４から設定されてよい。この柔軟性により、クロックは、正しいシステム動作を保証しつつ、システム構成要素の指定された集合に関して可能な限り速く実行できる。サイクルカウントポート５１２は、動作が自動的に停止される前にシーケンサ５１０によって実行される時間スロットサイクルを設定する。加えて、複数のブレークポイント条件が、適切なコアカード１２０の二次レジスタを適切にロードすることによって各コアカード１２０上で設定されてよい。カレント時間スロットポート５３２およびカレント基板番号ポート５３４は、ワークステーション１１４に量を渡し、その結果、それは、それが開始基板番号ポート５８２および開始時間スロット番号ポート５８４を正しく設定することによって終了された動作を開始することができる。
【００８１】
ＯＰコード論理回路５１６は、ＯＰコード回線１２９上で時間スロットごとにｏｐコードを発行する。このコードが、各コアカードに以下の情報を知らせる。Ｉ．標準モード（モード選択ポート５３６から選ばれる標準モードまたはデバッグモード）
Ａ．ターゲットシステムクロックを生成する、または生成しない。
Ｂ．読取り／書込みサイクル（すべての選択されたカードが、データの読取りと書込みの両方を行う。）
Ｃ．読取りサイクル：すべての選択されたカードがＴＭＢにデータを読み込む。
Ｄ．書込みサイクル：すべての選択されたカードがＴＭＢにデータを書き込む。
Ｅ．動作なし
ＩＩ．デバッグモード
Ａ．書込みまたは読取りサイクル
Ｂ．一次レジスタ番号（０−７）
【００８２】
ターゲットシステムクロックタイミングブロック５２０は、定期的にターゲットシステムクロックに、ＯＰコード内で反映されるように命令する。これは、図５の説明に記述されるようにバスラッパーによって処理される。ターゲットシステムクロック用のコマンドの周期性は、時間スロット番号ごとの定期パターンとしてユーザ定義される。例えば、発生のたびに時間スロット番号７が、ターゲットシステムクロックを含んでよい。
【００８３】
ターゲットシステムクロックが発行されると、ターゲットシステムクロックに対応するクロックドメインに区分化されたあらゆるターゲットシステムクロックピンがそのバスラッパー１４０からクロック入力を受信する。
【００８４】
標準モードでは、１２８バスデータ回線１４４の集合に対する入力が、競争／浮動段階１および段階２のラッチ４１２と４１６の集合に送信される。競争マスクおよび浮動マスクは、適用論理回路（ＡＮＤゲートバンク）４０２と４０４によって、前述されたように適用される。競争／浮動最終検出ブロック５５８が、マスク適用レジスタ４０２と４０４から結果の論理積をともに取る。この状態は、ブロック５７０によって、回線５７２からの他のコアカード割込みとブロック５７０によってともに論理和が取られ、割込みポート上でホストワークステーション１１４によって使用できるようになる。しかしながら、デバッグモードでは、回線セット１４４上の値は、バスデータポート５５６（図１０を参照すること）に直接的に逸らされ、その結果システム制御装置１１２はＴＭＢ１１０からホストワークステーション１１４へのダクトとして動作する。
【００８５】
図１０は、それがデバッグモード中に機能上出現するときのシステム制御装置１１２を示す。カード選択機能およびコアカード内のレジスタがデバッグモードの基礎を形成し、それによりシステム制御装置１１２は、問題検出後に試験中のシステムをデバッグするためにホストワークステーション１１４の人間のオペレータを補助できるようにする。一次レジスタは、ＯＰコード回線１２９上で、前記に注記されたように、ポート５５２で受信され、ＯＰコードの一部として送出される一次レジスタアドレスビットによってアドレス指定されてよい。レジスタ内容はバスデータ回線１４４のセット上で受信され、仮想バスポート５５６からワークステーション１１４に送信される。同様に、レジスタ内容は、ポート５５６でワークステーション１１４から受信され、ワークステーション１１４が回線１４４上でコアカード選択ポート５７６を介して選んだ（およびコアカード選択回線５４０上のバスで送信した）コアカードに送信されてよい。このようにして一次レジスタ＃２をロードすることによって、任意の二次レジスタがアドレス指定されてよい。加えて、特定の時間スロット動作が、時間スロット選択ポート５７４によって並べられてよい。
【００８６】
ＶＩＩ．仮想試作システム―架空設計の説明
図１２を参照すると、および図解のために、本出願は、架空回路設計者が架空の将来のチップに実装されたシステムの一部２０１０を設計することを望んでいる特定のケースを記述する。部分２０１０は、８０５１マイクロコントローラ２０１２、デジタル信号処理エンジン２０１４、音素認識回路２０１６、および液晶ディスプレイ２０２２を駆動するビデオプロセッサ２０２０を含む。設計者は、自分の設計のためのゲートおよびさらに高いレベルの構成要素を選択し、ともにリンクし、その結果がコンピュータモニタに表示できるようにする１つの共通した電子機器回路設計ツールを使用する。設計者は、それぞれが設計ツールと関連付けられたライブラリの一部である回路記述によって表されているデジタル信号処理エンジンおよびビデオプロセッサを選択し、一連のマウスクリックにより両方の要素を自分の回路図に載せる。しかしながら、音素認識回路は、ゲートレベルから構築されなければならない。設計者は、自分が名前を付ける多様な要素を通信回線の集合とともにリンクさせる。設計者は、音素認識回路２０１６を構成しようと努力するにつれて、その動作をチェックするために（設計ツールに提供される）ＤＳＰエンジン２０１４からの出力を使用できるようになる。設計者は、８０５１マイクロコントローラ２０１２用のソフトウェアをすぐに作成できるが、８０５１マイクロコントローラ２０１２を使用することを決定し、音声認識回路２０１６が完了した後に、ソフトウェアを検証することを決定した。
【００８７】
設計者は、自分の初期の音素認識回路２０１６設計を完了した後、初期の方式に従ってプログラムされた８０５１マイクロコントローラ２０１２とともに動作する４つの構成要素の設計の検証を希望する。言うまでもなく、彼はデジタル化された音声信号のバンクを必要とし、彼はこれらを持ち、コンピュータ２０８９を介してＤＳＰエンジン２０１４の入力に接続されてよいフロッピーディスクを提供する。この時点で、設計者はＤＳＰエンジン２０１４、音素認識回路２０１６、およびビデオプロセッサ２０２０の回路記述を有し、自分が使用することを希望するマイクロコントローラ２０１２を特定した。これらのすべてはさらに高水準の設計言語総合システム記述でともにリンクされる。しかしながら、彼は、ＤＳＰプロセッサ２０１４、音素認識回路２０１６またはビデオプロセッサ２０２０のどれかの物理回路レイアウトを持っていない。この時点で、設計者は、本発明の主題である仮想試作システム２０５０を使用し始めてよい。
【００８８】
設計者の目標は、さらに詳しく後述されるだろう、図１３に図示されているシステムなどの仮想試作システム２０５０を構成することである。システム２０５０は、８０５１マイクロコントローラＩＣ２０６６、ＤＳＰエンジンＩＣ２０６４、ビデオプロセッサ２０６８およびポート２１１２として構成されるＦＰＧＡをともにリンクする再構成可能相互接続アセンブリ２１１０を有する検証エンジン２０６０を含む。トグルレジスタ２３１０を含み、存在する場合どのピンがトグルされないまま残されたのかを報告するトグル検証報告システム。サーバプロセス２１１７をホストするホストワークステーション２１１４は、検証エンジン２０６０を、（音素認識回路２０１６の動作をシミュレーションスするための）シミュレーションプログラム２０８６をホストするシミュレーションホストコンピュータ２１１８に接続する。生め込まれたソフトウェア開発コンピュータ２８００は、デバッグツール２８１２を含む埋め込み設計環境２８１０をホストする。
【００８９】
ＩＸ．仮想試作システム−グラフィックユーザインタフェース
やはりワークステーション２１１４を介して接続されているのは、ＧＵＩ２１１５をホストするグラフィックユーザインタフェース（ＧＵＩ）ホストデバイス２１１９である。ある好ましい実施態様においては、再構成可能相互接続アセンブリ２１１０は、原出願および関連出願に図示され、記述されている形式を取る。アセンブリ２１１０の異なる好ましい実施態様は、バスラッパー２１４０の集合によってともにリンクされている構成要素２０６４，２０６６、２０６８および２０７２を示す、図２０に示されている。ある好ましい実施態様では、各バスラッパー２１４０は、構成要素の双方向ピンを収容するために関連出願の図１７に図示されているものに類似した双方向駆動アセンブリの集合を含むだろう。図１９に示される実施態様では、時間多重化は不必要である。
【００９０】
ＧＵＩ２１１５は、仮想試作システム２０５０の構成を容易にする。最初に、ＧＵＩ２１１５が、Ｖｅｒｉｌｏｇ言語またはＶＨＤＬのどちらかで総合的なシステム記述を含むファイルを示すようにユーザにプロンプトを出す。ユーザがこのファイルを示した後、ＧＵＩ２１１５は、どの構成要素がシステムで表されているのかを決定するために、ファイルを自動的に解析する。図１４を参照すると、ＧＵＩはターゲットシステム構成要素、マイクロコントローラ２０１２、音素認識回路２０１６およびＤＳＰ２０１４を、それから（ワークステーション２１１４に関連付けられるマウスの使用により）どの構成要素が検証エンジン２０６０でモデル化されなければならないのかを指定するように依頼されるユーザに対して、列形式で表示する。図１５に図示されているように、設計者はＤＳＰエンジン２０１４およびマイクロコントローラ２０１２、およびビデオプロセッサ２０２０を指定する。音素認識回路２０１６は指定されたばかりで、たぶん
【００９１】
重大な変更を経験するため、設計者は、自分がシステムを設計するために使用してきた、ネットワークによってワークステーション２１１４に接続される同じワークステーションでプログラムのこの部分をシミュレーションすることを決定する。ＧＵＩは、関連付けられたシミュレーション実行コンピュータ２１１８が、検証エンジン２０６０に示される構成要素をシミュレーションすると推定する。
【００９２】
図１６を参照すると、ＧＵＩ２１１５は、検証エンジンでモデル化される構成要素の列とともに仮想構成要素（ＶＣ）のライブラリを示す列を表示する。ＶＣは、少なくとも３つの基本的な形式の内の１つを取ってよい。それは、ＦＰＧＡロード可能ファイル、またはＩＣ、または外部に接合されたＩＣコアを含んでよい。これらのケースのどれかにおいて、ＶＣパッケージがピン記述ファイルを含むだろう。現在の例では、ＤＳＰエンジンＩＣおよび８０５１マイクロコントローラＩＣはすでに検証エンジン２０６０に物理的に含まれ、ＧＵＩライブラリ内に関連付けられたピン記述ファイルを有する。設計者は、検証エンジン２０６０内でモデル化されたターゲットシステム構成要素ごとにＶＣを示すようにプロンプトを出される。ＶＣのパッケージがユーザに販売され、ユーザがＶＣの専用のライブラリも構築することが期待される。いくつかのケースでは、ＶＣは、特定のターゲットシステムをモデル化することを予期して、取得され、ワークステーション２１１４内にロードされるだろう。現在の例では、設計者は、自分がすでに精通しており、自分が設計ツール内で使用してきたビデオプロセッサモデルと同じ入力／出力方式および動作特性を有するビデオプロセッサＶＣを見つけ出す。しかしながら、そのビデオプロセッサモデルとは異なり、彼がＧＵＩ２１１５内で特定するビデオプロセッサＶＣは、さらに大型のチップに実装されたシステムの一部としてビデオプロセッサＶＣを作成するための生産ツールの完全な集合と関連付けられる。この情報は、実際のビデオプロセッサネットリストとともに設計者が利用することはできないが、生産ツールを有し、料金のためにビデオプロセッサＶＣを含むＩＣを作成する会社がある。しかしながら、ピンリストと結合される符号化されたＦＧＰＡロード可能ファイルは使用可能であり、ビデオプロセッサＶＣを選ぶ際の設計者は、この関連付けられたＦＰＧＡロード可能ファイルが、ビデオプロセッサエンジン構成要素をモデル化するために使用されることを示す。
【００９３】
この際、ＧＵＩ２１１５は、ビデオプロセッサＶＣ用のピンリストを、後述される初期設計プロセスの間に設計者によって提供されるシステム接続回線名と合わせる。図１７を参照すると、この合わせ動作の結果は、並んだ列に表示される。良好な一致が選ばれる場合、ＧＵＩ２１１５がこの合わせ動作を高い信頼度で実行できるケースがある。反対の極端では、ユーザがエラーをして、それがモデル化するように指定されるシステム構成要素にまったく一致しないＶＣネットリストファイルを指定すると、ピン割当てのだいぶぶんが行われないままとなるだろう。これらの２つの極端な状態の間では、一致は通常良好であるが、ＧＵＩ２１１５が合わせることができない、または不確かな一致が形成されるかのどちらかの数本のピンがあるケースもあることが予測される。一致を確信するレベルは、ピンを強い確実性を示す第１色、より少ない確実性を示す第２色、およびほとんど確実性がないことを示すか、一致するピンが見つけられないだろうことを注記する別の色で一致するピンの列表示の中にカラーコード化される。近いが、正確な一致ではなかった仮想構成要素が指定できるというのは電気エンジニアリングの初心者にとってはおかしなことに見える可能性があるが、多くの設計は、設計者にとっての便宜として存在する、および／またはなんらかのときおり望ましい機能を実行する数本のピンを含む。言うまでもなく、ＶＣの主要な機能上のピンとターゲットシステム回路記述の間に食い違いがある場合、ＶＣはターゲットシステム回路を検証するために使用できないだろう。しかし、多くの場合、単にＶＣピンを使用しないことによって、あるいは便宜上ときおり使用されるだけのピンを排除するための軽微なターゲットシステム再設計によって、軽微な簡便ピンの間の食い違いを矯正することが可能である。ユーザは、多様な列エントリを指し、クリックすることによってピンマッピングを変更する機会を与えられる。この同じプロセスが８０５１マイクロコントローラ２０６６接続ピンおよびビデオプロセッサＶＣ２０６８接続ピンに対して実行されなければならない。
【００９４】
例のケースでは、設計者は、それに関してはターゲットシステム回路記述に同等物がない、２本のピンがビデオプロセッサＶＣ列で強調表示されていることに気付く。幸いなことに、これらは、その使用がオプションであるバス制御ピンである。しばらく、設計者はこれらの未接続を音素認識回路に任せることを決めるが、その存在を自分が将来利用することを希望する可能性のある何かとして注記する。
【００９５】
図１７に示される次のステップでは、ＧＵＩ２１１５は、ピンを別個のクロックドメインに区分する。ユーザは、ＧＵＩ２１１５によって実行されるクロックドメイン区分化の望ましくない特徴を補正し、ドメインごとにクロック速度を指定するようにプロンプトを出される。例のケースでは、すべてのクロック入力ピンが１つの共通したクロック入力信号を共用する可能性がある。
【００９６】
図１９を参照すると、ユーザは、次に、動作の開始時にターゲットシステムをリセットするための初期化シーケンスを指定するようにプロンプトを出される。このプロセスは、素の内のどれか１つが選択され、初期化入力を与えられてよい信号のリストによって容易にされる。この場合、ユーザは、製造メーカによって提供される８０５１チップのブートシーケンスを指定する。
【００９７】
次に、各離散信号およびターゲットシステムバスがユーザに表示され、ユーザは、（自動的にシミュレーションコンピュータに送信されるターゲットシステムのシミュレーション済みの部分に送信される信号に加えて）シミュレータに送信される必要のあるバス信号を指定する機会を与えられる。例のシステムは非常に小型であるため、この特徴を示す機会はほとんどない。しかしながら、音素認識回路２０１６がシミュレーションされない場合、その出力は、設計者が表示のためにシミュレーション実行コンピュータに転送することを希望していた可能性のある自然アイテムだろう。
【００９８】
次に、ＧＵＩ２１１５は、検証エンジン再構成可能相互接続アセンブリ２１１０を構成しなければならない。相互接続アセンブリ２１１０の形式に関係なく、これは、構成要素ピンを接続アセンブリ回線に割り当てることを意味する。例えば、接続アセンブリが、（関連出願でのように）単一時間多重化バスの形を取る場合、それぞれのアクティブ構成要素ピンがバスラインおよび時間スロットに割り当てられなければならない。多くのターゲットシステムの場合、任意の順序で進行する非常に簡略なアルゴリズムが、ほとんど人が割当てを行うようにこれを行ってよい。このプロセスの結果が、各ターゲットシステム信号がバスライン／時間スロット組み合わせに割り当てられる「構成ファイル」と呼ばれる。構成ファイルは、バスラッパーを設計するために使用される。しかしながら、多くの場合、既存のバスラッパーは、容易に使用されてよく、バスラッパー設計は必要とされていない。バスラッパー構成および動作のより完全な説明については、関連特許出願を参照すること。
【００９９】
最後に、ＧＵＩ２１１５は、構成ファイルをサーバ２１１７に送信し、その結果サーバ２１１７はダミーソフトウェアモジュール２０８６と検証エンジン２０６０間の通信を手配してよい。サーバプロセスがどのようにしてこれを行うのかを理解するためには、後述されるシミュレーションホストコンピュータ２１１８の構造から検証エンジン２０６０コネクションまで理解することが必要である。
【０１００】
Ｘ．仮想試作システム―検証エンジンおよびシミュレータの統合
図１３に戻ると、音素認識回路２０１６は、ダミーハードウェアモデル２０７２により検証エンジン２０６０内で表される。モジュール２０７２に対する一種の鏡像として、ダミーソフトウェアモジュール２７１０は、シミュレーションプログラム２０８６のために、検証エンジン２６０内で検証中のターゲットシステム２０１０構成要素の部分を表す。ちょうどダミーハードウェアモジュール２０７２が完全に機能的なハードウェアモジュールから区別できないように、検証エンジン２０６０、ダミーソフトウェアモジュール２７１０の残りもシミュレーションプログラム２０８６の残りにとってターゲットシステム２０１０の構成要素をシミュレーションする完全に機能的なソフトウェアモジュールから区別できない。つまり、ダミーソフトウェアモジュール２７１０は、まるでダミーソフトウェアモジュール２７１０が実際に検証エンジン２０６０で検証中である構成要素の論理機能を実行しているかのように、シミュレーションプログラム２０８６の残りがアクセス可能である状態を形成する。同様の関係性においても、シミュレーションプログラム２０８６は、検証エンジン２０６０がアクティブである間はイナクティブであり、検証エンジン２０６０は、シミュレーションプログラムがアクティブである間はイナクティブである。ダミーハードウェアモジュール２０７２がその状態での変化に気付くと、それは、再構成可能相互接続アセンブリ２１１０の動作を停止し、それ以降サーバプロセス２１１７を収容するワークステーション２１１４にダミーハードウェアモジュール２０７２の内容を送信するシステム制御装置２１１２に割込みを送信する。サーバプロセスが、この受信されたデータを、それがシミュレーションホストコンピュータ２１１８に送信する表の中に入れる。
【０１０１】
ダミーソフトウェアモジュール２７１０は、新規入力によって支配される新しい状態を受け入れ、これらの新しい状態は、ダミーソフトウェアモジュール２７１０の状態が再び変化するまで実行することが許可されるプログラム２０８６の残りでの活動を生じさせ、その点で、ダミーソフトウェアモジュール２７１０はシミュレーションプログラム２０８６の実行を停止し、コードをコンピュータ２１１８のソケットから送出する。コードはダミーモジュール２０７２の一部である記憶装置バッファ２０７３をミラーリングするサーバ２１１７内の表に入れられる。この結果を達成するために、サーバ２１１７は、検証エンジン動作の開始前に、それがシミュレーションホストコンピュータ２１１８から受信する信号内の各時間位置をテーブル位置に変換する変換テーブルを構築しなければならない。同様に、サーバ２１１７は検証エンジン２０６０からデータを受信すると、変換テーブルを使用し、テーブル位置から、コンピュータ２１１８の入力／出力ソケットにつながるデータ回線上での時間位置に変換する。変換テーブルは、ダミーソフトウェアモジュール２７１０に、およびダミーソフトウェアモジュールから送信されるパラメータの時間位置が任意に設定されるのと同時に、ＧＵＩ２１１５によって作成される構成ファイルから計算される。
【０１０２】
前記に注記されたように、埋め込みソフトウェア開発コンピュータ２８００は、デバッグツール２８１２を含む埋め込み設計開発（ＥＤＥ）２８１０をホストする。埋め込み設計環境（ＥＤＥ）は、ｗｗｗ．ｔａｓｋｉｎｇ．ｃｏｍ．でインターネット上で連絡されてよいタスキング（ＴＡＳＫＩＮＧ）のものであってよい。ＥＤＥ２８１０は、典型的には、やはりタスキング（ＴＡＳＫＩＮＧ）から入手可能なクロスビュープロ（ＣｒｏｓｓＶｉｅｗ　Ｐｒｏ）などのＲＯＭモニタとともに使用されるだろう。ＲＯＭモニタは８０５１メモリ領域内に常駐し、ユーザがＥＤＥ２８１０を使用し、ブレークポイントを８０５１で実行中であるコードの中に導入できるようにする。ブレークポイントに遭遇すると、ユーザ選択されたメモリ内容またはＣＰＵレジスタ内容がユーザに送達される。ＲＯＭモニタは、それがＵＡＲＴポート上で受信するコードの第１行が、後に続くコードの第１行のメモリロケーションを示すという規約に従って動作する。したがって、このメモリロケーションは、所望されるブレークポイントに設定され、ＲＯＭモニタ内のブレークポイント処理ルーチンを指すだろう。このようにして、コンピュータ２１１８の表示画面に着席しているユーザは、８０５１マイクロコントローラプログラムの動作中にブレークポイントを設定し、定期的にこのプログラム内に定義されている多様な変数の値を調べるだろう。
【０１０３】
入力／出力ピントグルレジスタ２３１０の集合は、それぞれ対応するＶＣでアクティブな入力／出力ピンごとに１ビットを含む。各トグルレジスタビットは、対応する入力／出力ピンが状態を切り替える（トグルされる）と、ゼロから１に変化する。これらのビットのすべては、トグル論理積装置２３１２によってともに論理積が取られ、その結果このＡＮＤ演算の結果が１に等しいとき、試験されているシステムのあらゆる入力／出力ピンが実行されたという正の徴候がある。さらに、デバイス２３１２は、ホストワークステーション２１１４にトグルされていないすべてのピンのアイデンティティを転送するための報告機能を有し、それによって検証エンジニアが試験を完了するのを補助する。
【０１０４】
ＸＩ．行動モデル化カードを有する検証エンジン
図２１は、モータ制御装置３０１２を含む作動アセンブリ３０１０の形を取る架空ターゲットシステムのブロック図を示し、３相ブラシレスＤＣモータアセンブリ３０１４アセンブリ３０１０は、本発明を明確に説明する目的だけに提示され、それはアセンブリ３０１０などのアセンブリの検証試験のための方法と関係する。
【０１０５】
モータアセンブリ３０１４は、モータ３１６および可変負荷３０１８を含む。実践では、モータアセンブリ３０１４はロボットのアームの位置を決定するだろう。負荷は、存在する場合、ロボットが持ち上げていた物体に応じて変化するだろう。モータ３０１６の回転体位置は、モータ制御装置３０１２に電気的に接続されている回転体位置エンコーダ３０２０によって検出される。モータ３０１６は、３相切り替え調節器３０２２の出力によって駆動される。
【０１０６】
モータ制御装置３０１２は、位置コマンド入力装置３０３０からの入力を受け入れる。ロボットの例では、このデバイスは、人がロボットアーム位置を命令できるようにするアクチュエータだろう。デバイス３０３０を介して命令される位置は、命令された位置を現在位置に比較し、現在位置から所望の位置に回転体を移動するための速度および加速予定を計算するマイクロコントローラ３０３２の中に送り込まれる。マイクロコントローラ３０３２は、マイクロプロセッサ３０３４、およびモータ制御タスクを実行するためのプログラムをホストするメモリ３０３６を含む。切り替え調節器入力変換ボックス３０４０は、整流補正コマンドおよび速度補正コマンドを受け入れ、速度補正機能および整流機能を達成するために、切り替え調節器３０２２のトランジスタを作動する一連のパルスを決定し、送信する。回転体位置コードフォーマット回路３０４２は、エンコーダ３０２から回転体位置コードを受け入れ、それらをマイクロプロセッサ３０３４にとって許容できる形式に変換する。
【０１０７】
図２２を参照すると、作動アセンブリ３０１０の動作を検証するように適応されている検証システム３１１０は、本出願の前記図に示される任意の構造に類似した構造を有してよい相互接続アセンブリ３１１２を含む。相互接続アセンブリ３１１２は、マイクロプロセッサカード３１１４、メモリ３０３６がターゲットシステム内で持つモータ制御プログラムを持つ中央メモリカード３１１６、回転体位置コードフォーマット回路ハードウェアモデル３１１８、および回転体位置コードフォーマット回路ハードウェアモデル３１２０を接続する。ハードウェアモデル３１１８と３１２０は、過去の出願に記述されるように、おそらくそれぞれ利用者書き込み可能ゲートアレイ（ＦＧＰＡ）上で実現されるだろう。やはり相互接続アセンブリ３１１２に接続されているのは、ピコプロセッサ３１３２、つまりともにカリフォルニア州パロアルト（Ｐａｌｏ　Ａｌｔｏ，Ｃａｌｉｆｏｒｎｉａ）のサンマイクロシステムズ（Ｓｕｎ　Ｍｉｃｒｏｓｙｓｔｅｍｓ）およびヒューレットパッカード（Ｈｅｗｌｅｔｔ−Ｐａｃｋａｒｄ）から入手できるジャバピコプロセッサ、およびピコプロセッサ３１３２が電気モータ３０１４の行動に基づき入力／出力を模倣できるようにするプログラムを持つメモリ装置３１３４を含む行動モデルカード３１３０である。
【０１０８】
実際の電気機械装置を使用するよりむしろ、電気モータまたはその他の電気機械装置をモデル化する数多くの優位点がある。第１に、電気モータの例には安全性の問題はそれほどないが、それが制御するように設計されている実際の電気機械装置でソフトウェアを検証することがきわめて危険となるだろう多くのインスタンスがあってよい。例えば、原子力発電所の制御で使用されなければならないソフトウェアは、原子力事故を回避するために試験環境で最良検証される。第２に、検証システム３１１０は、モータ制御装置３０１２よりはるかに低速である速度で動作してよい。このようにして、それは、モータ制御装置３０１２の動作をリアルタイムで正確に模倣するために必要とされる時間インスタンスで制御パラメータを送出できない可能性がある。しかしながら、モータ３０１６の回転体は、不変の物理法則に従って入力の指定された集合に応えて加速、減速する。対照的に、時間は精度の損失なしに行動モデルに関して減速されてよい。電気機械装置の行動モデルの使用に対する別の優位点は、単一行動モデルカードが、メモリ装置３１３４内に記憶されるプログラムに従って、多くの異なる電気機械装置の内の任意の１つの行動を模倣できるという点である。行動モデルのライブラリは、カリフォルニア州マウンテンビュー（Ｍｏｕｔａｉｎ　Ｖｉｅｗ，Ｃａｌｉｆｏｒｎｉａ）のシノプシス社（Ｓｙｎｏｐｓｙｓ，Ｉｎｃ．）から入手できる。
【０１０９】
ハードウェアモデルカード３１１８と３１２０に同様に、行動モデルカード３１３０は、それがエミュレートしているターゲットシステムモータアセンブリ３１１４のあらゆる入力／出力ピンごとに入力／出力ピンを含む。このため、入力／出力信号を狭いバス上にパックする、およびアンパックするには役立たない。
【０１１０】
ゲート遅延の集合の数および期間によって決定される時間の期間内の入力の集合に呼応するハードウェアモデル３１１８および３１２０とは異なり、行動モデルカード３１３０は、典型的には、その出力が状態を変える前にかなりの数の命令を実行する。相互接続アセンブリ３１１２が、組み込まれている出願番号第０９／３３６，４８５号に開示されているように、時間多重化バスである場合、カード３１３０は、入力の新規集合のその出力を計算するために時間多重化バスシステムクロックの周期性に等しい時間の期間を有する。この種のシステムクロックは、典型的にはＭＨｚ範囲の周波数で実行され、ピコプロセッサ３１３２は、典型的には１００ＭＨＺ範囲の周波数で実行されるため、これは簡略な行動モデルが出力を生じさせるのに十分な時間を提供するだろう。しかしながら、行動モデルカードには、相互接続アセンブリ制御装置３１１３内で相互接続アセンブリ休止ピンに送られる出力準備が完了していないピンが備えられる。相互接続アセンブリ３１１２が時間多重化バスである場合では、これにより、バス制御装置は、行動モデルカード３１１２が準備完了になるまでシステムクロックを休止させるだろう。
【０１１１】
さらに、電気機械システムのそれ以外の部分をシミュレーションするプログラムを実行するシミュレーションホストコンピュータ３１４０は、電気モータ行動モデルカード３１３０に負荷入力を提供し、記憶装置デバイスはベクタ３１４２のユーザ入力集合を提供する。
【０１１２】
図２３は、検証を必要とすることがある純粋に通信の、該して電気的な（部分が光学となるだろう）デバイスの例を示す。これは、インターネットまたは該インターネット上でメッセージを送るために使用される種類のルータ３２１０である。ルータ３２１０によって適切に送られるためには、接続されたネットワーク３２１２からのメッセージは特定の規格に従ってフォーマットされなければならない。しかしながら、本規格の範囲内には、そのそれぞれがいくぶん異なって処理されなければならない９つの許可されたフォーマット規格がある。このため、ルータ３２１０には、９つの異なるフォーマットルーティングブロック３２１４−３２３０がある。初期ルーティング３２３４ブロックは、各メッセージを正しいフォーマットルーティングブロックに送り、パッキングおよび最終ルーティングブロック３２３６は、同じロケーションに移動するメッセージをともにパックする。
【０１１３】
図２４は、ルータ３２１０の動作を検証するように構成される検証エンジンを示す。図２４の参照番号は、図２３のターゲットシステム参照番号に一致し、各ハードウェアモデルが、１００が加えられた、モデル化されているルータ３２１０の一部の参照番号を持つ。人がチップに実装されるシステムという形でルータ３２１０を設計するとしたら、それをシリコンの中にエッチングする前に、回路設計を注意深く検証することは重要だろう。これを行う１つの方法とは、相互接続アセンブリ３３４０によって組み込まれている出願で教示される方法で、ルーティングブロック３２１２−３２２６および３２３４ごとにハードウェアモデル３３１２−３３２６および３３３４を構築し、ハードウェアモデルのすべてをともに接続することである。図２４に提示される例では、フォーマット９ルーティングブロック３２４０は、依然として設計されているプロセスにあり、したがってシミュレーションホストコンピュータ３３３０内でシミュレーションされる。代わりに、フォーマット８ルーティングブロック３２２８に関して図示されるように、ルーティングブロックは、ターゲットシステムフォーマット９（九）ルーティングブロック３２３０の入力／出力ピンごとに入力／出力ピンを有する、行動モデルカード３３２８によってモデル化することができる。この種の回路構成のために検証プロセスで生じる１つの難しさとは、ルータ３２１０が接続されなければならない環境を正確にモデル化する困難さである。言うまでもなく、人はインターネットに、検証を受ける回路を接続することはできない。したがって、図２４上の検証エンジンは、検証されているターゲットシステムを徹底的に試験するために、インターネットトラフィックの完全な範囲を提供するインターネット行動モデル３３４２を含む。好ましい実施態様では、行動モデル３３４２は、ユーザ入力を受け取るための手段、例えば、キーボードに接続されるジャックを含み、それによってユーザが、相互接続アセンブリ３３４０に送信されているデータパケット上で制御の基準を実行できるようにする。
【０１１４】
加えて、インターネットまたはネットワークモデル３３４２は、実際のネットワークが、ルータモデル３３１０を正確に試験するために応えるのと同じ方法で、ルータモデル３３１０を通して送られるメッセージに応えなければならない。シミュレーションホストコンピュータがネットワークの行動モデルをホストする場合、これは発明の項の背景に記述される方法で検証プロセスを大幅に低速化するだろう。したがって、相互接続アセブリに直接的に接続され、おもに、典型的にはすべての入力がバスの中にパックされ、バスからアンパックされることを必要とするだろうシミュレータをホストしないカードの上で行動モデルをホストすることはきわめて望ましい。メモリ３３４６内の行動モデルプログラムにより、マイクロプロセッサまたはピコプロセッサ３３４８は、インターネットの動作を模倣する。バスからデータをパック、アンパックするニーズによってあるがままに制約されていない、行動モデルカード３３４２と相互接続アセンブリの間のコネクションが専用ポートと呼ばれる。
【０１１５】
本出願で使用されるように、用語「副部分」は「部分」のすべてを含んでよい。
【０１１６】
本出願で使用されるように、用語「ピン」は任意の種類の電気導線を意味する。
【０１１７】
用語「集合」あるいは「セット」は、本出願では数学的な意味で使用され、ただ１つの要素を含む集合をも含む。
【０１１８】
前記明細書で利用されている用語および表現は、そこで制限の擁護としてではなく、説明の用語として使用され、このような用語および表現の使用においては、図示され、記述されている特徴の同等物、またはその部分を排除する意図はなく、本発明の範囲が以下に続くクレームによってだけ定義、制限されることが認識される。
【図面の簡単な説明】
【図１】
図１は、本発明の好ましい方法および装置を示すために提示される架空のターゲットシステムのブロック図である。
【図２Ａ】
図２Ａは、好ましい方法に従って、および本発明の好ましい装置に、図１のターゲットシステムをモデル化するように構成される検証エンジンのブロック図の２分の１である。、
【図２Ｂ】
図２Ｂは、好ましい方法に従って、および本発明の好ましい装置に図１のターゲットシステムをモデル化するように構成される検証エンジンの完全なブロックを形成するために図２Ａと結合する。
【図３】
図３は、図２の検証エンジン構成の検証エンジン時間多重化バス時間期間割当ての表である。
【図４】
図４は、本発明の好ましい装置の実施態様の物理的な側面図である。
【図４Ａ】
図４Ａは、本発明の代替の好ましい装置の実施態様の物理的な側面図である。
【図４Ｂ】
図４Ｂは、本発明の追加の代替の好ましい装置の実施態様の物理的な側面図である。
【図４Ｃ】
図４Ｃは、本発明のさらに代替の好ましい装置の実施態様の物理的な側面図である。
【図５】
図５は、本発明に従った図４のコアカードの機能ブロック図である。
【図６】
図６は、本発明の好ましい全体的な試験方法のフロー図である。
【図７】
図７は、本発明の好ましい方法に従った駆動方向検出回路の概略図である。
【図８】
図８は、競争／浮動検出論理回路のビットの概略図である。
【図９】
図９は、標準モードの間の図４の装置のシステム制御装置のアクティブ部分のブロック図である。
【図１０】
図１０は、デバッグモードの間の図４の装置のシステム制御装置のアクティブ部分のブロック図である。
【図１１】
図１１は、本発明の好ましい実施態様に従ったＴＭＢ　競争／浮動チェックアルゴリズムのフローチャートである。
【図１２】
図１２は、集積回路（ＩＣ）設計の架空部分のブロック図である。
【図１３】
図１３は、本発明に従った仮想試作システム内で実現されるような、図１２の集積回路設計の架空部分のブロック図である。
【図１４】
図１４は、本発明の一部を形成する、インスタンス選択前に示される、インスタンス選択のためのグラフィックユーザインタフェース画面表示である。
【図１５】
図１５は、本発明の一部を形成する、インスタンス選択後に示される、インスタンス選択のためのグラフィックユーザインタフェース画面表示である。
【図１６】
図１６は、本発明の一部を形成するＶＣ選択用のグラフィックユーザインタフェース画面表示である。
【図１７】
図１７は、本発明の一部を形成する入力／出力ピン選択のためのグラフィックユーザインタフェース画面表示である。
【図１８】
図１８は、本発明の一部を形成するクロックドメイン選択のためのグラフィックユーザインタフェース画面表示である。
【図１９】
図１９は、本発明の一部を形成するリセットシーケンス選択のためのグラフィックユーザインタフェース画面表示である。
【図２０】
図２０は、本発明に従った仮想試作システム内の仮想構成要素間でコネクションを実現する代替方法のブロック図である。
【図２１】
図２１は、本発明を図解する目的で提示される架空のモータおよびモータ制御装置アセンブリのブロック図である。
【図２２】
図２２は、本発明に従って、図１のモータおよびモータ制御装置アセンブリの動作を検証するように構成される検証エンジンのブロック図である。
【図２３】
図２３は、本発明を示す目的で提示される架空の信号ルータのブロック図である。
【図２４】
図２４は、本発明に従って、図２３の信号ルータの動作を検証するように構成される検証エンジンのブロック図である。
【図１】
2004500609.tif 000004
【図２Ａ】
2004500609.tif 000005
【図２Ｂ】
2004500609.tif 000006
【図３】
2004500609.tif 000007
【図４】
2004500609.tif 000008
【図５】
2004500609.tif 000009
【図６】
2004500609.tif 000010
【図７】
2004500609.tif 000011
【図８】
2004500609.tif 000012
【図９】
2004500609.tif 000013
【図１０】
2004500609.tif 000014
【図１１】
2004500609.tif 000015
【図１２】
2004500609.tif 000016
【図１３】
2004500609.tif 000017
【図１４】
2004500609.tif 000018
【図１５】
2004500609.tif 000019
【図１６】
2004500609.tif 000020
【図１７】
2004500609.tif 000021
【図１８】
2004500609.tif 000022
【図１９】
2004500609.tif 000023
【図２０】
2004500609.tif 000024
【図２１】
2004500609.tif 000025
【図２２】
2004500609.tif 000026
【図２３】
2004500609.tif 000027
【図２４】
2004500609.tif 000028
【国際公開パンフレット】
2004500609.tif 000029
2004500609.tif 000030
2004500609.tif 000031
2004500609.tif 000032
2004500609.tif 000033
2004500609.tif 000034
2004500609.tif 000035
2004500609.tif 000036
2004500609.tif 000037
2004500609.tif 000038
2004500609.tif 000039
2004500609.tif 000040
2004500609.tif 000041
2004500609.tif 000042
2004500609.tif 000043
2004500609.tif 000044
2004500609.tif 000045
2004500609.tif 000046
2004500609.tif 000047
2004500609.tif 000048
2004500609.tif 000049
2004500609.tif 000050
2004500609.tif 000051
2004500609.tif 000052
2004500609.tif 000053
2004500609.tif 000054
2004500609.tif 000055
2004500609.tif 000056
2004500609.tif 000057
2004500609.tif 000058
2004500609.tif 000059
2004500609.tif 000060
2004500609.tif 000061
2004500609.tif 000062
2004500609.tif 000063
2004500609.tif 000064
2004500609.tif 000065
2004500609.tif 000066
2004500609.tif 000067
2004500609.tif 000068
2004500609.tif 000069
2004500609.tif 000070
2004500609.tif 000071
2004500609.tif 000072
2004500609.tif 000073
2004500609.tif 000074
2004500609.tif 000075
2004500609.tif 000076
2004500609.tif 000077
2004500609.tif 000078
2004500609.tif 000079
2004500609.tif 000080
2004500609.tif 000081
2004500609.tif 000082
2004500609.tif 000083
2004500609.tif 000084
2004500609.tif 000085
2004500609.tif 000086
2004500609.tif 000087
2004500609.tif 000088
2004500609.tif 000089
2004500609.tif 000090
2004500609.tif 000091
2004500609.tif 000092
2004500609.tif 000093
2004500609.tif 000094
2004500609.tif 000095
2004500609.tif 000096
2004500609.tif 000097
2004500609.tif 000098
2004500609.tif 000099
2004500609.tif 000100
2004500609.tif 000101
2004500609.tif 000102
2004500609.tif 000103
2004500609.tif 000104
2004500609.tif 000105
2004500609.tif 000106
2004500609.tif 000107
2004500609.tif 000108
2004500609.tif 000109
2004500609.tif 000110
2004500609.tif 000111
2004500609.tif 000112
2004500609.tif 000113
2004500609.tif 000114
2004500609.tif 000115
2004500609.tif 000116
2004500609.tif 000117
2004500609.tif 000118
2004500609.tif 000119
2004500609.tif 000120
2004500609.tif 000121
2004500609.tif 000122
2004500609.tif 000123
2004500609.tif 000124
2004500609.tif 000125
2004500609.tif 000126
2004500609.tif 000127
2004500609.tif 000128
2004500609.tif 000129
2004500609.tif 000130
2004500609.tif 000131
2004500609.tif 000132
2004500609.tif 000133
2004500609.tif 000134
【国際調査報告】
2004500609.tif 000135
2004500609.tif 000136
2004500609.tif 000137