(57)【要約】  本発明はチップ設計検証装置及び方法を公開する。そのチップ設計検証方法は前記ソフトウェアブロックの動作により発生した出力データを前記インターフェース手段に伝送して、前記チップ設計検証プログラムを遂行することにより前記インターフェース手段を介して受信された前記ハードウェアブロックの出力データは有効性可否を判断した後、前記ハードウェアブロックの有効な出力データのみを前記ソフトウェアブロックに印加するソフトウェア側動作段階と、前記ハードウェアブロックの動作により発生した出力データを前記ソフトウェアブロックに伝送して、前記インターフェース手段で前記チップ設計検証プログラムを遂行することにより受信される前記ソフトウェアブロックの出力データは有効性可否を判断した後、前記ソフトウェアブロックの有効な出力データのみを前記ハードウェアブロックに印加するハードウェア側動作段階を具備することを特徴とする。したがってチップ設計時にチップ設計上の誤謬を検出することができるようにして、さらに迅速なチップ設計検証速度を提供してくれる。
2007527060.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも一つ以上のハードウェアブロック;及び
前記ハードウェアブロックとデータ通信を遂行する少なくとも一つ以上のソフトウェアブロックを含んで、前記ハードウェアブロックと前記ソフトウェアブロック間の動作を検証するコンピュータを具備して、
前記コンピュータは
前記ハードウェアブロックの出力データを伝送して、前記ソフトウェアブロックの出力データの有効性可否を判断して、ソフトウェアブロックの有効な出力データのみを前記ハードウェアブロックに印加するインターフェース手段と;
前記ソフトウェアブロック、前記ハードウェアブロックと前記ソフトウェアブロック間の動作を検証するチップ設計検証プログラムを保存する保存手段;及び
前記チップ設計検証プログラムを遂行して前記ソフトウェアブロックの出力データを前記インターフェース手段に伝送して、前記インターフェース手段を介して入力される前記ハードウェアブロックの出力データの有効性可否を判断して、ハードウェアブロックの有効な出力データのみを前記ソフトウェアブロックに印加するようにする制御部を具備することを特徴とするチップ設計検証装置。
【請求項２】
第１項において、
前記チップ設計検証プログラムは
グラフィックユーザーインターフェースを具備して、前記チップ設計検証プログラムを遂行することにより送受信されるデータを前記グラフィックユーザーインターフェースを介してディスプレイすることを特徴とするチップ設計検証装置。
【請求項３】
第１項において、
前記チップ設計検証プログラムは
前記ソフトウェアブロック及び前記ハードウェアブロックを動作させるためのマルチクロック設定値を獲得して、前記インターフェース手段に保存することを特徴とするチップ設計検証装置。
【請求項４】
第３項において、
前記インターフェース手段は
前記マルチクロック設定値と、前記インターフェース手段のシステムクロックによってマルチクロックを生成して前記ハードウェアブロックに印加するクロック制御部を具備することを特徴とするチップ設計検証装置。
【請求項５】
第４項において、
前記ハードウェアブロックの出力データは
前記インターフェース手段から印加されたマルチクロックに応答して変化した前記ハードウェアブロックの出力値と、前記ハードウェアブロックの出力値が変化する時の前記インターフェース手段のシステムクロックカウント値で構成されることを特徴とするチップ設計検証装置。
【請求項６】
第５項において、
前記ハードウェアブロックの有効な出力データは
前記インターフェース手段のシステムクロックカウント値が前記チップ設計検証プログラムのシステムクロックカウント値より小さかったり同じ場合には前記ハードウェアブロックの出力値であって、前記インターフェース手段のシステムクロックカウント値が前記チップ設計検証プログラムのシステムクロックカウント値より大きくて前記チップ設計検証プログラムのシステムクロックカウント値を前記インターフェース手段のシステムクロックカウント値と同じであるように増加させても前記ソフトウェアブロックの出力値が変化しない場合には前記ハードウェアブロックの出力値であることを特徴とするチップ設計検証装置。
【請求項７】
第３項において、
前記チップ設計検証プログラムは
前記マルチクロック設定値と前記チップ設計検証プログラムのシステムクロックによってマルチクロックを生成して前記ソフトウェアブロックに印加することを特徴とするチップ設計検証装置。
【請求項８】
第７項において、
前記ソフトウェアブロックの出力データは
前記チップ設計検証プログラムから印加されたマルチクロックに応答して変化した前記ソフトウェアブロックの出力値と、前記ソフトウェアブロックの出力値が変化する時の前記チップ設計検証プログラムのシステムクロックカウント値で構成されることを特徴とするチップ設計検証装置。
【請求項９】
第８項において、
前記ソフトウェアブロックの有効な出力データは
前記チップ設計検証プログラムのシステムクロックカウント値が前記インターフェース手段のシステムクロックカウント値より小さかったり同じ場合には前記ソフトウェアブロックの出力値であって、前記チップ設計検証プログラムのシステムクロックカウント値が前記インターフェース手段のシステムクロックカウント値より大きくて前記インターフェース手段のシステムクロックカウント値を前記チップ設計検証プログラムのシステムクロックカウント値と同じであるように増加させても前記ハードウェアブロックの出力値が変化しない場合には前記ソフトウェアブロックの出力値であることを特徴とするチップ設計検証装置。
【請求項１０】
第７項において、
前記ソフトウェアブロックは
テストベンチを具備して、前記テストベンチは前記マルチクロック設定値を前記チップ設計検証プログラムに提供して、前記テストベンチの自体的なマルチクロックの代わりに前記チップ設計検証プログラムのマルチクロックに応答して動作することを特徴とするチップ設計検証装置。
【請求項１１】
少なくとも一つ以上のハードウェアブロック、及び少なくとも一つ以上のソフトウェアブロック、チップ設計検証プログラム、及び入出力データを保存する保存手段と前記ソフトウェアブロックと前記ハードウェアブロックのインターフェースを遂行するインターフェース手段を具備するコンピュータを具備するチップ設計検証装置のチップ設計検証方法において、
前記ソフトウェアブロックの動作により発生した出力データを前記インターフェース手段に伝送して、前記チップ設計検証プログラムを遂行することにより前記インターフェース手段を介して受信された前記ハードウェアブロックの出力データは有効性可否を判断した後、前記ハードウェアブロックの有効な出力データのみを前記ソフトウェアブロックに印加するソフトウェア側動作段階;及び
前記ハードウェアブロックの動作により発生した出力データを前記ソフトウェアブロックに伝送して、前記インターフェース手段で前記チップ設計検証プログラムを遂行することにより受信される前記ソフトウェアブロックの出力データは有効性可否を判断した後、前記ソフトウェアブロックの有効な出力データのみを前記ハードウェアブロックに印加するハードウェア側動作段階を具備することを特徴とするチップ設計検証方法。
【請求項１２】
第１１項において、
前記チップ設計検証プログラムはマルチクロック設定値を獲得して、前記インターフェース手段に提供して、前記マルチクロック設定値と前記チップ設計検証プログラムのシステムクロックによってマルチクロックを発生して前記ソフトウェアブロックに印加する段階;及び
前記インターフェース手段は前記マルチクロック設定値と前記インターフェース手段のシステムクロックによってマルチクロックを発生して前記ハードウェアブロックに印加する段階をさらに具備することを特徴とするチップ設計検証方法。
【請求項１３】
第１２項において、
前記ハードウェアブロックの出力データは
前記インターフェース手段から印加されたマルチクロックに応答して変化した前記ハードウェアブロックの出力値と、前記ハードウェアブロックの出力値が変化する時の前記インターフェース手段のシステムクロックカウント値で構成されることを特徴とするチップ設計検証方法。
【請求項１４】
第１３項において、
前記ハードウェアブロックの有効な出力データは
前記インターフェース手段のシステムクロックカウント値が前記チップ設計検証プログラムのシステムクロックカウント値より小さかったり同じ場合には前記ハードウェアブロックの出力値であって、前記インターフェース手段のシステムクロックカウント値が前記チップ設計検証プログラムのシステムクロックカウント値より大きくて前記チップ設計検証プログラムのシステムクロックカウント値を前記インターフェース手段のシステムクロックカウント値と同じであるように増加させても前記ソフトウェアブロックの出力値が変化しない場合には前記ハードウェアブロックの出力値であることを特徴とするチップ設計検証方法。
【請求項１５】
第１４項において、
前記ソフトウェアブロックの出力データは
前記チップ設計検証プログラムから印加されたマルチクロックに応答して変化した前記ソフトウェアブロックの出力値と、前記ソフトウェアブロックの出力値が変化する時の前記チップ設計検証プログラムのシステムクロックカウント値で構成されることを特徴とするチップ設計検証方法。
【請求項１６】
第１５項において、
前記ソフトウェアブロックの有効な出力データは
前記チップ設計検証プログラムのシステムクロックカウント値が前記インターフェース手段のシステムクロックカウント値より小さかったり同じ場合には前記ソフトウェアブロックの出力値であって、前記チップ設計検証プログラムのシステムクロックカウント値が前記インターフェース手段のシステムクロックカウント値より大きくて前記インターフェース手段のシステムクロックカウント値を前記チップ設計検証プログラムのシステムクロックカウント値と同じであるように増加させても前記ハードウェアブロックの出力値が変化しない場合には前記ソフトウェアブロックの出力値であることを特徴とするチップ設計検証方法。
【請求項１７】
第１６項において、
前記ソフトウェア側動作段階は
前記チップ設計検証プログラムを遂行することにより前記インターフェース手段を介して前記ハードウェアの出力データを受信する動作進入段階と;
前記受信したインターフェース手段のシステムクロックカウント値が前記チップ設計検証プログラムのシステムクロックカウント値がより小さかったり同じ場合であったり、前記受信したインターフェース手段のシステムクロックカウント値が前記チップ設計検証プログラムのシステムクロックカウント値がさらに大きくて前記チップ設計検証プログラムのシステムクロックカウント値を前記受信したインターフェース手段のシステムクロックカウント値と同じであるように増加させても前記ソフトウェアブロックの出力値が変化しない場合であれば、前記ハードウェアブロックの有効な出力データを受信したことを確認して前記ソフトウェアブロックに入力する入力段階と;
前記チップ設計検証プログラムのシステムクロックカウント値を前記受信した前記インターフェース手段のシステムクロックカウント値と同じであるように増加させる以前に前記ソフトウェアブロックの出力値が変化すれば前記ソフトウェアブロックの出力データを前記インターフェース手段に伝送する伝送段階;及び
前記入力段階または前記伝送段階が完了すると、前記増加された前記チップ設計検証プログラムのシステムクロックカウント値を初期化して、前記チップ設計検証プログラムのシステムクロックカウント値を増加させながら前記ソフトウェアブロックの出力値が変化するかをモニターリングするモニターリング段階を具備することを特徴とするチップ設計検証方法。
【請求項１８】
第１７項において、
前記入力段階は
前記受信したインターフェース手段のシステムクロックカウント値が前記チップ設計検証プログラムのシステムクロックカウント値より小さかったり同じであれば、前記受信したハードウェアブロックの出力値を前記ハードウェアブロックの有効な出力データで前記ソフトウェアブロックに入力する段階と;
前記受信したインターフェース手段のシステムクロックカウント値が前記チップ設計検証プログラムのシステムクロックカウント値より大きければ、前記チップ設計検証プログラムのシステムクロックカウント値を増加させながら前記ソフトウェアブロックの出力値が変化するかを確認する段階;及び
前記増加された前記チップ設計検証プログラムのシステムクロックカウント値が前記受信したインターフェース手段のシステムクロックカウント値より大きくなる時まで前記ソフトウェアブロックの出力値が変化されなければ、前記受信したハードウェアブロックの出力値を前記ハードウェアブロックの有効な出力データで前記ソフトウェアブロックに入力する段階を具備することを特徴とするチップ設計検証方法。
【請求項１９】
第１８項において、
前記入力段階は
前記チップ設計検証プログラムを遂行して前記コンピュータの画面に前記ハードウェアブロックの有効な出力データをディスプレイする段階をさらに具備することを特徴とするチップ設計検証方法。
【請求項２０】
第１７項において、
前記伝送段階は
前記受信したインターフェース手段のシステムクロックカウント値が前記チップ設計検証プログラムのシステムクロックカウント値より大きければ、前記チップ設計検証プログラムのシステムクロックカウント値を増加させながら前記ソフトウェアブロックの出力値が変化するかを確認する段階;及び
前記増加された前記チップ設計検証プログラムのシステムクロックカウント値が前記受信したインターフェース手段のシステムクロックカウント値より小さかったり同じ場合に前記ソフトウェアブロックの出力値が変化すれば、前記ソフトウェアの出力データを前記インターフェース手段に伝送することを特徴とするチップ設計検証方法。
【請求項２１】
第２０項において、
前記伝送段階は
前記チップ設計検証プログラムを遂行して前記コンピュータの画面に前記ソフトウェアブロックの有効な出力データをディスプレイする段階をさらに具備することを特徴とするチップ設計検証方法。
【請求項２２】
第１２項において、
前記ソフトウェアブロックはテストベンチを具備して、前記テストベンチは前記マルチクロック設定値を前記チップ設計検証プログラムに提供して、前記テストベンチの自体的なマルチクロックの代わりに前記チップ設計検証プログラムのマルチクロックに応答して動作することを特徴とするチップ設計検証方法。
【請求項２３】
第１６項において、
前記ハードウェア側動作段階は
前記インターフェース手段で前記チップ設計検証プログラムを遂行することにより発生する前記ソフトウェアブロックの出力データを受信する動作進入段階と;
前記受信したチップ設計検証プログラムのシステムクロックカウント値が前記インターフェース手段のシステムクロックカウント値より小さかったり同じ場合であったり、前記受信したチップ設計検証プログラムのシステムクロックカウント値が前記インターフェース手段のシステムクロックカウント値より大きくて前記インターフェース手段のシステムクロックカウント値を前記受信したチップ設計検証プログラムのシステムクロックカウント値と同じであるように増加させても前記インターフェース手段の出力値が変化しない場合であれば、前記ソフトウェアブロックの有効な出力データを受信したことを確認して前記ハードウェアブロックに入力する入力段階と;
前記インターフェース手段のシステムクロックカウント値を前記受信したチップ設計検証プログラムのシステムクロックカウント値と同じであるように増加させる以前に前記ハードウェアブロックの出力値が変化すれば前記ハードウェアブロックの出力データを前記チップ設計検証プログラムに伝送する伝送段階;及び
前記入力段階または前記伝送段階が完了すると、前記増加された前記インターフェース手段のシステムクロックカウント値を初期化して、前記インターフェース手段のシステムクロックカウント値を増加させながら前記ハードウェアブロックの出力値が変化するかをモニターリングするモニターリング段階を具備することを特徴とするチップ設計検証方法。
【請求項２４】
第２３項において、
前記入力段階は
前記受信したチップ設計検証プログラムのシステムクロックカウント値が前記インターフェース手段のシステムクロックカウント値より小さかったり同じであれば、前記受信したソフトウェアブロックの出力値を前記ソフトウェアブロックの有効な出力データで前記ハードウェアブロックに入力する段階と;
前記受信したチップ設計検証プログラムのシステムクロックカウント値が前記インターフェース手段のシステムクロックカウント値より大きければ、前記インターフェース手段のシステムクロックカウント値を増加させながら前記ハードウェアブロックの出力値が変化するかを確認する段階と;
前記増加されたインターフェース手段のシステムクロックカウント値が前記受信したチップ設計検証プログラムのシステムクロックカウント値より大きくなる時まで前記ハードウェアブロックの出力値が変化されなければ、前記受信したソフトウェアブロックの出力値を前記ソフトウェアブロックの有効な出力データで前記ハードウェアブロックに入力する入力段階を具備することを特徴とするチップ設計検証方法。
【請求項２５】
第２４項において、
前記伝送段階は
前記受信したチップ設計検証プログラムのシステムクロックカウント値が前記インターフェース手段のシステムクロックカウント値より大きければ、前記インターフェース手段がシステムクロックカウント値を増加させながら前記ハードウェアブロックの出力値が変化するかを確認する段階;及び
前記増加されたインターフェース手段のシステムクロックカウント値が前記受信したチップ設計検証プログラムのシステムクロックカウント値より小さかったり同じ場合に前記ハードウェアブロックの出力値が変化すれば、前記ハードウェアの出力データを前記インターフェース手段に伝送することを特徴とするチップ設計検証方法。
【請求項２６】
少なくとも一つ以上の機能ブロックを具備するソフトウェアブロック及びハードウェアブロック、前記ソフトウェアブロックと前記ハードウェアブロックの動作を検証するためのチップ設計検証プログラム、前記チップ設計検証プログラムを遂行することにより発生する前記ソフトウェアブロックの入出力データを保存する保存部、及び前記ハードウェアブロックと前記ソフトウェアブロック間のインターフェースを遂行するインターフェース手段を具備するチップ設計検証装置のチップ設計検証方法において、
前記チップ設計検証プログラムはマルチクロック設定値を獲得して、前記インターフェース手段に提供して、前記マルチクロック設定値と前記チップ設計検証プログラムのシステムクロックによってマルチクロックを発生して前記ソフトウェアブロックに印加して、前記インターフェース手段は前記マルチクロック設定値と前記インターフェース手段のシステムクロックによってマルチクロックを発生して前記ハードウェアブロックに印加するクロック生成段階と;
前記チップ設計検証プログラムのマルチクロックに応答して動作する前記ソフトウェアブロックの動作により発生した出力データを前記インターフェース手段に伝送して、前記チップ設計検証プログラムを遂行することにより前記インターフェース手段を介して受信された前記ハードウェアブロックの出力データは有効性可否を判断した後、前記ハードウェアブロックの有効な出力データのみを前記ソフトウェアブロックに印加するソフトウェア側動作段階;及び
前記インターフェース手段のマルチクロックに応答して動作する前記ハードウェアブロックの動作により発生した出力データを前記ソフトウェアブロックに伝送して、前記インターフェース手段で前記チップ設計検証プログラムを遂行することにより受信される前記ソフトウェアブロックの出力データは有効性可否を判断した後、前記ソフトウェアブロックの有効な出力データのみを前記ハードウェアブロックに印加するハードウェア側動作段階を具備することを特徴とするチップ設計検証方法。
【請求項２７】
第２６項において、
前記ハードウェアブロックの出力データは
前記インターフェース手段から印加されたマルチクロックに応答して変化した前記ハードウェアブロックの出力値と、前記ハードウェアブロックの出力値が変化する時の前記インターフェース手段のシステムクロックカウント値で構成されることを特徴とするチップ設計検証方法。
【請求項２８】
第２７項において、
前記ハードウェアブロックの有効な出力データは
前記インターフェース手段のシステムクロックカウント値が前記チップ設計検証プログラムのシステムクロックカウント値より小さかったり同じ場合には前記ハードウェアブロックの出力値であって、前記インターフェース手段のシステムクロックカウント値が前記チップ設計検証プログラムのシステムクロックカウント値より大きくて前記チップ設計検証プログラムのシステムクロックカウント値を前記インターフェース手段のシステムクロックカウント値と同じであるように増加させても前記ソフトウェアブロックの出力値が変化しない場合には前記ハードウェアブロックの出力値であることを特徴とするチップ設計検証方法。
【請求項２９】
第２８項において、
前記ソフトウェアブロックの出力データは
前記チップ設計検証プログラムから印加されたマルチクロックに応答して変化した前記ソフトウェアブロックの出力値と、前記ソフトウェアブロックの出力値が変化する時の前記チップ設計検証プログラムのシステムクロックカウント値で構成されることを特徴とするチップ設計検証方法。
【請求項３０】
第２９項において、
前記ソフトウェアブロックの有効な出力データは
前記チップ設計検証プログラムのシステムクロックカウント値が前記インターフェース手段のシステムクロックカウント値より小さかったり同じ場合には前記ソフトウェアブロックの出力値であって、前記チップ設計検証プログラムのシステムクロックカウント値が前記インターフェース手段のシステムクロックカウント値より大きくて前記インターフェース手段のシステムクロックカウント値を前記チップ設計検証プログラムのシステムクロックカウント値と同じであるように増加させても前記ハードウェアブロックの出力値が変化しない場合には前記ソフトウェアブロックの出力値であることを特徴とするチップ設計検証方法。
【請求項３１】
第３０項において、
前記ソフトウェア側動作段階は
前記チップ設計検証プログラムを遂行することにより前記インターフェース手段を介して前記ハードウェアの出力データを受信する動作進入段階と;
前記受信したインターフェース手段のシステムクロックカウント値が前記チップ設計検証プログラムのシステムクロックカウント値がより小さかったり同じ場合であったり、前記受信したインターフェース手段のシステムクロックカウント値が前記チップ設計検証プログラムのシステムクロックカウント値がさらに大きくて前記チップ設計検証プログラムのシステムクロックカウント値を前記受信したインターフェース手段のシステムクロックカウント値と同じであるように増加させても前記ソフトウェアブロックの出力値が変化しない場合であれば、前記ハードウェアブロックの有効な出力データを受信したことを確認して前記ソフトウェアブロックに入力する入力段階と;
前記チップ設計検証プログラムのシステムクロックカウント値を前記受信した前記インターフェース手段のシステムクロックカウント値と同じであるように増加させる以前に前記ソフトウェアブロックの出力値が変化すれば前記ソフトウェアブロックの出力データを前記インターフェース手段に伝送する伝送段階;及び
前記入力段階または前記伝送段階が完了すると、前記増加されたチップ設計検証プログラムのシステムクロックカウント値を初期化して、前記チップ設計検証プログラムのシステムクロックカウント値を増加させながら前記ソフトウェアブロックの出力値が変化するかをモニターリングするモニターリング段階を具備することを特徴とするチップ設計検証方法。
【請求項３２】
第３１項において、
前記入力段階は
前記受信したインターフェース手段のシステムクロックカウント値が前記チップ設計検証プログラムのシステムクロックカウント値より小さかったり同じであれば、前記受信したハードウェアブロックの出力値を前記ハードウェアブロックの有効な出力データで前記ソフトウェアブロックに入力する段階と;
前記受信したインターフェース手段のシステムクロックカウント値が前記チップ設計検証プログラムのシステムクロックカウント値より大きければ、前記チップ設計検証プログラムのシステムクロックカウント値を増加させながら前記ソフトウェアブロックの出力値が変化するかを確認する段階;及び
前記増加された前記チップ設計検証プログラムのシステムクロックカウント値が前記受信したインターフェース手段のシステムクロックカウント値より大きくなる時まで前記ソフトウェアブロックの出力値が変化されなければ、前記受信したハードウェアブロックの出力値を前記ハードウェアブロックの有効な出力データで前記ソフトウェアブロックに入力する段階を具備することを特徴とするチップ設計検証方法。
【請求項３３】
第３２項において、
前記入力段階は
前記チップ設計検証プログラムを遂行して前記コンピュータの画面に前記ハードウェアブロックの出力データをディスプレイする段階をさらに具備することを特徴とするチップ設計検証方法。
【請求項３４】
第３１項において、
前記伝送段階は
前記受信したインターフェース手段のシステムクロックカウント値が前記チップ設計検証プログラムのシステムクロックカウント値より大きければ、前記チップ設計検証プログラムのシステムクロックカウント値を増加させながら前記ソフトウェアブロックの出力値が変化するかを確認する段階;及び
前記増加された前記チップ設計検証プログラムのシステムクロックカウント値が前記受信したインターフェース手段のシステムクロックカウント値より小さかったり同じ場合に前記ソフトウェアブロックの出力値が変化すれば、前記ソフトウェアブロックの出力データを前記インターフェース手段に伝送することを特徴とするチップ設計検証方法。
【請求項３５】
第３４項において、
前記伝送段階は
前記チップ設計検証プログラムを遂行して前記コンピュータの画面に前記ソフトウェアブロックの有効な出力データをディスプレイする段階をさらに具備することを特徴とするチップ設計検証方法。
【請求項３６】
第２６項において、
前記ソフトウェアブロックはテストベンチを具備して、前記テストベンチは前記マルチクロック設定値を前記チップ設計検証プログラムに提供して、前記テストベンチの自体的なマルチクロックの代わりに前記チップ設計検証プログラムのマルチクロックに応答して動作することを特徴とするチップ設計検証方法。
【請求項３７】
第３０項において、
前記ハードウェア側動作段階は
前記インターフェース手段で前記チップ設計検証プログラムを遂行することにより発生する前記ソフトウェアブロックの出力データを受信する動作進入段階と;
前記受信したチップ設計検証プログラムのシステムクロックカウント値が前記インターフェース手段のシステムクロックカウント値がより小さかったり同じ場合であったり、前記受信したチップ設計検証プログラムのシステムクロックカウント値が前記インターフェース手段のシステムクロックカウント値がさらに大きくて前記インターフェース手段のシステムクロックカウント値を前記受信したチップ設計検証プログラムのシステムクロックカウント値と同じであるように増加させても前記インターフェース手段の出力値が変化しない場合であれば、前記ソフトウェアブロックの有効な出力データを受信したことを確認して前記ハードウェアブロックに入力する入力段階と;
前記インターフェース手段のシステムクロックカウント値を前記受信したチップ設計検証プログラムのシステムクロックカウント値と同じであるように増加させる以前に前記ハードウェアブロックの出力値が変化すれば前記ハードウェアブロックの出力データを前記チップ設計検証プログラムに伝送する伝送段階;及び
前記入力段階または前記伝送段階が完了すると、前記増加されたインターフェース手段のシステムクロックカウント値を初期化して、前記インターフェース手段のシステムクロックカウント値を増加させながら前記ハードウェアブロックの出力値が変化するかをモニターリングするモニターリング段階を具備することを特徴とするチップ設計検証方法。
【請求項３８】
第３７項において、
前記入力段階は
前記受信したチップ設計検証プログラムのシステムクロックカウント値が前記インターフェース手段のシステムクロックカウント値より小さかったり同じであれば、前記受信したソフトウェアブロックの出力値を前記ソフトウェアブロックの有効な出力データで前記ハードウェアブロックに入力する段階と;
前記受信したチップ設計検証プログラムのシステムクロックカウント値が前記インターフェース手段のシステムクロックカウント値より大きければ、前記インターフェース手段がシステムクロックカウント値を増加させながら前記ハードウェアブロックの出力値が変化するかを確認する段階;及び
前記増加されたインターフェース手段のシステムクロックカウント値が前記受信したチップ設計検証プログラムのシステムクロックカウント値より大きくなる時まで前記ハードウェアブロックの出力値が変化されなければ、前記受信したソフトウェアブロックの出力値を前記ソフトウェアブロックの有効な出力データで前記ハードウェアブロックに入力する段階を具備することを特徴とするチップ設計検証方法。
【請求項３９】
第３７項において、
前記伝送段階は
前記受信したチップ設計検証プログラムのシステムクロックカウント値が前記インターフェース手段のシステムクロックカウント値より大きければ、前記インターフェース手段のシステムクロックカウント値を増加させながら前記ハードウェアブロックの出力値が変化するかを確認する段階;及び
前記増加されたインターフェース手段のシステムクロックカウント値が前記受信したチップ設計検証プログラムのシステムクロックカウント値より小さかったり同じ場合に前記ハードウェアブロックの出力値が変化すれば、前記ハードウェアの出力データを前記チップ設計検証プログラムに伝送することを特徴とするチップ設計検証方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はチップ設計検証装置に係り、特にソフトウェアＩＰを活用したチップの設計検証装置及び方法に関する。
【背景技術】
【０００２】
今日半導体設計自動化と関連された各種ＥＤＡ（Ｅｌｅｃｔｒｏｎｉｃ  Ｄｅｓｉｇｎ  Ａｕｔｏｍａｔｉｏｎ）道具（ｔｏｏｌ）の普及が拡大されてＨＤＬ（Ｈａｒｄｗａｒｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）を利用した設計方法が普遍化されながらＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）の設計環境は大きく改善された。
【０００３】
したがって設計される回路の大きさも既存の数万〜数十万ゲート水準から近来には数百万〜数千万ゲートに至る程度の容量を設計するのに至ってＡＳＩＣは一つのチップにシステムを具現することが可能な程度に至った。このように構成されたシステムをＳｏＣ（Ｓｙｓｔｅｍ  ｏｎ  ａ  Ｃｈｉｐ）という。
【０００４】
またＡＳＩＣまたはＳｏＣを設計する場合、すべてのものをゼロベースで開発するよりは既存に既に存在する設計回路の一部機能ブロックを変更したり追加する形態で行われる場合がより一般的な場合であり、変更されたり追加される機能ブロックも既存に単位機能ブロック形態で存在するＩＰ（Ｉｎｔｅｌｌｅｃｔｕａｌ  Ｐｒｏｐｅｒｔｙ）ブロックを活用することが近来のＡＳＩＣまたはＳｏＣ設計の趨勢ということができる。
【０００５】
このような多様なアプリケーションを提供し、既存にあらかじめ設計されたモデルで提供するＩＰは大別してソフトウェアＩＰとハードウェアＩＰに分けられる。
【０００６】
ソフトウェアＩＰは原始コードのコーディング形態によって、Ｃ、Ｃ＋＋、Ｓｙｓｔｅｍ  Ｃ、ＨＤＬ（Ｈａｒｄｗａｒｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）（ＶＨＤＬ、Ｖｅｒｉｌｏｇ  ＨＤＬ、Ｓｙｓｔｅｍ  Ｖｅｒｉｌｏｇ、ｅｃｔ）等の言語で具現されるＩＰであって、ハードウェアＩＰは存在する形態にしたがって注文型半導体（ＡＳＩＣ）、プログラマブル半導体（ＦＰＧＡ）またはこれらを含んだ多くのデバイスを搭載したボード等の形態で具現されるＩＰである。
【０００７】
この時ＩＰをハードウェアモデルで取引または配布する場合にはいろいろ側面で不便な点があるが、一実施形態では次のようなことがある。
【０００８】
第一に、サンプル形態で伝達されるハードウェアＩＰがボールグリッドアレイ（ＢＧＡ）または複数ピンのＡＳＩＣまたはＦＰＧＡ形態である場合、使用のためにはハードウェアＩＰが搭載される新しいボードを製作しなければならなくてボード製作以後には組立状態の如何によってはＩＰ動作が不良現象で現われる場合が頻発する。
【０００９】
第二に、ハードウェアＩＰがＦＰＧＡ形態である場合ＳＲＡＭ方式で使われるＦＰＧＡにおいては別途のプログラムロム（ＰＲＯＭ）が共に伝達されなければならないのに、この場合ＰＲＯＭが複製されて盗用される問題点がある。
【００１０】
第三に、ハードウェアＩＰは物理的な形状で具現されることであって、サンプル配達による時間遅延が必然的に発生するようになる等の問題点がある。
【００１１】
反面ＩＰをソフトウェアモデルで取引または配布する場合には以上のような問題点が発生しなくなる。すなわち、ＩＰの使用時信頼性を保障しながらもＩＰの保安上脆弱点を露出しないし、配達による時間遅延が発生しなくなる長所がある反面、ハードウェアＩＰに比べて使用時ＩＰの動作速度が顕著に遅くなる短所がある。
【００１２】
特に、本発明で関心を有する分野は以上のようなハードウェアＩＰが有する短所を最小化しながらもソフトウェアＩＰの本然の長所を提供するソフトウェアＩＰを活用するチップの設計検証装置及び方法に関したことと、数百万〜数千万ゲートに至るＳｏＣ級のＡＳＩＣ設計用量に対応した高速のシミュレーション加速を達成するためのチップの設計検証装置及び方法に関する。
【００１３】
チップの設計検証は容認された実体（ａｃｃｅｐｔｅｄ  ｅｎｔｉｔｙ）に対する検査を含蓄することであって、これはチップ設計において明細書を背景にして設計を検査することを意味し、チップの設計検証の目的は実体の限界内でチップが具現されて製造された後に意図通り作動することかを分かることにある。
【００１４】
したがって前記のチップ設計検証の目的を具現するためにはチップのハードウェア設計ブロックすなわちターゲットとソフトウェアＩＰ及び／またはテストベンチで構成されるソフトウェアブロックの共同シミュレーションを遂行しなければならない。
【００１５】
従来のソフトウェアＩＰを利用するチップの設計検証装置またはシミュレーション加速のためのチップ設計検証装置では米国特許番号第６，３５６，８６２に公開された遅延同期を利用したハードウェアとソフトウェア相互検証器があることができる。米国特許番号第６，３５６，８６２に公開された装置はハードウェアとソフトウェア相互調整手段を具備してハードウェア検証器とソフトウェア検証器が相互同期されて検証動作を遂行することができるようにした。
【００１６】
この装置はハードウェア検証器とソフトウェア検証器の相互同期のために同期化窓を利用し、この同期化窓は速い速度で動作する検証器に関係なく遅い速度で動作する検証器により大きさが決まる。
【００１７】
これで動作待機時間が増加されて、これにより全体的なチップの設計検証速度が遅くなるようになる問題点があった。
【００１８】
またこの時のソフトウェアＩＰとターゲットのチップ設計検証に必要なテストパターンとマルチクロックのクロックパターンを提供するテストベンチはコンピュータシステム内に存在して、ターゲットはコンピュータシステムの外部に存在して、ソフトウェアＩＰとターゲットは別途のインターフェース手段を介してデータ通信を遂行しなければならなかった。
【００１９】
これでチップの設計検証のための共同シミュレーション（ハードウェア／ソフトウェアｃｏ―ｓｉｍｕｌａｔｉｏｎ）時にはソフトウェアＩＰとターゲット間のデータ通信の効率及び速度が全般的な性能において重要な問題で目立つようになる。
【００２０】
しかし従来のチップの設計検証装置の場合にはテストベンチから出力される各クロック信号の一定周期を基盤にしてソフトウェアＩＰまたはターゲットで発生された出力データを相対側に提供した。これでデータ通信容量が不必要に増加するようになる問題点が発生した。
【００２１】
また従来のチップの設計検証装置において、ターゲットは動作に必要なクロック（一般的にマルチクロック）をコンピュータシステム内に存在するテストベンチから提供を受けなければならなかった。
【００２２】
これでテストベンチから出力される各クロックの変化をインターフェース手段に伝送することにおいてデータの伝送遅延が必然的に発生するようになって、チップ設計検証のためのターゲットの動作速度が不必要に遅くなる問題点があった。
【発明の開示】
【発明が解決しようとする課題】
【００２３】
発明の目的はチップ設計段階でソフトウェアＩＰとターゲットとの相互接続を支援してチップ設計の誤謬及びエラーを検証できるようにするチップの設計検証装置及び方法を提供することにある。
【００２４】
本発明の他の目的はイベント基盤でソフトウェアＩＰ及び／またはテストベンチで構成されるソフトウェアブロックとターゲット間のデータ送受信が遂行されるようにしてデータ伝送速度及び効率を高めるＩＰ検証及び／またはシミュレーション加速を目的にしたチップの設計検証装置及び方法を提供することにある。
【００２５】
本発明のまた他の目的はターゲットの動作のためのマルチクロックをインターフェース手段で独立的に発生するようにしてターゲットの動作速度を増大するチップの設計検証装置及び方法を提供することにある。
【課題を解決するための手段】
【００２６】
前記目的を達成するための本発明のチップ設計検証装置は少なくとも一つ以上のハードウェアブロックと、前記ハードウェアブロックとデータ通信を遂行する少なくとも一つ以上のソフトウェアブロックを含んで、前記ハードウェアブロックと前記ソフトウェアブロック間の動作を検証するコンピュータを具備して、前記コンピュータは前記ハードウェアブロックの出力データを伝送して、前記ソフトウェアブロックの出力データの有効性可否を判断して、ソフトウェアブロックの有効な出力データのみを前記ハードウェアブロックに印加するインターフェース手段と、前記ソフトウェアブロック、前記ハードウェアブロックと前記ソフトウェアブロック間の動作を検証するチップ設計検証プログラムを保存する保存手段と、前記チップ設計検証プログラムを遂行して前記ソフトウェアブロックの出力データを前記インターフェース手段に伝送して、前記インターフェース手段を介して入力される前記ハードウェアブロックの出力データの有効性可否を判断して、ハードウェアブロックの有効な出力データのみを前記ソフトウェアブロックに印加するようにする制御部を具備することを特徴とする。
【００２７】
前記目的を達成するための本発明の第１形態のチップ設計検証方法は前記ソフトウェアブロックの動作により発生した出力データを前記インターフェース手段に伝送して、前記チップ設計検証プログラムを遂行することにより前記インターフェース手段を介して受信された前記ハードウェアブロックの出力データは有効性可否を判断した後、前記ハードウェアブロックの有効な出力データのみを前記ソフトウェアブロックに印加するソフトウェア側動作段階と、前記ハードウェアブロックの動作により発生した出力データを前記ソフトウェアブロックに伝送して、前記インターフェース手段で前記チップ設計検証プログラムを遂行することにより受信される前記ソフトウェアブロックの出力データは有効性可否を判断した後、前記ソフトウェアブロックの有効な出力データのみを前記ハードウェアブロックに印加するハードウェア側動作段階を具備することを特徴とする。
【００２８】
前記目的を達成するための本発明の第２形態のチップ設計検証方法は前記チップ設計検証プログラムはマルチクロック設定値を獲得して、獲得したマルチクロック設定値を前記インターフェース手段に提供して、前記マルチクロック設定値と前記チップ設計検証プログラムのシステムクロックによってマルチクロックを発生して前記ソフトウェアブロックに印加して、前記インターフェース手段は前記マルチクロック設定値と前記インターフェース手段のシステムクロックによってマルチクロックを発生して前記ハードウェアブロックに印加するクロック生成段階と、前記チップ設計検証プログラムのマルチクロックに応答して動作する前記ソフトウェアブロックの動作により発生した出力データを前記インターフェース手段に伝送して、前記チップ設計検証プログラムを遂行することにより前記インターフェース手段を介して受信された前記ハードウェアブロックの出力データは有効性可否を判断した後、前記ハードウェアブロックの有効な出力データのみを前記ソフトウェアブロックに印加するソフトウェア側動作段階と、前記インターフェース手段のマルチクロックに応答して動作する前記ハードウェアブロックの動作により発生した出力データを前記ソフトウェアブロックに伝送して、前記インターフェース手段で前記チップ設計検証プログラムを遂行することにより受信される前記ソフトウェアブロックの出力データは有効性可否を判断した後、前記ソフトウェアブロックの有効な出力データのみを前記ハードウェアブロックに印加するハードウェア側動作段階を具備することを特徴とする。
【発明の効果】
【００２９】
したがって本発明のチップ設計検証装置及び方法はチップ設計検証プログラム及びインターフェース手段を利用してチップ設計段階でチップ設計の誤謬及びエラーを検証できるようにするチップの設計の正確性を提供して、チップ設計の所要時間及び費用を減少させてくれる。
【００３０】
またチップ設計検証装置及び方法はソフトウェアＩＰまたはターゲットの出力データが変化した場合にだけ、すなわちイベントが発生した場合にだけ相対側とデータ送受信を遂行するようにしてデータ伝送速度及び効率を増大する。
【００３１】
またチップ設計検証装置及び方法はデータ伝送時、ソフトウェアＩＰまたはターゲットの変化した出力データを抽出して圧縮して、これを相対側に伝送するようにしてデータ伝送速度及び効率を増大する。
【００３２】
またチップ設計検証及び方法はインターフェース手段が独立的にターゲットを動作させるためのマルチクロックを発生して直接印加することができるようにしてコンピュータシステム内からマルチクロックを提供を受けることによって発生するようになるディレイを画期的に減少させてくれる。これでさらに迅速なチップ設計検証速度を支援してくれる。
【発明を実施するための最良の形態】
【００３３】
以下、添付した図面を参考にして本発明のチップ設計検証装置及び方法を説明すると次のようである。
【００３４】
図１は一般的なコンピュータシステムのブロック図であって、モニター１と本体２で構成されて、本体２はＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）またはプロセッサ（Ｐｒｏｃｅｓｓｏｒ）１００、グラフィック信号処理装置１１０、メモリーコントローラハブ（Ｍｅｍｏｒｙ  Ｃｏｎｔｒｏｌｌｅｒ  Ｈｕｂ;ＭＣＨ）１２０、システムメモリー１３０、ハードディスク１４０、入出力コントローラハブ（Ｉ／Ｏ  Ｃｏｎｔｒｏｌｌｅｒ  Ｈｕｂ;ＩＣＨ）１６０、拡張スロット１７０、ＡＴＡ（Ａｄｖａｎｃｅｄ  Ｔｅｃｈｎｏｌｏｇｙ  Ａｔｔａｃｈｍｅｎｔ）１５０、汎用直列バス（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ;ＵＳＢ）を具備する。
【００３５】
図１に示した本体２のブロックそれぞれの構成を説明すると次のようである。
【００３６】
ＣＰＵ  １００は応用プログラムを遂行して全般的な制御を遂行する。
【００３７】
グラフィック信号処理装置１１０はシステムメモリー１３０から伝送するグラフィック信号を信号処理してモニター１上にディスプレイする。
【００３８】
ＭＣＨ  １２０はＣＰＵ  １００と連結するホストインターフェース（Ｈｏｓｔ  Ｉｎｔｅｒｆａｃｅ）、システムメモリー１３０をつなぐメモリーインターフェース（Ｍｅｍｏｒｙ  Ｉｎｔｅｒｆａｃｅ）、ＡＧＰ（Ａｃｃｅｌｅｒａｔｅｄ  Ｇｒａｐｈｉｃｓ  Ｐｏｒｔ）バスと連結してグラフィック信号処理装置１１０を制御するＡＧＰインターフェースを具備して、ＣＰＵ  １００、システムメモリー１３０、グラフィック信号処理装置１１０間のインターフェースを遂行する。
【００３９】
システムメモリー１３０はＣＰＵ  １００がより迅速な動作を遂行することができるように現在実行中であるアプリケーションそして現在使用中であるデータを常住させる保存手段で役割を遂行する。
【００４０】
ハードディスク１４０には各種応用プログラムと各種データが保存される。
【００４１】
ＡＴＡ  １５０はＭＣＨ  １２０とハードディスク１４０間のインターフェースを遂行して、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）１８０は直列ポートの一種でオーディオプレーヤ、ジョイスティック、キーボード、電話、スキャナー及びプリンタ等のような周辺装置とコンピュータシステム２間のプラグアンドプレイインターフェースである。
【００４２】
ＩＣＨ  １６０は拡張スロット、ＡＴＡ、ＵＳＢ等周辺装置の電源供給を制御すると同時に、データ流れを制御して、拡張スロット、ＡＴＡ、及びＵＳＢとＭＣＨ  １２０間のインターフェースを遂行する。
【００４３】
拡張スロット１７０はＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）スロットであって、ＬＡＮカード、ファックスモデムカード等のようなＰＣＩ装置が装着されて、ＰＣＩバスに連結されてデータの送受信が行われる。
【００４４】
図２は一般的なソフトウェアＩＰ及びターゲットを具備するチップの概念図を示したものである。
【００４５】
注文者の注文によって製作されるチップ３００は一般的に図２に示したような複数個のハードウェア設計ブロック及びソフトウェアＩＰ設計ブロックに相応するハードウェアＩＰブロックで構成される。
【００４６】
すなわち、図面に示されたＩＰ１、ＩＰ２  ２１４のブロックは今後にチップ３００の設計検証が終了された時点ではハードウェアＩＰブロックで代置され、設計検証段階では相応するソフトウェアＩＰ設計ブロックであって、コンピュータシステム２のシステムメモリー１３０の１領域内にＩＰのソフトウェアモデルで２１４常住する。
【００４７】
反面、オーディオ、ビデオ、インターフェースブロック、ＭＣＵのブロックはハードウェア設計ブロックに相応する個別素子及びＦＰＧＡ（Ｆｉｅｌｄ Ｐｒｏｇｒａｍｍａｂｌｅ Ｇａｔｅ Ａｒｒａｙ）で具現されることができて、メモリーはロム（Ｒｅａｄ Ｏｎｌｙ Ｍｅｍｏｒｙ;ＲＯＭ）及びラム（Ｒａｎｄｏｍ Ａｃｃｅｓｓ Ｍｅｍｏｒｙ;ＲＡＭ）で具現されることができる。もちろんこれは作業人またはユーザーの必要によって多様な方法で具現されることができる。
【００４８】
本発明ではオーディオ、ビデオ、インターフェースブロック、ＭＣＵ等のようなチップ３００のハードウェア設計ブロックを総称してターゲット２００と指称する。
【００４９】
このように構成されるチップは図面に示したように、ターゲット２００とソフトウェアＩＰ  ２１４が有機的に連結されてユーザーが必要とする動作を遂行してくれる。
【００５０】
図３は本発明の実施形態によるチップ設計検証装置の構成を図式化したブロック図であって、チップ設計検証を遂行するコンピュータシステムの本体２とこれに連結するターゲット２００で構成される。
【００５１】
コンピュータシステム２はチップ設計検証プログラム２１１、システムメモリー１３０上に常住されるチップ設計検証用メモリー２１２、テストベンチ（Ｔｅｓｔ―ｂｅｎｃｈ）２１３、及びソフトウェアＩＰ  ２１４のメモリーブロック２１０、インターフェース手段２２０、及びチップ設計検証プログラム２１１を遂行して制御するためのＣＰＵ（図示せず）を具備する。
【００５２】
ターゲット２００は以上で説明したチップのハードウェア設計ブロックであって、インターフェース手段２２０を介してコンピュータシステム２の本体に連結される。
【００５３】
ＣＰＵ（図示せず）はチップ設計検証プログラム２１１を遂行して、装置ユーザーがチップ設計検証に必要な設定、動作を選択することができるようにするメニュー項目及びチップ設計検証の動作結果をＧＵＩ形態でディスプレイする。
【００５４】
またチップ設計検証プログラム２１１がソフトウェアＩＰ  ２１４の出力データをインターフェース手段２２０に伝送して、インターフェース手段２２０を介して入力されるターゲット２００の出力データの有効性可否を判断して、有効なターゲット２００の出力データのみをソフトウェアＩＰ  ２１４に印加するように制御する。
【００５５】
チップ設計検証用メモリー２１２はＩＰ入力用レジスタ（ＩＰＲＥＧ１）、ＩＰ出力用レジスタ（ＩＰＲＥＧ２）、ＩＰ入力用メモリー（ＩＰＭＥＭ１）、及びＩＰ出力用メモリー（ＩＰＭＥＭ２）を具備して、チップ設計検証動作のために必要なデータ及びチップ設計検証動作時に発生する各種入出力データを保存及び更新する。またマルチクロック設定値を保存する。
【００５６】
マルチクロック設定値は各ターゲットクロックの初期位置指定値と期間、ハイレベル占有時間及び１周期占有時間値であって、このような初期位置指定値と期間、ハイレベル占有時間及び１周期占有時間値はインターフェース手段２２０のシステムクロックカウント値に換算された値である。
【００５７】
テストベンチ２１３はチップ設計検証に必要なテストパターンとクロックパターンを有するマルチクロックを発生する。
【００５８】
ソフトウェアＩＰ  ２１４はターゲット２００とのデータ通信により動作を遂行する。
【００５９】
インターフェース手段２２０はコンピュータシステム２の拡張スロット１７０に設置されてコンピュータシステム２の外部に存在するターゲット２００との連結を図って、ターゲット２００の出力データをチップ設計検証プログラム２１１に伝送して、チップ設計検証プログラム２１１を介して入力されたソフトウェアＩＰ  ２１４の出力データは有効性可否を判断した後、ソフトウェアＩＰ  ２１４の有効な出力データのみをターゲット２００に印加する。
【００６０】
図４は本発明の実施形態によるインターフェース手段の構成を示したものであって、図面に示したようにインターフェース手段２２０はメモリー４００、バス終端回路４１０、バススイッチ４２０、制御部４３０、クロック信号増幅部４４０、コネクタＣ１、Ｃ２を具備する。
【００６１】
以上のインターフェース手段２２０はインターフェースボードの構成を示すことであって、インターフェースボードは図１のコンピュータシステム２の拡張スロット１７０に装着される。
【００６２】
図４に示した各ブロックの機能を説明すると次のようである。
【００６３】
メモリー４００はターゲット入力用レジスタＭ１、ターゲット出力用レジスタＭ２、ターゲット入力用メモリーＭ３、及びターゲット出力用メモリーＭ４を具備して、チップ設計検証動作のために必要なデータ及びチップ設計検証動作時に発生する各種入出力データをこれらレジスタ及びメモリーを介して保存及び更新する。
【００６４】
ターゲット入力用レジスタＭ１及びターゲット出力用レジスタＭ２領域の行の大きさは第１コネクタＣ１を介してターゲット２００に連結される入出力信号の数に対応して決定され、ターゲット入力用メモリーＭ３及びターゲット出力用メモリーＭ４の大きさはＰＣＩバス４５０を介して伝送するソフトウェアＩＰ  ２１４とターゲット２００間の入出力データ容量に対応して決定される。
【００６５】
バス終端回路４１０はターゲット２００とインターフェース手段２２０の信号連結状態を決定して、ターゲット２００とインターフェース手段２２０間に送受信される信号のレベルをインターフェースしてくれる。
【００６６】
バススイッチ４２０は制御部４３０とターゲット２００間の信号を相互連結する機能を遂行する。インターフェース手段２２０に入力されるデータには大部分の場合、ターゲット２００に伝送されるデータすなわち、ターゲットの入力データとターゲット２００から伝送するデータすなわち、ターゲットの出力データが混在されるようになる。これでバススイッチ４２０はターゲットの入力データとターゲットの出力データを区分してターゲットの入力データはターゲットの入力用メモリーに対応させて、ターゲットの出力データはターゲットの出力用メモリーに対応することができるようにスイッチングする。
【００６７】
制御部４３０はシステムメモリー１３０とメモリー４００間、メモリー４００とターゲット２００間、ターゲット２００とメモリー４００間、及びメモリー４００とシステムメモリー１３０間のデータ伝送を制御して、ターゲット２００を動作させるためのマルチクロックを発生してターゲット２００に提供する。
【００６８】
クロック信号増幅部４４０は制御部４３０を介して発生したマルチクロックをターゲット２００の動作信号レベルに増幅してターゲット２００に提供する。
【００６９】
第１コネクタＣ１はインターフェース手段２２０とターゲット２００の物理的な連結のためのコネクタであって、このために外部のターゲット連結ケーブルを介してターゲット２００と連結して、ＧＵＩを介して信号に相応するピン対信号（ｐｉｎ  ｔｏ  ｓｉｇｎａｌ）指定を遂行した後にこれを通じてターゲット２００とインターフェース手段２２０間のデータを伝送を遂行する。
【００７０】
第２コネクタＣ２はターゲット２００との連結を遂行して、制御部４３０を介して発生したマルチクロックをターゲット２００に提供してくれる。
【００７１】
図５は図４に示した制御部の実施形態のブロック図であって、制御部４３０はリセット処理部５５０、プラグ＆プレイ制御部５５２、ＰＣＩローカルバスインターフェース制御部５５４、アドレス発生部５５６、メモリー制御部５５８、汎用レジスタ及び汎用レジスタ制御部５６０、インターラプト制御部５６２、トリガー条件制御部５６４、クロック制御部５６６、リードバック／ＪＴＡＧ制御部５６８、並／直列変換部５７０、データ圧縮／復元制御部５７２、ターゲットインターフェース制御部５７４、バススイッチ及び終端回路制御部５７６、グリッチ（ｇｌｉｔｃｈ）検出部５７８、及び変化発生感知部５８０で構成されている。
【００７２】
図５に示したブロックそれぞれの機能を説明すると次のようである。
【００７３】
リセット処理部５５０はインターフェース手段２２０の制御部４３０の内部レジスタに対する初期化動作を遂行する目的で使われる信号である。リセット信号は外部のリセットスイッチによって強制的にリセットされたり、チップ設計検証プログラム２１１を介してリセットされたり、ＰＣＩバスシステムによってリセットされたり、正常的な動作完了によって最終フレーム伝送完了時に発生する。
【００７４】
プラグ＆プレイ制御部５５２はプラグ＆プレイ動作のための各種ＰＣＩ構成レジスタ（図示せず）に対する制御を遂行する。
【００７５】
ＰＣＩローカルバスインターフェース制御部５５４は各種ＰＣＩ関連信号と直接的に連結している部分であって、ＰＣＩバスを通したシステムメモリー１３０とインターフェース手段２２０のメモリー４００間のインターフェース制御を遂行する。
【００７６】
アドレス発生部５５６はコンピュータシステム２のシステムメモリー１３０とインターフェース手段２２０のメモリー４００間のデータ伝送時またはインターフェース手段２２０のメモリー４００とターゲット２００間のデータ伝送時にインターフェース手段２２０のメモリー４００に対するアドレスを発生する。
【００７７】
メモリー制御部５５８はＰＣＩローカルバスインターフェース制御部５５４及びターゲットインターフェース制御部５７４の制御信号によってインターフェース手段２２０のメモリー４００を直接的にアクセスしてデータ伝送動作を遂行する。
【００７８】
汎用レジスタ及び汎用レジスタ制御部５６０はデータ伝送動作によるインターフェース手段２２０の各種状態を点検して、その結果を内部の汎用レジスタ５６０に保存する。またマルチクロック設定値を保存する。
【００７９】
インターラプト制御部５６２はコンピュータシステム２のシステムメモリー１３０とインターフェース手段２２０のメモリー４００間のデータ伝送を要求するためのインターラプト発生を制御する。
【００８０】
トリガー条件制御部５６４は高速ロジック分析機の動作具現のために高いサンプリング周波数によって動作し、チップ設計検証手段２１０が動作されるによって画面上にディスプレイされる各種ＧＵＩによって装置ユーザーがデータ圧縮／復元制御部５７２を介して入／出力される任意のＩ／Ｏに対して設定したトリガー条件を伝送して受けた状態でターゲット２００に対する入力信号と出力信号をリアルタイムでモニターリングしながらトリガー条件に一致する位置を検出する。
【００８１】
また、トリガー条件制御部５６４は装置ユーザーがＧＵＩを介して設定した入力または出力フレームステップ数またはクロックステップ数をトリガー条件で設定することもできる。入力または出力フレームステップ数がトリガー条件制御部５６４にトリガー条件に設定された場合にはデータ圧縮／復元制御部５７２の入／出力処理過程でカウンティングされる入力または出力フレーム数がトリガー条件に設定された入力または出力フレームステップ数と一致する地点でトリガー動作を遂行するようになる。同じ方法で、クロックステップ数がトリガー条件に設定された場合にはクロック制御部５６８から発生するクロック信号中トリガー条件に設定されたクロック信号のカウンティング結果がトリガー条件に設定されたクロックステップ数と一致する地点でトリガー動作を遂行する。トリガー条件は上述したような方法で個別的に適用したり優先順位を置いて混用して適用することができる。上述した方法によってトリガー位置が検出されると、トリガー条件制御部５６４は装置ユーザーによって設定されたＧＵＩ上のディスプレイ基準位置を考慮してアドレス発生部５５６とメモリー制御部５５８から入力されるトリガー地点におけるアドレスとメモリー領域情報から画面ディスプレイのための開始アドレスと開始アドレスのメモリー領域、終了アドレスと終了アドレスのメモリー領域に関する情報を汎用レジスタ制御部５６０に保存して、インターラプト制御部５６２にディスプレイ該メモリー区間のデータ伝送を知らせるインターラプト要求信号を伝達する。また、装置ユーザーによって指定されたＧＵＩ上の表示位置を考慮してアドレス発生部５５６とメモリー制御部５５８に対する基準信号を発生する。
【００８２】
クロック制御部５６８はインターフェース手段２２０のシステムクロックの速度を逓倍する少なくとも一つ以上の位相同期ループ（ＰＬＬ:Ｐｈａｓｅ  Ｌｏｃｋｅｄ  Ｌｏｏｐ）を具備して、装置ユーザーによる選択によってシステムクロックの速度を選択する。
【００８３】
もしも、インターフェース手段が複数個のＰＬＬを具備する場合、装置ユーザーは各段のＰＬＬの出力周波数を選択することができ、インターフェース手段２２０は選択された段のＰＬＬの出力周波数をシステムクロックに設定する。
【００８４】
また汎用レジスタ５６０に保存されたマルチクロック設定値を獲得して、装置ユーザーにより選択されたシステムクロックカウント値を基準して、ターゲット２００にマルチクロックを発生する。
【００８５】
リードバック／ＪＴＡＧ制御部５６６はターゲット２００を構成するＦＰＧＡ、ＭＣＵ、その他リードバック／ＪＴＡＧを支援する素子の任意の内部ノードまたはレジスタに対する値を読み出す。ＪＴＡＧに関する事項はＩＥＥＥ１１４９．１による。ＧＵＩのリードバック／ＪＴＡＧ関連メニュー項目を利用して装置ユーザーが設定したリードバック／ＪＴＡＧ遂行対象素子の内部ノードまたはレジスタの位置情報、連続的な動作の遂行のためのクロックステップの数等のような情報を伝達受けた後に、これを基礎にしてターゲット２００を構成する該素子に対するリードバック／ＪＴＡＧ入力信号と出力信号に対する発生と保存を制御する。
【００８６】
並／直列変換部５７０は直列データを並列に変換したり、並列データを直列データに変換する。
【００８７】
データ圧縮／復元制御部５７２はインターフェース手段２２０のメモリー４００に圧縮された形態で保存されているデータをターゲット２００に印加する時復元する動作を遂行して、ターゲット２００から印加されるデータを保存する時圧縮する動作を遂行する。ＧＵＩ上でユーザーの指定によったりデータ伝送レート（Ｒａｔｅ）を算出する方法によって変化発生感知部５８０を介して検出されたターゲット２００の出力段の変化した値は全体的に圧縮が行われるよりは変化した部分の位置値と変化した値のみを抽出して圧縮動作を遂行した後にターゲットインターフェース制御部５７４に渡されることができる。
【００８８】
ターゲットインターフェース制御部５７４はチップ検証プログラム２１１が遂行されるによりソフトウェアＩＰ  ２１４の出力データを伝送して受ければ、出力データの有効及び無効可否を判断した後、有効なデータのみをターゲット２００に印加する。
【００８９】
またターゲットインターフェース制御部５７４は変化発生感知部５８０を介してターゲット２００出力段の値の変化発生を通報を受ければ、変化したターゲットの出力値だけ抽出して、これを出力データでコンピュータシステム２に伝送してくれる。
【００９０】
バススイッチ及び終端回路制御部５７６はチップ設計検証プログラム２１１のピン対信号指定結果を伝達を受けてターゲット２００に対する連結動作に対する制御を遂行し、各種ＧＵＩ上で連結解除状態（ｔｒｉ―ｓｔａｔｅ）を指定した場合にはバス終端回路４１０が電気的に分離された状態を維持するようにしてコネクタＣ１とバス終端回路４１０間にデータが伝送されることができないようにする。
【００９１】
グリッチ検出部５７８はターゲット２００から流入するデータに含まれたグリッチ成分を検出して、グリッチ成分の位置をモニター１上に表示するためにグリッチが検出された地点におけるクロック数またはインターフェース手段２２０のメモリー４００のアドレスを別途のレジスタ（図示せず）やメモリー４００に保存する。
【００９２】
変化発生感知部５８０はシステムクロックによって持続的にターゲット２００の出力段の値の変化を感知して、ターゲット２００の出力段の値の変化をデータ圧縮／復元制御部５７２とターゲットインターフェース制御部５７４に通報する。
【００９３】
図６は本発明の実施形態によるチップ設計検証方法を遂行することによるコンピュータシステムの動作で説明するためのフローチャートである。
【００９４】
装置ユーザーがチップ設計検証プログラム２１１を実行させる。これでＣＰＵ  １００はハードディスク１４０に保存されたチップ設計検証プログラム２１１をシステムメモリー１３０上に常住させて、グラフィック処理装置１１０を介してチップ設計検証プログラム２１１のＧＵＩをモニター１上にディスプレイする（第１１０段階）。
【００９５】
装置ユーザーはディスプレイされたチップ設計検証プログラム２１１のＧＵＩ上のメニュー項目を利用して各種変数に対する初期値設定、装置ユーザー指定変数及び関連変数の内容を指定する（第１２０段階）。
【００９６】
第１２０段階で装置ユーザーはコンピュータシステム２のシステムメモリー１３０のメモリー領域及びレジスタの領域の大きさ、及びインターフェース手段２２０のメモリー４００のメモリー領域及びレジスタの領域の大きさを決定する。
【００９７】
またインターフェース手段２２０の識別情報、ＰＣＩバスを占有しているかに対する情報、システムメモリー１３０とインターフェース手段２２０間の信号伝送方向、アクセスされるメモリー、伝送要求のためのインターラプト、伝送完了のためのインターラプト、及びリセット情報等を設定する。
【００９８】
ＧＵＩ上のメニュー項目を利用してチップ設計検証を遂行しようとするソートウェアーＩＰ  ２１４及び／またはテストベンチを選択してソートウェアーＩＰ  ２１４及び／またはテストベンチをシステムメモリー１３０上に常住させる（第１３０段階）。
【００９９】
以下ソフトウェアＩＰ及び／またはテストベンチで表現されるソフトウェアブロックの構成要素はターゲット２００との相互動作において正しく表現しなければならない時を除いて説明の便宜のために簡単に“ソフトウェアＩＰ”に総称する。
【０１００】
ＧＵＩ上の信号―ピンマッピングウィンドウを開いて、選択されたソフトウェアＩＰ  ２１４の入出力信号をターゲット２００上の該入出力ピンとマッピング関係を形成する（第１４０段階）。
【０１０１】
ＧＵＩ上のメニュー項目を利用してソフトウェアＩＰ  ２１４及びターゲット２００のチップ設計検証のためのマルチクロック及びシステムクロックを設定する（第１５０段階）。
【０１０２】
第１５０段階に対する詳細な説明は以下で詳細に説明する。
【０１０３】
選択されたソフトウェアＩＰ  ２１４を利用するターゲット２００の電源をオンさせて（第１６０段階）、ＧＵＩ上のメニュー項目を利用してインターフェース手段２２０のバス終端回路４１０の状態を連結状態に設定する（第１７０段階）。
【０１０４】
そしてＧＵＩ上のメニュー項目または別途の外部入力装置（図示せず）を利用してターゲット２００に動作開始を命令してくれる（第１８０段階）。
【０１０５】
第１８０段階で、ＧＵＩ上のメニュー項目を利用して、装置ユーザーはターゲット２００の動作モードを設定してくれることができる。
【０１０６】
ターゲット２００の動作モードには装置ユーザーが設定した動作時間（ｒｕｎ―ｔｉｍｅ）の間だけ動作を遂行するようにする制限動作モードと、装置ユーザーがＧＵＩ上のメニュー項目または別途の外部入力装置（図示せず）を利用してターゲット２００の停止動作が要求する時まで継続的に動作を遂行する無限動作モードがある。
【０１０７】
ＧＵＩ上のメニュー項目または別途の外部入力装置（図示せず）を利用したりあるいはテストベンチによってソフトウェアＩＰ  ２１４を含んだターゲット２００が初期化動作を要請を受ければ、チップ設計検証プログラム２１１はターゲットの初期化信号をインターフェース手段２２０に伝送（ａ）する（第１９０段階）。
【０１０８】
図７Ａは図６のマルチクロック及びシステムクロックの設定過程を詳細に説明するためのフローチャートであって、図７Ｂは図７Ａのマルチクロック及びシステムクロックのダイアグラムを示す図面である。
【０１０９】
マルチクロックはターゲット２００及びソフトウェアＩＰ  ２１４の動作のために印加される少なくとも一つ以上のクロックで構成される。
【０１１０】
ターゲット２００及びソフトウェアＩＰ  ２１４は複数個の設計ブロック（ｅｘ、オーディオ、ビデオ、ソフトウェアＩＰ等）で構成されて、これら設計ブロックそれぞれは相互に相異なる周期を有する相異なるクロックを印加を受けて動作を遂行するようになる。
【０１１１】
システムクロックはコンピュータシステム２に内部的に位置するソフトウェアＩＰ  ２１４とインターフェース手段２２０と連結されるターゲット２００の相互同期用クロックであって、システムクロックカウント値を基準にしてソフトウェアＩＰ  ２１４及びターゲット２００の動作時間（ｒｕｎ―ｔｉｍｅ）を把握する。
【０１１２】
ソフトウェアＩＰ  ２１４に印加されるシステムクロックの速度はコンピュータシステム２の内部動作速度により決定され、ターゲット２００に印加されるシステムクロックの速度は装置の装置ユーザーにより選択されたインターフェース手段２２０のシステムクロック速度により決定される。
【０１１３】
装置ユーザーは先にＧＵＩ上のメニュー項目またはテストベンチを利用して、チップ設計検証に必要なマルチクロックを設定する（第１５１段階）。
【０１１４】
第１５１段階でＧＵＩ上のメニュー項目を利用してマルチクロックを定義する場合、装置ユーザーはターゲット２００及びソフトウェアＩＰ  ２１４の動作を必要なクロックを選択して、各選択されたクロックの動作速度を定義する。これでチップ設計検証プログラム２１１はチップ設計検証のためのマルチクロックを構成するクロックの種類及び各クロックの動作速度を獲得する。
【０１１５】
例えば、ターゲット２００及びソフトウェアＩＰ  ２１４が６６．１ＭＨｚ、４７．２ＭＨｚ、及び８５０ＫＨｚであるターゲットクロックが必要ならば、装置ユーザーはＧＵＩ上のメニュー項目を開いて、第１、第２、及び第３ターゲットクロックを選択して、第１ターゲットクロックの値に８５０ＫＨｚを入力して、第２ターゲットクロックの値に４７．２ＭＨｚを入力して、第３ターゲットクロックの値に６６．１ＭＨｚを入力してマルチクロックを設定する。
【０１１６】
ここで個別クロックの値と単位は絶対クロック値を意味するのではなくて各個別クロック間の比率は相対クロック値を意味する。
【０１１７】
また第１５１段階でテストベンチを利用してマルチクロックを定義する場合、チップ設計検証プログラム２１１はテストベンチ２１３のクロック定義部分を探索して、チップ設計検証のためのマルチクロックを構成するクロックの種類及び各クロックの動作速度を獲得する。
【０１１８】
これでチップ設計検証プログラム２１１はクロック発生ブロックからクロック定義部分を獲得した後、クロック発生ブロックとテストケース発生ブロックとの連結を解除して、チップ設計検証プログラム２１１とテストケース発生ブロックを連結する。そうすればテストケース発生ブロックはチップ設計検証プログラム２１１のマルチクロックに応答して該動作を遂行してくれる。
【０１１９】
第１５３段階でチップ設計検証プログラム２１１はユーザーにより設定されたりテストベンチから獲得されたターゲットクロックのうち最も遅い周期を有するターゲットクロック（第１ターゲットクロック）を基準にして設定して、これに対する残りのターゲットクロック（第２ターゲットクロック〜第ｎターゲットクロック）の周期の比率を計算する（第１５３段階）。
【０１２０】
図７Ｂの（ａ）のようなチップ設計検証プログラム２１１のクロック表示窓をモニター１上に出した後、先の基準で設定したターゲットクロック（第１ターゲットクロック）の１周期クロックをクロック表示窓にディスプレイして、これを基準にして残りのターゲットクロック（第２ターゲットクロック〜第ｎターゲットクロック）をそれぞれ計算された比率に該当する程度にディスプレイする（第１５５段階）。
【０１２１】
装置ユーザーはＧＵＩ上のメニュー項目を利用してディスプレイされたターゲットクロックに対してクロック相互間の初期位置指定Ｐ１、Ｐ２、Ｐｎとクロックデューティー（ｄｕｔｙ）Ｄ１、Ｄ２、Ｄｎのようなターゲットクロックの属性を指定する（第１５７段階）。
【０１２２】
各ターゲットクロックの初期位置指定Ｐ１、Ｐ２、Ｐｎ値と期間、ハイレベル占有期間及び一周期占有期間をシステムクロックカウント値に換算してマルチクロック設定値を獲得して、これをインターフェース手段２２０に伝送する（第１５９段階）。
【０１２３】
第１５９段階で装置ユーザーはインターフェース手段２２０のシステムクロックの速度を選択して、選択された速度に対応する速度を有するシステムクロックを図７Ｂの（ｂ）に示したようにチップ設計検証プログラム２１１のクロック表示窓にディスプレイする。
【０１２４】
チップ設計検証プログラム２１１はマルチクロックを構成する各ターゲットクロックの初期位置指定Ｐ１、Ｐ２、Ｐｎ値と期間、ハイレベル占有期間及び一周期占有期間をシステムクロックカウント値に換算してマルチクロック設定値を獲得して、これをコンピュータシステム２のシステムメモリー１３０のチップ設計検証用メモリー２１２とインターフェース手段２２０の制御部４３０の汎用レジスタ５６０に保存する。
【０１２５】
チップ設計検証プログラム２１１は実際的なチップ設計検証動作時、チップ設計検証用メモリー２１２に保存されたマルチクロック設定値とコンピュータシステム２のシステムクロックを基盤にしてソフトウェアＩＰ  ２１４の各機能ブロックを動作させるためのマルチクロックを発生してソフトウェアＩＰ  ２１４に印加する。
【０１２６】
またインターフェース手段２２０の制御部４３０のクロック制御部５６８は汎用レジスタ５６０に保存されたマルチクロック設定値と装置ユーザーにより選択された速度に対応するインターフェース手段２２０のシステムクロックを基盤にしてターゲット２００の各機能ブロックを動作させるためのマルチクロックを発生する。
【０１２７】
以上でよく見たように本発明ではインターフェース手段２２０が独立的にターゲット２００を動作させるためのマルチクロックを発生してターゲット２００に印加する。
【０１２８】
これで本発明では従来の技術で発生するインターフェース手段２２０の動作遅延によるデータの伝送遅延すなわち、コンピュータシステム２内で存在するテストベンチ２１３からターゲット２００印加用マルチクロックを提供を受けることによって発生する伝送遅延を画期的に減少させてくれるようになる。
【０１２９】
図８と図９Ａないし図９Ｂは本発明の実施形態によるチップ設計検証方法を説明するためのフローチャートで、図８は本発明の実施形態によるチップ設計検証方法の初期化動作を説明するためのフローチャートであって、図９Ａは本発明の実施形態によるチップ設計検証方法においてインターフェース手段のターゲットに対する（以下ではターゲット側と指称する）メイン動作を説明するためのフローチャートであって、図９Ｂは本発明の実施形態によるチップ設計検証方法においてチップ設計検証プログラムのソフトウェアＩＰに対する（以下ではＩＰ側と指称する）メイン動作を説明するためのフローチャートである。
【０１３０】
本発明の実施形態によるチップ設計検証方法は図面に示したように、ＩＰ側の動作とターゲット側の動作が相互動作されながら初期化動作及びメイン動作が遂行されるようになる。
【０１３１】
まず、図８を参照して本発明の実施形態によるチップ設計検証方法の初期化動作をよく見るようにする。
【０１３２】
チップ設計検証プログラム２１１の動作開始と共にソフトウェアブロックまたはターゲットの構成要素の如何にしたがってインターフェース手段２２０が外部から初期化入力信号を受信したり、ＧＵＩメニュー項目の設定による初期化入力信号を受信したり、またはテストベンチから出力される初期化入力信号を受信するようになれば（第２１０段階）、インターフェース手段２２０は受信された初期化信号をターゲット２００側に伝送する。
【０１３３】
これでターゲット２００は受信したターゲットの初期化信号に応答して初期化を遂行して初期化されたターゲット２００の出力値を発生する（第２２０段階）。
【０１３４】
インターフェース手段２２０は初期化されたターゲット２００の出力値発生を感知することによって、ソフトウェアＩＰの初期化信号を生成して、“ターゲットクロックカウント値”を０に設定する。そして生成されたソフトウェアＩＰの初期化信号と、０に設定された“ターゲットクロックカウント値”及び発生した初期化されたターゲット２００の出力値で構成されたターゲットの出力データをＩＰ側に伝送する（第２３０段階）。
【０１３５】
第２３０段階でインターフェース手段２２０はターゲットの出力データをＩＰ側に伝送するために、先にインターフェース手段２２０の制御部４３０のデータ圧縮／復元制御部５７２を介して“ターゲットの出力値”を圧縮して、圧縮された“ターゲットの出力値”と“ターゲットクロックカウント値”で構成された出力データを生成する。
【０１３６】
そして生成された出力データをインターフェース手段２２０のメモリー４００のターゲット出力用メモリーＭ４の領域に保存した後、インターラプト制御部５６２を介して伝送要求インターラプト信号を発生してＩＰ側に伝送する。
【０１３７】
これでチップ設計検証プログラム２１１はインターフェース手段２２０の制御部４３０のＰＣＩバスインターフェース制御部５５４を制御してＰＣＩバス４５０を介してコンピュータシステム２のチップ設計検証用メモリー２１２のＩＰ入力用メモリー（ＩＰＭＥＭ１）領域にターゲットの出力データを保存する。
【０１３８】
またインターフェース手段２２０はＩＰ側から初期化されたソフトウェアＩＰ  ２１４の出力データを受信するかをモニターリングして待機して、ついにＩＰ側からソフトウェアＩＰ  ２１４の出力データが伝送されれば（第２４０段階）、これに対する認識信号（Ａｃｋｎｏｗｌｅｄｇｅ  ｓｉｇｎａｌ;以下“ＡＣＫＮ信号”と指称する）を発生してＩＰ側に伝送して（第２５０段階）、ターゲット２００の初期化動作が正常的に遂行したことを確認してターゲット側のメイン動作に進入（Ｃ）する。
【０１３９】
チップ設計検証プログラム２１１は第２３０段階により伝送したインターフェース手段２２０の初期化されたターゲット２００の“ターゲットクロックカウント値”と“ターゲットの出力値”で構成される出力データとソフトウェアＩＰの初期化信号を受信すれば（第２６０段階）、受信されたターゲット２００の出力値とソフトウェアＩＰの初期化信号をソフトウェアＩＰ  ２１４に入力する。
【０１４０】
第２６０段階でチップ設計検証プログラム２１１は受信された“ターゲットの出力値”をソフトウェアＩＰ  ２１４に入力するために、先にＩＰ入力用メモリー（ＩＰＭＥＭ１）に圧縮されて保存された“ターゲットの出力値”を復元して、復元された“ターゲットの出力値”をＩＰ入力用レジスタ（ＩＰＲＥＧ１）に保存する。続いて、ＩＰ入力用レジスタ（ＩＰＲＥＧ１）に保存された“ターゲットの出力値”はソフトウェアＩＰ  ２１４の入力段に印加される。
【０１４１】
ソフトウェアＩＰ  ２１４は受信された初期化されたターゲット２００の出力値とソフトウェアＩＰの初期化信号に応答して初期化を遂行して初期化されたソフトウェアＩＰ  ２１４の出力値を発生する（第２７０段階）。
【０１４２】
チップ設計検証プログラム２１１は“ＩＰクロックカウント値”を０に設定して、０に設定された“ＩＰクロックカウント値”及び発生した初期化された“ＩＰの出力値”をターゲット側に伝送する（第２８０段階）。
【０１４３】
続いて、伝送した初期化された“ＩＰの出力値”に対する“ＡＣＫＮ信号”がターゲット側から伝送されるかをモニターリングして待機して、ついにターゲット側から“ＡＣＫＮ信号”が受信されると（第２９０段階）、初期化動作を正常的に遂行したことを確認してＩＰ側のメイン動作に進入（Ｄ）する。
【０１４４】
以上のような段階を介してソフトウェアＩＰ  ２１４及びターゲット２００の初期化動作が成功的に完了すると、この時点からターゲット側とＩＰ側それぞれはメイン動作を遂行する段階に入る。
【０１４５】
まず、図９Ａを参照してターゲット側のメイン動作をよく見れば次のようである。
【０１４６】
上述したようにターゲット２００の初期化動作が正常的に完了して、メイン動作に進入（Ｃ）を遂行するようになれば、インターフェース手段２２０はターゲット２００にインターフェース手段２２０のシステムクロックを１クロック印加して（第３７０段階）、“ターゲットクロックカウント値”を１だけ増加させながら（第３８０段階）、変化発生感知部５８０を介して“ターゲットの出力値”が変化するかをモニターリングする（第３９０段階）。
【０１４７】
第３９０段階のモニターリング結果、“ターゲットの出力値”が変化されなかったら、“ＩＰクロックカウント値と比較フラッグ”が設定された状態なのかを確認する段階（第４００段階）を経て再び第３７０段階に進行する。
【０１４８】
インターフェース手段２２０は第３７０段階から第４００段階間を反復遂行しながら“ターゲットの出力値”に変化が発生したのかをモニターリングしながらＩＰ側からの進入（Ｇ）を待機する。
【０１４９】
これで“ターゲットの出力値”が変化される以前にＩＰ側からの進入（Ｇ）が確認されると、すなわち、ＩＰ側から伝送したソフトウェアＩＰ  ２１４の出力データがインターフェース手段２２０に受信されると（第３１０段階）、インターフェース手段２２０の制御部４３０は“ＩＰクロックカウント値”を獲得して、ＩＰ側から伝送した“ＩＰクロックカウント値”が現在まで累積された“ターゲットクロックカウント値”より小さかったり同じなのかを確認する（第３２０段階）。
【０１５０】
第３２０段階の確認結果、“ＩＰクロックカウント値”が“ターゲットクロックカウント値”より小さかったり同じであれば、ＩＰ側に“ターゲットクロックカウント値と比較フラッグ解除”と“ＡＣＫＮ信号”を伝送して（第３４０段階）、インターフェース手段２２０は“ＩＰの出力値”をターゲット２００の入力データで更新する（第３４５段階）。
【０１５１】
そして“ターゲットクロックカウント値”を初期化する（第３５０段階）。
【０１５２】
またインターフェース手段２２０の制御部４３０は更新されたターゲット２００の入力データがターゲット２００の該入力に印加されることができるようにデータ圧縮／復元制御部５７２を介して圧縮された“ソフトウェアＩＰの出力値”を復元した後、ターゲット入力用レジスタＭ１に保存する（第３６０段階）。
【０１５３】
そしてインターフェース手段２２０は第３７０段階から第４００段階間を反復遂行しながら“ターゲットの出力値”に変化が発生したのかをモニターリングしながら、新しいＩＰ側から進入（Ｇ）を待機する。
【０１５４】
反面第３２０段階の確認結果、“ＩＰクロックカウント値”が“ターゲットクロックカウント値”より大きければ、“ＩＰクロックカウント値”と“ターゲットクロックカウント値”を比較するための“ＩＰクロックカウント値と比較フラッグ”を設定して（第３３０段階）、現在まで累積された“ターゲットクロックカウント値”が“ＩＰクロックカウント値”より大きいかを確認する段階（第４１０段階）に進行する。
【０１５５】
第４１０段階の確認結果、“ターゲットクロックカウント値”が“ＩＰクロックカウント値”より小さかったり同じであれば、再び第３７０段階から第４１０段階間を反復遂行しながら“ターゲットの出力値”に変化が発生するかをモニターリングする。
【０１５６】
これで“ターゲットクロックカウント値”が“ＩＰクロックカウント値”より小さい状態で“ターゲットの出力値”に変化発生が感知されれば、インターフェース手段２２０は変化した“ターゲットの出力値”とこの時の累積された“ターゲットクロックカウント値”で構成されたターゲット２００の出力データをＩＰ側に伝送して（第４３０段階）、ＩＰ側に進入（Ｅ）を遂行する。
【０１５７】
そしてインターフェース手段２２０はＩＰ側から伝送したデータに対する“ＡＣＫＮ信号”を受信されるかをモニターリングしながら待機して、ＩＰ側から“ＡＣＫＮ信号”が受信されると（第４４０段階）、直ちに第３４５段階に進入（Ｆ）を遂行する。
【０１５８】
反面第４１０段階の確認結果、“ターゲットクロックカウント値”が“ＩＰクロックカウント値”より大きい時まで“ターゲットの出力値”が変化されなければ、インターフェース手段２２０は“ＩＰクロックカウント値と比較フラッグ”を解除して（第４２０段階）、ＩＰ側に“ＡＣＫＮ信号”を伝送した後に（第３４０段階）、伝送したソフトウェアＩＰ  ２１４の出力データを新しい入力データで更新する段階（第３４５段階）に進行する。
【０１５９】
次に図９Ｂを参照してＩＰ側のメイン動作をよく見るようにする。
【０１６０】
上述したようにソフトウェアＩＰ  ２１４の初期化動作が正常的に完了して、メイン動作への進入（Ｄ）を遂行するようになれば、チップ設計検証プログラム２１１はソフトウェアＩＰ  ２１４にシステムクロックを１クロック印加して（第５７０段階）、“ＩＰクロックカウント値”を１だけ増加させながら（第５８０段階）、“ソフトウェアＩＰの出力値”に変化が発生するかをモニターリングする（第５９０段階）。
【０１６１】
第５９０段階のモニターリング結果、“ソフトウェアＩＰの出力値”に変化が発生されなかったら、“ターゲットクロックカウント値と比較フラッグ”が設定された状態なのかを確認する段階（第６００段階）を経て再び第５７０段階に進行する。
【０１６２】
チップ設計検証プログラム２１１は第５７０段階から第６００段階間を反復遂行しながら“ソフトウェアＩＰの出力値”に変化が発生するかをモニターリングして、ターゲット側からの進入（Ｅ）を待機する。
【０１６３】
これで“ソフトウェアＩＰの出力値”が変化される以前にターゲット側から進入（Ｅ）が確認されるとすなわち、ターゲット側から伝送したターゲット２００の出力データが受信されると（第５１０段階）、チップ設計検証プログラム２１１はターゲット側から伝送した“ターゲットクロックカウント値”が現在まで累積された“ＩＰクロックカウント値”より小さかったり同じなのかを確認する（第５２０段階）。
【０１６４】
第５２０段階の確認結果、“ターゲットクロックカウント値”が“ＩＰクロックカウント値”より小さかったり同じであれば、ターゲット側に“ＩＰクロックカウント値と比較フラッグ解除”及び“ＡＣＫＮ信号”を伝送する（第５４０段階）。
【０１６５】
そしてチップ設計検証プログラム２１１は“ターゲットの出力値”をソフトウェアＩＰ  ２１４の新しい入力データで更新する（第５４２段階）。
【０１６６】
そしてチップ設計検証プログラム２１１はＩＰ入力用メモリー（ＩＰＭＥＭ１）に圧縮保存された“ターゲットの出力値”を復元した後、“ターゲットクロックカウント値”によって“ターゲットの出力値”波形観測器窓にディスプレイする。すなわち波形観測窓にターゲット２００に対する出力波形を更新する（第５４５段階）。
【０１６７】
チップ設計検証プログラム２１１は“ＩＰクロックカウント値”を初期化して（第５５０段階）、更新された入力データがソフトウェアＩＰ  ２１４の該入力に印加されることができるように復元された“ターゲットの出力値”をＩＰ入力用レジスタ（ＩＰＲＥＧ１）に保存する（第５６０段階）。
【０１６８】
そしてチップ設計検証プログラム２１１は第５７０段階から第６００段階間を反復遂行しながら“ソフトウェアＩＰの出力値”に変化が発生するかをモニターリングしながら、新しいターゲット側からの進入（Ｅ）を待機する。
【０１６９】
反面第５２０段階の確認結果、“ターゲットクロックカウント値”が“ＩＰクロックカウント値”より大きければ、“ＩＰクロックカウント値”と“ターゲットクロックカウント値”を比較するための“ターゲットクロックカウント値と比較フラッグ”を設定して（第５３０段階）、現在まで累積された“ＩＰクロックカウント値”が“ターゲットクロックカウント値”より大きいかを確認する段階（第６１０段階）に進行する。
【０１７０】
第６１０段階の確認結果、“ＩＰクロックカウント値”が“ターゲットクロックカウント値”より小さかったり同じであれば、再び第５７０段階から第６１０段階間を反復遂行しながら“ソフトウェアＩＰの出力値”に変化が発生するかをモニターリングする。
【０１７１】
これで“ＩＰクロックカウント値”が“ターゲットクロックカウント値”より小さい状態で“ソフトウェアＩＰの出力値”に変化が感知されれば、動作の中止可否を確認するためにチップ設計検証プログラム２１１は累積された実効的なことで“ターゲットクロックカウント値”による動作遂行時間が装置ユーザーが設定した時間（ｒｕｎ―ｔｉｍｅ）値と一致するかを確認する（第６２４段階）。
【０１７２】
装置ユーザーがＧＵＩ上のメニュー項目または外部の入力装置（図示せず）を介して動作中止を要請したことを感知する（第６２８段階）。
【０１７３】
第６２４段階及び第６２８段階の確認結果、チップ設計検証動作が続けて遂行されなければならなければ、チップ設計検証プログラム２１１は変化した“ソフトウェアＩＰの出力値”とこの時の累積された“ＩＰクロックカウント値”で構成されたソフトウェアＩＰ  ２１４の出力データをターゲット側に伝送してターゲット側への進入（Ｇ）を遂行する（第６３０段階）。
【０１７４】
そしてチップ設計検証プログラム２１１はターゲット側から伝送したデータに対する“ＡＣＫＮ信号”が受信されるかをモニターリングしながら待機して、ターゲット側から“ＡＣＫＮ信号”が伝達されれば（第６４０段階）、累積された“ＩＰクロックカウント値”によって変化した“ソフトウェアＩＰの出力値”を波形観測窓にディスプレイする。すなわち、波形観測窓にソフトウェアＩＰ  ２１４の出力波形を更新して（第６４５段階）、第５４２段階に進入（Ｈ）を遂行する。
【０１７５】
反面第６２４段階及び第６２８段階の確認結果、チップ設計検証動作が中止されなければならなければチップ設計検証プログラム２１１はソフトウェアＩＰ  ２１４にシステムクロックの印加を中止して、ＩＰクロックのカウンティングを中止して、インターフェース手段２２０を制御してインターフェース手段２２０がターゲット２００にシステムクロックを印加しないようにする（第６５０段階）。
【０１７６】
また第６１０段階の確認結果、“ＩＰクロックカウント値”が“ターゲットクロックカウント値”より大きい時まで“ＩＰの出力値”に変化が発生しなければ、チップ設計検証プログラム２１１は“ターゲットクロックカウント値と比較フラッグ”を解除して（第６２０段階）、ターゲット側に“ＡＣＫＮ信号”を伝送した後に（第４５０段階）、伝送したターゲット２００の出力データを新しい入力データで更新する段階（第５４２段階）に進行する。
【０１７７】
図８ないし図９Ａ及び図９Ｂで説明しなかったが、チップ設計検証プログラム２１１とインターフェース手段２２０は独立的な動作により生成されたシステムクロックをソフトウェアＩＰ  ２１４とターゲット２００にそれぞれ印加すると同時にシステムクロックカウント値を基準にしてマルチクロックを生成してソフトウェアＩＰ  ２１４とターゲット２００にそれぞれ印加してくれることは当然である。
【０１７８】
また図９Ａ及び図９ＢでＩＰ側またはターゲット側から相対側であるターゲット側またはＩＰ側に出力データを伝送する場合、データ容量を減少させるために、変化したデータのみを獲得して圧縮して伝送することが可能である。
【０１７９】
前記では本発明の望ましい実施形態を参照しながら説明したが、該技術分野の熟練された当業者は特許請求の範囲に記載された本発明の思想及び領域から外れない範囲内で本発明を多様に修正及び変更させることができることを理解することができることである。
【図面の簡単な説明】
【０１８０】
【図１】一般的なコンピュータシステムのブロック図である。
【図２】一般的なソフトウェアＩＰ及びターゲットを具備するチップの概念図である。
【図３】本発明のチップ設計検証装置のブロック図である。
【図４】本発明の実施形態によるインターフェース手段のブロック図である。
【図５】図４に示した制御部の実施形態のブロック図である。
【図６】本発明のチップ設計検証方法を遂行することによるコンピュータシステム内部の動作で説明するためのフローチャートである。
【図７Ａ】図６のマルチクロック及び基準クロックの発生過程を詳細に説明するためのフローチャートである。
【図７Ｂ】図６のマルチクロック及び基準クロックの発生過程を詳細に説明するためのフローチャートである。
【図８】本発明のチップ設計検証方法を遂行することによる初期化動作を説明するためのフローチャートである。
【図９Ａ】本発明のチップ設計検証方法を遂行することによるメイン動作を説明するためのフローチャートである。
【図９Ｂ】本発明のチップ設計検証方法を遂行することによるメイン動作を説明するためのフローチャートである。
【符号の説明】
【０１８１】
２  コンピュータシステム
２１１  チップ設計検証プログラム
２１２  チップ設計検証用メモリー
２１３  テストベンチ
２１４  ソフトウェアＩＰ
２２０  インターフェース手段
【図１】
2007527060.tif 000003
【図２】
2007527060.tif 000004
【図３】
2007527060.tif 000005
【図４】
2007527060.tif 000006
【図５】
2007527060.tif 000007
【図６】
2007527060.tif 000008
【図７Ａ】
2007527060.tif 000009
【図７Ｂ】
2007527060.tif 000010
【図８】
2007527060.tif 000011
【図９Ａ】
2007527060.tif 000012
【図９Ｂ】
2007527060.tif 000013
【国際調査報告】
2007527060.tif 000014
2007527060.tif 000015