(57)【要約】被検証回路が複数の回路部分に分割される。分割されたそれぞれの回路部分の機能的動作をシミュレーションにより実現するために複数のプログラマブルデバイスが備えられる。被検証回路が使用する同時刻に与えられるべき信号ＳＸを複数のプログラマブルデバイスへ供給する配線は、信号ＳＸが複数のプログラマブルデバイスにそれぞれ到着する時刻の最大スキューがプログラマブルデバイス間でのデータ転送に要する最小の時間よりも小さくなるように設けられる。各プログラマブルデバイスには、信号ＳＸを信号生成装置（４００）から入力するための入力端子ＰＸが実現され、信号生成装置から、直接、信号ＳＸを入力することができ、スキューの発生を抑制できる。【特許請求の範囲】
【請求項１】
被検証回路の機能的動作をシミュレーションして検証する回路検証装置において、
前記被検証回路が複数の回路部分に分割され、
分割されたそれぞれの回路部分を実現する複数のシミュレーション手段と、
前記複数のシミュレーション手段を接続して相互通信を可能にする第１の配線手段と、
前記複数のシミュレーション手段のうち２以上のシミュレーション手段に対して同タイミングで与えるべき第１の信号を生成する第１の信号生成手段と、
前記第１の信号を前記第１の信号生成手段から前記２以上のシミュレーション手段へ直接供給する第２の配線手段とを含み、
前記２以上のシミュレーション手段の各々は、前記第２の配線手段に接続して前記第１の信号を前記第１の信号生成手段から入力するための入力端子を実現し、かつ、前記第２の配線手段は、前記第１の信号生成手段が出力した前記第１の信号が前記２以上のシミュレーション手段にそれぞれ到着する時刻の最大スキューが前記複数のシミュレーション手段間での前記第１の配線手段によるデータ転送に要する最小の時間よりも小さいことを特徴とする回路検証装置。
【請求項２】
前記第１の信号は前記２以上のシミュレーション手段でそれぞれ実現される回路部分に同タイミングで与えられるべき信号であり、
前記２以上のシミュレーション手段の各々で、前記第１の信号が前記入力端子を通して前記回路部分に供給されることを特徴とする請求項１に記載の回路検証装置。
【請求項３】
さらに、前記２以上のシミュレーション手段の各々で実現された回路部分に同タイミングで与えられるべき第２の信号を生成する第２の信号生成手段を有し、
前記２以上のシミュレーション手段の各々は、前記第２の信号を前記第１の信号に同期させて前記回路部分へ供給する同期化手段を含むことを特徴とする請求項１に記載の回路検証装置。
【請求項４】
前記第２の信号生成手段は前記２以上のシミュレーション手段の各々へ配線を通して前記第２の信号を供給することを特徴とする請求項３に記載の回路検証装置。
【請求項５】
前記第２の信号生成手段は前記２以上のシミュレーション手段の１つに組み込まれ、当該第２の信号は前記第１の配線手段を通して他のシミュレーション手段へ転送されることを特徴とする請求項３に記載の回路検証装置。
【請求項６】
前記第２の信号生成手段は前記２以上のシミュレーション手段の各々に組み込まれたことを特徴とする請求項３に記載の回路検証装置。
【請求項７】
被検証回路が複数の回路部分に分割され、分割されたそれぞれの回路部分の機能的動作をシミュレーションにより実現する複数のシミュレーション手段を有する回路検証装置における信号分配方法において、
前記複数のシミュレーション手段のうち２以上のシミュレーション手段に同タイミングで与えられるべき第１の信号を生成し、
前記２以上のシミュレーション手段の各々に前記第１の信号を入力するための入力端子を形成し、
前記第１の信号が前記２以上のシミュレーション手段の入力端子にそれぞれ到着する時刻の最大スキューが前記複数のシミュレーション手段間でのデータ転送に要する最小の時間よりも小さくなるように、前記第１の信号を前記２以上のシミュレーション手段の各入力端子へそれぞれ分配することを特徴とする回路検証装置における信号分配方法。
【請求項８】
前記第１の信号は前記２以上のシミュレーション手段でそれぞれ実現された回路部分に同タイミングで与えられるべき信号であり、
前記２以上のシミュレーション手段の各々は前記回路部分の入力を前記入力端子に変更し、前記第１の信号が前記入力端子を通して前記回路部分に供給されることを特徴とする請求項７に記載の信号分配方法。
【請求項９】
さらに、前記２以上のシミュレーション手段の各々で実現された回路部分に同タイミングで与えられるべき第２の信号を生成し、
前記２以上のシミュレーション手段の各々で前記第２の信号を前記第１の信号に同期させることで同期第２の信号を生成し、
前記２以上のシミュレーション手段の各々は前記回路部分の入力を前記同期第２の信号に変更することを特徴とする請求項７に記載の信号分配方法。
【請求項１０】
被検証回路の機能的動作をシミュレーションして検証する回路検証装置を実現する回路検証システムにおいて、
複数のシミュレーション手段と、
前記複数のシミュレーション手段を接続して相互通信を可能にする第１の配線手段と、
前記複数のシミュレーション手段の各々に回路部分を実現させるように前記被検証回路を複数に分割して実装データを生成する分割処理手段と、
前記実装データを前記複数のシミュレーション手段の各々に対して実装するプログラミング手段と、
前記複数のシミュレーション手段のうち２以上のシミュレーション手段に対して同タイミングで与えるべき第１の信号を生成する第１の信号生成手段と、
前記第１の信号を前記第１の信号生成手段から前記２以上のシミュレーション手段へ直接供給する第２の配線手段とを含み、
前記分割処理手段は、前記２以上のシミュレーション手段の各々に、前記第２の配線手段に接続して前記第１の信号を前記第１の信号生成手段から入力するための入力端子を実現し、
前記第２の配線手段は、前記第１の信号生成手段が出力した前記第１の信号が前記２以上のシミュレーション手段にそれぞれ到着する時刻の最大スキューが前記複数のシミュレーション手段間での前記第１の配線手段によるデータ転送に要する最小の時間よりも小さいことを特徴とする回路検証システム。
【請求項１１】
前記第１の信号は前記２以上のシミュレーション手段でそれぞれ実現される回路部分に同タイミングで与えられるべき信号であり、
前記分割処理手段は、前記２以上のシミュレーション手段の各々が前記回路部分の入力を前記入力端子に変更し、前記第１の信号が前記入力端子を通して前記回路部分に供給されるように設定することを特徴とする請求項１０に記載の回路検証システム。
【請求項１２】
さらに、前記２以上のシミュレーション手段の各々で実現された回路部分に同タイミングで与えられるべき第２の信号を生成する第２の信号生成手段を含み、
前記分割処理手段は、前記２以上のシミュレーション手段の各々において、前記第２の信号を前記第１の信号に同期させて同期第２の信号を生成する同期化手段を実現し、前記回路部分の入力を前記同期第２の信号に変更するように設定することを特徴とする請求項１０に記載の回路検証システム。
【請求項１３】
被検証回路の機能的動作をシミュレーションして検証する回路検証方法において、
前記被検証回路を複数の回路部分に分割し、
分割したそれぞれの回路部分を複数のシミュレーション手段にて実現し、
前記複数のシミュレーション手段を第１の配線手段を通して接続して相互通信を可能にし、
前記複数のシミュレーション手段のうち２以上のシミュレーション手段に対して同タイミングで与えるべき第１の信号を生成し、
前記第１の信号を第２の配線手段を通して前記２以上のシミュレーション手段へ直接供給し、
前記２以上のシミュレーション手段の各々は、前記第２の配線手段に接続して前記第１の信号を入力するための入力端子を実現し、
前記第２の配線手段は、前記第１の信号が前記２以上のシミュレーション手段にそれぞれ到着する時刻の最大スキューが前記複数のシミュレーション手段間での前記第１の配線手段によるデータ転送に要する最小の時間よりも小さいことを特徴とする回路検証方法。
【請求項１４】
前記第１の信号は前記２以上のシミュレーション手段でそれぞれ実現される回路部分に同タイミングで与えられるべき信号であり、
前記２以上のシミュレーション手段の各々が前記回路部分の入力を前記入力端子に変更し、前記第１の信号が前記入力端子を通して前記回路部分に供給されることを特徴とする請求項１３に記載の回路検証方法。
【請求項１５】
さらに、前記２以上のシミュレーション手段の各々で実現された回路部分に同タイミングで与えられるべき第２の信号を生成し、
前記２以上のシミュレーション手段の各々で前記第２の信号を前記第１の信号に同期させることで同期第２の信号を生成し、
前記２以上のシミュレーション手段の各々は前記回路部分の入力を前記同期第２の信号に変更することを特徴とする請求項１３に記載の回路検証方法。
【発明の詳細な説明】
【技術分野】  本発明は論理回路の設計支援技術に係り、特に複数のプログラマブルデバイスを使用して同期式回路の動作を検証するための回路検証装置および回路検証方法に関する。
【背景技術】  ディジタルＬＳＩの動作検証に、ＦＰＧＡ、ＣＰＬＤなどのプログラマブルデバイスを用いたハードウエアエミュレータの使用が一般的になっている。しかしながら、回路規模が年々大きくなるのに伴い、ディジタルＬＳＩ全体を１つのプログラマブルデバイスに割り付けることが次第に困難になってきた。そこで、このような問題点を解決しようとする技術がいくつか提案されている。
たとえば、特開平１１−１３４３８５号公報には、被検査回路を複数のプログラマブルデバイスに割り付ける方法が開示されている。この方法では、特に、プログラマブルデバイス間にまたがるパス遅延がクリティカルパスになることが多いという観点から、被検査回路を分割する際に、パス遅延のタイミング余裕がある一定以下のネットがプログラマブルデバイス間にまたがらないように割り付けを行う。
しかしながら、特許文献１に開示された回路割付方法では、複数のプログラマブルデバイスに分割された回路に対してほぼ同時刻に変化を伝える必要がある信号については全く考慮されていない。このために回路、特に同期式回路を正しく検証することができない場合がある。この問題が顕著に現れるのは、ディジタルＬＳＩのクロック信号を分配する場合である。以下、具体例を用いて従来の問題点を説明する。
図１は、被検証回路１０１を２つの部分に分割し、それぞれをプログラマブルデバイス１、２に割り当てた例を示すブロック図である。被検証回路１０１は縦続接続された３個のフリップフロップ回路Ａ，Ｂ，Ｃからなる。ここでは、フリップフロップ回路（ＦＦ）ＡおよびＣからなる最上位回路１０２がプログラマブルデバイス１に、フリップフロップ回路Ｂからなる回路部分がプログラマブルデバイス２にそれぞれ割り付けられている。
クロック発生装置１０３により生成されたクロック信号ＣＬＫは、プログラマブルデバイス１の内部配線を通してフリップフロップ回路ＡおよびＣのクロック入力へ供給され、プログラマブルデバイス１のクロック出力端子からプログラマブルデバイス間配線を通してプログラマブルデバイス２へ供給される。また、フリップフロップ回路Ａのデータ出力端子Ｄ１のデータは、プログラマブルデバイスの内部配線およびプログラマブルデバイス間配線を通してプログラマブルデバイス２のフリップフロップ回路Ｂのデータ入力端子に転送される。さらに、フリップフロップ回路Ｂのデータ出力端子Ｄ２のデータは、プログラマブルデバイスの内部配線およびプログラマブルデバイス間配線を通してプログラマブルデバイス１のフリップフロップ回路Ｃのデータ入力端子に転送される。
このような３縦続フリップフロップが２つのプログラマブルデバイス１および２に実装された構成において、配線やデバイスの遅延が理想的である場合には、各フリップフロップの出力はその入力に対して１クロックサイクルずれて出力される。このため、第３段フリップフロップ回路Ｃのデータ出力端子のデータは第１段フリップフロップ回路Ａのデータ入力端子Ｄ０と比較して３サイクル遅れるはずである。
しかしながら、現実には、すべての回路素子および配線には遅延が存在する。すなわち、フリップフロップ回路Ａのデータ出力端子Ｄ１からフリップフロップ回路Ｂのデータ入力端子までには遅延ＤＹが存在する。一方、プログラマブルデバイス１のＣＬＫ入力端子からフリップフロップ回路Ｂのクロック端子までには遅延ＤＸが存在する。
問題が起きるのは、フリップフロップ回路Ｂへのクロック信号ＣＬＫの入力がデータ入力のタイミングに比べて大きく遅れる（ＤＸ＞ＤＹ）場合である。上述したように、データｘ０がフリップフロップ回路Ａにラッチされて出力端子Ｄ１にデータｘ０が現れ、それからＤＹだけ遅れてフリップフロップ回路Ｂのデータ入力端子にデータｘ０が現れる。その後で、ＤＸだけ遅れたクロック信号ＣＬＫがフリップフロップ回路Ｂのクロック入力端子に入力されるために、フリップフロップ回路Ｂはその時点のデータ入力ｘ０をラッチしてしまう。この影響で、最終的にフリップフロップ回路Ｃのデータ出力は、正常な出力と比較して１サイクル早く変化することになる。
このような異常動作は、フリップフロップ回路Ｂのクロック入力がデータ入力よりも遅れていることに起因する。上述した特許文献１に開示された技術では、クロック信号のように同時刻に与えられるべき信号に対する配慮が全くないために、上記のような異常動作の発生を避けることができず正しい回路検証ができない。
そこで、本発明の目的は、被検査回路を正しく検証できる回路検証装置及び回路検証方法並びにそのための信号分配方法を提供することにある。
【発明の開示】
本発明の第１の態様によれば、被検証回路の機能的動作をシミュレーションして検証する回路検証装置が提供される。検証に際し、被検証回路が複数の回路部分に分割される。回路検証装置は、分割されたそれぞれの回路部分を実現する複数のシミュレーション部（プログラマブルデバイス）と、複数のシミュレーション部を接続して相互通信を可能にする第１の配線部と、複数のシミュレーション部のうち２以上のシミュレーション部に対して同タイミングで与えるべき第１の信号を生成する第１の信号生成部と、第１の信号を第１の信号生成部から上記２以上のシミュレーション部へ直接供給する第２の配線部とを含む。本回路検証装置においては、上記２以上のシミュレーション部の各々は、第２の配線部に接続して第１の信号を第１の信号生成部から入力するための入力端子を実現する。第２の配線部においては、第１の信号生成部が出力した第１の信号が上記２以上のシミュレーション部にそれぞれ到着する時刻の最大スキューが、複数のシミュレーション部間での第１の配線部によるデータ転送に要する最小の時間よりも小さいことを特徴とする。
上記第１の態様による回路検証装置においては、第１の信号は２以上のシミュレーション部でそれぞれ実現される回路部分に同タイミングで与えられるべき信号であり、２以上のシミュレーション部の各々で、第１の信号が入力端子を通して回路部分に供給される。
上記第１の態様による回路検証装置においてはさらに、２以上のシミュレーション部の各々で実現された回路部分に同タイミングで与えられるべき第２の信号を生成する第２の信号生成部を有し、２以上のシミュレーション部の各々は、第２の信号を第１の信号に同期させて回路部分へ供給する同期化部を含んでいても良い。この場合、第２の信号生成部は２以上のシミュレーション部の各々へ配線を通して第２の信号を供給する。また、第２の信号生成部は２以上のシミュレーション部の１つに組み込まれても良く、第２の信号は第１の配線部を通して他のシミュレーション部へ転送される。あるいはまた、第２の信号生成部は２以上のシミュレーション部の各々に組み込まれても良い。
本発明の第２の態様によれば、被検証回路が複数の回路部分に分割され、分割されたそれぞれの回路部分の機能的動作をシミュレーションにより実現する複数のシミュレーション部を有する回路検証装置における信号分配方法が提供される。本信号分配方法においては、複数のシミュレーション部のうち２以上のシミュレーション部に同タイミングで与えられるべき第１の信号を生成し、上記２以上のシミュレーション部の各々に第１の信号を入力するための入力端子を形成し、第１の信号が上記２以上のシミュレーション部の入力端子にそれぞれ到着する時刻の最大スキューが複数のシミュレーション部間でのデータ転送に要する最小の時間よりも小さくなるように、第１の信号を上記２以上のシミュレーション部の各入力端子へそれぞれ分配することを特徴とする。
本発明の第３の態様によれば、被検証回路の機能的動作をシミュレーションして検証する回路検証装置を実現する回路検証システムが提供される。本回路検証システムは、複数のシミュレーション部と、複数のシミュレーション部を接続して相互通信を可能にする第１の配線部と、複数のシミュレーション部の各々に回路部分を実現させるように被検証回路を複数に分割して実装データを生成する分割処理部と、実装データを複数のシミュレーション部の各々に対して実装するプログラミング部と、複数のシミュレーション部のうち２以上のシミュレーション部に対して同タイミングで与えるべき第１の信号を生成する第１の信号生成部と、第１の信号を第１の信号生成部から上記２以上のシミュレーション部へ直接供給する第２の配線部とを含む。分割処理部は、上記２以上のシミュレーション部の各々に、第２の配線部に接続して第１の信号を第１の信号生成部から入力するための入力端子を実現する。第２の配線部においては、第１の信号生成部が出力した第１の信号が上記２以上のシミュレーション部にそれぞれ到着する時刻の最大スキューが、複数のシミュレーション部間での第１の配線部によるデータ転送に要する最小の時間よりも小さいことを特徴とする。
本発明の第４の態様によれば、被検証回路の機能的動作をシミュレーションして検証する回路検証方法が提供される。検証に際し、被検証回路が複数の回路部分に分割される。本回路検証方法においては、分割したそれぞれの回路部分を複数のシミュレーション部にて実現し、複数のシミュレーション部を第１の配線部を通して接続して相互通信を可能にし、複数のシミュレーション部のうち２以上のシミュレーション部に対して同タイミングで与えるべき第１の信号を生成し、第１の信号を第２の配線部を通して上記２以上のシミュレーション部へ直接供給する。２以上のシミュレーション部の各々は、第２の配線部に接続して第１の信号を入力するための入力端子を実現する。第２の配線部においては、第１の信号が上記２以上のシミュレーション部にそれぞれ到着する時刻の最大スキューが複数のシミュレーション部間での第１の配線部によるデータ転送に要する最小の時間よりも小さいことを特徴とする。
【図面の簡単な説明】  図１は、縦続接続された３個のフリップフロップ回路を２個のプログラマブルデバイスに割り当てた従来例と、この従来例で生じうる問題点を説明するためのブロック図である。
図２は、本発明の第１の実施形態による回路検証システムの概略的ブロック構成図である。
図３は、本発明の第１の実施形態による回路検証装置の概略的ブロック構成図である。
図４は、本発明の第２の実施形態による回路検証システムの概略的ブロック構成図である。
図５Ａ、図５Ｂはそれぞれ本発明の第２の実施形態による回路検証システムの制御動作を示すフローチャート、回路検証動作を示すフローチャートである。
図６は、本発明の第２の実施例による回路検証装置の動作を説明するための概略的ブロック構成図である。
図７は、本発明の第２の実施形態におけるずれ補正回路（同期化回路）の動作の一例を説明するためのタイミングチャートである。
図８は、本発明の第３の実施形態による回路検証装置の概略的ブロック構成図である。
図９は、本発明の第４の実施形態による回路検証装置の概略的ブロック構成図である。
図１０Ａ、図１０Ｂはそれぞれ本発明の第５の実施形態による回路検証装置の概略的ブロック構成図、ずれ補正回路の構成を示す図である。
図１１は、本発明の実施例における被検証回路の一例を示す回路図である。
図１２は、図１１の被検証回路から生成され２個のプログラマブルデバイスに実装された回路検証装置のブロック構成図である。
図１３は、図１２の各プログラマブルデバイスに実装されたずれ補正回路の一例を示す回路図である。
図１４は、図１２に示す回路検証装置の動作を説明するタイミングチャートである。
【発明を実施するための最良の形態】［第１の実施形態］
（システム構成）
図２は本発明の第１の実施形態による回路検証システムの概略的ブロック構成図である。ここでは、被検証回路を分割してＮ個のプログラマブルデバイスに割り付ける場合を説明する。
回路検証システムは、被検証回路の内容が記述されているファイル１０を入力し回路分割処理を実行する回路分割処理装置２０を含む。回路検証システムはまた、回路分割処理装置２０により生成されたプログラマブルデバイスのデータ３０．１〜３０．Ｎをプログラマブルデバイス１〜Ｎにそれぞれ書き込むプログラム部（プログラミング部）３１．１〜３１．Ｎと、プログラマブルデバイス（シミュレーション部）１〜Ｎを含む回路検証装置４０とを有する。
回路分割処理装置２０は、回路解析部２０１、分割決定部２０２、分割処理部２０３、表示部２０４および入力部２０５を含むコンピュータシステムである。回路解析部２０１はファイル１０を解析して回路情報を取得する。分割決定部２０２は、取得した回路情報を用いて被検証回路をＮ個の部分回路にどのように分割するかを決定する。表示部２０４はＬＣＤ等で実現され、入力部２０５はキーボードやポインティングデバイスなどである。
分割処理部２０３は、回路解析部２０１により得られた回路情報から全ての信号名を取得し、表示部２０４に表示してユーザに同時刻に与えるべき信号を指定するように促す。ユーザによって同時刻に与えるべき信号名が指定されると、分割処理部２０３は、回路解析部２０１からの回路情報および分割決定部２０２からの回路分割方法に従って回路分割を実行する。その際、分割回路に同時刻に与えるべき信号が使用される場合には、後述するように、スキューの小さくなる配線が組み込まれる。こうして、プログラマブルデバイス１〜Ｎにそれぞれ実装されるプログラマブルデバイスのデータ３０．１〜３０．Ｎが生成され、プログラム部３０．１〜３０．Ｎにより各プログラマブルデバイス１〜Ｎに書き込まれる。
回路検証装置４０は、Ｎ個のプログラマブルデバイス１〜Ｎ、これらプログラマブルデバイス間で信号を互いに転送するための配線（第１の配線部）４０１、同時刻に与えるべき少なくとも１つの信号を生成する信号生成部（第１の信号生成部）４００を含む。プログラマブルデバイス１〜Ｎには、それぞれ対応するプログラマブルデバイスのデータが書き込まれることで、信号生成部４００から同時刻に与えるべき信号（第１の信号）を入力するピンＰＸ１〜ＰＸＮが設定される。以下、本第１の実施形態による回路検証装置４０をさらに詳細に説明する。
（回路検証装置）
図３は、第１の実施形態による回路検証装置の概略的ブロック構成図である。プログラマブルデバイス（シミュレーション部）１、２、・・・、Ｎには、それぞれ対応するプログラマブルデバイスのデータが書き込まれることで、回路Ｃ１、Ｃ２、・・・、ＣＮが割り付けられる。さらに、信号生成部４００から同時刻に与えるべき信号ＳＸ（第１の信号）をそれぞれの回路Ｃ１、Ｃ２、・・・、ＣＮに入力するための配線（第２の配線部）Ｌ１、Ｌ２、・・・、ＬＮおよびピンＰＸ１、ＰＸ２、・・・、ＰＸＮが形成される。
信号生成部４００の出力端子とプログラマブルデバイス１〜ＮのピンＰＸ１〜ＰＸＮとはスキューの小さい配線で接続されることが必要である。より詳しくは、信号生成部４００からプログラマブルデバイス１〜Ｎの回路Ｃ１〜ＣＮに信号ＳＸが転送されるとき、配線経路長の違いにより到着時刻ＤＸｉ（ｉ＝Ｌ、２、・・・、Ｎ）が異なる。この到着時間差の最大値（最大スキュー）が、プログラマブルデバイス間の配線（第１の配線部）４０１によるデータ転送に要する最小時間ＤＭＩＮより小さいことが必要である。なお、プログラマブルデバイス１〜Ｎ内で発生する遅延に関しては、プログラマブルデバイス用の配置配線プログラムが提供する速度制約を利用して、ばらつきを抑えるようにすることができる。
このように各プログラマブルデバイスをプログラムすることで、同時刻に与えるべき信号ＳＸは、プログラマブルデバイス１〜ＮのそれぞれのピンＰＸ１〜ＰＸＮに直接与えることができる。このため、従来のように最上位回路から下位回路へ伝達されることに起因するスキューの発生を抑制することができる。
［第２の実施形態］
上述した第１の実施形態では同時刻に与えるべき信号ＳＸ（第１の信号）を回路Ｃ１〜ＣＮにそれぞれ与える構成であった。一方、第２の実施形態では、信号ＳＸを利用して、同時刻に与えるべき別の信号ＳＹ（第２の信号）を各プログラマブルデバイスで同期化する。すなわち、スキューの大きな配線を伝搬する信号ＳＹであっても、信号ＳＸに同期することで、実質的に同時刻で各回路に供給することができる。以下、本発明の第２の実施形態を詳細に説明する。
（システム構成）
図４は本発明の第２の実施形態による回路検証システムの概略的ブロック構成図である。ここでは、被検証回路を分割してＮ個のプログラマブルデバイスに割り付ける場合を説明する。
回路検証システムは、被検証回路の内容が記述されているファイル１０を入力し回路分割処理を実行する回路分割処理装置２０と、回路分割処理装置２０により生成されたプログラマブルデバイスのデータ３０．１〜３０．Ｎをプログラマブルデバイス１〜Ｎにそれぞれ書き込むプログラム部３１．１〜３１．Ｎと、プログラマブルデバイス１〜Ｎを含む回路検証装置４０とを有する。
回路分割処理装置２０は、回路解析部２０１、分割決定部２０２、分割処理部２０３，表示部２０４および入力部２０５を含むコンピュータシステムである。回路解析部２０１はファイル１０を解析して回路情報を取得する。分割決定部２０２は、取得した回路情報を用いて被検証回路をＮ個の部分回路にどのように分割するかを決定する。表示部２０４はＬＣＤ等で実現され、入力部２０５はキーボードやポインティングデバイスなどである。
分割処理部２０３は、回路解析部２０１により得られた回路情報から全ての信号名を取得し、表示部２０４に表示してユーザに同時刻に与えるべき信号を指定するように促す。ユーザによって同時刻に与えるべき信号名が指定されると、分割処理部２０３は、回路解析部２０１からの回路情報および分割決定部２０２からの回路分割方法に従って回路分割を実行する。その際、分割回路に同時刻に与えるべき信号が使用される場合には、後述するように、ずれ補正回路（あるいは同期化回路）が組み込まれる。こうして、プログラマブルルバイス１〜Ｎにそれぞれ実装されるプログラマブルデバイスのデータ３０．１〜３０．Ｎが生成され、プログラム部３１．１〜３１．Ｎにより各プログラマブルデバイス１〜Ｎに書き込まれる。
回路検証装置４０は、Ｎ個のプログラマブルデバイス１〜Ｎ、これらプログラマブルデバイス間で信号を互いに転送するための配線４０１を含む。回路検証装置４０は更に、信号（第１の信号）ＳＸを生成する信号生成装置（第１の信号生成部）Ｘ４０２、同時刻に与えるべき少なくとも１つの信号（第２の信号）ＳＹを生成する信号生成装置（第２の信号生成部）Ｙ４０３および、信号ＳＷを生成する信号生成装置Ｗ（ここでは図示せず）を含む。なお、信号ＳＷは、スキュー調整が必要のない配線で最上位回路へ入力する信号である。プログラマブルデバイス１〜Ｎには、それぞれ対応するプログラマブルデバイスのデータが書き込まれることで、ピンＰＸ１〜ＰＸＮ、ピンＰＹ１〜ＰＹＭ、回路Ｃ１〜ＣＮおよびずれ補正回路（同期化部）ＤＣ１〜ＤＣＮが実装されている。
図５Ａおよび図５Ｂは、本第２の実施形態による回路検証システムの制御動作を示すフローチャートである。まず、図５Ａにおいて、回路解析部２０１がファイル１０を解析して回路情報を取得すると（ステップＳ３０１）、分割処理部２０３はその回路情報から全ての信号名を取得し、表示部２０４に表示させ、ユーザに同時刻に与えるべき信号を指定するように要求する（ステップＳ３０２）。
ユーザが入力部２０５を用いて同時刻に与えるべき信号ＳＹを指定すると（ステップＳ３０３）、分割処理部２０３は被検証回路をＮ個の部分回路にどのように分割するかを決定する（ステップＳ３０４）。その際、分割処理部２０３は分割回路部分に指定された信号ＳＹが使用されるか否かを判断する（ステップＳ３０５）。ステップＳ３０５において、信号ＳＹを使用する回路である判断されれば（ステップＳ３０５のＹＥＳ）、同時刻に与えられる信号ＳＸをそれぞれ入力するピンＰＸ１〜ＰＸＮと、同時刻に与えられるべき信号ＳＹをそれぞれ入力するピンＰＹ１〜ＰＹＮと、ずれ補正回路ＤＣ１〜ＤＣＮとを当該回路に組み込むようにプログラムする（ステップＳ３０６）。信号ＳＹを使用しない回路である判断されれば（ステップＳ３０５のＮＯ）、ずれ補正回路の組込は行わないか、あるいは、ずれ補正回路の入力端子と出力端子とを直接接続するようにプログラムする。
分割処理部２０３はプログラマブルデバイス１〜Ｎにそれぞれ実装されるべきプログラマブルデバイスのデータ３０．１〜３０．Ｎを生成し（ステップＳ３０７）、それぞれ対応するプログラム部によりプログラマブルデバイス１〜Ｎに実装される（ステップＳ３０８）。こうしてプログラマブルデバイス１〜Ｎに分割された被検証回路の検証動作が実行される（ステップＳ３０９）。
被検証回路の検証動作は、図５Ｂに示すように、信号生成装置Ｙ（４０３），Ｗ（図示せず）をアクティブにして信号ＳＹおよびＳＷを各プログラマブルデバイスへ供給する（ステップＳ３１０）。続いて、信号ＳＹを所定の時刻Ｔで各回路へ供給するために信号生成装置Ｘ（４０２）をアクティブにして信号ＳＸを各プログラマブルデバイスへ供給する（ステップＳ３１１）。これによって、同時刻に与えられるべき信号ＳＹはスキューが小さい信号ＳＸに同期して各回路に供給される。
以下、本実施形態の回路検証装置を詳細に説明する。
（回路検証装置）
図６は、本発明の第２の実施形態による回路検証装置の動作を説明するための概略的ブロック構成図である。ここでは簡単のために、２つのプログラマブルデバイスｍ，ｎのみが図示されている。回路検証装置は、複数のプログラマブルデバイス間で信号を互いに転送するための配線４０１、同時刻に与えられる信号ＳＸを生成する信号生成装置Ｘ４０２、同時刻に与えるべき少なくとも１つの信号ＳＹを生成する信号生成装置Ｙ４０３、および信号ＳＷを生成する信号生成装置Ｗ４０４を含む。
信号生成装置Ｘ４０２から出力された信号ＳＸは、遅延ＤＸｉ（ｉ＝１，２，・・・，Ｎ）を伴って、プログラマブルデバイスｍおよびｎのピンＰＸｍおよびＰＸｎにそれぞれ信号ＳＸｍおよびＳＸｎとして到着する。ただし、上述したように、プログラマブルデバイス１〜Ｎの間で発生する信号ＳＸの到着時刻差の最大値は、プログラマブルデバイス間のデータ転送に要する最小時間より小さい。同様に、信号生成装置Ｙ４０３から出力された信号ＳＹは、遅延ＤＹｉ（ｉ＝１，２，・・・，Ｎ）を伴って、プログラマブルデバイスｍおよびｎのピンＰＹｍおよびＰＹｎにそれぞれ信号ＳＹｍおよびＳＹｎとして到着する。
プログラマブルデバイスｍ、ｎには、それぞれ対応するプログラマブルデバイスのデータが書き込まれることで、回路Ｃｍ、Ｃｎ、ずれ補正回路（同期化部）ＤＣｍ、ＤＣｎが実装される。ずれ補正回路ＤＣｍはピンＰＸｍおよびＰＹｍを通してそれぞれ信号ＳＸｍおよびＳＹｍが入力され、信号ＳＸｍによって信号ＳＹｍが同期化され、同期化信号ＳＹｍ−Ｓを回路Ｃｍへ供給する。同様に、ずれ補正回路ＤＣｎはピンＰＸｎおよびＰＹｎを通してそれぞれ信号ＳＸｎおよびＳＹｎが入力され、信号ＳＸｎによって信号ＳＹｎが同期化され、同期化信号ＳＹｎ−Ｓを回路Ｃｎへ供給する。
なお、ずれ補正回路ＤＣｉは、信号ＳＸｉをクロック入力、信号ＳＹｉをデータ入力、および、同期化信号ＳＹｉ−Ｓをデータ出力とするフリップフロップ回路で構成することができる（図１３参照）。
図７は、第２の実施形態におけるずれ補正回路（同期化回路）の動作の一例を説明するためのタイミングチャートである。ここで、時刻Ｔに到着すべき信号ＳＷおよびＳＹが信号生成装置Ｗ４０４およびＹ４０３から出力されるとすると、各回路に対して信号ＳＹを時刻Ｔで供給するために信号生成装置Ｘ４０２がアクティブになり、信号ＳＸがタイミング信号として出力される。
上述したように、信号生成装置Ｗ４０４から出力された信号ＳＷは、遅延ＤＷｍ、ＤＷｎを伴ってプログラマブルデバイスｍ，ｎの回路Ｃｍ、Ｃｎにそれぞれ信号ＳＷｍ、ＳＷｎとして到着する。遅延ＤＷｍと遅延ＤＷｎとの差は特に調整されている必要はない。同様に、信号生成装置Ｙ４０３から出力された信号ＳＹは、遅延ＤＹｍ、ＤＹｎを伴って、プログラマブルデバイスｍ、ｎのピンＰＹｍ、ＰＹｎにそれぞれ信号ＳＹｍ、ＳＹｎとして到着する。遅延ＤＹｍと遅延ＤＹｎとの差も特に調整されている必要はない。
一方、信号生成装置Ｘ４０２から出力された信号ＳＸは、遅延ＤＸｍ、ＤＸｎを伴って、プログラマブルデバイスｍ、ｎのＰＸｍ、ＰＸｎにそれぞれ信号ＳＸｍ、ＳＸｎとして到着する。ただし、上述したように、遅延ＤＸｍと遅延ＤＸｎとの差ΔＤＸ（ｍ，ｎ）は、プログラマブルデバイス間のデータ転送に要する最小時間ＤＭＩＮより小さい。
ずれ補正回路ＤＣｍは信号ＳＸｍによって信号ＳＹｍを同期化し、同期化信号ＳＹｍ−Ｓを回路Ｃｍへ供給する。同様に、ずれ補正回路ＤＣｎは信号ＳＸｎによって信号ＳＹｎが同期化し、同期化信号ＳＹｎ−Ｓを回路Ｃｎへ供給する。したがって、実質的な誤差なしに（ΔＤＸ（ｍ，ｎ）＜ＤＭＩＮ）ほぼ同時に、同時刻Ｔに到着すべき信号ＳＹを回路Ｃｍ、Ｃｎに供給することができる。したがって、同時刻に与えるべき信号ＳＹのスキューに起因する回路の異常動作が回避され、正しい回路検証を行うことができる。
［第３の実施形態］
図８は本発明の第３の実施形態による回路検証装置の概略的ブロック構成図である。ここではＮ＝４の場合が例示されている。すなわち、４個のプログラマブルデバイス１、２、３、４にそれぞれ分割回路Ｃ１，Ｃ２，Ｃ３，Ｃ４およびずれ補正回路ＤＣ１，ＤＣ２，ＤＣ３，ＤＣ４が割り付けられている。
第３の実施形態では、同時刻に与えるべき信号ＳＹを生成する信号生成装置Ｙ４０３が１つのプログラマブルデバイス３内に実装されている。信号生成装置Ｙ４０３からの信号ＳＹはプログラマブルデバイス間を接続する配線４０１を通して他のプログラマブルデバイスへ転送される。すなわち、第３の実施形態によれば、回路分割処理装置２０の分割処理部２０３（図４）は、プログラマブルデバイス３のデータを生成するときに、信号生成装置Ｙ４０３を組み込んだデータを生成し、かつ、信号ＳＹを他のプログラマブルデバイスへ転送するように配線がプログラムされる。他のプログラマブルデバイスも同様に、入力した信号ＳＹを他のプログラマブルデバイスへ転送するように配線がプログラムされる。
このような第３の実施形態の構成であっても、第２の実施形態と同様に、各プログラマブルデバイスｉにおいて、ずれ補正回路ＤＣｉが信号ＳＸｉと信号ＳＹｉとを入力し、信号ＳＹｉの値を信号ＳＸｉに同期させて回路Ｃｉへ出力する。それにより、信号ＳＹｉは回路Ｃｉへの到着時刻の最大スキューがプログラマブルデバイス間のデータ転送に要する最小時間より小さい、すなわちスキューが同程度に低減された信号となる。
それに加えて、第３の実施形態では、信号生成装置Ｙ４０３が１つのプログラマブルデバイス内に構成され、信号ＳＹを他のプログラマブルデバイスへ転送するので、装置の点数が減少するという利点がある。
［第４の実施形態］
図９は本発明の第４の実施形態による回路検証装置の概略的ブロック構成図である。第４の実施形態では、回路Ｃ１〜ＣＮおよびずれ補正回路ＤＣ１〜ＤＣＮに加えて、同時刻に与えるべき信号ＳＹを生成する信号生成装置Ｙ４０３．１〜Ｙ４０３．Ｎがプログラマブルデバイス１〜Ｎにそれぞれ実装されている。このような論理検証装置を構成するには、回路分割処理装置２０の分割処理部２０３（図４）が各プログラマブルデバイスのデータを生成するときに、信号生成装置Ｙ４０３のプログラムをコピーして各プログラマブルデバイスに組み込んだデータを生成すればよい。
このような第４の実施形態の構成であっても、第２の実施形態と同様に、各プログラマブルデバイスｉにおいて、ずれ補正回路ＤＣｉが信号ＳＸｉと信号ＳＹｉとを入力し、信号ＳＹｉの値を信号ＳＸｉに同期させて回路Ｃｉへ出力する。それにより、信号ＳＹｉは回路Ｃｉへの到着時刻の最大スキューがプログラマブルデバイス間のデータ転送に要する最小時間より小さい、すなわちスキューが同程度に低減された信号となる。
それに加えて、第４の実施形態では、信号生成装置Ｙ４０３が各プログラマブルデバイス内に構成されるので、信号ＳＹを他のプログラマブルデバイスへ転送する必要もなく、装置の点数がさらに減少し、構成が簡略化されるという利点がある。
［第５の実施形態］
図１０Ａは本発明の第５の実施形態による回路検証装置の概略的ブロック構成図であり、図１０Ｂはずれ補正回路の構成を示す図である。第５の実施形態は、第１の実施形態の変形例であり、プログラマブルデバイス１〜Ｎには、それぞれ対応するプログラマブルデバイスのデータが書き込まれる。これにより、信号生成装置Ｚ４０５から同時刻に与えるべき信号ＳＺをそれぞれ入力するピンＰＸ１〜ＰＸＮ、回路Ｃ１〜ＣＮ、および、ずれ補正回路ＤＣ１〜ＤＣＮが構成される。
ただし、図１０Ｂに示すように、各ずれ補正回路ＤＣｉは入力端子と出力端子とが直接接続されており、ずれ補正は行われない。信号生成装置Ｚ４０５からプログラマブルデバイス１〜Ｎの回路Ｃ１〜ＣＮに信号ＳＺが転送されるとき、配線経路長の違いにより到着時刻ＤＺｉ（ｉ＝１，２，…，Ｎ）が異なる。ただし、この到着時間差の最大値（最大スキュー）は、第１の実施形態の場合と同様に、プログラマブルデバイス間の配線４０１によるデータ転送に要する最小時間ＤＭＩＮより小さいことが必要である。なお、プログラマブルデバイス１〜Ｎ内で発生する遅延に関しては、プログラマブルデバイス用の配置配線プログラムが提供する速度制約を利用して、ばらつきを抑えるようにすることができる。
このように各プログラマブルデバイスをプログラムすることで、同時刻に与えるべき信号ＳＺは、プログラマブルデバイス１〜ＮのそれぞれのピンＰＸ１〜ＰＸＮに直接与えることができるため、従来のようにプログラマブルデバイス間で伝達されることに起因するスキューの発生を抑制することができる。
【実施例】  次に、図面を煩雑にしないためにプログラマブルデバイスの数が２個（Ｎ＝２）の場合を例にとって、本発明の実施例を詳細に説明する。
図１１は被検証回路の一例を示す回路図である。ここでは、被検証回路５０は回路（記憶素子）ＡおよびＢを含み、信号ＳＷは回路ＡおよびＢへそのまま供給されるものとする。一方、信号ＳＹはインバータＩＶを介して回路Ａへ供給され、回路Ｂにはそのまま供給されるものとする。また、上述したように、信号ＳＹは同時刻に与えなければならない記憶素子のクロック信号であり、信号ＳＷはその必要がない信号と仮定する。
このような被検証回路５０のデータファイル１０が、図４に示すような回路分割処理装置２０に与えられると、上述したように、分割処理部２０３は、信号名ＳＸおよびＳＹと回路ＡおよびＢに含まれる全ての信号名を表示部２０４に表示する。そして、ユーザによって、信号ＳＹが回路ＡおよびＢに同時に与えなければならない信号であると指定されると、分割処理部２０３は分割処理を実行し、プログラマブルデバイス１および２に実装すべき回路およびずれ補正回路のデータを生成する。
図１２は、図１１の被検証回路５０から生成され２個のプログラマブルデバイスに実装された回路検証装置のブロック構成図である。信号ＳＷは同時刻に与えるべき信号ではないので、プログラマブルデバイス１とプログラマブルデバイス２を接続している配線等を使用して接続し、プログラマブルデバイス２の回路Ｂに対して信号ＳＷの値を伝える。また、信号ＳＹと回路Ａの間に接続されているインバータＩＶは削除され、回路Ａに属する記憶素子のクロック信号に対する論理を反転した回路を生成する。このようにしても機能的にはまったく問題がなく、インバータを省くことで不必要な遅延を起こすことをなくす。
図１３は、図２の各プログラマブルデバイスに実装されたずれ補正回路の一例を示す回路図である。ずれ補正回路は、信号ＳＹをデータ入力とし、信号ＳＸをクロック入力とするフリップフロップ回路を用いて構成している。
図１４は、図１２に示す回路検証装置の動作を説明するタイミングチャートである。ここで、時刻Ｔに到着すべき信号ＳＷおよびＳＹが信号生成装置Ｗ４０４およびＹ４０３から出力されるとすると、各回路に対して信号ＳＹを時刻Ｔで供給するために信号生成装置４０２がアクティブになり、信号ＳＸがタイミング信号として出力される。
信号生成装置Ｗ４０３から出力された信号ＳＷは、遅延ＤＷ１、ＤＷ２を伴ってプログラマブルデバイス１、２の回路Ａ、Ｂにそれぞれ信号ＳＷ１、ＳＷ２として到着する。同様に、信号生成装置Ｙ４０３から出力された信号ＳＹは、遅延ＤＹ１、ＤＹ２を伴って、プログラマブルデバイス１、２にそれぞれ信号ＳＹ１、ＳＹ２として到着する。
一方、信号生成装置Ｘ４０２から出力された信号ＳＸは、遅延ＤＸ１、ＤＸ２を伴って、プログラマブルデバイス１、２にそれぞれ信号ＳＸ１、ＳＸ２として到着する。ただし、上述したように、遅延ＤＸ１と遅延ＤＸ２との差ΔＤＸ（Ａ，Ｂ）は、プログラマブルデバイス間のデータ転送に要する最小時間ＤＭＩＮより小さい。
ずれ補正回路ＤＣ１は信号ＳＸ１によって信号ＳＹ１を同期化し、同期化信号ＳＹ１−Ｓを回路Ａに供給する。同様に、ずれ補正回路ＤＣ２は信号ＳＸ２によって信号ＳＹ２を同期化し、同期化信号ＳＹ２−Ｓを回路Ｂに供給する。したがって、実質的な誤差なしに（ΔＤＸ（Ａ，Ｂ）＜ＤＭＩＮ）ほぼ同時に、同時刻Ｔに到着すべき信号ＳＹを回路Ａ、Ｂに供給することができる。
本発明によれば、２以上のシミュレーション手段の各々において、同タイミングで与えられるべき信号（第１の信号）を第２の配線手段を通して入力するための入力端子が実現され、この入力端子を通して第１の信号を信号生成手段から直接入力する。第１の信号が第２の配線手段を通して２以上のシミュレーション手段にそれぞれ到着する時刻の最大スキューは、シミュレーション手段間での第１の配線手段によるデータ転送に要する最小の時間よりも小さい。これにより、従来のようにシミュレーション手段間で転送されることに起因するスキューを抑制することができ、回路検証の信頼性がより向上する。
各シミュレーション手段は、当該回路部分にスキューの小さい第１の信号をそのまま入力信号として使用することができる。また、別の第２の信号を入力して、スキューの小さい第１の信号に同期させて回路部分に供給することもできる。この場合、第２の信号がスキューの大きな配線を通して入力しても、第１の信号に同期して供給される。これにより、第２の信号を各シミュレーション手段の回路部分に対して同タイミングで供給することが可能となる。すなわち、第２の信号をスキュー条件の緩やかな配線を用いて分配することができ、回路検証装置の設計自由度および信頼性を向上させることができる。
【図１】
2005096500.tif 000002
【図２】
2005096500.tif 000003
【図３】
2005096500.tif 000004
【図４】
2005096500.tif 000005
【図５Ａ】
2005096500.tif 000006
【図５Ｂ】
2005096500.tif 000007
【図６】
2005096500.tif 000008
【図７】
2005096500.tif 000009
【図８】
2005096500.tif 000010
【図９】
2005096500.tif 000011
【図１０Ａ】
2005096500.tif 000012
【図１０Ｂ】
2005096500.tif 000013
【図１１】
2005096500.tif 000014
【図１２】
2005096500.tif 000015
【図１３】
2005096500.tif 000016
【図１４】
2005096500.tif 000017
【国際調査報告】
2005096500.tif 000018
2005096500.tif 000019