(57)【要約】【課題】本発明は、計算機と論理検証装置とのデータの授受を行う際に、計算機から見てリードの場合のデータを高速に転送可能なデータ転送装置を提供する。【解決手段】データ転送装置（１０ｂ）は、特定信号に応じて変化する出力信号の値を蓄積処理するデータ蓄積手段（１５）と、論理装置（１７）に供給される特定信号の変化を検出すると出力信号の値をデータ蓄積手段に蓄積処理する動作を開始する制御を行う第１の制御手段（１３・１４）と、データ蓄積手段に蓄積処理された出力信号の値を上位装置（２）に転送制御する第２の制御手段（１６）を含む。【選択図】図１
2009072461.tif 000002
【特許請求の範囲】
【請求項１】
特定信号を供給することで論理検証を行う論理装置の出力信号の値を上位装置に転送可能なデータ転送装置であって、
前記特定信号に応じて変化する前記出力信号の値を蓄積処理するデータ蓄積手段と、
前記論理装置に供給される前記特定信号の変化を検出するとともに、その変化を検出すると前記出力信号の値を前記データ蓄積手段に蓄積処理する動作を開始する制御を行う第１の制御手段と、
前記データ蓄積手段に蓄積処理された前記出力信号の値を前記上位装置に転送する制御を行う第２の制御手段と、
を含むことを特徴とするデータ転送装置。
【請求項２】
請求項１に記載のデータ転送装置において、
前記第２の制御手段は、
前記第１の制御手段による前記データ蓄積手段への前記出力信号の値の蓄積処理が完了すると、前記データ蓄積手段から前記出力信号の値を前記上位装置に転送する制御を自発的に行うデータ転送制御手段を含むものであることを特徴とするデータ転送装置。
【請求項３】
請求項１に記載のデータ転送装置において、
前記特定信号は、前記上位装置からの書込要求によって設定されるものであり、
前記出力信号の値は、前記上位装置からの読出要求によって転送されるものであり、
前記第２の制御手段は、
前記第１の制御手段が前記データ蓄積手段に前記出力信号の値の蓄積処理を完了している場合には、前記上位装置からの読出要求に基づいて前記データ蓄積手段から前記出力信号の値の読出を開始する制御を行い、前記第１の制御手段が前記データ蓄積手段に前記出力信号の値の蓄積処理を完了していない場合には、再度前記読出要求を繰り返し実行させるように制御を行う第３の制御手段を含むものであることを特徴とするデータ転送装置。
【請求項４】
請求項１に記載のデータ転送装置において、
前記第１の制御手段は、
前記特定信号の変化を監視する信号監視手段と、
前記信号監視手段にて監視される前記特定信号の変化に応じて、前記論理装置からの前記出力信号の値を前記データ蓄積手段に蓄積処理する動作の開始及び終了を制御する読出制御手段と、
を含むことを特徴とするデータ転送装置。
【請求項５】
請求項１に記載のデータ転送装置において、
前記出力信号のうち前記特定信号の変化によって以前と値が変化した前記出力信号を検出する変化検出手段をさらに有し、
前記出力信号のうち今回の入力信号の変化によって値が変化した前記出力信号を検出する変化検出手段をさらに有し、
前記第１の制御手段は、前記変化検出手段が検出した変化した前記出力信号のみを前記データ蓄積手段に転送する制御を行うことを特徴とするデータ転送装置。
【請求項６】
請求項１に記載のデータ転送装置において、
前記特定信号は、前記論理装置に対する論理検証入力条件を入力する入力信号を含むものであり、
前記入力信号の各々が変化したときに変化する可能性がある前記出力信号に関するリスト情報と、前記各入力信号の組み合わせに関する情報とを対応づけて記憶した変化可能性出力信号情報記憶手段をさらに有し、
前記第１の制御手段は、
前記出力信号を前記データ蓄積手段に転送する前に、変化した前記各入力信号の組み合わせに基づいて前記変化可能性出力信号情報記憶手段から前記リスト情報を取得し、前記データ転送手段に転送すべき前記出力信号を決定する制御を行うことを特徴とするデータ転送装置。
【請求項７】
請求項１に記載のデータ転送装置において、
前記第１の制御手段は、
前記出力信号の数に応じて、前記第２の制御手段による前記データ蓄積手段から前記上位装置へのデータ転送を行う第１データ転送経路と、前記データ蓄積手段から直接前記上位装置へデータ転送を行う第２データ転送経路とを切換制御を行うことを特徴とするデータ転送装置。
【請求項８】
請求項１に記載のデータ転送装置において、
前記第１の制御手段は、
複数の前記出力信号の値を前記データ蓄積手段に時分割にて蓄積処理する制御を行うものであることを特徴とするデータ転送装置。
【請求項９】
請求項１に記載のデータ転送装置において、
前記上位装置側を第１の基本クロック信号に基づいて動作する第１の各部と、
前記論理装置側を前記第１の基本クロック信号と異なる動作周波数の前記第２の基本クロック信号に基づいて動作する第２の各部と、
前記第１の各部と前記第２の各部との間で非同期に行われるデータの授受を同期化する同期化手段と、
を有し、
前記データ蓄積手段は、前記第１の各部と前記第２の各部との間に形成され、前記上位装置側と前記論理装置側とで非同期にデータの授受を行うことを可能とする構成であることを特徴とするデータ転送装置。
【請求項１０】
請求項３に記載のデータ転送装置において、
前記第３の制御手段は、
前記上位装置からの読出要求に基づいて、前記データ蓄積手段に前記論理装置の出力信号の値が既に蓄積されている場合には、前記データ蓄積手段を経由した第１データ転送経路によりデータ転送を行い、前記データ蓄積手段に前記論理装置の出力信号の値が蓄積されていない場合には、前記データ蓄積手段を経由しない第３データ転送経路により前記論理装置の出力信号の値のデータ転送を行う切換制御を行う切換制御機能を含むものであることを特徴とするデータ転送装置。
【請求項１１】
請求項４に記載のデータ転送装置において、
前記上位装置からの書込要求に基づいて、前記特定信号を設定制御する信号設定制御手段をさらに有し、
前記信号監視手段は、前記信号設定制御手段から出力される前記特定信号の変化を監視することを特徴とするデータ転送装置。
【請求項１２】
請求項１１に記載のデータ転送装置において、
前記信号監視手段は、前記信号設定制御手段に入力される信号の変化を監視することを特徴とするデータ転送装置。
【請求項１３】
請求項１乃至請求項１２のうちいずれか１項に記載のデータ転送装置と、
前記特定信号は、回路へのクロック信号を含むものであり、
前記クロック信号に基づいて、回路のエミュレーションを行いそのエミュレーション結果を前記出力信号の値として前記データ転送装置に出力するエミュレーション回路部と、
を含むことを特徴とするエミュレーション装置。
【請求項１４】
上位装置と、
前記上位装置からの特定信号に基づいて論理検証を行いその論理検証結果を出力信号の値として出力する論理装置と、
前記上位装置と前記論理装置との間でデータ転送を行うデータ転送装置と、
を含み、
前記データ転送装置は、
前記特定信号に応じて変化する前記出力信号の値を蓄積処理するデータ蓄積手段と、
前記論理装置に供給される前記特定信号の変化を検出するとともに、その変化を検出すると前記出力信号の値を前記データ蓄積手段に蓄積処理する動作を開始する制御を行う第１の制御手段と、
前記第１の制御手段による前記データ蓄積手段への前記出力信号の値の蓄積処理が完了すると、前記データ蓄積手段から前記出力信号の値を前記上位装置に転送する制御を行うデータ転送制御手段と、
を含むことを特徴とする論理検証システム。
【請求項１５】
請求項１４に記載の論理検証システムにおいて、
前記第１の制御手段が前記データ蓄積手段に前記出力信号の値の蓄積処理を完了している場合には、前記上位装置からの読出要求に基づいて前記データ蓄積手段から前記出力信号の値の読出を開始する制御を行い、前記第１の制御手段が前記データ蓄積手段に前記出力信号の値の蓄積処理を完了していない場合には、再度前記読出要求を繰り返し実行させるように制御を行うバス制御手段をさらに有し、
前記第１の制御手段は、
前記論理装置にて論理検証を行う前に、前記データ転送制御手段により前記出力信号の値の転送の開始をデータ転送装置側主導で行う第１転送制御モードと、前記上位装置の読出要求により前記出力信号の値の転送の開始を上位装置側主導で行う第２転送制御モードとのうちのいずれかの転送制御モードを予め設定制御し、論理検証中は、前記設定制御されたいずれかの転送制御モードに基づいて、前記データ蓄積手段から前記出力信号の値の読出をする制御を行うことを特徴とする論理検証システム。
【請求項１６】
請求項１４に記載の論理検証システムにおいて、
前記上位装置は、
前記データ転送制御手段からの割り込み信号に基づいてデータ転送が終了したことを判断する制御を行う第１のデータ転送終了判断制御手段を有することを特徴とする論理検証システム。
【請求項１７】
請求項１４に記載の論理検証システムにおいて、
前記上位装置は、    
前記データ転送制御手段が転送するメモリ空間をリードし、特定の値が読み込まれたときに、データ転送が終了したことを判断する制御を行う第２のデータ転送終了判断制御手段を有することを特徴とする論理検証システム。
【請求項１８】
特定信号を供給することで論理検証を行う論理装置の出力信号の値を上位装置に転送するデータ転送方法であって、
前記論理装置に供給される前記特定信号の変化を検出するとともに、その変化を検出すると前記出力信号の値をデータ蓄積手段に蓄積処理する動作を開始する制御を行う第１の制御ステップと、
前記データ蓄積手段に蓄積処理された前記出力信号の値を前記上位装置に転送する制御を行う第２の制御ステップと、
を含むことを特徴とするデータ転送方法。
【請求項１９】
請求項１８に記載のデータ転送方法において、
前記第２の制御ステップでは、
前記第１の制御ステップによる前記データ蓄積手段への前記出力信号の値の蓄積処理が完了すると、前記データ蓄積手段から前記出力信号の値を前記上位装置に転送する制御を自発的に行うことを特徴とするデータ転送方法。
【請求項２０】
請求項１８に記載のデータ転送方法において、
前記特定信号は、前記上位装置からの書込要求によって設定されるものであり、
前記出力信号の値は、前記上位装置からの読出要求によって転送されるものであり、
前記第２の制御ステップでは、
前記第１の制御ステップにて前記データ蓄積手段に前記出力信号の値の蓄積処理を完了している場合には、前記上位装置からの読出要求に基づいて前記データ蓄積手段から前記出力信号の値の読出を開始する制御を行い、前記第１の制御ステップにて前記データ蓄積手段に前記出力信号の値の蓄積処理を完了していない場合には、再度前記読出要求を繰り返し実行させるように制御を行うことを特徴とするデータ転送方法。  
【請求項２１】
特定信号を供給することで論理検証を行う論理装置の出力信号の値を上位装置に転送するデータ転送装置が備えたコンピュータが実行可能なプログラムであって、
前記論理装置に供給される前記特定信号の変化を検出するとともに、その変化を検出すると前記出力信号の値をデータ蓄積手段に蓄積処理する動作を開始する制御処理を行う第１の制御処理機能と、
前記データ蓄積手段に蓄積処理された前記出力信号の値を前記上位装置に転送する制御処理を行う第２の制御機能と、
を含む機能をコンピュータに実行させることを特徴とするプログラム。
【請求項２２】
特定信号を供給することで論理検証を行う論理装置の出力信号の値がデータ転送装置により転送される上位装置が備えたコンピュータが実行可能なプログラムであって、
前記データ転送装置に対して前記特定信号を設定する書込要求を出力する書込要求出力機能と、
前記データ転送装置に対して前記出力信号の値が蓄積処理されたデータ蓄積手段の前記出力信号の値を読出す読出要求を出力する読出要求出力機能と、
前記データ転送装置が、前記論理装置に供給される前記特定信号の変化を検出し、前記出力信号の値をデータ蓄積手段に蓄積処理する動作を開始し、前記出力信号の値の蓄積処理を完了すると、前記読出要求に基づいて前記出力信号の値のデータ転送を開始し、前記データ転送装置からの割り込み信号に基づいてデータ転送が終了したことを判断する制御を行う第１のデータ転送終了判断制御機能と、
を含む機能をコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ転送装置、エミュレーション装置、論理検証システム、データ転送方法、及びプログラムに関する。
【背景技術】
【０００２】
半導体技術の進歩により、論理ＬＳＩ（Large Scale Integrated circuit）の集積度は、年々向上し、大規模システムを１チップに集積することが可能になり、ＬＳＩの製造コストは、極めて高価であるとともに、その製造期間には１月以上を必要とするため、製造前に十分な検証を行うことが重要である。【０００３】
検証は、設計の様々なフェーズで行われる。設計プロセスは、初期設計における抽象的なレベルから、最終段階における詳細な製造レベルまで多くの段階を踏み、各レベルに応じた論理情報を取り扱う。例えば初期設計段階では入出力関係程度を確定する抽象レベルの論理情報、機能設計段階では論理各部の機能を確定する機能レベルの論理情報、そして、最終的な詳細設計段階では論理構造を確定する構造レベルの論理情報が取り扱われる。一般に使用される各種ハードウェア記述言語（ＨＤＬ）により、上述の種々の設計段階の論理情報を表現することが可能である。【０００４】
ＬＳＩや、複数のＬＳＩを使用したシステムの論理検証の方法には、ソフトウェアシミュレータによるものと、ハードウェアエミュレータによるものがある。一般に、ソフトウェアシミュレータは、ＨＤＬで記述された論理情報をコンピュータプログラムとして実行するため、種々の設計段階において使用することができる。一方、ハードウェアエミュレータは、ＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）やＦＰＩＤ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｉｎｔｅｒｃｏｎｎｅｃｔ  Ｄｅｖｉｃｅ）などで構成され、外部からの入力信号に基づいて論理構造を再構成可能な装置であり、ハードウェアであるので論理演算を高速かつ並列に実行することができる。  【０００５】
このような論理検証装置の関連技術として、例えば以下に示す特許文献１、特許文献２などが挙げられる。【０００６】
特許文献１では、ＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）を用い、ＦＰＧＡにプログラムされた回路を検証する論理検証装置が開示されている。
この論理検証装置では、ＰＣＩバスやＩＳＡバスなどの拡張バスに接続するためのインターフェース部と、設計した回路を実現するための書換可能なハードウェアであるＦＰＧＡと、このＦＰＧＡをプログラムするためのＦＰＧＡプログラム部とを備えている回路試作部と、ＰＣなどの計算機とを有する。  
回路試作部のインターフェース部を介して、計算機からの信号により、ＦＰＧＡをプログラムして検証する回路を試作し、且つ、計算機からの入力信号により、該検証する回路に入力を行い、該検証する回路からの出力信号を得て検証を行うものである。【０００７】
このような構成を有する特許文献１の論理検証装置では、始めに論理機能検証を行うための準備を行うステップを実行し、次に、論理機能検証を実行するステップを実行するように動作する。【０００８】
論理機能検証の準備のステップでは、計算機上で動作するプログラムと、ＦＰＧＡに実装された論理機能検証対象回路との信号の授受が正常に行われるようにＦＰＧＡに実装する論理機能検証対象回路を修正するステップと、その回路をＦＰＧＡに実装するステップとから構成される。【０００９】
次の論理機能検証を実行するステップでは、最初に計算機上で動作するプログラムが論理機能検証用データをバスを経由してＦＰＧＡに実装された論理機能検証に入力し、次にＦＰＧＡに実現されている論理機能検証を行う回路にクロック信号を供給して回路を動作させ、次にその計算結果をバスを経由して計算機に転送するという手順で動作する。【００１０】
計算するものが複数ある場合、この一連のステップは繰り返し実行される（特許文献１の段落０００９〜段落００１８）。【００１１】
特許文献１では、計算機とＦＰＧＡエミュレータとの間でデータのやり取りが計算単位ごとであるが、論理検証する回路やその状況によっては、この計算単位が回路の動作ごと、つまり一クロックごとに必要となる場合がある。その極端な例として、計算機上のシミュレータとＦＰＧＡエミュレータを組み合わせた論理機能検証システムが、特許文献２に開示されている。【００１２】
特許文献２では、ＰＣシミュレータとＦＰＧＡエミュレータを用い、最初に計算機がＦＰＧＡに実装された論理機能検証対象回路の入力端子にセットすべき信号の値を計算し、次に、計算機が計算された値を論理機能検証対象回路の入力信号をセットし、次に、論理機能検証対象回路に１クロック送信して動作を一サイクル進め、次に、論理機能検証対象回路の出力信号の値を計算機に転送するという、一連のサイクルを繰り返すことで回路のシミュレーションを行う。【００１３】
この場合、回路のシミュレーション速度は、計算機におけるシミュレーション時間と、ＦＰＧＡでのエミュレーション時間と、データ転送時間との和によって決定される。【００１４】
通常は、シミュレーションを高速に行うために、高速に動作可能なＦＰＧＡに回路の大部分を実装して、計算機でのシミュレーション時間を短くすることが行われる。この際、回路のシミュレーション速度を決める時間要素のうち、汎用バスでのデータ転送時間の占める割合が多く、このデータ転送時間により回路のシミュレーション速度のほとんどが決定される。【００１５】
ここで、データ転送には、計算機に搭載されている汎用バス（ＰＣＩバスなど）を用いて行われる。【００１６】
計算機からの書込処理は、チップセットやバスブリッジ等でバッファリングされ、バースト転送で一度に転送されるため高速に実行される。
一方、計算機からの読出処理では、一データずつの読み出しが行われる。これは、このような計算機が外部デバイスとのデータ授受にメモリマップトＩ／Ｏを利用しているためである。その結果、データ転送時間の大半は、データの読出時間となる。
【特許文献１】特開２０００−１２２８９０号公報
【特許文献２】特開２０００−２１５２２６号公報
【発明の開示】
【発明が解決しようとする課題】
【００１７】
しかしながら、特許文献１では、計算機とＦＰＧＡエミュレータとの間でのデータのやり取りが計算単位ごとであり、論理検証する回路やその状況によっては、この計算単位が回路の動作ごと、つまり一クロックごとの場合には、論理検証時間が遅くなる、という不具合があった。【００１８】
また、特許文献２では、回路のシミュレーション速度を決めるデータ転送時間において大半を占めるデータの読出時間に、一データずつの読み出しが行われるため、計算機とＦＰＧＡエミュレータとのデータ授受、特に、計算機にとってリードの（読出を行う場合の）データを高速に転送することができない、という不具合があった。
特に、論理検証装置においては、この不具合が、論理検証時間を遅くする原因となる。【００１９】
本発明は、上記した技術の不具合を解決することを課題としてなされたものであって、その目的とするところは、計算機と論理検証装置とのデータの授受を行う際に、計算機から見てリードの場合のデータを高速に転送可能なデータ転送装置、エミュレーション装置、論理検証システム、データ転送方法、及びプログラムを提供することにある。
【課題を解決するための手段】
【００２０】
上記目的を達成するため、本発明のデータ転送装置は、特定信号を供給することで論理検証を行う論理装置の出力信号の値を上位装置に転送可能なデータ転送装置であって、前記特定信号に応じて変化する前記出力信号の値を蓄積処理するデータ蓄積手段と、前記論理装置に供給される前記特定信号の変化を検出するとともに、その変化を検出すると前記出力信号の値を前記データ蓄積手段に蓄積処理する動作を開始する制御を行う第１の制御手段と、前記データ蓄積手段に蓄積処理された前記出力信号の値を前記上位装置に転送する制御を行う第２の制御手段と、を含むことを特徴としている。【００２１】
本発明の論理検証システムは、上位装置と、前記上位装置からの特定信号に基づいて論理検証を行いその論理検証結果を出力信号の値として出力する論理装置と、前記上位装置と前記論理装置との間でデータ転送を行うデータ転送装置と、を含み、前記データ転送装置は、前記特定信号に応じて変化する前記出力信号の値を蓄積処理するデータ蓄積手段と、前記論理装置に供給される前記特定信号の変化を検出するとともに、その変化を検出すると前記出力信号の値を前記データ蓄積手段に蓄積処理する動作を開始する制御を行う第１の制御手段と、前記第１の制御手段による前記データ蓄積手段への前記出力信号の値の蓄積処理が完了すると、前記データ蓄積手段から前記出力信号の値を前記上位装置に転送する制御を行うデータ転送制御手段と、を含むことを特徴としている。【００２２】
本発明のデータ転送方法は、特定信号を供給することで論理検証を行う論理装置の出力信号の値を上位装置に転送するデータ転送方法であって、前記論理装置に供給される前記特定信号の変化を検出するとともに、その変化を検出すると前記出力信号の値をデータ蓄積手段に蓄積処理する動作を開始する制御を行う第１の制御ステップと、前記データ蓄積手段に蓄積処理された前記出力信号の値を前記上位装置に転送する制御を行う第２の制御ステップと、を含むことを特徴としている。【００２３】
本発明の（データ転送装置の）プログラムは、特定信号を供給することで論理検証を行う論理装置の出力信号の値を上位装置に転送するデータ転送装置が備えたコンピュータが実行可能なプログラムであって、前記論理装置に供給される前記特定信号の変化を検出するとともに、その変化を検出すると前記出力信号の値をデータ蓄積手段に蓄積処理する動作を開始する制御処理を行う第１の制御処理機能と、前記データ蓄積手段に蓄積処理された前記出力信号の値を前記上位装置に転送する制御処理を行う第２の制御機能と、を含む機能をコンピュータに実行させることを特徴としている。【００２４】
本発明の（上位装置の）プログラムは、特定信号を供給することで論理検証を行う論理装置の出力信号の値がデータ転送装置により転送される上位装置が備えたコンピュータが実行可能なプログラムであって、前記データ転送装置に対して前記特定信号を設定する書込要求を出力する書込要求出力機能と、前記データ転送装置に対して前記出力信号の値が蓄積処理されたデータ蓄積手段の前記出力信号の値を読出す読出要求を出力する読出要求出力機能と、前記データ転送装置が、前記論理装置に供給される前記特定信号の変化を検出し、前記出力信号の値をデータ蓄積手段に蓄積処理する動作を開始し、前記出力信号の値の蓄積処理を完了すると、前記読出要求に基づいて前記出力信号の値のデータ転送を開始し、前記データ転送装置からの割り込み信号に基づいてデータ転送が終了したことを判断する制御を行う第１のデータ転送終了判断制御機能と、を含む機能をコンピュータに実行させることを特徴としている。
【発明の効果】
【００２５】
本発明によれば、第１の制御手段により前記特定信号の変化の直後に上位装置に転送すべきデータをデータ蓄積手段に蓄えるため、関連技術では何もしていなかった時間をなくすことができ、上位装置に転送すべきデータの値を時間のロスなく上位装置に伝達でき、データ転送の高速化を図ることができるという、関連技術にない優れたデータ転送装置、エミュレーション装置、論理検証システム、データ転送方法、及びプログラムを提供することができる。
【発明を実施するための最良の形態】
【００２６】
〔データ転送装置の基本的構成〕
先ず、データ転送装置の基本的構成について説明する。本発明のデータ転送装置（例えば図１に示す符号１０ｂなど）は、特定信号（例えば図１に示すＳ１など）を供給することで論理検証を行う論理装置（例えば図１に示す符号１７など）の出力信号（例えば図１に示すＳｏｕｔなど）の値を上位装置（例えば図１に示す符号２など）に転送可能なデータ転送装置であって、前記特定信号に応じて変化する前記出力信号の値を蓄積処理するデータ蓄積手段（例えば図１に示す符号１５など）と、前記論理装置に供給される前記特定信号の変化を検出するとともに、その変化を検出すると前記出力信号の値を前記データ蓄積手段に蓄積処理する動作を開始する制御を行う第１の制御手段（例えば図１に示す符号１３、符号１４からなる構成など）と、前記データ蓄積手段に蓄積処理された前記出力信号の値を前記上位装置に転送する制御を行う第２の制御手段（例えば図１に示す符号１６など）と、を含む構成としている。【００２７】
本発明のデータ転送装置は、上位装置と、前記上位装置からの特定信号によって出力信号を変化させる論理装置との間にあり、それらの間でデータの授受を実現する装置で、前記特定信号を検出することにより前記出力信号をデータ蓄積手段に蓄える動作を開始する第１の制御手段を備える。【００２８】
このような構成を採用することで、前記特定信号の変化の直後に上位装置に転送すべきデータをあらかじめデータ蓄積手段に蓄えることができる。また、第２の制御手段により、前記データ蓄積手段に蓄積処理された前記出力信号の値を前記上位装置に転送する制御を行うことができる。これにより、上位装置と論理装置とのデータの授受を行う際に、上位装置から見てリードの場合のデータを高速に転送でき、その結果、論理検証時間の高速化を図ることができる。  【００２９】
以下、このような本発明の「データ転送装置」を、「論理検証システム」に適用した好適な実施の形態の一例について、図面を参照して具体的に説明する。【００３０】
〔第１の実施の形態〕
（論理検証システムの全体構成）
先ず、本実施の形態の論理検証システムの具体的構成について、全体構成から説明し、続いて各部の詳細構成について説明することとする。図１は、本発明における第１実施の形態の論理検証システムの全体の概略構成の一例を示すブロック図である。【００３１】
本第１の実施の形態の論理検証システム１は、図１に示すように、上位装置の一例である計算機２と、この計算機２からの特定信号に基づいて論理検証を行いその論理検証結果を出力信号の値として出力する論理装置１７と、前記計算機２と前記論理装置１７との間でデータ転送を行うデータ転送装置１０ｂと、を含んで構成される。【００３２】
ここで、論理装置１７とデータ転送装置１０ｂとで論理検証装置１０ａを構成することもできる。この場合、論理検証システム１は、計算機２と論理検証装置１０ａとで構成することができる。  【００３３】
さらにこの場合、論理検証装置１０ａは、図１に示すように、少なくとも一つ以上の特定信号Ｓ１の変化によって出力信号Ｓｏｕｔを変化させる論理装置１７と、計算機２との間でデータの授受を実現するデータ転送装置１０ｂと、を含んで構成される。【００３４】
このデータ転送装置１０ｂは、特定信号Ｓ１を供給することで論理検証を行う論理装置１７の出力信号Ｓｏｕｔの値を計算機２に転送可能なものであり、特定信号Ｓ１に応じて変化する前記出力信号Ｓｏｕｔの値を蓄積処理するデータ蓄積手段１５と、特定信号Ｓ１の変化によって、論理装置１７の出力信号Ｓｏｕｔの値をデータ蓄積手段１５に蓄積処理する動作及びその動作の開始及び終了の制御を行う読出制御手段１４と、計算機２からの命令によって特定信号Ｓ１を変化させる特定信号設定制御手段１２と、前記論理装置１７に特定信号Ｓ１の変化を検出し、変化があったことを読出制御手段１４に知らせる特定信号監視手段１３と、前記読出制御手段１４による前記データ蓄積手段１５への前記出力信号Ｓｏｕｔの値の蓄積処理が完了（読出終了）すると、データ蓄積手段１５に蓄積処理された前記出力信号の値を計算機２に転送する制御を行うデータ転送制御手段１６と、を含んで構成される。【００３５】
次に、各手段の機能について詳細に説明する。
計算機２は、データ転送制御手段１６によって転送された論理装置１７の出力信号Ｓｏｕｔの値を元に、計算機２自身が備えるバスＢＵＳに接続された特定信号設定制御手段１２により論理装置１７の特定信号Ｓ１を制御したり、その他の処理（値の表示等）を行うプログラムを実行するものである。【００３６】
また、この計算機２は、プログラム制御により動作するものであり、ネットワーク関連の機能を有していれば、デスクトップ、ラップトップコンピュータその他無線・有線通信機能を有する情報機器、またはこれに類するコンピュータなどいかなるコンピュータでもよく、移動式・固定式を問わない。【００３７】
計算機２のハードウェア構成は、種々の情報等を表示するための表示手段（スクリーン）、この表示手段の表示画面上（の各種入力欄等）にデータを操作入力するための操作入力手段（例えばキーボード・マウス等）、各種信号・データを送受信するための送受信手段（通信手段）、各種プログラム・各種データを記憶しておく記憶手段（例えばメモリ、ハードディスク等）、これらの制御を司る制御手段（例えばＣＰＵ等）などを有している。  【００３８】
特定信号設定制御手段１２は、バスＢＵＳに接続され、計算機２からの命令によって、特定信号Ｓ１の値を制御する手段である。【００３９】
特定信号設定制御手段１２は、計算機２からの命令によって特定信号Ｓ１を制御できればよく、図１に示すように、バスＢＵＳに直接接続されているものでなければならないという限定はない。
また、特定信号Ｓ１がバスＢＵＳの一部の信号である場合には、この手段は、不要となるが、本実施の形態では分かりやすくするため本手段を記載している。【００４０】
特定信号監視手段１３は、特定信号Ｓ１の変化を検出し、変化があったことを読出制御手段１４に知らせるものである。実現によっては、読出制御手段１４に変化を検出する能力を持たせても良いが、本実施の形態では分かりやすくするため本手段を記載している。【００４１】
読出制御手段１４は、特定信号Ｓ１の変化により動作を開始し、論理装置の出力信号Ｓｏｕｔの値をデータ蓄積手段１５に蓄え、読出が終了したらそれをデータ転送制御手段１６に転送する手段である。
すべての出力信号Ｓｏｕｔの値をデータ蓄積手段１５に蓄えても良いし、一部の信号でも良く、動作させるアプリケーションに依存する。【００４２】
また、出力信号の数が複数ある場合は、データ蓄積手段１５の構成にも寄るが時分割でデータを格納しても良いし、まとめて格納してもよい。【００４３】
データ転送制御手段１６は、読出制御手段１４の読み出し終了により、データ蓄積手段１５に蓄積された論理装置１７の値を計算機２に転送する動作を開始する制御を行うものである。【００４４】
データ蓄積手段１５は、一般的にメモリが利用されるが、データ転送を効率化させるためにＦＩＦＯ（Ｆｉｒｓｔ−ｉｎ  Ｆｉｒｓｔ−ｏｕｔ）や２ポートメモリ等で構成してもよい。【００４５】
また、論理装置１７とバスＢＵＳが違うタイミングで動作している（回路の場合であれば、違うクロックによって制御されている）場合は、データ蓄積手段１５でその違いを吸収できるようにしておけば同期化するための手段が不要となり、部品数を削減することができる。【００４６】
ここで、本実施の形態の構成要件と、本発明の構成要件との対応関係について述べると、本実施の形態の特定信号監視手段１３と読出制御手段１４により、本発明にいう「第１の制御手段」を構成することができる。また、本実施の形態のデータ転送制御手段１６により、本発明にいう「第２の制御手段」を構成することができる。さらに、本実施の形態の特定信号監視手段１３は、本発明にいう「信号監視手段」ということもできる。さらにまた、本実施の形態の特定信号設定制御手段１２は、本発明にいう「信号設定制御手段」ということもできる。    【００４７】
この際、「第１の制御手段」は、前記論理装置に供給される前記特定信号の変化を検出するとともに、その変化を検出すると前記出力信号の値を前記データ蓄積手段に蓄積処理する動作を開始する制御を行うことができる。また、「第２の制御手段」は、前記データ蓄積手段に蓄積処理された前記出力信号の値を前記上位装置に転送する制御を行うことができる。さらに、「第２の制御手段」は、前記第１の制御手段による前記データ蓄積手段への前記出力信号の値の蓄積処理が完了すると、前記データ蓄積手段から前記出力信号の値を前記上位装置に転送する制御を自発的に行うデータ転送制御手段を含めることができる。  【００４８】
また、「第１の制御手段」は、前記特定信号の変化を監視する信号監視手段と、前記信号監視手段にて監視される前記特定信号の変化に応じて、前記論理装置からの前記出力信号の値を前記データ蓄積手段に蓄積処理する動作の開始及び終了を制御する読出制御手段と、を含むことができる。
この「第１の制御手段」は、複数の前記出力信号の値を前記データ蓄積手段に時分割にて蓄積処理する制御を行うこともできる。【００４９】
さらに、「信号設定制御手段」は、前記上位装置からの書込要求に基づいて、前記特定信号を設定制御することができる。この場合、「信号監視手段」は、前記信号設定制御手段から出力される前記特定信号の変化を監視することができる。この場合、「信号監視手段」は、前記信号設定制御手段に入力される信号の変化も監視することができる。【００５０】
（処理手順について）
次に、上述のような構成を有するデータ転送装置における全体の動作である各種の処理手順について、図２を参照しつつ説明する。図２は、本実施の形態による論理検証システムにおける処理手順の一例を示すフローチャートである。【００５１】
本実施の形態に係るデータ転送方法は、特定信号を供給することで論理検証を行う論理装置の出力信号の値を上位装置に転送するものを対象とするものである。
このデータ転送方法では、前記論理装置に供給される前記特定信号の変化を検出するとともに、その変化の直後に前記出力信号の値をデータ蓄積手段に蓄積処理する動作を開始する制御を行う第１の制御ステップ（例えば図２に示すステップＳ１０１からステップＳ１０３からなるステップなど）と、前記データ蓄積手段に蓄積処理された前記出力信号の値を前記上位装置に転送する制御を行う第２の制御ステップ（例えば図２に示すステップＳ１０４など）と、を含むことができる。【００５２】
ここで、前記第２の制御ステップでは、前記第１の制御ステップによる前記データ蓄積手段への前記出力信号の値の蓄積処理が完了すると、前記データ蓄積手段から前記出力信号の値を前記上位装置に転送する制御を自発的に行うことができる。  【００５３】
本実施の形態では、特定信号が変化した後にデータを効率よく転送するため、特定信号が変化してからの動作を説明する。【００５４】
先ず、最初に特定信号の変化を特定信号監視手段１３により検出する（ステップＳ１０２）。【００５５】
続いて、読出制御手段１４が動作を開始し、出力信号Ｓｏｕｔの値をデータ蓄積手段１５に蓄える（ステップＳ１０３）。【００５６】
次に、読出制御手段１４の読出終了によってデータ転送をデータ転送制御手段１６が開始する（図２のステップＳ１０４）。【００５７】
このとき、出力信号の値であるデータを、計算機２のどの領域に転送するかはアプリケーション次第であるが、計算機２に搭載されている特定のメモリ空間に前記データを書き込むことが好ましい。【００５８】
データ転送制御手段１６のデータ転送終了を計算機２に知らせるためには、第１に割込を利用する手法が挙げられる。第２に、データ転送制御手段１６があらかじめ指定した計算機上のメモリにデータを書込（計算機２のＣＰＵは、そのアドレスへのポーリング）を利用する手法が挙げられる。【００５９】
第１の手法の割込を利用した場合は、計算機上のオペレーティングシステムにより割込処理が実行されるため動作は遅くなるが、無駄な動作をすることがないため、一般的な方法である。【００６０】
第２の手法のメモリへのポーリングは、ＣＰＵの負荷を上げてしまう要因になるが、ＯＳによる処理が発生しないため、高速に動作する可能性がある。【００６１】
第１の手法、及び第２の手法のいずれの手法を利用するかは、アプリケーション次第であるが、計算機によってどちらが高速か事前に自動的に検証しておき、動作が高速な方を利用するように構成すれば、いつでも高速にデータを授受できる装置となる。【００６２】
以上のように本実施の形態によれば、計算機に転送すべきデータの値を時間のロスなく計算機に伝達でき、データ転送の高速化を図ることができる。その理由は、前記特定信号の変化の直後に計算機に転送すべきデータをデータ蓄積手段に蓄えるため、関連技術では何もしていなかった時間をなくすことができるからである。【００６３】
また、論理検証装置の場合、ＦＰＧＡエミュレータに実装された論理機能検証対象の出力信号の値およびデバッグ目的の信号の値を時間のロスなく計算機に伝達できる。その理由は、クロックの変化を検出してすぐに、被検証回路の出力信号の値およびデバッグ目的の信号の値をデータ蓄積手段に蓄えることができるためである。【００６４】
さらに、計算機２がリードを行う場合、関連技術と比較して、特定信号Ｓ１の変化を検出すると、直ちに論理装置１７の出力信号Ｓｏｕｔの値をデータ蓄積手段１５に転送し、データ蓄積手段１５への蓄えが終了すると、直ちに計算機２に転送を行うように構成されているため、データを高速に転送できる。【００６５】
また、メモリマップトＩ／Ｏを利用している計算機が、バスへリードを行う場合には、計算機から見て書込と同じようにバス上でバースト転送を行うことができず（なぜならプログラムが次のアドレスを読むかＣＰＵは判断できない）、非常に非効率となる。
これに対して本実施の形態では、逆に、データ転送制御手段が、計算機のメモリへ書き込むため、バースト転送が利用でき、さらに効率良くデータ転送ができる。【００６６】
ここで、図１に示すブロック図における一部の各ブロックは、コンピュータが適宜なメモリに格納された各種プログラムを実行することにより、該プログラムにより機能化された状態を示すソフトウエアモジュール構成であってもよい。
すなわち、物理的構成は例えば一又は複数のＣＰＵ（或いは一又は複数のＣＰＵと一又は複数のメモリ）等ではあるが、各部（回路・手段）によるソフトウェア構成は、プログラムの制御によってＣＰＵが発揮する複数の機能を、それぞれ複数の部（手段）による構成要素として表現したものである。
ＣＰＵがプログラムによって実行されている動的状態（プログラムを構成する各手順を実行している状態）を機能表現した場合、ＣＰＵ内に各部（手段）が構成されることになる。
プログラムが実行されていない静的状態にあっては、各手段の構成を実現するプログラム全体（或いは各手段の構成に含まれるプログラム各部）は、メモリなどの記憶領域に記憶されている。以上に示した各部（手段）の説明は、プログラムにより機能化されたコンピュータをプログラムの機能と共に説明したものと解釈することも出来るし、また、固有のハードウェアにより恒久的に機能化された複数の電子回路ブロックからなる装置を説明したものとも解釈することが出来ることは、当然である。
したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現でき、いずれかに限定されるものではない。  【００６７】
すなわち、データ転送装置１０ｂないしは論理検証装置１０ａを、プログラム制御により動作し、ネットワーク関連の機能、その他無線・有線通信機能を有する情報機器、またはこれに類するコンピュータなどいかなるコンピュータで構成してもよく、移動式・固定式を問わない。【００６８】
［第２の実施の形態］
次に、本発明にかかる第２の実施の形態について、図３に基づいて説明する。以下には、前記第１の実施の形態の実質的に同様の構成に関しては説明を省略し、異なる部分についてのみ述べる。図３は、本発明の論理検証システムの第２の実施の形態の一例を示すブロック図である。【００６９】
本実施の形態では、図３に示すように、上述の第１の実施の形態におけるデータ転送制御手段を設けない構成としている。【００７０】
具体的には、本実施の形態の論理検証システム１００は、図３に示すように、計算機１０２と、データ転送装置１１０ｂと、論理装置１１７とを備え、データ転送装置１１０ｂは、データ蓄積手段１１５と、特定信号設定制御手段１１２と、特定信号監視手段１１３と、読出制御手段１１４とを含んで構成される。【００７１】
この構成において、データ蓄積手段１１５がバスＢＵＳに直接接続され、計算機１０２からデータ蓄積手段１１５に直接リードを行うことを可能とした構成である。【００７２】
計算機１０２からのリード命令（読出要求）に対して、読出制御手段１１４によるデータ蓄積手段１１５へのデータ転送が終了していない場合は、データ転送装置１１０ｂは、データ蓄積手段１１５に対するリード命令（読出要求）をリトライさせて、再度読出要求が繰り返し実行させるように動作する。  【００７３】
一方、計算機１０２からのリード命令（読出要求）に対して、読出制御手段１１４によるデータ蓄積手段１１５へのデータ転送が終了している場合は、データ転送装置１１０ｂは、論理装置１１７からの出力信号Ｓｏｕｔの値を、データ蓄積手段１１５から計算機１０２に向けて返すように動作する。【００７４】
（処理手順について）
次に、本第２の実施の形態の論理検証システム１００の全体の動作について、図４のフローチャートを参照して詳細に説明する。図４は、本第２の実施の形態による論理検証システムにおける処理手順の一例を示すフローチャートであり、計算機１０２側の処理手順と、その他の手段（データ転送装置１１０ｂ側）の処理手順とが時系列に並列に記載されている。【００７５】
図４に示すフローチャートにおいて、その他の手段（データ転送装置１１０ｂ側）の処理の流れは、前記第１の実施の形態の処理手順におけるステップＳ１０４の処理がない場合と同一となっている。【００７６】
計算機１０２は、特定信号Ｓ１の変化を伴う制御を行った（ステップＳ３０１）後、データ蓄積手段１１５へのリード命令（読出要求）を、値が返ってくるまで連続して繰り返し実行する（ステップＳ３０２、Ｓ３０３、Ｓ３０４、Ｓ３０５）。このように、読出要求を繰り返し実行することによって、データ蓄積手段１１５の出力信号Ｓｏｕｔの値であるデータを読み込む処理を行う。【００７７】
図４に示す例では、その他の手段（データ転送装置１１０ｂ側）の処理手順において、特定信号が変化し（ステップＳ２０１）、その特定信号の変化を検出し（ステップＳ２０２）、論理装置１１７からの出力信号の値をデータ蓄積手段１１５に蓄積処理する動作である読出の開始を行う（ステップＳ２０３）。そして、データ蓄積手段１１５に出力信号の値の蓄積処理が完了し、データ転送終了時刻となる。【００７８】
これらの一連のステップＳ２０１〜ステップＳ２０３の処理手順が終了し、データ転送終了時刻に到る前の過程では、計算機１０２が、何度もリード命令（読出要求）を実行したとしても、データ蓄積手段１１５に出力信号の値のデータの蓄積処理が完了していないので、データ蓄積手段１１５のデータが計算機１０２側に転送されることはない。【００７９】
一方、前記データ転送終了時刻を過ぎると、計算機１０２が、リード命令（読出要求）を実行すると、データ蓄積手段１１５に出力信号の値のデータの蓄積処理が完了しているため、データ蓄積手段１１５のデータが計算機１０２側に転送されることとなる。【００８０】
このように、本実施の形態に係るデータ転送方法は、特定信号を供給することで論理検証を行う論理装置の出力信号の値を上位装置に転送するものを対象とするものである。
このデータ転送方法では、前記論理装置に供給される前記特定信号の変化を検出するとともに、その変化の直後に前記出力信号の値をデータ蓄積手段に蓄積処理する動作を開始する制御を行う第１の制御ステップ（例えば図４に示すステップＳ２０１からステップＳ２０３からなるステップなど）と、前記データ蓄積手段に蓄積処理された前記出力信号の値を前記上位装置に転送する制御を行う第２の制御ステップ（例えば図２に示すステップＳ３０４など）と、を含むことができる。【００８１】
ここで、前記特定信号は、前記上位装置からの書込要求によって設定されるものであり、前記出力信号の値は、前記上位装置からの読出要求によって転送されるものである場合には、前記第２の制御ステップでは、前記第１の制御ステップにて前記データ蓄積手段に前記出力信号の値の蓄積処理を完了している場合には、前記上位装置からの読出要求に基づいて前記データ蓄積手段から前記出力信号の値の読出を開始する制御を行い、前記第１の制御ステップにて前記データ蓄積手段に前記出力信号の値の蓄積処理を完了していない場合には、再度前記読出要求を繰り返し実行させるように制御を行うことができる。もし、前記出力信号が複数存在する場合は、前記出力信号の全てが前記データ蓄積手段に転送されていなくても前記上位装置からの要求されたデータが既に前記データ蓄積手段に蓄えられていれば読出を開始するようにする。  【００８２】
以上のように本実施の形態によれば、前記第１の実施の形態と同様の作用効果を奏しながらも、データ転送手段がない構成であるため、装置における部材点数を少なくすることができ、回路規模を低減して小型化、低消費電力とすることができる。さらに各部の動作周波数が異なる場合にはより高速にデータ転送を実現できる可能性もある。さらにマスタ転送をサポートしていないバスでも対応できる。【００８３】
また、本実施の形態では、リードするデータが多い場合、複数回のリードを行う必要があり、マスタ転送を利用できないため、データ転送速度は低下するが、計算機がリードするデータの数が少なければ、第１の実施の形態と比較して本第２の実施の形態のほうが高速に動作する可能性もある。これは、データ転送制御手段がバスマスタになるまでに時間を必要とするためである。【００８４】
さらに、第１の実施の形態と第２の実施の形態を組み合わせて、読出制御手段１１４がリードする出力信号の数に応じて自動的にどちらかを利用するかを切り替えても良い。【００８５】
例えば図５に示すように、論理検証システム１００Ａのデータ転送装置１１０Ａｂにおいて、データ蓄積手段１１５からのデータを前記第１の実施の形態のようにデータ転送制御手段１１６によりデータ転送を行う第１のリードデータ転送経路ＤＲ１と、データ蓄積手段１１５からのデータを本第２の実施の形態のようにデータ転送制御手段１１６を介さずにデータ転送を行う第２のリードデータ転送経路ＤＲ２とを、読出制御手段１１４からの転送経路選択制御信号に基づいて選択制御する転送経路選択手段１１４Ａを設けてもよい。【００８６】
ここで、本実施の形態の構成要件と、本発明の構成要件との対応関係について述べると、本実施の形態の特定信号監視手段１１３と読出制御手段１１４により、本発明にいう「第１の制御手段」を構成することができる。この「第１の制御手段」は、出力信号の数に応じて、前記第２の制御手段による前記データ蓄積手段から前記上位装置へのデータ転送を行う第１データ転送経路と、前記データ蓄積手段から直接前記上位装置へデータ転送を行う第２データ転送経路とを切換制御を行うことができる。  【００８７】
このようにすることで、どのようなリードの出力の数であれ常に最短のデータ転送時間を利用することができる。  【００８８】
その他の構成およびその他のステップ並びにその作用効果については、前述した第１の実施の形態の場合と同一となっている。また、上記の説明において、上述した各ステップの動作内容及び各部の構成要素をプログラム化し、コンピュータに実行させてもよい。【００８９】
［第３の実施の形態］
次に、本発明にかかる第３の実施の形態について、図６に基づいて説明する。以下には、前記第１の実施の形態の実質的に同様の構成に関しては説明を省略し、異なる部分についてのみ述べる。図６は、本発明の第３の実施の形態による論理検証システムの全体構成の一例を示すブロック図である。【００９０】
本実施の形態では、上述の第１の実施の形態の構成に加え、変化検出手段が追加された構成としている。【００９１】
具体的には、本実施の形態の論理検証システム２００は、図６に示すように、計算機２０２と、データ転送装置２１０ｂと、論理装置２１７とを備え、データ転送装置２１０ｂは、前記第１の実施の形態と同様の構成である、データ蓄積手段２１５、特定信号設定制御手段２１２、特定信号監視手段２１３、読出制御手段２１４、データ転送制御手段２１６の構成に加え、変化検出手段２２０を含んで構成される。【００９２】
変化検出手段２２０は、論理装置２１７の出力信号Ｓｏｕｔの値のうち、今回の特定信号Ｓ１の変化によって、値が変化した出力信号Ｓｏｕｔの値を検出するものである。【００９３】
読出制御手段２１４やデータ転送制御手段２１６は、第１の実施の形態と動作が異なり、以下のように動作する。【００９４】
すなわち、前記第１の実施の形態の読出制御手段の動作では、特定信号監視手段２１３の開始信号により、あらかじめ登録された論理装置の出力信号Ｓｏｕｔの値を無条件にデータ蓄積手段２１５に転送する制御を行っていた。
これに対して本第３の実施の形態の読出制御手段２１４では、出力信号Ｓｏｕｔの値を転送する前に、はじめに変化検出手段２２０の情報を読み込み、今回の特定信号の変化によって値が変化した出力信号Ｓｏｕｔの値のみを検出する。【００９５】
さらに、読出制御手段２１４では、変化が検出された出力信号Ｓｏｕｔの値のみをデータ蓄積手段１０５に転送するように制御する。  【００９６】
データ転送制御手段２１６は、読出制御手段２１４と同様に、変化検出手段２２０の情報に基づいて、変化のあった出力信号Ｓｏｕｔの値のみを計算機２０２に転送するように制御する。【００９７】
本実施の形態では、どのデータ（出力信号Ｓｏｕｔの値）が変化したのかを知る必要があるため、データ蓄積手段２１５としてＦＩＦＯを利用するよりは例えばメモリなどにより構成し、動作する前に各出力信号に前記メモリのアドレスを割り振り、読込制御手段２１４は、変化した出力信号を対応したアドレスに書き込む制御を行う方がよい。【００９８】
ここで、本実施の形態の構成要件と、本発明の構成要件との対応関係について述べると、本実施の形態の特定信号監視手段２１３と読出制御手段２１４により、本発明にいう「第１の制御手段」を構成することができる。
この際、変化検出手段が前記出力信号のうち今回の入力信号の変化によって値が変化した前記出力信号を検出する場合に、この「第１の制御手段」は、前記変化検出手段が検出した変化した前記出力信号のみを前記データ蓄積手段に転送する制御を行うことができる。【００９９】
以上のように本実施の形態によれば、前記第１の実施の形態と同様の作用効果を奏しながらも、前記第１の実施の形態と比較して今回の特定信号の変化によって変化した出力信号のみを転送するため、転送するデータ数を少なくすることができ、データ転送にかかる時間をより短縮することが可能となり、データ転送処理速度の高速化を図ることができる。【０１００】
また、本実施の形態は、複数ある出力信号が特定信号の変化によりあまり変化しない場合に有効である。    【０１０１】
ここで、本第３の実施の形態では、データ転送制御手段２１６は、変化のあった出力信号Ｓｏｕｔの値のみを計算機２０２に転送するように制御する構成としたが、データ転送制御手段２１６が全データを転送するように制御する構成としても良い。【０１０２】
その他の構成およびその他のステップ並びにその作用効果については、前述した第１の実施の形態の場合と同一となっている。また、上記の説明において、上述した各ステップの動作内容及び各部の構成要素をプログラム化し、コンピュータに実行させてもよい。【０１０３】
［第４の実施の形態］
次に、本発明にかかる第４の実施の形態について、図７に基づいて説明する。以下には、前記第１の実施の形態の実質的に同様の構成に関しては説明を省略し、異なる部分についてのみ述べる。図７は、本発明の第４の実施の形態による論理検証システムの全体構成の一例を示すブロック図である。【０１０４】
本実施の形態では、上述の第１の実施の形態の構成に加え、変化可能性出力信号情報記憶手段が追加された構成としている。また、本実施の形態は、特定信号Ｓ１が複数ある場合の形態である。【０１０５】
具体的には、本実施の形態の論理検証システム３００は、図７に示すように、計算機３０２と、データ転送装置３１０ｂと、論理装置３１７とを備え、データ転送装置３１０ｂは、前記第１の実施の形態と同様の構成である、データ蓄積手段３１５、特定信号設定制御手段３１２、特定信号監視手段３１３、読出制御手段３１４、データ転送制御手段３１６の構成に加え、変化可能性出力信号情報記憶手段３２０を含んで構成される。【０１０６】
変化可能性出力信号情報記憶手段３２０は、各特定信号Ｓ１の変化により、変化する可能性のある出力信号のリストをテーブルとして保持するものである。リストの値は、データ転送装置３１０ｂが動作する前に予め設定を行う。【０１０７】
読出制御手段３１４は、ある特定信号Ｓ１が変化した場合は、変化した特定信号Ｓ１に関わる出力信号Ｓｏｕｔのみを変化可能性出力信号情報記憶手段３２０に記載されているリストから取得し、その出力信号Ｓｏｕｔの値のみをデータ蓄積手段に転送する。【０１０８】
ここで、本実施の形態の構成要件と、本発明の構成要件との対応関係について述べると、本実施の形態の特定信号監視手段３１３と読出制御手段３１４により、本発明にいう「第１の制御手段」を構成することができる。
この際、変化可能性出力信号情報記憶手段が少なくとも２以上の前記入力信号の各々が変化したときに変化する可能性がある前記出力信号に関するリスト情報と、前記各入力信号の組み合わせに関する情報とを対応づけて記憶している場合に、この「第１の制御手段」は、前記出力信号を前記データ蓄積手段に転送する前に、変化した前記各入力信号の組み合わせに基づいて前記変化可能性出力信号情報記憶手段から前記リスト情報を取得し、前記データ転送手段に転送すべき前記出力信号を決定する制御を行うことができる。【０１０９】
以上のように本実施の形態によれば、前記第１の実施の形態と同様の作用効果を奏しながらも、前記第１の実施の形態と比較して、ある特定信号の変化によって変化する可能性のある出力信号のみを転送するため、転送するデータ数を少なくすることができ、データ転送にかかる時間をより短縮することが可能となる。【０１１０】
また、本実施の形態は、他の実施の形態と組み合わせることで更なる効果を発揮することもできる。【０１１１】
その他の構成およびその他のステップ並びにその作用効果については、前述した第１の実施の形態の場合と同一となっている。また、上記の説明において、上述した各ステップの動作内容及び各部の構成要素をプログラム化し、コンピュータに実行させてもよい。【０１１２】
［第５の実施の形態］
次に、本発明にかかる第５の実施の形態について、図８に基づいて説明する。以下には、前記第１の実施の形態の実質的に同様の構成に関しては説明を省略し、異なる部分についてのみ述べる。図８は、本発明の第５の実施の形態による論理検証システムの全体構成の一例を示すブロック図である。【０１１３】
本実施の形態は、上述の第１の実施の形態のより具体的な詳細構成例を開示するものである。
本実施の形態の論理検証システム４００は、図８に示すように、上位装置の一例である計算機４０２と、前記第１の実施の形態の論理装置一例である被検証回路４１７と、前記計算機４０２に接続されたバスＢＵＳ（又は計算機４０２が有するバスＢＵＳ）を介して計算機４０２と被検証回路４１７との間でデータの授受を行うデータ転送装置４１０ｂと、を含む構成とすることができる。    【０１１４】
ここで、データ転送装置４１０ｂと被検証回路４１７とにより、論理検証装置（論理機能検証装置）の一例であるＦＰＧＡエミュレータ４１０ａを構成できる。この場合、論理検証システム４００は、被検証回路４１７を含むＦＰＧＡエミュレータ４１０ａと、このＦＰＧＡエミュレータ４１０ａと通信可能な計算機４０２とにより構成することができる。【０１１５】
計算機４０２には、ＦＰＧＡエミュレータ４１０ａによる論理検証を行うための論理検証条件の一例である各種入力信号の値や論理回路構成などを設定可能な論理検証条件設定部を含むソフトウエアシミュレータを含む構成とすることができる。【０１１６】
ＦＰＧＡエミュレータ４１０ａは、前記第１の実施の形態の論理検証装置（論理機能検証装置）であり、例えば図８に示す構成などが挙げられる。前記第１の実施の形態の論理検証装置（論理機能検証装置）の一例であるＦＰＧＡエミュレータ４１０ａにとって、前記第１の実施の形態の論理装置の一例である被検証回路４１７は、論理機能を検証する対象の回路である。また、前記第１の実施の形態の特定信号としては、論理機能を検証する対象の回路である被検証回路４１７の例えばクロック信号などが挙げられる。  【０１１７】
ここで、前記第１の実施の形態の構成要件と、本実施の形態の構成要件との対応関係について述べると、前記第１の実施の形態の特定信号設定制御手段は、一例として入力手段４３１及びクロック生成手段４１２からなる構成とすることもできる。また、前記第１の実施の形態の特定信号監視手段は、一例としてクロック監視手段４１３を含む構成とすることもできる。さらに、前記第１の実施の形態のデータ転送制御手段は、一例としてリードデータ転送制御手段４１６を含む構成とすることもできる。  【０１１８】
計算機４０２に接続されたバスＢＵＳ（又は計算機４０２が有するバスＢＵＳ）は、例えばＰＣＩバスやＰＣＩ−Ｘ、ＰＣＩ−ｅｘｐｒｅｓｓなどが挙げられる。本実施の形態では、アドレスとデータが同じバスに流れる例えばＰＣＩバスなどであることが好ましい。本実施の形態では、計算機４０２とＦＰＧＡエミュレータ４１０ａとの間でデータの授受ができればよく、バス特有の機能を利用しなくてもよい。【０１１９】
論理検証装置の一例であるＦＰＧＡエミュレータ４１０ａの内部構成は、図８に示すように、計算機４０２に接続されたバスＢＵＳに接続され前記バスＢＵＳの制御を行うバス制御手段４２１と、バス制御手段４２１からの命令に基づいて被検証回路４１７の入力端子部Ｉ１に入力する入力信号の値を設定制御する入力手段４３１と、バス制御手段４２１からの命令に基づいて被検証回路４１７のクロック端子部Ｃ１に入力するクロック信号Ｓ１を生成して設定制御するクロック生成手段４１２とを含む構成となっている。【０１２０】
さらに、ＦＰＧＡエミュレータ４１０ａは、バス制御手段４２１からの命令を解釈して、それがクロック信号Ｓ１の変化であると検出し、検出したときに読出制御手段４１４の動作を開始させるクロック監視手段４１３と、クロック監視手段４１３からの読出開始信号Ｓｒｓに基づいて被検証回路４１７の出力端子部Ｏ１からの出力信号Ｓｏｕｔの値を読み出し、その出力信号Ｓｏｕｔの値のデータをデータ蓄積手段４１５に格納し、出力端子部Ｏ１の全出力端子の信号の値の読み出しを終了したら、リードデータ転送制御手段４１６の動作を開始させる制御を行う読出制御手段４１４と、出力信号Ｓｏｕｔの値のデータを蓄積処理するデータ蓄積手段４１５と、前記読出制御手段４１４からの動作開始信号Ｓｍｓに基づいてデータ蓄積手段４１５に格納されたリードデータを計算機４０２に転送するリードデータ転送制御手段４１６と、必要に応じて出力信号Ｓｏｕｔの値であるリードデータの転送経路を選択制御する経路選択手段としてのセレクタ４３２と、を含む構成となっている。【０１２１】
バス制御手段４２１は、計算機４０２からバスを通じて送られてくるライト命令（書込要求）を入力手段４３１やクロック生成手段４１２に転送し、被検証回路４１７の入力信号の値やクロック信号Ｓ１をセットする制御を行う。【０１２２】
さらに、バス制御手段４２１は、リード命令（読出要求）の場合、被検証回路４１７の出力信号Ｓｏｕｔの値がすでにデータ蓄積手段４１５に蓄えられている場合は、データ蓄積手段４１５から計算機４０２に出力信号Ｓｏｕｔの値であるリードデータを（第１のリードデータ転送経路ＤＲ１を通じて）返す制御を行う。【０１２３】
一方、バス制御手段４２１は、被検証回路４１７の出力信号Ｓｏｕｔの値が未だデータ蓄積手段４１５に蓄えられていない場合は、セレクタ４３２を通じて出力信号Ｓｏｕｔの値を読み込み、計算機４０２に出力信号Ｓｏｕｔの値であるリードデータを（第３のリードデータ転送経路ＤＲ３を通じて）返す制御を行う。このように構成することで、あらかじめ先読みしない信号でも、セレクタ４３２を通じた経路である第３のリードデータ転送経路ＤＲ３を通じて計算機４０２に値を返すことができ、論理検証機能を高めることができる。【０１２４】
ここで、第３のリードデータ転送経路ＤＲ３とし、「第２」としないのは、前記第２の実施の形態の変形例において、「データ転送制御手段」を介して「データ蓄積手段」からデータを「計算機」に転送する場合と、「データ転送制御手段」を介さずに「データ蓄積手段」からデータを「計算機」に転送する場合とで、「第１のリードデータ転送経路ＤＲ１」と「第２のリードデータ転送経路ＤＲ２」とを用いているからである。【０１２５】
また、バス制御手段４２１は、リードデータ転送制御手段４１６からのバスマスタ制御信号ＳｂｓによりバスＢＵＳのバスマスタになり、データ蓄積手段４１５に蓄えられた被検証回路４１７の出力信号Ｓｏｕｔの値を計算機４０２に転送する制御を行うものである。  【０１２６】
入力手段４３１は、バス制御手段４２１からの命令に基づいて被検証回路４１７の入力端子部Ｉ１の値の設定制御を行うものである。【０１２７】
クロック生成手段４１２は、バス制御手段４２１からの命令に基づいて被検証回路４１７のクロック端子部Ｃ１の値の設定制御を行うものである。【０１２８】
クロック監視手段４１３は、クロック信号Ｓ１の値を常に監視し、クロック信号Ｓ１の値に変化があったときに読出開始信号Ｓｒｓを読出制御手段４１４に対して出力し、読出制御手段４１４の動作を開始させる制御を行うものである。本実施の形態では、クロック信号Ｓ１を直接監視している。【０１２９】
読出制御手段４１４は、クロック監視手段４１３からの読出開始信号Ｓｒｓに基づいて被検証回路４１７の出力端子部Ｏ１の値を読み出し、そのデータをデータ蓄積手段４１５に格納し、出力端子部Ｏ１の全出力端子の信号の値の読み出しを終了したら、動作開始信号Ｓｍｓをリードデータ転送制御手段４１６に対して出力し、リードデータ転送制御手段４１６の動作を開始させる制御を行うものである。【０１３０】
リードデータ転送制御手段４１６は、読出制御手段４１４からの動作開始信号Ｓｍｓに基づいて、データ蓄積手段４１５に格納されたデータを読み出し、バス制御手段４２１に対してバスマスタ制御信号Ｓｂｓを出力し、バス制御手段４２１をバスＢＵＳのバスマスタとして、読み出されたデータ蓄積手段４１５のデータをバス制御手段４２１を通じて計算機４０２に転送する制御を行うものである。【０１３１】
各手段間にある同期化手段４２２ａ・４２２ｂ・４２２ｃは、バス用の基本クロック（第１の基本クロック）に基づいて動作する第１の回路群（例えば図８に示す符号４２１、４１６など）と、被検証回路用の基本クロック（第２の基本クロック）に基づいて動作する第２の回路群（例えば図８に示す符号４１２、４１３、４１４、４３１、４３２など）との間（図８では、一点鎖線ＣＬＤでクロックドメインの境目を記載）で、非同期にてデータの授受を行うものである。この同期化手段４２２ａ・４２２ｂ・４２２ｃは、例えばハンドシェークなどの手法が利用される。一般的には、バスの動作周波数よりもＦＰＧＡの動作周波数が遅いために、このように同期化手段が必要となる。【０１３２】
データ蓄積手段４１５は、非同期間のデータ転送を効率よくするための例えばＦＩＦＯなどで構成することが好ましい。【０１３３】
同期化手段４２２ａ・４２２ｂ・４２２ｃは、フルハンドシェークによってデータ授受する構成とすることが好ましい。この場合、同期化手段４２２ａ・４２２ｂ・４２２ｃでは、図１４に示すように、互いに異なる基本クロックで動作する各回路群の一方側（第１の回路群）と他方側（第２の回路群）とでＲＥＱ（要求）とＡＣＫ（確認応答）とを交換しながら通信を行う通信構造としている。この同期化手段４２２ａ・４２２ｂ・４２２ｃを設けているのは、本実施の形態による効果をより分かりやすくするためである。    【０１３４】
被検証回路４１７は、入力手段４３１からの入力信号の値を入力する一又は複数の入力端子からなる入力端子部Ｉ１と、クロック生成手段４１２からのクロック信号Ｓ１を入力する一又は複数のクロック端子からなるクロック端子部Ｃ１と、論理検証結果である出力信号Ｓｏｕｔの値を出力する一又は複数の出力端子からなる出力端子部Ｏ１と、を含んで構成することができる。【０１３５】
また、本実施の形態では、クロック監視手段４１３や読出制御手段４１４などの各制御手段が、被検証回路４１７の入出力端子（入力端子部及び出力端子部）のみを制御している場合を説明しているが、デバッグ目的などの他の種々の信号群（例えばデバッグ用入力端子部のデバッグ用入力信号、デバッグ用出力端子部のデバッグ用出力信号など）も同様に制御することが可能である。  【０１３６】
ここで、本実施の形態の構成要件と、本発明の構成要件との対応関係について述べると、本実施の形態のクロック監視手段４１３と読出制御手段４１４により、本発明にいう「第１の制御手段」を構成することができる。
また、本実施の形態のリードデータ転送制御手段４１６とバス制御手段４２１とにより、本発明にいう「第２の制御手段」を構成することができる。このうち、本実施の形態のバス制御手段４２１により、本発明にいう「第３の制御手段」を構成することができる。さらに、本実施の形態のリードデータ転送制御手段４１６により、本発明にいう「データ転送制御手段」を構成することができる。【０１３７】
この際、「第１の制御手段」は、前記論理装置に供給される前記特定信号の変化を検出するとともに、その変化を検出すると前記出力信号の値を前記データ蓄積手段に蓄積処理する動作を開始する制御を行うことができる。また、「第２の制御手段」は、前記データ蓄積手段に蓄積処理された前記出力信号の値を前記上位装置に転送する制御を行うことができる。
前記「第２の制御手段」は、前記第１の制御手段による前記データ蓄積手段への前記出力信号の値の蓄積処理が完了すると、前記データ蓄積手段から前記出力信号の値を前記上位装置に転送する制御を自発的に行うデータ転送制御手段を含むことができる。【０１３８】
さらに、前記特定信号は、前記上位装置からの書込要求によって設定されるものであり、前記出力信号の値は、前記上位装置からの読出要求によって転送されるものである場合に、前記「第２の制御手段」は、前記第１の制御手段が前記データ蓄積手段に前記出力信号の値の蓄積処理を完了している場合には、前記上位装置からの読出要求に基づいて前記データ蓄積手段から前記出力信号の値の読出を開始する制御を行い、前記第１の制御手段が前記データ蓄積手段に前記出力信号の値の蓄積処理を完了していない場合には、再度前記読出要求を繰り返し実行させるように制御を行う第３の制御手段を含むことができる。【０１３９】
また、この「第３の制御手段」は、前記上位装置からの読出要求に基づいて、前記データ蓄積手段に前記論理装置の出力信号の値が既に蓄積されている場合には、前記データ蓄積手段を経由した第１データ転送経路によりデータ転送を行い、前記データ蓄積手段に前記論理装置の出力信号の値が蓄積されていない場合には、前記データ蓄積手段を経由しない第３データ転送経路により前記論理装置の出力信号の値のデータ転送を行う切換制御を行う切換制御機能を含むことができる。【０１４０】
さらに、前記「第１の制御手段」は、前記論理装置にて論理検証を行う前に、前記データ転送制御手段により前記出力信号の値の転送の開始をデータ転送装置側主導で行う第１転送制御モードと、前記上位装置の読出要求により前記出力信号の値の転送の開始を上位装置側主導で行う第２転送制御モードとのうちのいずれかの転送制御モードを予め設定制御し、論理検証中は、前記設定制御されたいづれかの転送制御モードに基づいて、前記データ蓄積手段から前記出力信号の値の読出をする制御を行うことができる。【０１４１】
また、本実施の形態の被検証回路４１７により、本発明にいう「エミュレーション回路部」を構成することができる。この「エミュレーション回路部」は、前記データ転送装置からのクロック信号に基づいて、回路のエミュレーションを行いそのエミュレーション結果を前記出力信号の値として前記データ転送装置に出力することができる。【０１４２】
また、本実施の形態のリードデータ転送制御手段４１６、バス制御手段４２１により、本発明にいう「第１の各部」を構成することができる。さらに、本実施の形態のクロック生成手段４１２、クロック監視手段４１３、読出制御手段４１４、入力手段４３１、セレクタ４３２により、本発明にいう「第２の各部」を構成することができる。【０１４３】
上述のような構成を有する本実施の形態の論理検証システム４００において、これらの手段は、それぞれ概略つぎのように動作する。【０１４４】
先ず、バス制御手段４２１は、計算機４０２からバスを通じて送られてくるライト命令（書込要求）を入力手段４３１やクロック生成手段４１２に転送する制御を行う。続いて転送されたライト命令に基づいて、入力手段４３１及びクロック生成手段４１２にて、被検証回路４１７への入力信号の値やクロック信号Ｓ１をセットする設定制御を行う。【０１４５】
ここで、入力手段４３１及びクロック生成手段４１２にて設定された入力信号の値やクロック信号Ｓ１の値に基づいて、被検証回路４１７は、入力信号の値やクロック信号Ｓ１の値に応じた論理検証（ＦＰＧＡエミュレーション処理）を行い、当該論理検証結果を出力信号Ｓｏｕｔの値として出力する。【０１４６】
この際、クロック信号Ｓ１の値に変化があると、クロック監視手段４１３により読出開始信号Ｓｒｓを読出制御手段４１４に対して出力する。すると、読出制御手段４１４はこの読出開始信号Ｓｒｓに基づいて動作を開始させ、出力された出力信号Ｓｏｕｔの値をデータ蓄積手段４１５に蓄積処理する動作を開始する。【０１４７】
ここで、被検証回路４１７の出力信号Ｓｏｕｔの値が未だデータ蓄積手段４１５に蓄えられていない場合は、バス制御手段４２１によりセレクタ４３２を通じて出力信号Ｓｏｕｔの値を読み込み、計算機４０２に出力信号Ｓｏｕｔの値であるリードデータを（第３のリードデータ転送経路ＤＲ３を通じて）返す制御を行う。これにより、あらかじめ先読みしない信号でも、セレクタ４３２を通じた経路である第３のリードデータ転送経路ＤＲ３を通じて計算機４０２に値を返すことができ、論理検証機能を高めることができる。【０１４８】
一方、読出制御手段４１４によりデータ蓄積手段４１５への出力信号Ｓｏｕｔの値の蓄積処理が（例えば出力端子部Ｏ１の全出力端子について）完了すると、読出制御手段４１４は動作開始信号Ｓｍｓをリードデータ転送制御手段４１６に対して出力する。【０１４９】
続いて、読出制御手段４１４からの動作開始信号Ｓｍｓに基づいて、リードデータ転送制御手段４１６は、データ蓄積手段４１５に格納されたデータを読み出す。【０１５０】
さらに、リードデータ転送制御手段４１６が、バス制御手段４２１に対してバスマスタ制御信号Ｓｂｓを出力し、バス制御手段４２１をバスＢＵＳのバスマスタとして、読み出されたデータ蓄積手段４１５のデータをバス制御手段４２１を通じて計算機４０２に転送する制御を行う。【０１５１】
また、この過程において、計算機４０２からの命令がリード命令（読出要求）の場合で、被検証回路４１７の出力信号Ｓｏｕｔの値がすでにデータ蓄積手段４１５に蓄えられている場合は、バス制御手段４２１は、データ蓄積手段４１５から計算機４０２に出力信号Ｓｏｕｔの値であるリードデータを転送する制御を行う。【０１５２】
このとき、出力信号の値であるデータを、計算機４０２のどの領域に転送するかはアプリケーション次第であるが、計算機４０２に搭載されている特定のメモリ空間に前記データを書き込むことが好ましい。【０１５３】
具体的には、リードデータ転送制御手段４１６のデータ転送終了を計算機４０２に知らせるためには、第１に割込を利用する手法が挙げられる。第２に、リードデータ転送制御手段４１６があらかじめ指定した計算機上のメモリにデータを書込（計算機４０２のＣＰＵは、そのアドレスへのポーリング）を利用する手法が挙げられる。【０１５４】
第１の手法の割込を利用した場合は、計算機４０２上のオペレーティングシステムにより割込処理が実行されるため動作は遅くなるが、無駄な動作をすることがない。【０１５５】
第２の手法のメモリへのポーリングは、ＣＰＵの負荷を上げてしまう要因になるが、ＯＳによる処理が発生しないため、高速に動作する。【０１５６】
第１の手法、及び第２の手法のいずれの手法を利用するかは、アプリケーション次第であるが、計算機４０２によってどちらが高速か事前に自動的に検証しておき、動作が高速な方を利用するように構成すれば、いつでも高速にデータを授受できる装置となる。【０１５７】
この際、計算機４０２には、図８に示すように、前記リードデータ転送制御手段４１６からの割り込み信号に基づいてデータ転送が終了したことを判断する制御を行う第１のデータ転送終了判断制御手段と、前記リードデータ転送制御手段４１６が転送するメモリ空間をリードし、特定の値が読み込まれたときに、データ転送が終了したことを判断する制御を行う第２のデータ転送終了判断制御手段とを含むデータ転送終了判断制御手段４０４を構成することが好ましい。【０１５８】
また、本実施の形態のデータ転送終了判断制御手段４０４は、本発明にいう「第１のデータ転送終了判断制御手段」と「第２のデータ転送終了判断制御手段」とを含めることができる。論理装置が、前記上位装置からの特定信号に基づいて論理検証を行いその論理検証結果を出力信号の値として出力し、データ転送装置が、前記上位装置と前記論理装置との間でデータ転送を行う場合、前記上位装置の「第１のデータ転送終了判断制御手段」は、前記データ転送制御手段からの割り込み信号に基づいてデータ転送が終了したことを判断する制御を行うことができる。
また、前記上位装置の「第２のデータ転送終了判断制御手段」は、前記データ転送制御手段が転送するメモリ空間をリードし、特定の値が読み込まれたときに、データ転送が終了したことを判断する制御を行うことができる。【０１５９】
図９、図１０は、被検証回路４１７を動作させるための基本クロック（第２の基本クロック）の周期が、バスクロック（第１の基本クロック）の周期の２倍の場合で、非同期部分の転送に一般的なフルハンドシェークを利用し、クロック信号Ｓ１を変化させた後に３つのリードを行ったときのタイミングチャートをバスを中心記載したものである。ここで、図１０ではクロックの変化のみを記載している。【０１６０】
図１０に示す比較例の手法では、一信号ごとに非同期にデータ転送する必要があるため、一つのライトやリードを実行するのに１７サイクル（クロック）必要となる（実際にはクロックの位相関係やデータ遅延に左右される）。  
例えば、図１１に示すように、一つのリードを実行するのに期間Ｔｂ１の１７サイクル分の期間が生じる。加えて、図１２に示すように、二つ目のリードを実行するのに期間Ｔｂ２の１７サイクル分の期間が生じる。さらに加えて、図１３に示すように、三つ目のリードを実行するのに期間Ｔｂ３の１７サイクル分の期間が生じる。  
この結果、たとえばクロック送信後３つのデータをリードする場合には、この例で５１（＝１７×３）サイクル必要となる。【０１６１】
これに対して本実施の形態では、同じデータが図９のように転送されるため、期間Ｔａの２０サイクルで転送が可能となる。【０１６２】
さらに、バスに流れるデータ転送も、比較例では一信号ごとに流れていたが、本実施の形態は、まとめてデータ転送が可能になったため、バスの利用効率も上がっている。
図１１では図示していないバス部分では常にリトライが起こっており、バス利用効率をかなり下げている。  【０１６３】
一方、本実施の形態では、リトライは一度も起こっていない。とくにアドレスとバスを同一信号線でやり取りするＰＣＩバスや、一トランザクションごとにエラーコード等を付加するＰＣＩ−ｅｘｐｒｅｓｓ等ではより効果的である。【０１６４】
ここで、図９に示す例では、被検証回路用基本クロック信号（第２の基本クロック信号）の一サイクルで、被検証回路４１７の出力端子部の値を読み出しているが、被検証回路用基本クロック信号の数サイクルを利用して読み出しても良い。【０１６５】
一般的に計算機に転送するデータは、デバッグ信号を含めると相当多くなるため、この部分をマルチサイクルパスすれば、基本クロックの周波数を落とさないように構成することが可能となる。これによりデータ転送は幾分遅くなるが、被検証回路の実装を簡略化することができる。【０１６６】
以上のように本実施の形態によれば、前記第１の実施の形態と同様の作用効果を奏しながらも、随時リードを行う必要がある関連技術と比較して、クロック信号の変化を検出したらすぐに被検証回路の出力信号をデータ蓄積手段に転送し、データ蓄積手段への蓄えが終了したらすぐに計算機に転送を行うように構成されているため、データを高速に転送できる。  【０１６７】
また、クロックの変化を検出してすぐに、被検証回路の出力信号の値およびデバッグ目的の信号の値をもデータ蓄積手段に蓄えるため、論理検証装置の場合、ＦＰＧＡエミュレータに実装された論理機能検証対象の出力信号の値およびデバッグ目的の信号の値を時間のロスなく計算機に伝達できる。【０１６８】
さらに、ＦＩＦＯによるデータ蓄積手段を用意することでデータ転送にかかる時間をさらに削減している。【０１６９】
データ転送装置と論理装置とからなる論理検証装置の場合、前記特定信号を例えばＦＰＧＡエミュレータで実装している論理検証回路のクロック信号とし、前記出力信号を例えばＦＰＧＡエミュレータで実装している論理検証回路の出力信号とすることが好ましい。このような構成では、クロック信号の変化の直後に論理検証回路の出力信号の値をデータ蓄積手段に蓄えることにより、論理検証時間の高速化を図ることができる。  【０１７０】
ここで、図８に示すブロック図における一部の各ブロックは、コンピュータが適宜なメモリに格納された各種プログラムを実行することにより、該プログラムにより機能化された状態を示すソフトウエアモジュール構成であってもよい。
すなわち、物理的構成は例えば一又は複数のＣＰＵ（或いは一又は複数のＣＰＵと一又は複数のメモリ）等ではあるが、各部（回路・手段）によるソフトウェア構成は、プログラムの制御によってＣＰＵが発揮する複数の機能を、それぞれ複数の部（手段）による構成要素として表現したものである。
ＣＰＵがプログラムによって実行されている動的状態（プログラムを構成する各手順を実行している状態）を機能表現した場合、ＣＰＵ内に各部（手段）が構成されることになる。
プログラムが実行されていない静的状態にあっては、各手段の構成を実現するプログラム全体（或いは各手段の構成に含まれるプログラム各部）は、メモリなどの記憶領域に記憶されている。以上に示した各部（手段）の説明は、プログラムにより機能化されたコンピュータをプログラムの機能と共に説明したものと解釈することも出来るし、また、固有のハードウェアにより恒久的に機能化された複数の電子回路ブロックからなる装置を説明したものとも解釈することが出来ることは、当然である。
したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現でき、いずれかに限定されるものではない。  【０１７１】
すなわち、データ転送装置４１０ｂないしはＦＰＧＡエミュレータ４１０ａを、プログラム制御により動作し、ネットワーク関連の機能、その他無線・有線通信機能を有する情報機器、またはこれに類するコンピュータなどいかなるコンピュータで構成してもよく、移動式・固定式を問わない。【０１７２】
その他の構成およびその他のステップ並びにその作用効果については、前述した第１の実施の形態の場合と同一となっている。また、上記の説明において、上述した各ステップの動作内容及び各部の構成要素をプログラム化し、コンピュータに実行させてもよい。【０１７３】
［第６の実施の形態］
次に、本発明にかかる第６の実施の形態について、図１５に基づいて説明する。以下には、前記第１の実施の形態の実質的に同様の構成に関しては説明を省略し、異なる部分についてのみ述べる。図１５は、本発明の第６の実施の形態による論理検証システムにおける各部の動作の一例を示すタイミングチャートである。【０１７４】
上述の第５の実施の形態では、被検証回路を動作させるための基本クロック（第２の基本クロック）の周期が、バスクロック（第１の基本クロック）の周期の２倍の場合で、非同期部分の転送に一般的なフルハンドシェークを利用する例を示したが、本実施の形態では、データ転送を同期的に送ることができハンドシェークが不要となる場合の、バス用の基本クロック信号（第１の基本クロック信号）と被検証回路用の基本クロック信号（第２の基本クロック信号）が分周関係にある場合の例を示している。【０１７５】
図１５、図１６は、データ転送を同期的に送ることができハンドシェークが不要となる場合の、バス用の基本クロック信号（第１の基本クロック信号）と被検証回路用の基本クロック信号（第２の基本クロック信号）が分周関係にある場合の動作を示すタイミングチャートを示している。  【０１７６】
この場合も、一般的にバス用の基本クロック信号の周期のほうが被検証回路用基本クロック信号の周期よりも短いため、本実施の形態のようにクロック検出手段がクロック信号の変化を検出した後に、読出制御手段によって被検証回路の出力信号の値をデータ蓄積手段に一時蓄え転送したほうが高速に動作する。【０１７７】
データ蓄積手段がないときのタイミングチャートを図１６に、本実施の形態によるタイミングチャートを図１５に示す。これらの図に示すとおり、本実施の形態によりデータ転送に必要な時間が期間Ｔｄの１８サイクル（図１６）から、期間Ｔｃの１３サイクル（図１５）に短縮できていることがわかる。この実施の形態では、データ転送を同期的に送ることができるため、図９、図１０に示す例のようにハンドシェークが不要となり、動作を高速に転送することができる。  【０１７８】
以上のように本実施の形態によれば、前記第１、第５の実施の形態と同様の作用効果を奏しながらも、前記第５の実施の形態のようにハンドシェークが不要となり、動作を高速に転送することができる。但し、利用できるクロック周波数に制限が生じる。【０１７９】
その他の構成およびその他のステップ並びにその作用効果については、前述した第１、第５の実施の形態の場合と同一となっている。また、上記の説明において、上述した各ステップの動作内容及び各部の構成要素をプログラム化し、コンピュータに実行させてもよい。  【０１８０】
［第７の実施の形態］
次に、本発明にかかる第７の実施の形態について、図１７に基づいて説明する。以下には、前記第１の実施の形態の実質的に同様の構成に関しては説明を省略し、異なる部分についてのみ述べる。図１７は、本発明の第６の実施の形態による論理検証システムの全体構成の一例を示すブロック図である。【０１８１】
上述の第５の実施の形態では、クロック監視手段がクロック生成手段の出力であるクロック信号Ｓ１を監視する構成としたが、本実施の形態では、クロック監視手段がクロック生成手段の入力を監視する構成としている。【０１８２】
具体的には、本実施の形態の論理検証システム５００は、図１７に示すように、上位装置の一例である計算機５０２と、前記第１の実施の形態の論理装置一例である被検証回路５１７と、前記計算機５０２に接続されたバスＢＵＳ（又は計算機５０２が有するバスＢＵＳ）を介して計算機５０２と被検証回路５１７との間でデータの授受を行うデータ転送装置５１０ｂと、を含む構成とすることができる。    【０１８３】
ここで、データ転送装置５１０ｂと被検証回路５１７とにより、論理検証装置（論理機能検証装置）の一例であるＦＰＧＡエミュレータ５１０ａを構成できる。この場合、論理検証システム５００は、被検証回路５１７を含むＦＰＧＡエミュレータ５１０ａと、このＦＰＧＡエミュレータ５１０ａと通信可能な計算機５０２とにより構成することができる。【０１８４】
計算機５０２には、リードデータ転送制御手段５１６からの割り込み信号に基づいてデータ転送が終了したことを判断する制御を行う第１のデータ転送終了判断制御手段と、前記リードデータ転送制御手段５１６が転送するメモリ空間をリードし、特定の値が読み込まれたときに、データ転送が終了したことを判断する制御を行う第２のデータ転送終了判断制御手段とを含むデータ転送終了判断制御手段５０４を構成することが好ましい。【０１８５】
ＦＰＧＡエミュレータ５１０ａは、前記第５の実施の形態と同様の構成である、バス制御手段５２１と、入力手段５３１と、クロック生成手段５１２と、セレクタ５３２と、読出制御手段５１４と、データ蓄積手段５１５と、リードデータ転送制御手段５１６とを含む構成となっている。【０１８６】
また、ＦＰＧＡエミュレータ５１０ａは、バス制御手段５２１からの命令を解釈して、クロック生成手段５１２の入力側Ｋ１を監視することにより、クロック信号Ｓ１の変化を検出し、検出したときに読出制御手段５１４の動作を開始させるクロック監視手段４１３を含む構成となっている。【０１８７】
このように、クロック生成手段４１３の入力を監視し、信号の変化が起きることを監視している。【０１８８】
以上のように本実施の形態によれば、前記第１の実施の形態と同様の作用効果を奏しながらも、特定信号が計算機からのものである場合、クロック監視手段がクロック生成手段にてクロック信号が生成される以前に特定信号の変化を検出して、被検証回路の出力信号の値をデータ蓄積手段に蓄積処理する動作を開始できるので、さらなる論理検証速度の高速化を図ることができる。【０１８９】
その他の構成およびその他のステップ並びにその作用効果については、前述した第５の実施の形態の場合と同一となっている。また、上記の説明において、上述した各ステップの動作内容及び各部の構成要素をプログラム化し、コンピュータに実行させてもよい。【０１９０】
［第８の実施の形態］
次に、本発明にかかる第８の実施の形態について、図１８に基づいて説明する。以下には、前記第１の実施の形態の実質的に同様の構成に関しては説明を省略し、異なる部分についてのみ述べる。図１８は、本発明の第８の実施の形態による論理検証システムの全体構成の一例を示すブロック図である。【０１９１】
上述の第１の実施の形態では、特定信号監視手段と読出制御手段とを各々独立した手段として構成したが、本実施の形態では、特定信号監視手段と読出制御手段とを一体化した構成としている。【０１９２】
具体的には、本実施の形態の論理検証システム６００は、図１８に示すように、上位装置の一例である計算機６０２と、論理検証を行う論理装置６１７と、前記計算機６０２に接続されたバスＢＵＳ（又は計算機６０２が有するバスＢＵＳ）を介して計算機６０２と論理装置６１７との間でデータの授受を行うデータ転送装置６１０ｂと、を含む構成とすることができる。    【０１９３】
ここで、データ転送装置６１０ｂと論理装置６１７とにより、論理検証装置（論理機能検証装置）６１０ａを構成できる。【０１９４】
データ転送装置６１０ｂは、前記第１の実施の形態と同様の構成である、データ蓄積手段６１５と、データ転送制御手段６１６とに加え、特定信号監視・読出制御手段６１４を含む構成となっている。    【０１９５】
特定信号監視・読出制御手段６１４は、特定信号Ｓ１の値を常に監視し、特定信号Ｓ１の値に変化があったときに、論理装置６１７の出力信号Ｓｏｕｔの値を読み出し、そのデータをデータ蓄積手段６１５に格納し、読み出しを終了したら、動作開始信号Ｓｍｓをデータ転送制御手段６１６に対して出力し、データ転送制御手段６１６の動作を開始させる制御を行うものである。【０１９６】
以上のように本実施の形態によれば、前記第１の実施の形態と同様の作用効果を奏しながらも、特定信号監視・読出制御手段により、特定信号監視手段と読出制御手段とを一体化した構成としてので、回路規模の簡素化、小型化を図ることができ、さらなる動作処理速度の向上、消費電力の低減などを図ることができる。【０１９７】
その他の構成およびその他の動作ないしはステップ並びにその作用効果については、前述した第１の実施の形態の場合と同一となっている。また、上記の説明において、上述した各ステップの動作内容及び各部の構成要素をプログラム化し、コンピュータに実行させてもよい。【０１９８】
[各種変形例]
また、本発明にかかる装置及び方法は、そのいくつかの特定の実施の形態に従って説明してきたが、本発明の主旨および範囲から逸脱することなく本発明の本文に記述した実施の形態に対して種々の変形が可能である。
例えば、上述の実施の形態では、ＦＰＧＡエミュレータを例に説明したが、ＦＰＧＡ以外の他のゲートアレイをエミュレーションする論理装置（被検証回路部）を備えたエミュレータの場合であってもよい。  【０１９９】
また、上記構成部材の数、位置、形状等は上記実施の形態に限定されず、本発明を実施する上で好適な数、位置、形状等にすることができる。すなわち、上述の実施の形態の論理検証システムでは、計算機が１台、被検証回路部が１つのＦＰＧＡエミュレータが１台の構成例について説明したが、この構成例に制限されるものではない。例えば、論理検証システムとして、複数の計算機とＦＰＧＡエミュレータが１台の構成例（１台のＦＰＧＡエミュレータを複数の計算機から利用可能な構成）であってもよい。また、論理検証システムとして、１台の計算機と複数のＦＰＧＡエミュレータとによる構成例（１台の計算機から複数台のＦＰＧＡエミュレータが利用可能な構成）であってもよい。【０２００】
さらに、上述の第５の実施の形態では、被検証回路を動作させるための基本クロック（第２の基本クロック）の周期が、バスクロック（第１の基本クロック）の周期の２倍の場合で、非同期部分の転送に一般的なフルハンドシェークを利用する例を示したが、本発明は、これらの周期を制限するものではなく、Ｎ１倍の場合であってもよい。【０２０１】
さらにまた、上述の第６の実施の形態では、データ転送を同期的に送ることができハンドシェークが不要となる場合の、バス用の基本クロック信号（第１の基本クロック信号）と被検証回路用の基本クロック信号（第２の基本クロック信号）が分周関係にある場合に、基本クロック（第２の基本クロック）の周期が、バスクロック（第１の基本クロック）の周期の２倍の場合の例を示したが、本発明は、これらの周期を制限するものではなく、Ｎ２倍の場合であってもよい。【０２０２】
またさらに、上位装置とデータ転送装置がバスラインを介してデータの授受を行う通信構造の場合を例に挙げたが、上位装置とデータ転送装置との間の通信構造に際して、無線にてデータの授受を行う場合であってもよい。【０２０３】
（プログラム）
また、前述した実施形態の機能を実現する本発明のソフトウェアのプログラムは、前述した各実施の形態における各種ブロック図などに示された処理部（処理手段）、機能などに対応したプログラムや、フローチャートなどに示された処理手順、処理手段、機能などに対応したプログラムなどにおいて各々処理される各処理プログラム、本明細書で全般的に記述される方法（ステップ）、説明された処理、データ（例えば、変化可能性出力信号情報等）の全体もしくは各部を含む。【０２０４】
具体的には、本発明の（データ転送装置側の）プログラムは、特定信号を供給することで論理検証を行う論理装置の出力信号の値を上位装置に転送するデータ転送装置が備えたコンピュータが実行可能なプログラムである。このプログラムは、前記論理装置に供給される前記特定信号の変化を検出するとともに、その変化を検出すると前記出力信号の値をデータ蓄積手段に蓄積処理する動作を開始する制御処理を行う第１の制御処理機能（例えば図１に示す符号１３、１４の機能をプログラム化した構成など）と、前記データ蓄積手段に蓄積処理された前記出力信号の値を前記上位装置に転送する制御処理を行う第２の制御機能（例えば図１に示す符号１６の機能をプログラム化した構成や、図８に示す符号４１６、符号４２６からなる機能をプログラム化した構成）と、を含む機能をコンピュータに実行させることもできる。【０２０５】
また、このプログラムでは、前記第２の制御機能は、前記第１の制御機能による前記データ蓄積手段への前記出力信号の値の蓄積処理が完了すると、前記データ蓄積手段から前記出力信号の値を前記上位装置に転送する制御を自発的に行うデータ転送制御機能を含むことができる。【０２０６】
さらに、前記特定信号が前記上位装置からの書込要求によって設定されるものであり、前記出力信号の値が、前記上位装置からの読出要求によって転送されるものである場合、前記プログラムでは、前記第２の制御機能は、前記第１の制御機能が前記データ蓄積手段に前記出力信号の値の蓄積処理を完了している場合には、前記上位装置からの読出要求に基づいて前記データ蓄積手段から前記出力信号の値の読出を開始する制御を行い、前記第１の制御手段が前記データ蓄積手段に前記出力信号の値の蓄積処理を完了していない場合には、再度前記読出要求を繰り返し実行させるように制御を行う第３の制御機能を含むことができる。【０２０７】
また、前記プログラムでは、前記第１の制御機能は、前記特定信号の変化を監視する信号監視機能と、前記信号監視機能にて監視される前記特定信号の変化に応じて、前記論理装置からの前記出力信号の値を前記データ蓄積手段に蓄積処理する動作の開始及び終了を制御する読出制御機能と、を含むことができる。【０２０８】
さらに、前記プログラムでは、前記出力信号のうち今回の入力信号の変化によって値が変化した前記出力信号を検出する変化検出機能をコンピュータに実行させ、前記第１の制御機能では、前記変化検出機能が検出した変化した前記出力信号のみを前記データ蓄積手段に転送する制御を行うことができる。【０２０９】
またさらに、前記プログラムでは、少なくとも２以上の前記入力信号の各々が変化したときに変化する可能性がある前記出力信号に関するリスト情報と、前記各入力信号の組み合わせに関する情報とを対応づけて記憶した変化可能性出力信号情報記憶手段をさらに有する場合、前記第１の制御機能では、前記出力信号を前記データ蓄積手段に転送する前に、変化した前記各入力信号の組み合わせに基づいて前記変化可能性出力信号情報記憶手段から前記リスト情報を取得し、前記データ転送手段に転送すべき前記出力信号を決定する制御を行うことができる。【０２１０】
また、前記プログラムでは、前記第１の制御機能は、前記上位装置からの読出要求に基づいて、前記第２の制御機能による前記データ蓄積手段から前記上位装置へのデータ転送を行う第１データ転送経路と、前記データ蓄積手段から直接前記上位装置へデータ転送を行う第２データ転送経路とを切換制御を行うことができる。【０２１１】
さらに、前記プログラムでは、前記第１の制御機能は、複数の前記出力信号の値を前記データ蓄積手段に時分割にて蓄積処理する制御を行うことができる。【０２１２】
またさらに、前記上位装置側を第１の基本クロック信号に基づいて動作する第１の各部と、前記論理装置側を前記第１の基本クロック信号と異なる動作周波数の前記第２の基本クロック信号に基づいて動作する第２の各部と、を有する場合に、前記プログラムでは、前記第１の各部と前記第２の各部との間で非同期に行われるデータの授受を同期化する同期化機能を有することもできる。【０２１３】
また、前記プログラムでは、前記第３の制御機能は、前記上位装置からの読出要求に基づいて、前記データ蓄積手段に前記論理装置の出力信号の値が既に蓄積されている場合には、前記データ蓄積手段を経由した第１データ転送経路によりデータ転送を行い、前記データ蓄積手段に前記論理装置の出力信号の値が蓄積されていない場合には、前記データ蓄積手段を経由しない第３データ転送経路により前記論理装置の出力信号の値のデータ転送を行う切換制御を行う切換制御機能を含むことができる。【０２１４】
さらに、前記プログラムでは、前記上位装置からの書込要求に基づいて、前記特定信号を設定制御する信号設定制御機能をコンピュータに実行させ、前記信号監視機能は、前記信号設定制御機能から出力される前記特定信号の変化を監視することができる。【０２１５】
また、前記プログラムでは、前記信号監視機能は、前記信号設定制御機能に入力される信号の変化を監視することもできる。【０２１６】
さらに、前記プログラムでは、前記第１の制御機能は、前記論理装置にて論理検証を行う前に、前記データ転送制御機能により前記出力信号の値の転送の開始をデータ転送装置側主導で行う第１転送制御モードと、前記上位装置の読出要求により前記出力信号の値の転送の開始を上位装置側主導で行う第２転送制御モードとのうちのいずれかの転送制御モードを予め設定制御し、論理検証中は、前記設定制御されたいづれかの転送制御モードに基づいて、前記データ蓄積手段から前記出力信号の値の読出をする制御を行うこともできる。【０２１７】
また、本発明の（上位装置側の）プログラムは、特定信号を供給することで論理検証を行う論理装置の出力信号の値がデータ転送装置により転送される上位装置が備えたコンピュータが実行可能なプログラムである。このプログラムは、前記データ転送装置に対して前記特定信号を設定する書込要求を出力する書込要求出力機能と、前記データ転送装置に対して前記出力信号の値が蓄積処理されたデータ蓄積手段の前記出力信号の値を読出す読出要求を出力する読出要求出力機能と、前記データ転送装置が、前記論理装置に供給される前記特定信号の変化を検出し、前記出力信号の値をデータ蓄積手段に蓄積処理する動作を開始し、前記出力信号の値の蓄積処理を完了すると、前記読出要求に基づいて前記出力信号の値のデータ転送を開始し、前記データ転送装置からの割り込み信号に基づいてデータ転送が終了したことを判断する制御を行う第１のデータ転送終了判断制御機能（例えば図８に示す符号４０４の機能に含まれる機能など）と、を含む機能をコンピュータに実行させることができる。【０２１８】
さらに、前記プログラムは、前記データ転送制御機能が転送するメモリ空間をリードし、特定の値が読み込まれたときに、データ転送が終了したことを判断する制御を行う第２のデータ転送終了判断制御機能を有することもできる。【０２１９】
プログラムは、オブジェクトコード、インタープリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等、プログラムの形態を問わない。プログラムは、高水準プロシージャ型またはオブジェクト指向プログラミング言語で、あるいは必要に応じてアセンブリまたはマシン言語で実装することができる。いずれの場合も、言語はコンパイラ型またはインタープリタ型言語であってもよい。上述のプログラムを、一般のパソコンや携帯型情報端末などで動作可能なアプリケーションソフトに組み込んだものも含む。【０２２０】
プログラムを供給する手法としては、電気通信回線（有線、無線を問わない）によってコンピュータと通信可能に接続された外部の機器から前記電気通信回線を通じて提供することも可能である。また、プログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なる装置からダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせる装置も、本発明の範囲に含まれるものである。【０２２１】
本発明のプログラムによれば、当該プログラムを格納するＲＯＭ等の記憶媒体から、当該プログラムをコンピュータ（ＣＰＵ）に読み込んで実行させれば、或いは、当該プログラムを、通信手段を介してコンピュータにダウンロードさせた後に実行させれば、上述した本発明に係る装置を比較的簡単に実現できる。発明の思想の具現化例として装置のソフトウェアとなる場合には、かかるソフトウェアを記憶した記憶媒体上においても当然に存在し、利用される。【０２２２】
また、プログラムは、一次複製品、二次複製品などの複製段階については全く問う余地無く同等である。プログラムの供給方法として通信回線を利用して行なう場合であれば通信回線が伝送媒体となって本発明が利用されることになる。むろん、プログラムの発明として特定することもできる。さらに、装置における従属請求項は、方法，プログラムにおいて従属請求項に対応した構成にすることも可能である。【０２２３】
（情報記録媒体）  
また、上述のプログラム（計算機用のプログラム、データ転送制御装置においてプログラム化可能な部分のプログラムを含む）を、情報記録媒体に記録した構成であってもよい。情報記録媒体には、上述のプログラムを含むアプリケーションプログラムが格納されており、コンピュータが当該情報記録媒体からアプリケーションプログラムを読み出し、当該アプリケーションプログラムをハードディスクにインストールすることが可能である。これにより、上述のプログラムは、磁気記録媒体、光記録媒体あるいはＲＯＭなどの情報記録媒体に記録してプログラムを提供することができる。そのようなプログラムが記録された情報記録媒体を、コンピュータにおいて使用することは、好都合な情報処理装置を構成する。【０２２４】
プログラムを供給するための情報記録媒体としては、例えばＲＯＭ、ＲＡＭ、フラッシュメモリやＳＲＡＭ等の半導体メモリ並びに集積回路、あるいはそれらを含むＵＳＢメモリやメモリカード、光ディスク、光磁気ディスク、磁気記録媒体等を用いてよく、さらに、フレキシブルディスク、ＣＤ−ＲＯＭ、ＣＤ―Ｒ、ＣＤ―ＲＷ、ＦＤ、ＤＶＤＲＯＭ、ＨＤＤＶＤ（ＨＤＤＶＤ−Ｒ−ＳＬ＜1層＞、 ＨＤＤＶＤ−Ｒ−ＤＬ＜２層＞、ＨＤＤＶＤ−ＲＷ−ＳＬ、ＨＤＤＶＤ−ＲＷ−ＤＬ、ＨＤＤＶＤ−ＲＡＭ−ＳＬ）、ＤＶＤ±Ｒ−ＳＬ、ＤＶＤ±Ｒ−ＤＬ、ＤＶＤ±ＲＷ−ＳＬ、ＤＶＤ±ＲＷ−ＤＬ、ＤＶＤ−ＲＡＭ、Ｂｌｕ−Ｒａｙ  Ｄｉｓｋ＜登録商標＞（ＢＤ−ＲーＳＬ、ＢＤ−Ｒ−ＤＬ、ＢＤ−ＲＥ−ＳＬ、ＢＤ−ＲＥ−ＤＬ）、ＭＯ、ＺＩＰ、磁気カード、磁気テープ、ＳＤカード、メモリスティック、不揮発性メモリカード、ＩＣカード、等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置、等に記録して構成して用いてよい。  【０２２５】
さらに「情報記録媒体」は、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの（伝送媒体ないしは伝送波）、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含むものとする。【０２２６】
また、コンピュータ上で稼働しているＯＳ、端末（例えば携帯電話など）上のＲＴＯＳ等が処理の一部又は全部を行う場合にも、上記実施の形態と同等の機能を実現できると共に、同等の効果を得ることができる。【０２２７】
さらに、プログラムを暗号化してＣＤ−ＲＯＭ等の記録媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせ、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。この場合、本発明の構成は、プログラムの各構成要素（各種の手段、ステップ及びデータ）と、前記プログラム（各種の手段、ステップ及びデータ）を暗号化する暗号化手段と、を含んでよい。【０２２８】
さらに、上述の上位装置としては、例えばパーソナルコンピュータに限らず、各種サーバー、ＥＷＳ（エンジニアリングワークステーション）、中型コンピュータ、メインフレーム、携帯型情報端末、各種モバイル端末、ＰＤＡ、携帯電話機、ウエアラブル情報端末、種々の（携帯型などの）テレビ・ＤＶＤレコーダ・各種音響機器、各種情報通信機能を搭載した家電機器、ネットワーク機能を有するゲーム機器等からも利用できる構成としても構わない。あるいは、これらの装置に表示されるアプリケーションとして改良されたものも本発明の範囲に含めることができる。  【０２２９】
また、上位装置は、複数の計算機とネットワークからなる上位装置システムとして構成してもよい。この上位装置システムとしては、クライアントサーバーシステム、サーバを介さずに端末同士がネットワークを組み、相互にデータを送受信するピアツーピア（Ｐｅｅｒ  Ｔｏ  Ｐｅｅｒ）通信によるシステムであってもよい。その「上位装置システム」を、他の「システム」と統合したシステムとして、これら全体を「上位装置システム」として構成することも一向に構わない。「上位装置システム」には、ＯＳや周辺機器等のハードウェアを含めることもできる。【０２３０】
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であっても良い。【０２３１】
さらにまた、本明細書において、フローチャートに示されるステップは、記載された手順に従って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理を含むものである。また、実装では、プログラム手順（ステップ）が実行される順序を変更することができる。さらに、実装の必要に応じて、本明細書で説明した特定の手順（ステップ）を、組み合わされた手順（ステップ）として実装、除去、追加、または再配置することができる。【０２３２】
さらに、装置の各手段、各機能、各ステップの手順の機能などのプログラムの機能を、専用のハードウェア（例えば専用の半導体回路等）によりその機能を達成してもよく、プログラムの全機能のうち一部の機能をハードウェアで処理し、全機能のうちさらに他の機能をソフトウェアで処理するようにしてもよい。専用のハードウェアの場合、各部を集積回路例えばＬＳＩにて形成されてもよい。これらは個別に１チップ化されても良いし、一部または全部を含むように１チップ化されても良い。また、集積回路化の手法はＬＳＩに限るものではなく、専用回路又は汎用プロセサで実現してもよい。さらには、半導体技術の進歩又は派生する別技術によりＬＳＩに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。【０２３３】
さらに、データ転送のための「通信」では、無線通信および有線通信は勿論、無線通信と有線通信とが混在した通信、即ち、ある区間では無線通信が行われ、他の区間では有線通信が行われるようなものであってもよい。さらに、ある装置から他の装置への通信が有線通信で行われ、他の装置からある装置への通信が無線通信で行われるようなものであってもよい。【０２３４】
そして、この通信には通信網を含んでよい。通信網を構成するネットワークとしては、例えば携帯電話回線網（基地局及び交換システムを含む）、公衆電話回線網、ＩＰ電話網、ＩＳＤＮ回線網などこれに類する各種回線網、インターネット（乃ち、ＴＣＰ・ＩＰプロトコルを用いた通信態様）やイントラネット、ＬＡＮ（イーサネット：登録商標、やギガビットイーサネットなどを含む）、ＷＡＮ、光ファイバー通信網、電力線通信網、ブロードバンド対応可能な各種専用回線網などいずれのハードウェア構成でもよい。さらに、ネットワークは、ＴＣＰ・ＩＰプロトコルの他、種々の通信プロトコルを用いたネットワークあるいはソフトウェア的に構築された仮想ネットワークやこれに類するあらゆるネットワークを含むネットワークなどいかなる通信プロトコルであってもよい。また、ネットワークは、有線に限らず、無線（衛星通信、各種高周波通信手段等を含む）ネットワーク（例えば、簡易電話システムや携帯電話のようなシングルキャリア通信システム、Ｗ―ＣＤＭＡやＩＥＥＥ８０２．１１ｂに準拠した無線ＬＡＮのようなスペクトラム拡散通信システム、ＩＥＥＥ８０２．１１ａやＨｉｐｅｒＬＡＮ／２のようなマルチキャリア通信システム、などを含むネットワーク）であっても構わず、これらの組み合わせを利用してもよく、他のネットワークと接続されたシステムであってもよい。さらに、ネットワークは、ポイントツーポイント、ポイントツーマルチポイント、マルチポイントツーマルチポイントなど如何なる形態でもよい。【０２３５】
また、上位装置とデータ転送装置（又は論理検証装置）との間の通信構造に際し、いずれか一方又は双方に形成されるインターフェースの種類は、例えばパラレルインタフェース、ＵＳＢインターフェース、ＩＥＥＥ１３９４、ＬＡＮやＷＡＮ等のネットワークやその他これに類するもの、もしくは今後開発される如何なるインターフェースであっても構わない。  【０２３６】
さらに、論理装置に供給する特定信号の変化の直後に上位装置に転送すべき出力信号の値であるデータをあらかじめデータ蓄積手段に蓄え、前記データ蓄積手段に蓄積処理された出力信号の値を前記上位装置に転送する制御を行う手法は、必ずしも実体のある装置に限られる必要はなく、その方法としても機能することは容易に理解できる。このため、方法にかかる発明も、必ずしも実体のある装置に限らず、その方法としても有効であることに相違はない。この場合、方法を実現するための一例としてデータ転送装置、論理検証装置、エミュレーション装置、ＦＰＧＡエミュレーション装置、論理検証システムなども含めることができる。【０２３７】
ところで、このような装置は、単独で存在する場合もあるし、ある機器に組み込まれた状態で利用されることもあるなど、発明の思想としてはこれに限らず、各種の態様を含むものである。従って、ソフトウェアであったりハードウェアであったりするなど、適宜、変更可能である。発明の思想の具現化例として装置のソフトウェア化が可能となる場合には、かかるソフトウェアを記憶した記憶媒体上においても当然に存在し、利用されるといわざるをえない。【０２３８】
さらに、一部がソフトウェアであって、一部がハードウェアで実現されている場合であってもよく、一部を記憶媒体上に記憶しておいて必要に応じて適宜読み込まれるような形態のものとしてあってもよい。本発明をソフトウェアで実現する場合、ハードウェアやオペレーティングシステムを利用する構成とすることも可能であるし、これらと切り離して実現することもできる。
実現方法は、オペレーティングシステムにおける所定の関数を呼び出して処理することも可能であれば、このような関数を呼び出すことなくハードウェアから入力することも可能である。そして、オペレーティングシステムの介在のもとで実現するとしても、プログラムが媒体に記録されて流通される過程においては、このプログラムだけで本発明を実施できるものと理解することができる。【０２３９】
また、発明の範囲は、図示例に限定されないものとする。
さらに、上記各実施の形態には種々の段階が含まれており、開示される複数の構成要件における適宜な組み合わせにより種々の発明が抽出され得る。つまり、上述の各実施の形態同士、あるいはそれらのいずれかと各変形例のいずれかとの組み合わせによる例をも含む。この場合において、本実施形態において特に記載しなくとも、各実施の形態及びそれらの変形例に開示した各構成から自明な作用効果については、当然のことながら実施の形態の作用効果として含めることができる。逆に、本実施の形態に記載されたすべての作用効果を奏することのできる構成が、本発明の本質的特徴部分の必須構成要件であるとは限らない。また、実施の形態に示される全構成要件から幾つかの構成要件が削除された構成による実施の形態並びにその構成に基づく技術的範囲も発明になりうる。【０２４０】
そして、各実施の形態及びそれらの変形例を含むこれまでの記述は、本発明の理解を容易にするために、本発明の多様な実施の形態のうちの一例の開示、すなわち、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、例証するものであり、制限するものではなく、適宜変形及び／又は変更が可能である。本発明は、その技術思想、またはその主要な特徴に基づいて、様々な形で実施することができ、各実施の形態及びその変形例によって本発明の技術的範囲が限定的に解釈されてはならないものである。
従って、上記に開示された各要素は、本発明の技術的範囲に属する全ての設計変更や均等物を含む趣旨である。【０２４１】
この出願は２００７年１２月７日に出願された日本出願特願２００７−３１６９７３を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【産業上の利用可能性】
【０２４２】
本発明は、コンピュータ産業、その他これに類する情報処理産業に適用可能であり、より詳細には、計算機とバスを介してデータ転送を行う装置、特に、計算機上からデータを頻繁にリードする必要がある装置、などの用途に適用できる。
【図面の簡単な説明】
【０２４３】
【図１】本発明の第１の実施の形態による論理検証システムの全体構成の一例を示すブロック図である。
【図２】本発明の第１の実施の形態による論理検証システムにおける処理手順の一例を示すフローチャートである。
【図３】本発明の第２の実施の形態による論理検証システムの全体構成の一例を示すブロック図である。
【図４】本発明の第２の実施の形態による論理検証システムにおける処理手順の一例を示すフローチャートである。
【図５】本発明の第２の実施の形態による論理検証システムの変形例の全体構成の一例を示すブロック図である。
【図６】本発明の第３の実施の形態による論理検証システムの全体構成の一例を示すブロック図である。
【図７】本発明の第４の実施の形態による論理検証システムの全体構成の一例を示すブロック図である。
【図８】本発明の第５の実施の形態による論理検証システムの全体構成の一例を示すブロック図である。
【図９】本発明の第５の実施の形態による論理検証システムにおける各部の動作の一例を示すタイミングチャートである。
【図１０】比較例の論理検証システムにおける各部の動作の一例を示すタイミングチャートである。
【図１１】比較例の論理検証システムにおける各部の動作の一例を示すタイミングチャートである。
【図１２】比較例の論理検証システムにおける各部の動作の一例を示すタイミングチャートである。
【図１３】比較例の論理検証システムにおける各部の動作の一例を示すタイミングチャートである。
【図１４】本発明の第５の実施の形態による論理検証システムにおける各部の動作の一例を示す説明図である。
【図１５】本発明の第６の実施の形態による論理検証システムにおける各部の動作の一例を示すタイミングチャートである。
【図１６】比較例の論理検証システムにおける各部の動作の一例を示すタイミングチャートである。
【図１７】本発明の第７の実施の形態による論理検証システムの全体構成の一例を示すブロック図である。
【図１８】本発明の第８の実施の形態による論理検証システムの全体構成の一例を示すブロック図である。
【符号の説明】
【０２４４】
１、４００    論理検証システム
２、４０２    計算機（上位装置）
１０ａ    論理検証装置    
１０ｂ    データ転送装置  
１２    特定信号設定制御手段
１３    特定信号監視手段
１４    読出制御手段  
１５    データ蓄積手段  
１６    データ転送制御手段（第２の制御手段）
１７    論理装置
２２０    変化検出手段
３２０    変化可能性出力信号情報記憶手段
４１０ａ    ＦＰＧＡエミュレータ
４１２    クロック生成手段
４１４    読出制御手段  
４１５    データ蓄積手段
４１６    リードデータ転送制御手段  
４１７    被検証回路
４２１    バス制御手段（第３の制御手段）  
４３１    入力手段
４３２    セレクタ
４２２ａ、４２２ｂ、４２２ｃ    同期化手段  
Ｓ１    特定信号
Ｓｏｕｔ    出力信号
ＢＵＳ    バス  
【図１】
2009072461.tif 000003
【図２】
2009072461.tif 000004
【図３】
2009072461.tif 000005
【図４】
2009072461.tif 000006
【図５】
2009072461.tif 000007
【図６】
2009072461.tif 000008
【図７】
2009072461.tif 000009
【図８】
2009072461.tif 000010
【図９】
2009072461.tif 000011
【図１０】
2009072461.tif 000012
【図１１】
2009072461.tif 000013
【図１２】
2009072461.tif 000014
【図１３】
2009072461.tif 000015
【図１４】
2009072461.tif 000016
【図１５】
2009072461.tif 000017
【図１６】
2009072461.tif 000018
【図１７】
2009072461.tif 000019
【図１８】
2009072461.tif 000020
【国際調査報告】
2009072461.tif 000021
2009072461.tif 000022
2009072461.tif 000023