(57)【要約】【課題】プログラマブル・デバイスの内部信号を未使用端子数の制約を受けずに取り出すことができ、内部信号の観測性を向上できること。【解決手段】ＦＰＧＡ５１ａ〜５１ｃの入出力端子間にデバイス間スイッチ９ａ，９ｂが配置される。ロジックアナライザ／ベクタ送出制御部４は、デバイス間スイッチ９ａ，９ｂの連結時にサンプリングクロックを供給し、１回目のエミュレーションを行い、出力信号をメモリ２ａに格納させる。この後、ＦＰＧＡ５１ａ〜５１ｃが内部信号を出力する状態でデバイス間スイッチ９ａ，９ｂを切断し、メモリ２ａに格納されたデータをベクタデータとしてＦＰＧＡ５１ａ〜５１ｃに供給して２回目のエミュレーションを行い、出力信号をメモリ２ｂに格納する。メモリ２ａ，２ｂに格納された本来の出力信号と内部信号はホスト８の表示画面上に合成表示され、観測性を向上させる。【選択図】　　　図１
2004023364.tif 000002
【特許請求の範囲】
【請求項１】
プログラマブル・デバイスの動作検証を行うプロトタイピングシステムにおいて、
前記プログラマブル・デバイスは、該プログラマブル・デバイスが有する出力端子から規定された本来の出力信号と、所望する内部回路の内部信号とを選択的に切り替えて出力させるセレクタを備え、
前記セレクタを制御して前記本来の出力信号あるいは前記内部信号のいずれかを出力させた状態におけるエミュレーションを実行するロジックアナライザを備えたことを特徴とするプロトタイピングシステム。
【請求項２】
回路情報がダウンロードされるプログラマブル・デバイスを複数個実装する実装手段と、該プログラマブル・デバイスに対しサンプリングクロックを供給して動作波形を得るロジックアナライザと、該ロジックアナライザを実行制御するホストとによって構成されたプロトタイピングシステムにおいて、
前記プログラマブル・デバイスは、該プログラマブル・デバイスが有する出力端子から規定された本来の出力信号と、所望する内部回路の内部信号とを選択的に切り替えて出力させるセレクタを備え、
前記ホストは、前記回路情報に前記セレクタのセレクタ情報を挿入することによって前記回路情報を修正することを特徴とするプロトタイピングシステム。
【請求項３】
前記実装手段は、複数個の前記プログラマブル・デバイスの入出力端子を連結あるいは切断するデバイス間スイッチを備え、
前記ロジックアナライザは、前記デバイス間スイッチの切断時に前記デバイス間スイッチを介して前記各プログラマブル・デバイスの入力端子に対しベクタデータを供給した状態で前記エミュレーションを実行する制御手段を備えたことを特徴とする請求項２に記載のプロトタイピングシステム。
【請求項４】
前記制御手段は、前記デバイス間スイッチの連結時、および切断時における複数個の前記プログラマブル・デバイスの出力信号をサンプリングクロックに従いサンプリングし、前記連結時と、切断時の前記各出力信号を個別に記憶することを特徴とする請求項３に記載のプロトタイピングシステム。
【請求項５】
前記制御手段は、前記デバイス間スイッチの連結時に得られた複数個の前記プログラマブル・デバイスの出力信号を１回目のエミュレーション結果として記憶し、
前記デバイス間スイッチの切断時には、前記１回目のエミュレーション結果を前記ベクタデータとして前記デバイス間スイッチを介して前記各プログラマブル・デバイスの入力端子に供給し、得られた複数個の前記プログラマブル・デバイスの出力信号を２回目のエミュレーション結果として記憶することを特徴とする請求項３または４に記載のプロトタイピングシステム。
【請求項６】
前記ロジックアナライザは、複数実行された前記エミュレーション結果をホストにアップロードし、
前記ホストは、該アップロードされた複数のエミュレーション結果を同一の表示画面上に合成表示する波形合成手段を備えたことを特徴とする請求項１〜５のいずれか一つに記載のプロトタイピングシステム。
【請求項７】
前記プログラマブル・デバイスと、前記デバイス間スイッチと、前記第１，第２の記憶手段との間には、前記プログラマブル・デバイスから各第１，第２の記憶手段に対してエミュレーション結果を分別して記憶させるデータの流れと、前記デバイス間スイッチから前記プログラマブル・デバイスに対して前記ベクタデータを供給させるデータの流れと、前記第１，第２の記憶手段から前記ホストに対してエミュレーション結果をアップロードさせるデータの流れを、いずれかに切り替えるスイッチを備え、前記制御手段によって該スイッチが切り替え制御されることを特徴とする請求項６に記載のプロトタイピングシステム。
【請求項８】
プログラマブル・デバイスを複数個実装し、動作検証を行うプログラマブル・デバイスの内部信号観測方法であって、
前記プログラマブル・デバイス別の設計回路の回路情報を作成する回路情報作成工程と、
前記プログラマブル・デバイスの内部信号を選択出力するためのセレクタ情報を前記回路情報に挿入する処理を実行して前記回路情報作成工程により作成された回路情報を修正するセレクタ挿入工程と、
前記セレクタ挿入工程で得られたセレクタ挿入後の回路情報を前記プロトタイピングシステムにダウンロードするダウンロード工程と、
を含み、前記プロトタイピングシステムにおいてプログラマブル・デバイスの内部信号を観測可能としたことを特徴とするプログラマブル・デバイスの内部信号観測方法。
【請求項９】
出力端子から規定された本来の出力信号と、所望する内部回路の内部信号とを選択的に切り替えて出力させるセレクタを備えたプログラマブル・デバイスを複数個実装し、前記本来の出力信号および内部信号を観測するプログラマブル・デバイスの内部信号観測方法であって、
前記プログラマブル・デバイスのセレクタを前記本体の出力信号出力側に切り替え、かつ複数個の前記プログラマブル・デバイスの入出力端子を連結させた状態で該プログラマブル・デバイスに対しサンプリングクロックを供給し、前記プログラマブル・デバイスの出力信号を得る第１のエミュレーション結果取得工程と、
前記プログラマブル・デバイスのセレクタを内部信号出力側に切り替え、かつ複数個の前記プログラマブル・デバイスの入出力端子を切断した状態で該プログラマブル・デバイスに対し前記第１のエミュレーション結果をベクタデータとして供給し、前記プログラマブル・デバイスの内部信号を得る第２のエミュレーション結果取得工程と、
を含むことを特徴とするプログラマブル・デバイスの内部信号観測方法。
【請求項１０】
前記第１，第２のエミュレーション結果をそれぞれ記憶する記憶工程と、
前記第１，第２のエミュレーション結果をそれぞれ表示出力する表示出力工程と、
を含むことを特徴とする請求項９に記載のプログラマブル・デバイスの内部信号観測方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、ＬＳＩ開発段階において用いられる回路の動作検証をハードウェア装置を用いて行うエミュレータおよびプロトタイピングシステムに関し、特に、回路の端子数に限定されずに回路内部の信号観測が行えるプロトタイピングシステムおよびプログラマブル・デバイスの内部信号観測方法に関する。
【０００２】
【従来の技術】
従来のＬＳＩ開発では、論理設計の段階において、ＨＤＬ（ＨａｒｄｗａｒｅＤｅｓｃｒｉｐｔｉｏｎ　Ｌａｎｇｕａｇｅ）言語によるＲＴＬ（Ｒｅｇｉｓｔｅｒ　Ｔｒａｎｓｆｅｒ　Ｌｅｖｅｌ）記述、ソフトウェアシミュレータによりＲＴＬシミュレーションを行い、バグの抽出，修正を行っている。しかし、近年ではＬＳＩの回路規模が大きくなり、ソフトウェアシミュレータによるシミュレーションではこのソフトウェアを実行するワークステーション等コンピュータ装置に対する負荷が重くなるため、十分な検証が出来なくなってきている。
【０００３】
このような現状から、プロトタイピングシステム，エミュレータと呼ばれるハードウェア装置による動作検証が行われてきている。これら、プロトタイピングシステムとエミュレータは、ほとんど同様のものであり、明確な切り分けの基準はない。通常、複数のＦＰＧＡとＦＰＧＡ間の配線制御デバイス（または配線手法）およびロジックアナライザモジュール（または市販のロジックアナライザ接続用コネクタ）程度を実装する装置をプロトタイピングシステムと呼び、エミュレータは、これに更にデバッグ機能を充実させたものをいう。以降、エミュレータを含めてプロトタイピングシステムと呼称する。
【０００４】
図１３は、従来のプロトタイピングシステムを示す構成図である。この構成例のプロトタイピングシステム５０は、検証回路である複数のＦＰＧＡ５１（５１ａ〜５１ｃ），ユーザークロック／リセット信号ジェネレータ５２，ロジックアナライザ５３，ホストインターフェース（Ｉ／Ｆ）５４の各モジュールによって構成されている。
【０００５】
パーソナルコンピュータ等からなるホスト５５には、ソフトウェアツールが組み込まれ、このソフトウェアツールは、検証回路を各ＦＰＧＡ５１ａ〜５１ｃ別に分割および合成し、プロトタイピングシステム５０にダウンロード可能な回路情報を作成する。
【０００６】
この図に示す従来方式においては、各ＦＰＧＡ５１ａ〜５１ｃ間の配線には、配線制御デバイスを用いず、プリント配線板上の固定配線を用いて行われており、各ＦＰＧＡ５１ａ〜５１ｃ間の接続関係は決められている。従って、プロトタイピングシステム５０による回路分割は、この接続関係によって規定された仕様を満たすように行っている。なお、図１３においてＦＰＧＡ５１ａとＦＰＧＡ５１ｃ間の配線は、説明の簡略化のため省略してある。
【０００７】
ホスト５５から検証回路であるＦＰＧＡ５１（５１ａ〜５１ｃ）への回路情報のダウンロード，ユーザークロック／リセット信号ジェネレータ５２に対するユーザークロックの周波数設定、およびロジックアナライザ５３からホスト５５に対するロジックアナライザデータのアップロードは、ホストＩ／Ｆ５４を介して行われる。
【０００８】
ロジックアナライザ５３は、観測波形を記憶するメモリ５６，サンプリングクロックを生成するサンプリングクロックジェネレータ５７，ロジックアナライザ制御部５８，スイッチング・デバイス５９によって構成されている。図示のスイッチング・デバイス５９は物理的なスイッチとして記載したが、通常はトランジスタのような電気的なスイッチング・デバイスで構成している。
【０００９】
サンプリングクロックジェネレータ５７が生成するサンプリングクロックとしては、ユーザークロックより遥かに速いクロックを用いる。プロトタイピングシステム５０で動作するユーザークロックは、上限が１０ＭＨｚ程度であるのに対し、サンプリングクロックジェネレータ５７が生成するサンプリングクロックには、１００ＭＨｚ〜１ＧＨｚが用いられている。この高速クロックによってタイミング解析が可能となっている。
【００１０】
ロジックアナライザ５３は、ＦＰＧＡ５１ａ〜５１ｃの端子に出ている信号を観測するため、ＦＰＧＡ５１ａ〜５１ｃの未使用端子に観測する信号をアサインし、この未使用端子を介して内部の信号を観測する。図示の例における未使用端子は、ＦＰＧＡ５１ａでは５１Ａ，ＦＰＧＡ５１ｂでは５１Ｂである。
【００１１】
図１４は、ステート解析を行う場合の検証回路の内部構成図である。ステート解析、即ち、ユーザークロック毎の信号の状態解析のみを行う場合の構成例が示されている。ＦＰＧＡ５１内部の各ユーザー回路６０ａ〜６０ｃには、それぞれロジックアナライザ用マクロ回路６１ａ〜６１ｃを予め配置しておく。各ロジックアナライザ用マクロ回路６１ａ〜６１ｃの出力は、ロジックアナライザ制御シリアル変換部６２でシリアル変換し、上述した未使用端子，またはＪＴＡＧインターフェースから信号を取り出す。この方法によれば、ＦＰＧＡ５１内部における観測信号数は未使用端子の数に限定されず、未使用端子の数よりも多くの数の観測信号を取り出すことができる。
【００１２】
【発明が解決しようとする課題】
しかしながら、図１３に示す構成において、ロジックアナライザ５３で観測可能な信号は、ＦＰＧＡ５１ａ〜５１ｃの端子に出ている信号に限定されるため、未使用端子が十分な数でなければ足りない分の内部信号を観測することができず、デバッグ作業が困難となった。
【００１３】
また、図１４に示す構成では、ＦＰＧＡ内部でロジックアナライザ用マクロ回路６１ａ〜６１ｃを動作させる必要があるために、高速なサンプリングクロックを入力させることが不可能である。即ち、図１４に示す構成では、低レートのユーザークロックをサンプリングクロックとするステート解析を行うものであり、タイミング解析を実現できなかった。
【００１４】
検証回路として上記のようなＦＰＧＡ５１ａ〜５１ｃを対象とするプロトタイピングシステム５０の場合、実際のＦＰＧＡ５１ａ〜５１ｃ上で回路を動作させる。ここで、ＦＰＧＡ５１ａ〜５１ｃの動作に不具合があるような場合、その不具合の原因としてクロックのレーシング，ハザード等、タイミングに関係するものである可能性が高い。従って、このようなシステムのデバッグでは、ロジックアナライザ５３がタイミング解析を実行する必要が生じる。したがって、図１４に示すロジックアナライザ５３によりステート解析を行う構成では、原因を究明できない場合が生じた。
【００１５】
この発明は、上記問題点に鑑みてなされたものであって、プログラマブル・デバイスの内部信号を容易に取り出すことができ、内部信号の観測性を向上できるプロトタイピングシステムおよびプログラマブル・デバイスの内部信号観測方法を提供することを目的とする。
【００１６】
【課題を解決するための手段】
上記目的を達成するため、本発明は、ＦＰＧＡ等のプログラマブル・デバイスを複数個実装する実装手段と、プログラマブル・デバイスに対しサンプリングクロックを供給して動作波形を得るロジックアナライザと、プログラマブル・デバイスの動作検証のためにプログラマブル・デバイスの設計回路を分割、合成して回路情報を作成した後、この回路情報をプログラマブル・デバイスにダウンロードしロジックアナライザを実行制御するホストとによって構成される。ホストは、回路情報を作成する際に、設計回路の回路情報を修正することにより本来の出力信号、あるいは、内部信号のいずれかを選択するためのセレクタの回路情報を配置する。実装手段は、複数個のプログラマブル・デバイスの入出力端子を連結あるいは切断するデバイス間スイッチを備え、ロジックアナライザは、デバイス間スイッチの切断時にプログラマブル・デバイスを連結時の状態で動作させるために、デバイス間スイッチを介して各プログラマブル・デバイスの入力端子に対しベクタデータを供給した状態でエミュレーションする制御手段を備える。
【００１７】
この発明によれば、ＦＰＧＡ等のプログラマブル・デバイスの出力端子から本来の出力信号と内部信号とを切り替えて出力させ、それぞれ１回目，２回目のエミュレーション結果を得る。内部信号を出力させる際には、複数のＦＰＧＡの入出力端子間の接続を切断し、１回目のエミュレーション結果をベクタデータとしてＦＰＧＡに供給することにより、内部信号を得るための２回目のエミュレーション結果を連結時同様に正確に得ることができる。１，２回目のエミュレーション結果はホストに表示出力される。ホストは、これらを波形合成して表示するため本来の出力信号と内部信号を同一の画面上で観測できるようになり、解析作業の円滑化が図れるようになる。
【００１８】
【発明の実施の形態】
（実施の形態１）
以下に添付図面を参照して、この発明に係るプロトタイピングシステムおよびプログラマブル・デバイスの内部信号観測方法の好適な実施の形態を詳細に説明する。図１は、この発明のプロトタイピングシステムの実施の形態１の構成を示すブロック図である。
【００１９】
プロトタイピングシステム１は、観測波形を記憶するメモリ２，サンプリングクロックを生成するサンプリングクロックジェネレータ３，ロジアナ（ロジックアナライザ）／ベクタ送出制御部４，スイッチング・デバイス５の各モジュールからなるロジックアナライザ１０と、ユーザークロック／リセット信号ジェネレータ６，ホストインターフェース（Ｉ／Ｆ）７によって構成されている。プロトタイピングシステム１は、ホストＩ／Ｆ７を介してホスト８に接続されている。ホスト８の機能は前述したホスト５５と同様であり、ソフトウェアツールによりプロトタイピングシステム１の動作の開始／停止を含む制御、ネットリストの作成、信号波形の画面表示等を行う。
【００２０】
メモリ２は、図示のように機能別の複数個のメモリ２ａ，２ｂにより構成したり、単一個のメモリ２内部において記憶領域を２分割して用いる構成としてもよい。スイッチング・デバイス５は、図示の構成例では、４個（５ａ〜５ｄ）を備えてなる。
【００２１】
スイッチング・デバイス５ａは、主にメモリ２ｂに対するデータの格納、あるいはアップロードを切り替えるものであり、共通接点がメモリ２ｂに接続され、接点１がホストＩ／Ｆ７に接続され、接点２がスイッチング・デバイス５ｂに接続されている。２側に切り替えた際にはスイッチング・デバイス５ｂを介して各ＦＰＧＡ５１ａ〜５１ｃの出力信号をメモリ２ｂに格納させる。１側への切り替えによってメモリ２ｂに格納されたデータ（各ＦＰＧＡ５１ａ〜５１ｃの出力信号）をホスト８側に出力（アップロード）させる。
【００２２】
スイッチング・デバイス５ｂは、主に各ＦＰＧＡ５１ａ〜５１ｃの出力信号をメモリ２ａあるいはメモリ２ｂに切り替えて出力するものであり、共通接点が各ＦＰＧＡ５１ａ〜５１ｃの入出力端子（入出力端子間のライン）に接続され、接点１がスイッチング・デバイス５ａの接点２側に接続され、接点２がスイッチング・デバイス５ｃの接点２側に接続されている。１側に切り替えた際には、各ＦＰＧＡ５１ａ〜５１ｃの出力信号をスイッチング・デバイス５ａ（メモリ２ｂ）側に出力する。２側に切り替えた際には、ＦＰＧＡ５１ａ〜５１ｃの出力信号をスイッチング・デバイス５ｃ（メモリ２ａ）側に出力させる。
【００２３】
スイッチング・デバイス５ｃは、主にメモリ２ａに対するデータの格納、あるいはアップロードを切り替えるものであり、共通接点がスイッチング・デバイス５ｄの接点１に接続され、接点１がホストＩ／Ｆ７に接続され、接点２がスイッチング・デバイス５ｂの接点２に接続されている。１側に切り替えた際には、スイッチング・デバイス５ｄ（メモリ２ａ）の出力信号をホスト８側にアップロードさせる。２側に切り替えた際には、スイッチング・デバイス５ｂを介してＦＰＧＡ５１ａ〜５１ｃの出力信号をスイッチング・デバイス５ｄ（メモリ２ａ）側に出力させる。
【００２４】
スイッチング・デバイス５ｄは、主にメモリ２ａに格納されたデータをベクタデータとして各ＦＰＧＡ５１ａ〜５１ｃに供給するか否かを切り替えるものであり、共通接点がメモリ２ａに接続され、接点１がスイッチング・デバイス５ｃの共通接点に接続され、接点２がデバイス間スイッチ９ａ，９ｂの各接点１に接続されている。このスイッチング・デバイス５ｄは、デバイス間スイッチ９ａ，９ｂに連動する。１側に切り替えた際には、各ＦＰＧＡ５１ａ〜５１ｃの出力信号をメモリ２ａに格納する。また、メモリ２ａに格納されたデータをホスト８側にアップロードできる。２側に切り替えた際には、各ＦＰＧＡ５１ａ〜５１ｃに対しメモリ２ａに格納されたデータ（各ＦＰＧＡ５１ａ〜５１ｃの出力信号）をデバイス間スイッチ９ａ，９ｂを介してＦＰＧＡ５１ａ〜５１ｃに対するベクタデータとして出力可能にする。
【００２５】
ロジアナ／ベクタ送出制御部４は、ユーザークロック／リセット信号ジェネレータ６によるユーザークロックの出力を制御し、スイッチング・デバイス５ａ〜５ｄを選択的に切り替える。スイッチング・デバイス５ａ〜５ｄの切り替えにより、
（１）検証回路の動作検証時にＦＰＧＡ５１ａ，５１ｂ，５１ｃの出力信号をメモリ２ａ，２ｂに選択的に格納する。
（２）メモリ２ａに格納された出力信号をベクタデータとして再度ＦＰＧＡ５１ａ，５１ｂ，５１ｃに入力させる。
（３）メモリ２ａ，２ｂに格納された出力信号をホスト８にアップロードさせる。なお、これらの詳細は後述する。
【００２６】
ＦＰＧＡ５１ａ，５１ｂ，５１ｃの各端子は、出力端子，入力端子が固定的に定められている。そして、これら各ＦＰＧＡ５１ａ，５１ｂ，５１ｃの出力端子と入力端子の間には、入出力信号を連結／切断するためのスイッチング・デバイス（デバイス間スイッチ）９ａ，９ｂが配置されている。尚、ＦＰＧＡ５１ｂとＦＰＧＡ５１ａ，ＦＰＧＡ５１ｃからＦＰＧＡ５１ａ，５１ｂに対する配線は、説明の都合上省略しているが、実際には上記同様のスイッチング・デバイスを介して配線されている。
【００２７】
図２は、検証回路としてのＦＰＧＡの回路構成例を示す図である。図２には、ＦＰＧＡ５１ａのある一つの出力端子Ｆ１＿５を記載したものである。この出力端子Ｆ１＿５は、複数のＦＦインスタンス１２ａ，１２ｂ、および論理回路１２ｃを介してこのＦＰＧＡについて規定された本来の出力信号ＯＵＴ１を出力する。また、ＦＦインスタンス１２ｂの前段（論理回路１２ｃ）の出力を観測するための内部信号ＮＥＴ１がセレクタ１２ｄに入力されるよう接続構成されており、セレクタ１２ｄに対する選択信号ＳＥＬに基づき、出力信号ＯＵＴ１、あるいは内部信号ＮＥＴ１を出力端子Ｆ１＿５から選択的に出力するよう切り替える。
【００２８】
ところで、ロジアナ／ベクタ送出制御部４は、ＦＰＧＡ５１ａ〜５１ｃ，スイッチング・デバイス５ａ〜５ｄ，デバイス間スイッチ９ａ，９ｂに対し、上記の選択信号ＳＥＬを出力し、それぞれにおける切り替えを制御している。次に、上記構成によるプロトタイピングシステム１の動作について各工程毎に説明する。
【００２９】
（工程１）始めに、ロジアナ／ベクタ送出制御部４は、ホスト８からの指示により、各ＦＰＧＡ５１ａ〜５１ｃ間を本来設計した回路動作を実現する接続関係で接続させる。具体的には、図１に示す状態、即ち、スイッチング・デバイス５ｄを接点１側とし、スイッチング・デバイス５ｂ，５ｃを接点２側とし、デバイス間スイッチ９ａ，９ｂをいずれも接点２側に設定する。この設定により、各ＦＰＧＡ５１ａ〜５１ｃの入出力端子がデバイス間スイッチ９ａ，９ｂを介して連結される。
【００３０】
（工程２）次に、ロジアナ／ベクタ送出制御部４は、ホスト８からの指示により、ユーザークロック／リセット信号ジェネレータ６をイネーブルにし、ＦＰＧＡ５１ａ〜５１ｃの回路動作を開始させる。この際、各ＦＰＧＡ５１ａ〜５１ｃの出力信号は、図２に示す出力端子Ｆ１＿５から出力信号ＯＵＴ１が出力される。この出力信号ＯＵＴ１は、スイッチング・デバイス５ｂ→５ｃ→５ｄを経てメモリ２ａに格納される。
【００３１】
（工程３）次に、ロジアナ／ベクタ送出制御部４は、ホスト８からの指示によりエミュレーションを停止し、スイッチング・デバイス５ｄを接点２側，デバイス間スイッチ９ａ，９ｂをいずれも接点１側，スイッチング・デバイス５ｂを接点１側に切り替える。これにより各ＦＰＧＡ間の配線は、デバイス間スイッチ９ａ，９ｂによって切断される。図３は、各スイッチの切り替え状態（その１）を示す図である。
【００３２】
（工程４）次に、ロジアナ／ベクタ送出制御部４は、ホスト８からの指示により、ユーザークロック／リセット信号ジェネレータ６をイネーブルにしてエミュレーションを再度開始させる。この際、選択信号ＳＥＬは、スイッチング・デバイス５ｄ，デバイス間スイッチ９ａ，９ｂに加えて、各ＦＰＧＡ５１ａ〜５１ｃのセレクタ１２ｄ（図２参照）に入力され、各ＦＰＧＡ５１ａ〜５１ｃの出力信号としては、内部信号、即ち出力端子Ｆ１＿５からＮＥＴ１が出力される。この出力信号は、スイッチング・デバイス５ｂ→５ａを経てメモリ２ｂに格納される。
【００３３】
（工程５）同時に、ロジアナ／ベクタ送出制御部４は、メモリ２ａに記憶されている前回（上記の工程２）のエミュレーション時のデータを、スイッチング・デバイス５ｄからデバイス間スイッチ９ａ，９ｂを経て各ＦＰＧＡ５１ａ〜５１ｃの入力端子に供給する。ＦＰＧＡは、３つのＦＰＧＡ５１ａ〜５１ｃ全ての動作によって設計した１つの回路動作を行う。ここで、前回のサンプリング・データを入力ベクタとして使用することにより、この時点で各ＦＰＧＡ５１ａ〜５１ｃ間の配線が分断されている状態であっても、見かけ上は１個の回路として動作させることができる。
【００３４】
（工程６）ロジアナ／ベクタ送出制御部４は、ホスト８からの指示により、エミュレーション終了後、スイッチング・デバイス５ａ，５ｃ，５ｄを接点１側とし、メモリ２ａ，２ｂに格納されているデータをホスト８へアップロードする。図４は、各スイッチの切り替え状態（その２）を示す図である。
【００３５】
（工程７）ホスト８は、メモリ２ａ，メモリ２ｂのサンプリングデータを、同一のエミュレーションでサンプリングしたものとして扱い、表示画面に波形表示する。これにより、操作者は、ＦＰＧＡ５１ａ〜５１ｃの内部信号の状態を、本来の外部出力信号と関連付けて観測することができる。
【００３６】
上記説明による工程に基づく処理を順次実行することにより、ＦＰＧＡ５１ａ〜５１ｃに未使用端子が全くない場合であっても内部信号を観測することが可能となる。
【００３７】
図５は、ダウンロード用の回路情報を作成する手順を示すフローチャートである。上述したように、本発明では、ＦＰＧＡ内部にセレクタを挿入する構成であり、対応してプロトタイピングシステム１にダウンロード可能な回路情報を作成するネットリストにセレクタを挿入する。即ち、この発明では、セレクタ挿入処理が追加されている点が従来と異なる。
【００３８】
ホスト８に組み込まれるソフトウェアツール（ツール）は、始めに、ＨＤＬ言語によるＲＴＬ記述を、ＦＰＧＡのプログラマブル・デバイス別に分割したＲＴＬ２０を作成する回路分割処理（ステップＳ１）を実行する。この後、作成されたＲＴＬ２０を合成し、各プログラマブル・デバイス別のネットリスト２１を得る合成処理（ステップＳ２）を実行する。この後、設計回路のネットリスト２１により、ロジックアナライザデータとして観測したい内部信号を選択し、設計回路の動作実現のために、本来の出力信号（上述したＯＵＴ１）と、選択した内部信号（上述したＮＥＴ１）とを選択的に出力するためのセレクタを挿入するセレクタ挿入処理（ステップＳ３）を実行する。
【００３９】
このセレクタ挿入処理では、本来の出力信号と、内部信号のうち、いずれを出力するかを選択するための選択信号（上述したＳＥＬ）をプログラマブル・デバイスの外部から制御するための入力ポートを挿入する、という手法を用いる。これにより、ステップＳ２で作成されたネットリストを修正してセレクタ挿入後の機能を持つネットリスト２３を作成する。この実施の形態１では、ＦＰＧＡ間配線情報２２を用い、セレクタ挿入後のネットリスト２３に対して配置，配線処理（ステップＳ４）を実行してネット出力情報２４，プロトタイピングシステム１のダウンロード用回路情報２５を得る。
【００４０】
上記ステップＳ４の配置，配線処理にて使用するＦＰＧＡ間配線情報２２は、この発明のプロトタイピングシステム１におけるＦＰＧＡ５１ａ〜５１ｃ間の配線が固定されていることに対応して、ＦＰＧＡ５１ａ〜５１ｃ間の信号名の対応付けを行うために用いる。このＦＰＧＡ間配線情報２２により、各ＦＰＧＡ５１ａ〜５１ｃの入出力端子のピンアサインを行う。
【００４１】
図６は、セレクタ挿入処理（ステップＳ３）の手順を示すフローチャートである。まず、ネットリスト２１を入力処理し（ステップＳ３１）、ネットリスト２１の情報に基づき回路図作成を処理し（ステップＳ３２）、作成した回路図をホスト８の表示画面上に表示する（ステップＳ３３）。操作者は、表示された回路図の中から観測したい内部信号のネットを選択する（ステップＳ３４）。ホスト８のツールは、この選択されたネットを記憶する。この後、ホスト８のツールは以下に示す処理を自動的に実行する。
【００４２】
観測したい内部信号のネットを選択終了後、ツールは出力ポートと、出力源のインスタンスをサーチする（ステップＳ３５）。図２に示す回路構成例によれば、この段階では、出力端子Ｆ１＿５がＦＦインスタンス１２ｂに接続され、出力信号ＯＵＴ１は存在していない。
【００４３】
（１）この後、セレクタ挿入処理（ステップＳ３６）を行う。まず、出力インスタンスをセレクタに変更し、元のインスタンス出力のネットを任意の名前に変更する。図２によれば、セレクタ１２ｄを挿入し、ＦＦインスタンス１２ｂ出力のネット名をＯＵＴ１に変更し、セレクタ１２ｄの出力を出力端子Ｆ１＿５とする。
（２）もう一方のセレクタ入力に、選択した内部信号のネットを接続する。図２によれば、セレクタ１２ｄに対し内部信号ＮＥＴ１を接続する。
【００４４】
（３）ネットリストの入力ポートにセレクタの選択信号ＳＥＬを追加し、セレクタインスタンスのセレクト端子に接続する。図２によれば、セレクタ１２ｄに選択信号ＳＥＬを接続する。
（４）セレクタ挿入後のネットリスト２３をファイル出力する。
（５）同時にどの出力端子に、どの内部ネットが接続されているかを記述したネット出力情報２４のファイルを出力する。このネット出力情報２４は、ロジックアナライザのサンプリングデータを表示する際に使用する。
【００４５】
上記セレクタ挿入処理（ステップＳ３６）は、入力されたネットリスト２１全てについてステップＳ３１に復帰して繰り替えされ（ステップＳ３７：Ｎｏ）、入力されたネットリスト２１全ての処理が終了すると（ステップＳ３７：Ｙｅｓ）、配置，配線処理（図５に示すステップＳ４）に移行する。
【００４６】
ホスト８は、以上の処理により作成されたダウンロード用回路情報２５を本発明のプロトタイピングシステム１（プログラマブル・デバイスであるＦＰＧＡ５１ａ〜５１ｃ）にダウンロードする。この際、各ＦＰＧＡ５１ａ〜５１ｃのデータ（出力信号）がメモリ２ａ側に入力され、且つＦＰＧＡ５１ａ〜５１ｃ間の配線が接続されるようにスイッチング・デバイス５ａ〜５ｄ，デバイス間スイッチ９ａ，９ｂを切り替える。
【００４７】
また、ロジアナ／ベクタ送出制御部４（図１参照）は、ユーザークロック／リセット信号ジェネレータ６をイネーブルにし、エミュレーションを開始させる。前述したように、エミュレーションは設定を換えて２回行う（工程２におけるメモリ２ａへのデータの格納、および工程４におけるメモリ２ｂへのデータの格納）。この１回目と２回目のエミュレーションにおいて、サンプリングタイミングとユーザークロックの発生，リセット解除のタイミングを完全に一致させる必要があることから、ユーザークロック／リセット信号ジェネレータ６の制御はロジアナ／ベクタ送出制御部４が統括して行う。
【００４８】
図７は、１回目（工程２）のエミュレーション時の波形を示す図である。リセットタイミングは省略してある。ユーザークロック／リセット信号ジェネレータ６がイネーブルになった後の最初のサンプリングクロックの立ち上がりからサンプリングが開始される。図７に示す信号名の括弧内、例えば信号Ｆ１＿３（Ｆ２Ｉ１）は、この段階ではＦＰＧＡ５１ａの出力端子Ｆ１＿３と、ＦＰＧＡ５１ｂの入力端子Ｆ２Ｉ１が接続されているため（図１参照）、同じ信号であるものとして表示される。この時のエミュレーション動作では、ユーザークロックについてもサンプリングデータとしてメモリ２ａに入力される。
【００４９】
そして、工程３では、エミュレーションを停止し、スイッチング・デバイス５ｂ，５ｄ，デバイス間スイッチ９ａ，９ｂが切り替えられる。これにより、図３に示すようにＦＰＧＡ５１ａ〜５１ｃ間の接続が切断され、各ＦＰＧＡ５１ａ〜５１ｃの出力信号はメモリ２ｂにサンプリングデータとして入力され、メモリ２ａのサンプリングデータが各ＦＰＧＡ５１ａ〜５１ｃの入力端子にベクタデータとして供給される。また、この時、ＳＥＬ信号によって各ＦＰＧＡ５１ａ〜５１ｃの出力端子は、内部信号ＮＥＴ１を出力する。
【００５０】
図８は、２回目（工程４）のエミュレーション時の波形を示す図である。図には、便宜上、ＦＰＧＡ５１ａの出力端子Ｆ１＿５の出力信号のみをメモリ２ｂへ入力するサンプリングデータとして示した。この時には、出力端子Ｆ１＿５は、内部信号ＮＥＴ１を出力している（図２参照）。信号Ｆ２Ｉ１〜Ｆ３＿３までの波形は、メモリ２ａからＦＰＧＡ５１ｂ，５１ｃにそれぞれ供給されるベクタデータである。
【００５１】
サンプリング時とベクタ送出時とでは、メモリ２ａのアドレスの発生タイミングが異なる。図７において、信号Ｆ１＿３（Ｆ２Ｉ１）が最初に値１としてサンプリングされるのは、メモリアドレス３の時である。サンプリング時に値が「１」となるには、実際の信号はそのサンプリングクロックの立ち上がり以前に値が「１」になっている。したがって、仮にベクタデータ送出時に、同じタイミングのサンプリングクロックで「１」の値を送出したとすると、実際はそのサンプリングクロックの立ち上がり以後に「１」の値を供給することになるため、１回目のエミュレーション時よりも１サンプリングクロック遅れて入力データを供給することになってしまう。従って、ロジアナ／ベクタ送出制御部４は、２回目のエミュレーションでベクタ送出する時には、図８に示すように、サンプリング時よりも１サンプリングクロック前のデータを送出するようにメモリ２ａのアドレスを変更して設定する。
【００５２】
エミュレーション終了後、メモリ２ａ，２ｂのサンプリングデータをホスト８へアップロードする。ホスト８は、ソフトウェアツールの一部であるロジックアナライザ波形表示ツールを用いて表示画面に波形表示する。
【００５３】
図９は、ロジックアナライザ波形表示ツールが実行する波形表示処理のフローチャートである。ホスト８は、上記の工程７によりプロトタイピングシステム１のメモリ２ａ，メモリ２ｂからデータをアップロードする（ステップＳ１１，Ｓ１２）。この際、メモリ２ａをリードして得たデータについては、ＦＰＧＡ５１ａ〜５１ｃの端子名そのものを、そのまま信号名として画面表示する。
【００５４】
一方、メモリ２ｂをリードして得たデータについては、ネット出力情報２４を参照して端子名に割り当てられた内部信号を検索し、得られた内部信号を信号名に変換する（ステップＳ１３）。この信号名を割り付けた状態でメモリ２ａ，２ｂから得たデータを合成した信号合成波形ファイル２６を作成する。波形表示をする場合には、この信号合成波形ファイル２６をリードして（ステップＳ１４）、ホスト８の表示画面に画面表示する（ステップＳ１５）。
【００５５】
図１０は、波形の表示画面例を示す図である。メモリ２ａからアップロードしたデータは、ＦＰＧＡ５１ａの端子名をそのまま信号名としているため、信号Ｆ１＿３，Ｆ１＿４，…，Ｆ２０１，…Ｆ２０３として表示される。図示の例においてメモリ２ｂからアップロードしたデータは、唯一、ＦＰＧＡ５１ａの出力端子Ｆ１＿５から出力されたデータである。しかし、この信号Ｆ１＿５は、実際には内部信号のＮＥＴ１を出力した状態の波形であるため、ＮＥＴ１に変換して表示される。
【００５６】
画面表示された波形の解析例を説明すると、例えば、図１０に示す波形において、信号Ｆ１＿５は、最初のユーザークロックの立ち上がりで値「１」に変化し、その後、値が「１」の状態のままとなっている。しかし、本来Ｆ１＿５はユーザークロックが立ち上がるタイミングで値「１」に変化することは異常（誤動作）であるとする。ここで、同一画面に合成表示されている内部信号ＮＥＴ１が、ユーザークロックの立ち上がり付近でハザードが発生していることが確認できる。このように、信号Ｆ１＿５の誤動作の原因が「内部信号ＮＥＴ１のハザードである」旨をこの信号合成の表示によって容易に確認することができるようになる。
【００５７】
動作不具合の原因がタイミングにあるような場合であっても、大抵は何度同じエミュレーションを繰り返しても、同じ不具合の現象が発生する。この時、ＦＰＧＡ内部の動作についても同様の不具合現象が生じる。
【００５８】
本発明は、この点に着目して検証回路の単一出力端子から本来の出力信号と内部信号とをそれぞれエミュレーションし、単一の表示画面に信号合成して表示させることにより、信号解析を円滑に行えるようにしたものである。また、ＦＰＧＡ内部にセレクタを挿入して内部信号を切り替え、単一の出力端子から出力する構成であるため、ＦＰＧＡ内部にマクロ回路やシリアル変換部等を設けてステート解析する構成と異なり、より高速なクロックを用いるタイミング解析を実行できデバッグ作業を容易に行えるようになる。
【００５９】
また、検証回路であるＦＰＧＡの未使用端子を使用せずに内部信号を観測できるようになるため、従来のように内部信号の観測数が未使用端子数に制限されることがなく、ＦＰＧＡの出力端子数分の内部信号が観測できるようになる。
【００６０】
（実施の形態２）
図１１は、この発明のプロトタイピングシステムの実施の形態２の構成を示すブロック図である。実施の形態２は、実施の形態１において用いたスイッチング・デバイス５（５ａ〜５ｄ）の個数を２個に削減した構成である。
【００６１】
スイッチ１５ａは、主に各ＦＰＧＡ５１ａ〜５１ｃの出力信号をメモリ２ａあるいはメモリ２ｂに切り替えて出力するものであり、共通接点が各ＦＰＧＡ５１ａ〜５１ｃの入出力端子（入出力端子間のライン）に接続され、接点１がメモリ２ｂに接続され、接点２がメモリ２ａに接続されている。１側に切り替えた際には、各ＦＰＧＡ５１ａ〜５１ｃの出力信号をメモリ２ｂに出力する。２側に切り替えた際には、ＦＰＧＡ５１ａ〜５１ｃの出力信号をスイッチ１５ｂを介してメモリ２ａ側に出力させる。
【００６２】
スイッチ１５ｂは、主にメモリ２ａに格納されたデータをベクタデータとして各ＦＰＧＡ５１ａ〜５１ｃに供給するか否かを切り替えるものであり、共通接点がメモリ２ａに接続され、接点１がスイッチ１５ａの接点２，およびホストＩ／Ｆ７に接続され、接点２がデバイス間スイッチ９ａ，９ｂの各接点１に接続されている。このスイッチ１５ｂは、デバイス間スイッチ９ａ，９ｂに連動する。１側に切り替えた際には、各ＦＰＧＡ５１ａ〜５１ｃの出力信号をスイッチ１５ａを介してメモリ２ａに格納する。また、メモリ２ａに格納されたデータをホスト８側にアップロードできる。２側に切り替えた際には、各ＦＰＧＡ５１ａ〜５１ｃに対しメモリ２ａに格納されたデータ（各ＦＰＧＡ５１ａ〜５１ｃの出力信号）をデバイス間スイッチ９ａ，９ｂを介してＦＰＧＡ５１ａ〜５１ｃに対するベクタデータとして出力可能にする。
【００６３】
なお、メモリ２ｂは、ホストＩ／Ｆ７に直接接続され、メモリ２ｂに格納されたデータをアップロード可能に構成されている。以下、実施の形態２によるプロトタイピングシステム１の工程を説明する。
【００６４】
（工程１）始めに、ロジアナ／ベクタ送出制御部４は、ホスト８からの指示により、各ＦＰＧＡ５１ａ〜５１ｃ間を本来設計した回路動作を実現する接続関係で接続させる。具体的には、図１１に示す状態、即ち、スイッチ１５ａを接点２側とし、スイッチ１５ｂを接点１側とし、デバイス間スイッチ９ａ，９ｂをいずれも接点２側に設定する。この設定により、各ＦＰＧＡ５１ａ〜５１ｃの入出力端子がデバイス間スイッチ９ａ，９ｂを介して連結される。
【００６５】
（工程２）次に、ロジアナ／ベクタ送出制御部４は、ホスト８からの指示により、ユーザークロック／リセット信号ジェネレータ６をイネーブルにし、ＦＰＧＡ５１ａ〜５１ｃの回路動作を開始させる。この際、各ＦＰＧＡ５１ａ〜５１ｃの出力信号は、図２に示す出力端子Ｆ１＿５から出力信号ＯＵＴ１が出力される。この出力信号ＯＵＴ１は、スイッチ１５ａ→１５ｂを経てメモリ２ａに格納される。
【００６６】
（工程３）次に、ロジアナ／ベクタ送出制御部４は、ホスト８からの指示によりエミュレーションを停止し、スイッチ１５ｂを接点２側，デバイス間スイッチ９ａ，９ｂをいずれも接点１側，スイッチ１５ａを接点１側に切り替える。これにより各ＦＰＧＡ間の配線は、デバイス間スイッチ９ａ，９ｂによって切断される。図１２は、各スイッチの切り替え状態を示す図である。
【００６７】
（工程４）次に、ロジアナ／ベクタ送出制御部４は、ホスト８からの指示により、ユーザークロック／リセット信号ジェネレータ６をイネーブルにしてエミュレーションを再度開始させる。この際、選択信号ＳＥＬは、スイッチ１５ｂ，デバイス間スイッチ９ａ，９ｂに加えて、各ＦＰＧＡ５１ａ〜５１ｃのセレクタ１２ｄ（図２参照）に入力され、各ＦＰＧＡ５１ａ〜５１ｃの出力信号としては、内部信号、即ち出力端子Ｆ１＿５からＮＥＴ１が出力される。この出力信号は、スイッチ１５ａを経てメモリ２ｂに格納される。
【００６８】
（工程５）同時に、ロジアナ／ベクタ送出制御部４は、メモリ２ａに記憶されている前回（上記の工程２）のエミュレーション時のデータを、スイッチ１５ｂからデバイス間スイッチ９ａ，９ｂを経て各ＦＰＧＡ５１ａ〜５１ｃの入力端子に供給する。ＦＰＧＡは、３つのＦＰＧＡ５１ａ〜５１ｃ全ての動作によって設計した１つの回路動作を行う。ここで、前回のサンプリング・データを入力ベクタとして使用することにより、この時点で各ＦＰＧＡ５１ａ〜５１ｃ間の配線が分断されている状態であっても、見かけ上は１個の回路として動作させることができる。
【００６９】
（工程６）ロジアナ／ベクタ送出制御部４は、ホスト８からの指示により、エミュレーション終了後、図１１に示すスイッチ状態に復帰させ、スイッチ１５ａを接点２側にし、スイッチ１５ｂを接点１側に設定し、メモリ２ａ，２ｂに格納されているデータをホスト８へアップロードする。
【００７０】
なお、エミュレーション中にもサンプリングデータはホストＩ／Ｆ７に入力されるが、エミュレーション中にホスト８がデータを取り込むには、ホスト８はサンプリング速度以上の速度でデータ転送できる能力が要求されるため、現実的には不可能である。従って、エミュレーション終了後にホスト８は十分遅いクロックをサンプリングクロックジェネレータ３に設定し、ホストＩ／Ｆ７を介してデータの読み出し（アップロード）を行う。
【００７１】
（工程７）ホスト８は、メモリ２ａ，メモリ２ｂのサンプリングデータを、同一のエミュレーションでサンプリングしたものとして扱い、表示画面に波形表示する。これにより、操作者は、ＦＰＧＡ５１ａ〜５１ｃの内部信号の状態を、本来の外部出力信号と関連付けて観測することができる。
【００７２】
上記構成によれば、実施の形態１に比してスイッチ１５の数を削減させて同等の処理を実行できるようになる。
【００７３】
以上説明したプロトタイピングシステムにおいて動作検証のためにホストのソフトウェアツールが実行する各種処理は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。このプログラムは、各種記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またこのプログラムは、インターネット等のネットワークを介して配布することが可能な伝送媒体であってもよい。
【００７４】
（付記１）プログラマブル・デバイスの動作検証を行うプロトタイピングシステムにおいて、
前記プログラマブル・デバイスは、該プログラマブル・デバイスが有する出力端子から規定された本来の出力信号と、所望する内部回路の内部信号とを選択的に切り替えて出力させるセレクタを備え、
前記セレクタを制御して前記本来の出力信号あるいは前記内部信号のいずれかを出力させた状態におけるエミュレーションを実行するロジックアナライザを備えたことを特徴とするプロトタイピングシステム。
【００７５】
（付記２）前記プログラマブル・デバイスを複数個実装する実装手段を備え、
前記ロジックアナライザは、前記セレクタを制御して前記複数個のプログラマブル・デバイスそれぞれが有する本来の出力信号あるいは前記内部信号のいずれかを出力させた状態におけるエミュレーションを実行することを特徴とする付記１に記載のプロトタイピングシステム。
【００７６】
（付記３）回路情報がダウンロードされるプログラマブル・デバイスを複数個実装する実装手段と、該プログラマブル・デバイスに対しサンプリングクロックを供給して動作波形を得るロジックアナライザと、該ロジックアナライザを実行制御するホストとによって構成されたプロトタイピングシステムにおいて、
前記プログラマブル・デバイスは、該プログラマブル・デバイスが有する出力端子から規定された本来の出力信号と、所望する内部回路の内部信号とを選択的に切り替えて出力させるセレクタを備え、
前記ホストは、前記回路情報に前記セレクタのセレクタ情報を挿入することによって前記回路情報を修正することを特徴とするプロトタイピングシステム。
【００７７】
（付記４）前記ホストは、前記プログラマブル・デバイスの動作検証のために前記プログラマブル・デバイスの設計回路を分割、合成して回路情報を作成し、該作成した回路情報を前記プログラマブル・デバイスにダウンロードすることを特徴とする付記３に記載のプロトタイピングシステム。
【００７８】
（付記５）前記実装手段は、複数個の前記プログラマブル・デバイスの入出力端子を連結あるいは切断するデバイス間スイッチを備え、
前記ロジックアナライザは、前記デバイス間スイッチの切断時に前記デバイス間スイッチを介して前記各プログラマブル・デバイスの入力端子に対しベクタデータを供給した状態で前記エミュレーションを実行する制御手段を備えたことを特徴とする付記２〜４のいずれか一つに記載のプロトタイピングシステム。
【００７９】
（付記６）前記制御手段は、前記デバイス間スイッチの連結時、および切断時における複数個の前記プログラマブル・デバイスの出力信号をサンプリングクロックに従いサンプリングし、前記連結時と、切断時の前記各出力信号を個別に記憶することを特徴とする付記５に記載のプロトタイピングシステム。
【００８０】
（付記７）前記制御手段は、前記デバイス間スイッチの連結時に得られた複数個の前記プログラマブル・デバイスの出力信号を１回目のエミュレーション結果として記憶し、
前記デバイス間スイッチの切断時には、前記１回目のエミュレーション結果を前記ベクタデータとして前記デバイス間スイッチを介して前記各プログラマブル・デバイスの入力端子に供給し、得られた複数個の前記プログラマブル・デバイスの出力信号を２回目のエミュレーション結果として記憶することを特徴とする付記５または６に記載のプロトタイピングシステム。
【００８１】
（付記８）前記ロジックアナライザは、前記１回目のエミュレーション結果を記憶する第１の記憶手段と、
前記２回目のエミュレーション結果を記憶する第２の記憶手段を備えたことを特徴とする付記７に記載のプロトタイピングシステム。
【００８２】
（付記９）前記制御手段は、前記デバイス間スイッチの接続を切断する前記２回目のエミュレーション時には、前記各プログラマブル・デバイスの前記セレクタを切り替え、該各プログラマブル・デバイスの出力端子から出力される内部信号を該２回目のエミュレーション結果として得ることを特徴とする付記５〜８のいずれか一つに記載のプロトタイピングシステム。
【００８３】
（付記１０）前記制御手段は、前記２回目のエミュレーション時に前記各プログラマブル・デバイスの入力端子に対しベクタデータのクロックタイミングを変更して供給することを特徴とする付記５〜９のいずれか一つに記載のプロトタイピングシステム。
【００８４】
（付記１１）前記ロジックアナライザは、複数実行された前記エミュレーション結果をホストにアップロードし、
前記ホストは、該アップロードされた複数のエミュレーション結果を同一の表示画面上に合成表示する波形合成手段を備えたことを特徴とする付記１〜１０のいずれか一つに記載のプロトタイピングシステム。
【００８５】
（付記１２）前記波形合成手段は、前記第１回目のエミュレーション結果による前記プログラマブル・デバイスの出力端子から出力される全ての出力信号を表示し、前記第２回目のエミュレーション結果については前記プログラマブル・デバイスの出力端子から出力される内部信号のみを抽出し前記全ての出力信号とともに合成表示することを特徴とする付記１１に記載のプロトタイピングシステム。
【００８６】
（付記１３）前記プログラマブル・デバイスと、前記デバイス間スイッチと、前記第１，第２の記憶手段との間には、前記プログラマブル・デバイスから各第１，第２の記憶手段に対してエミュレーション結果を分別して記憶させるデータの流れと、前記デバイス間スイッチから前記プログラマブル・デバイスに対して前記ベクタデータを供給させるデータの流れと、前記第１，第２の記憶手段から前記ホストに対してエミュレーション結果をアップロードさせるデータの流れを、いずれかに切り替えるスイッチを備え、前記制御手段によって該スイッチが切り替え制御されることを特徴とする付記８〜１２のいずれか一つに記載のプロトタイピングシステム。
【００８７】
（付記１４）前記ホストは、前記プログラマブル・デバイスの単一の出力端子から出力される前記本来の出力信号と前記内部信号のそれぞれに異なる信号名を割り当てることを特徴とする付記１〜１３のいずれか一つに記載のプロトタイピングシステム。
【００８８】
（付記１５）前記ホストは、前記１回目のエミュレーションにより前記プログラマブル・デバイスの出力端子から出力される出力信号には、前記本来の出力信号の信号名を割り当て、
前記２回目のエミュレーションにより前記プログラマブル・デバイスの同一の前記出力端子の出力端子から出力される出力信号については、前記内部信号の信号名に変更することを特徴とする付記７〜１４のいずれか一つに記載のプロトタイピングシステム。
【００８９】
（付記１６）プログラマブル・デバイスを複数個実装し、動作検証を行うプログラマブル・デバイスの内部信号観測方法であって、
前記プログラマブル・デバイス別の設計回路の回路情報を作成する回路情報作成工程と、
前記プログラマブル・デバイスの内部信号を選択出力するためのセレクタ情報を前記回路情報に挿入する処理を実行して前記回路情報作成工程により作成された回路情報を修正するセレクタ挿入工程と、
前記セレクタ挿入工程で得られたセレクタ挿入後の回路情報を前記プロトタイピングシステムにダウンロードするダウンロード工程と、
を含み、前記プロトタイピングシステムにおいてプログラマブル・デバイスの内部信号を観測可能としたことを特徴とするプログラマブル・デバイスの内部信号観測方法。
【００９０】
（付記１７）前記セレクタ挿入工程は、前記回路情報に対し、前記プログラマブル・デバイスに設けられた同一の出力端子が出力する本来の出力信号と、内部信号のうちいずれを出力するかを選択する選択信号を前記プログラマブル・デバイスの外部から制御するための入力ポートを配置する処理を実行することを特徴とする付記１６に記載のプログラマブル・デバイスの内部信号観測方法。
【００９１】
（付記１８）出力端子から規定された本来の出力信号と、所望する内部回路の内部信号とを選択的に切り替えて出力させるセレクタを備えたプログラマブル・デバイスを複数個実装し、前記本来の出力信号および内部信号を観測するプログラマブル・デバイスの内部信号観測方法であって、
前記プログラマブル・デバイスのセレクタを前記本体の出力信号出力側に切り替え、かつ複数個の前記プログラマブル・デバイスの入出力端子を連結させた状態で該プログラマブル・デバイスに対しサンプリングクロックを供給し、前記プログラマブル・デバイスの出力信号を得る第１のエミュレーション結果取得工程と、
前記プログラマブル・デバイスのセレクタを内部信号出力側に切り替え、かつ複数個の前記プログラマブル・デバイスの入出力端子を切断した状態で該プログラマブル・デバイスに対し前記第１のエミュレーション結果をベクタデータとして供給し、前記プログラマブル・デバイスの内部信号を得る第２のエミュレーション結果取得工程と、
を含むことを特徴とするプログラマブル・デバイスの内部信号観測方法。
【００９２】
（付記１９）前記第１，第２のエミュレーション結果をそれぞれ記憶する記憶工程と、
前記第１，第２のエミュレーション結果をそれぞれ表示出力する表示出力工程と、
を含むことを特徴とする付記１８に記載のプログラマブル・デバイスの内部信号観測方法。
【００９３】
（付記２０）前記表示出力工程は、前記第１，第２のエミュレーション結果を同一の表示画面上に合成表示する処理を含むことを特徴とする付記１９に記載のプログラマブル・デバイスの内部信号観測方法。
【００９４】
（付記２１）前記表示出力工程は、前記プログラマブル・デバイスの同一の出力端子から出力される前記本来の出力信号と前記内部信号のそれぞれに異なる信号名を割り当てる処理を含むことを特徴とする付記２０に記載のプログラマブル・デバイスの内部信号観測方法。
【００９５】
【発明の効果】
本発明によれば、ＦＰＧＡ等の検証回路の出力端子数分の内部信号が観測できるようになり、検証回路にサンプリングクロックを供給した動作状態で出力端子から本来の出力信号、あるいは内部信号を出力できるため、タイミング解析が行えるようになる。また、これら本来の出力信号および内部信号を同一の表示画面に合成表示できるため、検証回路の不具合を容易に観測できるようになる。これらにより、デバッグ効率を格段に向上させることができ、デバッグ期間の短縮化および検証回路を含むＬＳＩの開発期間の短縮化を図ることができるという効果を奏する。
【図面の簡単な説明】
【図１】この発明のプロトタイピングシステムの実施の形態１の構成を示すブロック図である。
【図２】検証回路としてのＦＰＧＡの回路構成例を示す図である。
【図３】各スイッチの切り替え状態（その１）を示す図である。
【図４】各スイッチの切り替え状態（その２）を示す図である。
【図５】ダウンロード用の回路情報を作成する手順を示すフローチャートである。
【図６】セレクタ挿入処理の手順を示すフローチャートである。
【図７】１回目のエミュレーション時の波形を示す図である。
【図８】２回目のエミュレーション時の波形を示す図である。
【図９】ロジックアナライザ波形表示ツールが実行する波形表示処理のフローチャートである。
【図１０】波形の表示画面例を示す図である。
【図１１】この発明のプロトタイピングシステムの実施の形態２の構成を示すブロック図である。
【図１２】各スイッチの切り替え状態を示す図である。
【図１３】従来のプロトタイピングシステムを示す構成図である。
【図１４】ステート解析を行う場合の検証回路の内部構成図である。
【符号の説明】
１　プロトタイピングシステム
２（２ａ，２ｂ）　メモリ
３　サンプリングクロックジェネレータ
４　ロジックアナライザ／ベクタ送出制御部
５（５ａ〜５ｄ，１５ａ，１５ｂ）　スイッチング・デバイス
６　ユーザークロック／リセット信号ジェネレータ
７　ホストインターフェース
８　ホスト
９ａ，９ｂ　デバイス間スイッチ
１０　ロジックアナライザ
１２ａ，１２ｂ　ＦＦインスタンス
１２ｃ　論理回路
１２ｄ　セレクタ
２０　ＲＴＬ
２１　ネットリスト
２２　ＦＰＧＡ間配線情報
２３　セレクタ挿入後のネットリスト
２４　ネット出力情報
２５　ダウンロード用回路情報
２６　信号合成波形ファイル
５１ａ〜５１ｄ　ＦＰＧＡ
【図１】
2004023364.tif 000003
【図２】
2004023364.tif 000004
【図３】
2004023364.tif 000005
【図４】
2004023364.tif 000006
【図５】
2004023364.tif 000007
【図６】
2004023364.tif 000008
【図７】
2004023364.tif 000009
【図８】
2004023364.tif 000010
【図９】
2004023364.tif 000011
【図１０】
2004023364.tif 000012
【図１１】
2004023364.tif 000013
【図１２】
2004023364.tif 000014
【図１３】
2004023364.tif 000015
【図１４】
2004023364.tif 000016