説明

回路検証装置及び回路検証方法

【課題】論理合成を再度行うことなく、プログラマブル素子内の被検証回路及び補助回路等の動作を変更して様々な回路検証を行うことができる回路検証装置及び回路検証方法を提供する。
【解決手段】ターゲット回路20と、ターゲット回路20への入力信号を生成するテストパタン生成回路25と、FPGA2の入力端子からの入力信号又はテストパタン生成回路25からの入力信号のいずれかを選択してターゲット回路20へ与えるMUX40と、ターゲット回路20の複数の内部信号のうちのいくつかを選択してメモリ切替部42へ与えるMUX41と、ターゲット回路20の内部信号及び出力信号の値を記憶する内部メモリ44と、MUX41からの信号を外部のメモリ5又は内部メモリ44のいずれかへ与えるメモリ切替部42と、これらの回路の動作を規定する規定値を記憶する制御レジスタ30とを、FPGA2に構成する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、FPGA(Field Programmable Gate Array)又はCPLD(Complex Programmable Logic Device)等の論理回路を再構成することができるプログラマブル素子を備え、このプログラマブル素子に構成された回路の動作検証を行うための回路検証装置及び回路検証方法に関する。
【背景技術】
【0002】
従来から、デジタル回路の設計を行う場合には、VHDL又はVerilog−HDL等のHDL(Hardware Description Language、ハードウェア記述言語)が用いられている。設計者は、デジタル回路をHDLにより記述し、シミュレータを用いてRTL(Register Transfer Level)の回路の検証を行った後、論理合成を行ってゲートレベルの回路を生成する。その後、生成されたゲートレベルの回路を再度検証し、検証によりエラーが発見されなかった場合には、配置配線ツールを用いて回路のレイアウトを作成し、このレイアウトを基に半導体ICの製造が行われる。
【0003】
回路の検証を行う場合には、RTL又はゲートレベルの回路と回路のテストパタンとをシミュレータに与えてシミュレーションを行うが、近年のデジタル回路は大規模化しており、シミュレーションに膨大な時間を要するという問題がある。例えば、実機での1秒間分のシミュレーションを行う場合に、数十時間〜数日程度のシミュレーション時間が必要な場合がある。よって、シミュレーションを行うことができるテストパタンが限られ、十分な検証を行うことができないという問題があった。
【0004】
この問題を解決するために、回路の検証にFPGA又はCPLD等のプログラマブル素子を備える回路検証装置を用いることができる。FPGAには、内部に多数の論理ブロックが配置され、論理ブロック間の配線の接続などを行うための記憶素子が備えられている。記憶素子としてはSRAM又はフラッシュメモリ等のメモリ技術を利用した素子が用いられ、記憶素子に記憶されたデータを変更することで、設計者は回路の構成を変更することができるようにしてある。プログラマブル素子を用いて検証を行う場合、回路を実時間で動作させることができるため、検証時間を短縮することができ、より多くのテストパタンを入力して回路を動作させることができるため、より確実にエラーを発見することができる。設計者は、回路の検証を行ってエラーが発見された場合には、回路を修正し、プログラマブル素子に修正後の回路を再構成して検証を行うことができる。このような回路検証装置を用いることにより、回路の検証及び修正等の作業、所謂デバッグ作業を高速化でき、回路開発の期間を短縮することができるという利点がある。
【0005】
特許文献1においては、FPGA内に構成された論理回路の各ノードに論理値を記憶する記憶素子をそれぞれ設けて、外部からのノードアドレスの指定と、外部からの読み出しタイミングの指定とに応じて、指定されたノードアドレスのノードに設けられた記憶素子から、指定された読み出しタイミングで値を読み出して外部へ出力することにより、論理回路中のノードを自由に選択して値を読み出すことができ、論理回路のデバッグ能率を向上させることができるフィールドプログラマブルゲートアレイが提案されている。
【0006】
特許文献2においては、複数のFPGAを備えて、各FPGAが有する端子のうちの所定数の端子を常にプローブ用の端子として確保し、この端子の数に合わせて論理回路を分割し、分割した論理回路を論理合成して各FPGAのためのデータを作成する場合に、分割した論理回路の内部ノードをプローブ用の端子に接続するための複数のデータを予め作成しておき、プローブする内部ノードを変更する際に、これに対応したデータを選択してFPGAに回路を構成するエミュレーションシステムが提案されている。このエミュレーションシステムにおいては、プローブするノードの変更に伴う論理合成の所要時間を短縮することができ、回路デバッグの作業効率を改善することができる。
【0007】
特許文献3においては、FPGA内に、ターゲット回路と、外部から制御可能なセレクト信号によりターゲット回路内の内部信号群から一群を選択し、選択した一群の信号を外部に出力するトレースマクロ部とを構成し、出力された信号をFPGAが搭載されたターゲット基板から子基板部へデータとして送り、高速なレシーバドライバ及びトランスミッタドライバにより子基板部及びPC(パーソナルコンピュータ)に接続されたポッドボックス部の間でデータ転送を行う内部信号モニタ装置が提案されている。この内部信号モニタ装置では、ターゲット基板に搭載されるFPGAのモニタ用の出力端子が少ない場合であっても、端子数以上の内部信号をPCから高速にモニタリングすることができる。
【特許文献1】特開平5−90949号公報
【特許文献2】特開平10−312309号公報
【特許文献3】特開2003−271412号公報
【発明の開示】
【発明が解決しようとする課題】
【0008】
従来構成の回路検証装置の場合には、回路中のノードをFPGAの出力端子に接続して信号を外部に出力し、出力された信号をロジックアナライザ(以下、ロジアナという)又はオシロスコープ等の観測装置を用いて取得することにより、設計者が回路の内部信号を観測して検証を行うことができるようにしてある。しかし、回路中のノード数はFPGAの出力端子数と比較して多く、全ノードの信号を観測することはできないため、回路中のノードとFPGAの出力端子との接続を変更する場合には、設計者が記述したHDLの回路の論理合成を再度行う必要があり、回路規模が大きいものほど論理合成に時間がかかり、回路検証の効率を悪化させるという問題がある。
【0009】
特許文献1乃至特許文献3においては、上述のような論理合成を再度行うことによる回路検証の効率の悪化を改善するための発明が提案されている。しかしながら、特許文献1に記載のフィールドプログラマブルゲートアレイは、FPGA内の論理回路の各ノードに記憶素子を設ける必要があるため、回路規模が大きくなってノード数が増すことにより、必要な記憶素子数が増加するという問題がある。よって、回路規模が大きくなった場合に、容量がより大きなFPGAが必要となるか、又は複数のFPGAを用いる必要があり、検証を行うためのコストが増大する。
【0010】
特許文献2に記載のエミュレーションシステムは、FPGAに構成された回路の内部ノードを、FPGAのプローブ用の端子に接続できるように、予め複数のパターンの論理合成を行ってデータを作成しておき、信号の観測を行うノードを変更する場合には、所望のノードがプローブ用の端子に接続されたデータを用いてFPGAを再構成することにより変更を行うようにしてある。このため、内部ノードの数が多く、プローブ用の端子が少ない場合には、多くのデータを予め作成する必要があり、このデータを記憶しておくためのEEPROMなどがより多く必要となると共に、多くのデータを論理合成するためにより多くの時間を必要とするため、検証効率を悪化させるという問題がある。
【0011】
特許文献3に記載の内部信号モニタ装置は、マルチプレクサにより内部信号を選択してFPGAの外部に出力する構成であるため、観測ノードを変更する場合に論理合成を行う必要がないという利点があるが、FPGAが搭載されたターゲット基板、ターゲット基板に接続された子基板、及び設計者が操作するPCに接続されて子基板との間で高速通信を行うポッドボックス部等の多くのハードウェアが必要であり、コストが高いという問題がある。
【0012】
また、観測を行う内部信号を変更する場合のみではなく、回路の検証を行う際に、設計者がHDLにて記述したRTLの回路の論理合成を再度行わなければならない場合が存在する。例えば、設計を行う回路が複数の回路ブロックで構成されており、そのうちの1つの回路ブロックとして候補となる回路ブロックが複数種類存在するときに、設計者は各回路ブロックをそれぞれ動作させて検証し、最も設計条件に適した回路ブロックを1つ選択して採用したい場合がある。この場合、候補となる回路ブロックの数だけ論理合成を行う必要が生じる。また、例えば、回路の動作を規定する定数が存在し、この定数の変更を行いたい場合には、論理合成を再度行う必要が生じる。特許文献1乃至特許文献3においては、このような場合については言及されておらず、論理合成を再度行わなければならない。
【0013】
また、回路の検証を行ってエラーが発生した場合、設計者は全回路からエラーを発生させる回路部分を特定する必要がある。これは回路規模が大きくなるほど困難な作業であり、FPGAなどのプログラマブル素子を備える回路検証装置には、全回路からエラーを発生させる回路部分を絞り込むためのより高度な設計者支援機能を備えることが望まれる。
【0014】
本発明は、斯かる事情に鑑みてなされたものであって、その目的とするところは、プログラマブル素子内に被検証回路と、被検証回路へ信号の入出力を行う補助回路と、被検証回路及び補助回路の動作を規定する規定値を記憶するための規定値記憶部とを構成し、制御部が外部装置からの指示を受けて規定値を変更して被検証回路及び補助回路の動作を変更する構成とすることにより、制御部を介して規定値記憶部の規定値を変更するのみで設計者が様々な回路動作を検証することができる回路検証装置を提供することにある。
【0015】
また本発明の他の目的とするところは、被検証回路が、被検証回路ブロック及び被検証回路ブロックへ入力信号を与える入力側回路ブロック等の複数の回路ブロックを有する場合に、被検証回路ブロックへ入力する入力値及びこの入力値を被検証回路ブロックへ与えるか否かを定める規定値を規定値記憶部に記憶し、入力側回路ブロックの入力信号又は規定値記憶部の入力値のいずれかを規定値に応じて選択して被検証回路ブロックへ与える構成とすることにより、被検証回路の特定の回路ブロックへ設計者が定める任意の入力値を与えて検証を行うことができる回路検証装置を提供することにある。
【0016】
また本発明の他の目的とするところは、被検証回路が、被検証回路ブロック、被検証回路ブロックからの出力信号を取得する出力側回路ブロック、及び被検証回路ブロックと同じ機能を有して被検証回路ブロックに代替可能な代替回路ブロック等の複数の回路ブロックを有する場合に、被検証回路ブロック又は代替回路ブロックのいずれかの出力信号を、規定値記憶部に記憶された規定値に応じて選択して出力側回路ブロックへ与える構成とすることにより、論理合成を再度行うことなく回路ブロックを入れ替えて検証を行うことができる回路検証装置を提供することにある。
【0017】
また本発明の他の目的とするところは、プログラマブル素子内のテストパタン生成回路又はプログラマブル素子の入力端子のいずれかからの入力信号を、記憶した規定値に応じて被検証回路へ与える構成とすることにより、テストパタン生成回路を利用して様々なテストパタンを被検証回路へ与えることができると共に、プログラマブル素子外の機器又はデバイス等からの出力信号を被検証回路へ与えて検証を行うことができる回路検証装置を提供することにある。
【0018】
また本発明の他の目的とするところは、被検証回路の内部信号を規定値記憶部に記憶した規定値に応じて選択して出力する構成とすることにより、論理合成を再度行うことなく観測する内部信号を変更して検証を行うことができる回路検証装置を提供することにある。
【0019】
また本発明の他の目的とするところは、被検証回路を動作させるクロック信号より高速なクロック信号を用いて規定値記憶部の規定値を変更し、出力する内部信号を変更する構成とすることにより、被検証回路の1クロックの動作中により多くの内部信号の観測を行うことができる回路検証装置を提供することにある。
【0020】
また本発明の他の目的とするところは、選択されて出力された内部信号の値を記憶する観測値記憶部を設ける構成とすることにより、ロジアナ又はオシロスコープ等の観測装置を用いることなく、テストパタンにより被検証回路を動作させた後に観測値記憶部から値を読み出して内部信号の検証を行うことができる回路検証装置を提供することにある。
【0021】
また本発明の他の目的とするところは、被検証回路を動作させるクロック信号に応じて動作するカウンタを設け、カウンタの値が規定値記憶部に記憶した開始カウンタ値に一致した場合に観測値記憶部への値の記憶を開始し、終了カウンタ値に一致した場合に記憶を終了する構成とすることにより、検証に必要な期間内の内部信号の値を自動的に記憶することができる回路検証装置を提供することにある。
【0022】
また本発明の他の目的とするところは、被検証回路の内部信号の期待値を期待値記憶部に記憶しておき、内部信号及び期待値が一致しない場合に、被検証回路の動作を停止させる構成とすることにより、被検証回路のエラーが発生するタイミングを設計者が簡単に把握することができる回路検証装置を提供することにある。
【0023】
また本発明の他の目的とするところは、被検証回路を動作させるクロック信号に応じて動作するカウンタを設け、カウンタの値の所定値毎に被検証回路の動作を停止させる構成とすることにより、被検証回路を少しずつ動作させて、所謂ステップ実行を行うことができる回路検証装置を提供することにある。
【0024】
また本発明の他の目的とするところは、被検証回路の動作を停止させる場合には、被検証回路へのクロック信号の供給を停止する構成とすることにより、被検証回路の停止を簡単な構成で行うことができる回路検証装置を提供することにある。
【0025】
また本発明の他の目的とするところは、プログラマブル素子及び制御部が設けられた回路基板に通信手段を備えて外部装置との通信を行い、制御部がアドレス及びデータの指定により規定値記憶部にアクセスできる構成とすることにより、設計者が外部装置を操作して、規定値記憶部に規定値を簡単に記憶させることができる回路検証装置を提供することにある。
【0026】
また本発明の他の目的とするところは、論理回路を再構成することが可能なプログラマブル素子を備える回路検証装置を用いて、プログラマブル素子に被検証回路と、被検証回路へ信号の入出力を行う補助回路と、被検証回路及び補助回路の動作を規定する規定値を記憶するための規定値記憶部とを構成し、規定値記憶部へ規定値を記憶させ、被検証回路及び補助回路の動作を制御することにより、設計者が規定値記憶部の規定値を変更するのみで様々な回路動作を簡単に検証することができる回路検証方法を提供することにある。
【課題を解決するための手段】
【0027】
第1発明に係る回路検証装置は、論理回路を再構成することが可能なプログラマブル素子を備え、該プログラマブル素子に構成された被検証回路の動作を検証する回路検証装置において、前記プログラマブル素子に、前記被検証回路へ入力信号を与える機能及び/又は前記被検証回路からの出力信号を取得する機能を有する補助回路と、前記被検証回路及び/又は前記補助回路の動作を規定する規定値を記憶する規定値記憶部とが構成されるようにしてあり、前記規定値記憶部へ規定値を記憶させ、前記被検証回路及び/又は前記補助回路の動作を制御する制御部を備えることを特徴とする。
【0028】
本発明においては、プログラマブル素子内に、被検証回路と、被検証回路へ信号の入出力を行う補助回路と、被検証回路及び補助回路の動作を規定する規定値を記憶するための規定値記憶部とを構成する。また、規定値記憶部の規定値を変更する制御部を設ける。設計者は規定値記憶部の規定値を変更するのみで、論理合成を再度行うことなく、被検証回路及び補助回路の動作を変更できる。
【0029】
また、第2発明に係る回路検証装置は、前記被検証回路が複数の回路ブロックを有し、該複数の回路ブロックには、被検証回路ブロック及び該被検証回路ブロックに入力信号を与える入力側回路ブロックを含み、前記規定値記憶部は、前記入力側回路ブロックが与える入力信号に代えて前記被検証回路ブロックへ与える入力値と、該入力値を前記被検証回路へ与えるか否かを定める規定値とを記憶するようにしてあり、前記補助回路は、前記規定値記憶部が記憶した前記規定値に応じて、前記入力側回路ブロックからの入力信号又は前記規定値記憶部が記憶した入力値を選択して前記被検証回路ブロックへ与える選択回路を有することを特徴とする。
【0030】
本発明においては、被検証回路が、被検証回路ブロック及び被検証回路ブロックへ入力信号を与える入力側回路ブロック等の複数の回路ブロックを有する場合に、入力側回路ブロックの入力信号に代えて被検証回路ブロックへ与えるための入力値を規定値記憶部に記憶し、入力側回路ブロックの入力信号又は規定値記憶部の入力値のいずれかを選択して被検証回路ブロックへ与える。このときの選択は、規定値記憶部に記憶した規定値に応じて行う。よって、設計者は規定値記憶部に入力値を記憶させ、規定値を変更するのみで、論理合成を再度行うことなく、被検証回路ブロックへ任意の入力値を与えることができる。
【0031】
また、第3発明に係る回路検証装置は、前記被検証回路が複数の回路ブロックを有し、該複数の回路ブロックには、被検証回路ブロック、該被検証回路ブロックからの出力信号を取得する出力側回路ブロック及び前記被検証回路ブロックに代替可能な代替回路ブロックを含み、前記規定値記憶部は、前記代替回路ブロックによる前記被検証回路ブロックの代替を行うか否かを定める規定値を記憶するようにしてあり、前記補助回路は、前記規定値記憶部が記憶した前記規定値に応じて、前記被検証回路ブロックの出力信号又は前記代替回路ブロックの出力信号を選択して前記出力側回路ブロックへ与える選択回路を有することを特徴とする。
【0032】
本発明においては、被検証回路が、被検証回路ブロック、被検証回路ブロックからの出力信号を取得する出力側回路ブロック及び被検証回路ブロックと同じ機能を有して被検証回路ブロックに代替可能な代替回路ブロック等の複数の回路ブロックを有する場合に、被検証回路ブロック又は代替回路ブロックのいずれかの出力信号を選択して出力側回路ブロックへ与える。即ち、これは回路ブロックの置き換えを行うことである。いずれの回路ブロックを用いるかの選択は、規定値記憶部に記憶した規定値に応じて行う。このため、設計者は規定値記憶部の規定値を変更するのみで、論理合成を再度行うことなく、回路ブロックの置き換えを行うことができる。
【0033】
また、第4発明に係る回路検証装置は、前記補助回路が、前記被検証回路へ与える入力信号を生成するテストパタン生成回路と、前記プログラマブル素子に設けられた入力端子から与えられる入力信号又は前記テストパタン生成回路が生成する入力信号を選択して前記被検証回路へ与える選択回路とを有し、前記規定値記憶部は、前記選択回路の選択を規定する規定値を記憶するようにしてあることを特徴とする。
【0034】
本発明においては、プログラマブル素子内にテストパタン生成回路を設け、テストパタン生成回路からの入力信号又はプログラマブル素子の入力端子からの入力信号のいずれかを選択して、被検証回路へ与える。テストパタン生成回路が生成した入力信号により被検証回路を動作させることができると共に、プログラマブル素子の入力端子に他のデバイスを接続し、他のデバイスが出力する出力信号を被検証回路へ与えて動作させることができる。いずれの入力信号を被検証回路へ与えるかの選択は、規定値記憶部に記憶した規定値に応じて行う。設計者は規定値記憶部の規定値を変更するのみで、論理合成を再度行うことなく、入力信号の供給源を変更することができる。
【0035】
また、第5発明に係る回路検証装置は、前記補助回路が、前記被検証回路の内部信号を選択して出力する選択回路を有し、前記規定値記憶部は、前記選択回路の選択を規定する規定値を記憶するようにしてあることを特徴とする。
【0036】
本発明においては、被検証回路の内部信号を規定値記憶部に記憶した規定値に応じて選択して出力する。プログラマブル素子の出力端子の数より観測を行う必要がある被検証回路の内部信号の数が多い場合であっても、論理合成を再度行って接続を変更する必要がなく、規定値記憶部の規定値を変更するのみで出力する内部信号を変更することができる。
【0037】
また、第6発明に係る回路検証装置は、前記被検証回路へ入力されるクロック信号より高周波の観測用クロック信号を出力する観測用クロック信号出力回路を備え、前記規定値記憶部は、前記観測用クロック信号に同期して動作することが可能にしてあり、前記制御部は、前記観測用クロック信号に同期して前記規定値記憶部の規定値を変更し、前記選択回路が出力する内部信号を変更するようにしてあることを特徴とする。
【0038】
本発明においては、被検証回路を動作させるクロック信号より高周波の観測用クロック信号に同期して、規定値記憶部に記憶された内部信号の選択のための規定値を変更する。これにより、被検証回路の1クロックの動作中に、規定値記憶部の規定値を複数回変更して、複数の内部信号を出力させることができ、設計者がより多くの内部信号を同時的に観測することができる。
【0039】
また、第7発明に係る回路検証装置は、前記観測用クロック信号に同期して前記選択回路が出力する内部信号の値を記憶する観測値記憶部を備えることを特徴とする。
【0040】
本発明においては、選択されて出力された内部信号の値を記憶する観測値記憶部を設ける。設計者は記憶された値を読み出すことによって、内部信号の検証を行うことができる。よって、プログラマブル素子の出力端子にロジアナ又はオシロスコープ等の観測装置を接続することなく、制御部から外部装置へ読み出した値を転送し、外部装置に表示することで検証を行うことができる。
【0041】
また、第8発明に係る回路検証装置は、前記被検証回路へ入力されるクロック信号に応じて動作するカウンタを備え、前記規定値記憶部は、前記観測値記憶部への内部信号の値の記憶を開始する開始カウンタ値及び記憶を終了する終了カウンタ値を記憶するようにしてあり、前記観測値記憶部は、前記カウンタの値が前記開始カウンタ値に一致した場合に記憶を開始し、前記カウンタの値が前記終了カウンタ値に一致した場合に記憶を終了するようにしてあることを特徴とする。
【0042】
本発明においては、被検証回路を動作させるクロック信号に応じて動作するカウンタを設ける。また、規定値記憶部に開始カウンタ値及び終了カウンタ値を記憶させ、カウンタの値が開始カウンタ値に一致した場合に観測値記憶部への内部信号の値の記憶を開始し、終了カウンタ値に一致した場合に観測値記憶部への記憶を終了する。予め内部信号の値を記憶する範囲を指定することで、この範囲内のみの値が記憶され、範囲外の値は記憶されないため、観測値記憶部を記憶容量に応じて効率よく使用できる。
【0043】
また、第9発明に係る回路検証装置は、前記被検証回路の内部信号の期待値を記憶する期待値記憶部と、前記選択回路が出力する内部信号及び前記期待値記憶部が記憶した期待値を比較する比較手段と、該比較手段による比較の結果、前記内部信号及び前記期待値が一致しない場合、前記被検証回路の動作を停止させる停止手段とを備えることを特徴とする。
【0044】
本発明においては、被検証回路の内部信号の期待値を記憶する期待値記憶部を設ける。また、内部信号と期待値とを比較して一致しない場合には、被検証回路の動作を停止させる。これにより、被検証回路のエラー発生を確実に捕らえることができ、このタイミングでの被検証回路の動作を設計者が詳細に検証できるため、被検証回路の誤りを発見しやすい。
【0045】
また、第10発明に係る回路検証装置は、前記被検証回路へ入力されるクロック信号に応じて動作するカウンタと、前記カウンタの値の所定値毎に、前記被検証回路の動作を停止させる停止手段とを備え、前記規定値記憶部は、前記所定値を記憶するようにしてあることを特徴とする。
【0046】
本発明においては、被検証回路を動作させるクロック信号に応じて動作するカウンタを設ける。また、規定値記憶部に所定値を記憶させ、カウンタの値が所定値をカウントする毎に被検証回路の動作を停止させる。これにより、被検証回路をステップ実行することができ、設計者が被検証回路の動作を所定の期間毎に確実に検証することができる。
【0047】
また、第11発明に係る回路検証装置は、前記停止手段が、前記被検証回路へのクロック信号の供給を停止することにより、前記被検証回路の動作を停止させるようにしてあることを特徴とする。
【0048】
本発明においては、被検証回路の動作を停止させる場合、被検証回路へのクロック信号の供給を停止する。これにより、被検証回路は確実に動作しない。また、簡単な回路構成で実現することが可能である。
【0049】
また、第12発明に係る回路検証装置は、前記プログラマブル素子及び前記制御部が設けられた回路基板と、該回路基板に設けられ、前記制御部及び外部装置の間で通信を行う通信手段とを備え、前記制御部は、前記プログラマブル素子の前記規定値記憶部に、アドレス及びデータの指定によりアクセス可能にしてあることを特徴とする。
【0050】
本発明においては、プログラマブル素子及び制御部が設けられた回路基板に、外部装置との通信を行う手段を設ける。設計者は外部装置を操作してプログラマブル素子内に構成された被検証回路の検証を行う。また、制御部がアドレス及びデータの指定により規定値記憶部にアクセスして規定値の変更を行う。制御部のアドレス空間内に規定値記憶部を収めることによって、制御部から規定値記憶部へのアクセスが簡単に実行できる。
【0051】
また、第13発明に係る回路検証方法は、論理回路を再構成することが可能なプログラマブル素子を備える回路検証装置を用いて、前記プログラマブル素子に被検証回路を構成し、該被検証回路の検証を行う回路検証方法において、前記プログラマブル素子に、前記被検証回路と、前記被検証回路へ入力信号を与える機能及び/又は前記被検証回路からの出力信号を取得する機能を有する補助回路と、前記被検証回路及び/又は前記補助回路の動作を規定する規定値を記憶する規定値記憶部とを構成し、前記規定値記憶部へ前記規定値を記憶させ、前記被検証回路及び前記補助回路の動作を制御して検証を行うことを特徴とする。
【0052】
本発明においては、プログラマブル素子を備える回路検証装置を用いて、プログラマブル素子内に被検証回路と、被検証回路へ信号の入出力を行う補助回路と、被検証回路及び補助回路の動作を規定する規定値を記憶するための規定値記憶部とを構成する。次いで、規定値記憶部へ規定値を記憶させて被検証回路及び補助回路の動作を制御する。規定値記憶部に記憶された規定値を変更することで、被検証回路及び補助回路の動作を変更できる。
【発明の効果】
【0053】
第1発明による場合は、プログラマブル素子内に被検証回路と、被検証回路へ信号の入出力を行う補助回路と、被検証回路及び補助回路の動作を規定する規定値を記憶するための規定値記憶部とを構成し、制御部が規定値を変更して被検証回路及び補助回路の動作を変更する構成とすることにより、設計者が規定値記憶部の規定値を変更するのみで、被検証回路及び補助回路の動作を変更でき、論理合成を再度行う必要がないため、被検証回路の検証期間を短縮することができると共に、設計者が簡単な操作で高度な回路検証を行うことができる。
【0054】
また、第2発明による場合は、被検証回路が、被検証回路ブロック及び被検証回路ブロックへ入力信号を与える入力側回路ブロック等の複数の回路ブロックを有する場合に、被検証回路ブロックへ入力する入力値及びこの入力値を被検証回路ブロックへ与えるか否かを定める規定値を規定値記憶部に記憶し、入力側回路ブロックの入力信号又は規定値記憶部の入力値のいずれかを規定値に応じて選択して被検証回路ブロックへ与える構成とすることにより、設計者は規定値記憶部に入力値を記憶させ、規定値を変更するのみで、被検証回路ブロックへ任意の入力値を与えることができ、論理合成を再度行う必要がないため、被検証回路の検証期間を短縮することができる。
【0055】
また、第3発明による場合は、被検証回路が、被検証回路ブロック、被検証回路ブロックからの出力信号を取得する出力側回路ブロック、及び被検証回路ブロックと同じ機能を有して被検証回路ブロックに代替可能な代替回路ブロック等の複数の回路ブロックを有する場合に、被検証回路ブロック又は代替回路ブロックのいずれかの出力信号を、規定値記憶部に記憶された規定値に応じて選択して出力側回路ブロックへ与える構成とすることにより、設計者は規定値記憶部の規定値を変更するのみで、回路ブロックの置き換えを行うことができ、論理合成を再度行う必要がないため、被検証回路の検証期間を短縮することができる。
【0056】
また、第4発明による場合は、プログラマブル素子内のテストパタン生成回路又はプログラマブル素子の入力端子のいずれかからの入力信号を、記憶した規定値に応じて被検証回路へ与える構成とすることにより、テストパタン生成回路が生成した入力信号により被検証回路を動作させることができると共に、プログラマブル素子の入力端子に他のデバイスを接続し、他のデバイスが出力する出力信号を被検証回路へ与えて動作させることができるため、様々なテストパタンを被検証回路へ与えて検証を行うことができ、検証の精度を高めることができる。また、設計者は規定値記憶部の規定値を変更するのみで、入力信号の供給源を変更することができ、論理合成を再度行う必要がないため、被検証回路の検証期間を短縮することができる。
【0057】
また、第5発明による場合は、被検証回路の内部信号を規定値記憶部に記憶した規定値に応じて選択して出力する構成とすることにより、プログラマブル素子の出力端子の数より観測を行う必要がある被検証回路の内部信号の数が多い場合であっても、規定値記憶部の規定値を変更するのみで出力する内部信号を変更することができるため、出力する内部信号を変更するために論理合成を再度行って接続を変更する必要がなく、被検証回路の検証期間を短縮することができる。
【0058】
また、第6発明による場合は、被検証回路を動作させるクロック信号より高周波の観測用クロック信号に同期して、規定値記憶部に記憶された内部信号の選択のための規定値を変更する構成とすることにより、被検証回路の1クロックの動作中に、規定値記憶部の規定値を複数回変更して、複数の内部信号を出力させることができ、設計者がより多くの内部信号を同時的に観測することができるため、検証の精度を高めることができ、また、回路検証装置の利便性を向上できる。
【0059】
また、第7発明による場合は、選択されて出力された内部信号の値を記憶する観測値記憶部を設ける構成とすることにより、プログラマブル素子の出力端子にロジアナ又はオシロスコープ等の観測装置を接続することなく、読み出した値を制御部から外部装置へ転送し、外部装置に表示することで検証を行うことができる。よって、被検証回路の検証に必要な測定機器のコストを削減することができ、また、回路検証装置の利便性を向上できる。
【0060】
また、第8発明による場合は、被検証回路を動作させるクロック信号に応じて動作するカウンタを設け、カウンタの値が規定値記憶部に記憶した開始カウンタ値に一致した場合に観測値記憶部への値の記憶を開始し、終了カウンタ値に一致した場合に記憶を終了する構成とすることにより、予め内部信号の値を記憶する範囲を指定して、検証に必要な内部信号の値を自動的に記憶することができるため、回路検証装置の利便性を向上できる。観測値記憶部を記憶容量に応じて効率よく使用できるため、回路検証装置のコストの増加を抑制できる。
【0061】
また、第9発明による場合は、被検証回路の内部信号の期待値を期待値記憶部に記憶しておき、内部信号及び期待値が一致しない場合に、被検証回路の動作を停止させる構成とすることにより、被検証回路のエラー発生を確実に捕らえることができ、このタイミングでの被検証回路の動作を設計者が詳細に検証できるため、検証の精度を高めることができ、また、回路検証装置の利便性を向上できる。
【0062】
また、第10発明による場合は、被検証回路を動作させるクロック信号に応じて動作するカウンタを設け、カウンタの値の所定値毎に被検証回路の動作を停止させる構成とすることにより、被検証回路をステップ実行することができ、設計者が被検証回路の動作を所定の期間毎に確実に検証することができるため、検証の精度を高めることができ、また、回路検証装置の利便性を向上できる。
【0063】
また、第11発明による場合は、被検証回路の動作を停止させる場合には、被検証回路へのクロック信号の供給を停止する構成とすることにより、被検証回路の停止を簡単な回路構成で行うことができるため、この機能を備えることによる回路検証装置のコストの増加を抑制できる。
【0064】
また、第12発明による場合は、プログラマブル素子及び制御部が設けられた回路基板に通信手段を備えて外部装置との通信を行い、制御部がアドレス及びデータの指定により規定値記憶部にアクセスできる構成とすることにより、制御部のアドレス空間内に規定値記憶部を収めることができ、制御部から規定値記憶部へ規定値を簡単に記憶させることができるため、設計者又は設計者の操作する外部装置からプログラマブル素子内の規定値記憶部へのアクセスを簡単に行うことができ、回路検証装置の利便性を向上できる。
【0065】
また、第13発明による場合は、論理回路を再構成することが可能なプログラマブル素子を備える回路検証装置を用いて、プログラマブル素子に被検証回路と、被検証回路へ信号の入出力を行う補助回路と、被検証回路及び補助回路の動作を規定する規定値を記憶するための規定値記憶部とを構成し、規定値記憶部へ規定値を記憶させて被検証回路及び補助回路の動作を制御することにより、規定値記憶部に記憶された規定値を変更するのみで被検証回路及び補助回路の動作を簡単に変更でき、論理合成を再度行う必要がないため、被検証回路の検証期間を短縮することができる。
【発明を実施するための最良の形態】
【0066】
(実施の形態1)
以下、本発明をその実施の形態を示す図面に基づき具体的に説明する。図1は、本発明の実施の形態1に係る回路検証装置の構成を示すブロック図である。なお、図1においては、データバスを実線の矢印で示し、アドレスバスを破線の矢印で示してある。図において1は、設計者が設計したデジタル回路(ターゲット回路)20を構成することができるFPGA2が搭載された回路検証装置であり、設計者が操作するPC(パーソナルコンピュータ)10にUSBケーブル又はLANケーブル等を介して接続され、設計者の操作によりPC10から与えられる命令に応じてFPGA2内に構成されたターゲット回路20の動作を検証するものである。
【0067】
回路検証装置1は、回路基板上に配設されたFPGA2、CPU3、メモリ4、メモリ5及び通信用デバイス6等を有し、これらはバス7を介してそれぞれ接続されている。FPGA2、メモリ4、メモリ5及び通信用デバイス6等は、1つのアドレス空間内の資源としてCPU3又はCPU3にて実行されるプログラムからアクセスすることが可能となるように管理されている。
【0068】
図2は、本発明の実施の形態1に係る回路検証装置1のCPU3のアドレス空間の一構成例を示す模式図である。なお、本図においてはCPU3が32bitのアドレス空間を有する場合について図示してある。CPU3のアドレス空間には、FPGA2内の資源を指定するためのアドレス空間と、メモリ4の記憶領域を指定するためのアドレス空間と、メモリ5の記憶領域を指定するためのアドレス空間と、通信用デバイス6の資源を指定するためのアドレス空間とが含まれている。更に、FPGA2内の資源を指定するためのアドレス空間には、後述する制御レジスタ30及び内部メモリ44の各記憶領域を指定するためのアドレス空間が含まれている。よって、CPU3は、アドレスとデータとを指定するのみでデータの書き込みを行うことができ、また、アドレスを指定するのみでデータの読み出しを行うことができるようにしてある。
【0069】
メモリ4は、FPGA2へ入力する入力データを一時的に蓄えるためのバッファとして用いられ、入力データはPC10から通信用デバイス6を介して与えられるようにしてある。メモリ5は、FPGA2から出力された出力データを一時的に蓄えるためのバッファとして用いられ、出力データは通信用デバイス6を介してPC10へ与えるようにしてある。なお、図1においてはメモリ4及びメモリ5の2つのメモリを設けてあるが、メモリ4及びメモリ5を1つのメモリで代用することも可能である。
【0070】
通信用デバイス6は、USBケーブル又はLANケーブル等に接続され、通信規約に基づいてPC10との間でデータの送受信を行うものである。PC10から受信したデータはメモリ4へ蓄えるようにしてあり、PC10へデータを送信する場合はメモリ5に蓄えられたデータを読み出して送信するようにしてある。
【0071】
FPGA2は、SRAM技術を利用した記憶素子を備えるFPGAであり、記憶素子に記憶された回路データを変更することにより、FPGA2の内部に構成される回路を変更することが可能にしてある。SRAM技術を用いているため、回路検証装置1の電源投入直後のFPGA2内には図示のような各回路ブロックは構成されておらず、電源投入後にPC10から回路データを回路検証装置1へ送信することによって、FPGA2内に各回路ブロックが構成されるようにしてある。なお、回路データを記憶したROMを回路検証装置1内に配設し、電源投入後にこのROMから回路データを読み出す構成とすることもできる。
【0072】
PC10からの回路データによりFPGA2内には、設計者が設計した検証対象のターゲット回路20、ターゲット回路20へ入力信号を与えるテストパタン生成回路25、ターゲット回路20の出力信号又は内部信号の値を記憶するための内部メモリ44、FPGA2外部のメモリ5又は内部メモリ44のいずれか一方に記憶先を切り替えるメモリ切替部42、並びにこれら各部が動作するための設定値又は入力値等を記憶する制御レジスタ30等の回路ブロックが設けられている。
【0073】
ターゲット回路20は、回路検証装置1を用いて検証を行う対象となる回路であり、設計者により設計され、検証の終了後にレイアウトが作成されて半導体のICとして製造されるものである。テストパタン生成回路25は、ターゲット回路20の入力信号を生成する検証のための回路であり、ターゲット回路20毎に設計者がそれぞれ設計する。図1では一例として、メモリ4に記憶された入力データが与えられ、これを所定のタイミングでターゲット回路20へ与えるテストパタン生成回路25を図示してある。このとき、ターゲット回路20への入力信号の数がバス7の信号数より多い場合には、テストパタン生成回路25がメモリ4から与えられる入力データを一時的に蓄えて出力する構成とすればよいが、この場合にはテストパタン生成回路25がターゲット回路20より高速に動作する構成であることが望ましい。なお、テストパタン生成回路25の仕様はターゲット回路20の仕様毎に異なるものでよいため、図示のものに限らない。また、テストパタン生成回路25が必要ない場合には、FPGA2内にこれが含まれていなくてもよい。
【0074】
テストパタン生成回路25の出力は、マルチプレクサ(以下、MUXという)40を介してターゲット回路20に入力信号として与えられるようにしてある。MUX40は、制御レジスタ30に記憶された設定値に応じて、テストパタン生成回路25からの入力信号か、FPGA2の入力端子から入力される入力信号かのいずれか一方を選択してターゲット回路20へ与えるようにしてある。FPGA2の入力端子には、例えば既に完成済みの別のICからの出力信号を入力することができ、また、例えばテストパタン生成回路25が生成できないテストパタンをシグナルジェネレータなどの機器により生成して入力することができる。
【0075】
MUX40から入力信号が与えられて動作したターゲット回路20の出力信号は、FPGA2の出力端子から出力されると共に、メモリ切替部42を介して外部のメモリ5又は内部メモリ44に記憶されるようにしてある。また、ターゲット回路20の内部信号はMUX41へ与えられている。MUX41は、例えばターゲット回路20から観測用の信号として与えられた2048本の内部信号から、制御レジスタ30に記憶された設定値に応じて64本の内部信号を選択して出力し、メモリ切替部42へ与えるようにしてある。
【0076】
メモリ切替部42は、ターゲット回路20及びMUX41から与えられた信号を、制御レジスタ30に記憶された設定値に応じて、メモリ5又は内部メモリ44のいずれか一方に与えるようにしてある。更に、通信用デバイス6を介してPC10に搭載されたメモリにターゲット回路20からの信号を与えることができる構成であってもよい。内部メモリ44は、FPGA2内のSRAM資源又はレジスタ資源等により構成され、メモリ切替部42から与えられたターゲット回路20の出力信号及び内部信号の値を記憶するようにしてあり、記憶した値をメモリ5へ転送するようにしてある。なお、メモリ5は、内部メモリ44より大容量であることが望ましい。また、内部メモリ44は、CPU3のアドレス空間内にあるため、CPU3が直接にアクセスすることが可能であり、メモリ5を介することなく通信用デバイス6からPC10へ記憶した値を転送することも可能である。
【0077】
また、FPGA2内に設けられた内部メモリ44は、図2に示したようにCPU3のアドレス空間内に存在しているためCPU3から直接にアクセスすることが可能であり、FPGA2内に構成される論理回路からアクセスすることも可能である。これはFPGA2内の論理回路及びCPU3が、内部メモリ44を所謂共有する構成である。また、回路検証装置1のメモリ4及びメモリ5についてもこれと同様に、FPGA2内の論理回路及びCPU3が共有する構成であってもよく、この場合にはFPGA2内に構成できない大容量のメモリ4及びメモリ5を、FPGA2内に構成された論理回路が利用できるという利点がある。
【0078】
制御レジスタ30は、CPU3のアドレス空間内にあるため、CPU3が直接にアクセスして値を設定することが可能であり、CPU3が制御レジスタ30の値を変更することによって、MUX40による入力信号の選択、又はMUX41による内部信号の選択等を変更することができるようにしてある。図3は、本発明の実施の形態1に係る回路検証装置1の制御レジスタ30の一構成例を示す模式図である。
【0079】
制御レジスタ30には、MUX41によるターゲット回路20の内部信号の選択に係る設定値を記憶する観測信号選択レジスタと、ターゲット回路20、テストパタン生成回路25、MUX40及びメモリ切替部42へ与えられ、これらの回路の動作に係る設定値を記憶するデバッグ設定レジスタと、ターゲット回路20へ直接に入力するデータを記憶する入力データレジスタとが含まれている。これらのレジスタを用いた回路の検証方法については後述する。
【0080】
なお、図1にて図示は省略するが、回路検査装置1は、FPGA2内のターゲット回路20及びテストパタン生成回路25を動作させるためのクロック信号を出力するクロック信号生成回路と、クロック信号生成回路が生成したクロック信号を基に、クロック信号の整数倍の周波数の信号を生成して出力する周波数逓倍回路とを備えている。周波数逓倍回路は、入力された信号の高調波成分を利用して整数倍の周波数の信号を生成する回路であり、例えばクロック信号の4倍の周波数の信号(以下、4倍クロック信号という)を出力する。FPGA2内の制御レジスタ30及び内部メモリ44は、周波数逓倍回路が出力する4倍クロック信号に同期して動作することができるようにしてある。
【0081】
図4は、本発明の実施の形態1に係る回路検証装置1を利用したデジタル回路の設計フローの一例を示すフローチャートである。デジタル回路の設計では、まず、ターゲット回路20のビヘイビアレベル設計を行う(ステップS1)。ビヘイビアレベル設計では、ターゲット回路20の機能、仕様及びアーキテクチャ等を決定する。C言語などによるシステムレベル記述言語を用いて記述し、検証を行ってもよい。次いで、決定した機能、仕様及びアーキテクチャ等を基に、ターゲット回路20をHDLにて記述し、RTL設計を行う(ステップS2)。なお、ビヘイビアレベル設計の段階でシステムレベル記述言語による記述を行った場合には、これを基にRTLの回路を自動生成してもよい。RTLの回路を作成した後、シミュレータを用いてターゲット回路20のRTLシミュレーションを行い(ステップS3)、RTLシミュレーションにてエラーが発見されない場合には次のステップへ進む。なお、エラーが発見された場合には、エラーの原因を特定し、ビヘイビアレベル設計又はRTL設計を再度行う必要がある。
【0082】
RTLシミュレーション終了後、FPGA2のための回路作成を行う(ステップS4)。この回路は、ステップS1〜S3にて作成したターゲット回路20を含み、これにテストパタン生成回路25及びMUX40等を追加したものであり、HDLにて記述されたRTLの回路である。また、HDLにより記述されたこの回路には、ターゲット回路20及びテストパタン生成回路25等と、予め用意された制御レジスタ30、MUX41、メモリ切替部42、及び内部メモリ44等との接続情報が含まれる。なお、この接続情報は、設計者が記述してもよく、専用のツールを用いて自動的に生成してもよい。
【0083】
次いで、FPGA2用の論理合成ツールを用いて、ステップS4にて作成した回路を論理合成し(ステップS5)、回路データを作成する。このときに、予め用意された制御レジスタ30、MUX41、メモリ切替部42及び内部メモリ44等の回路の構成が自動的に読み込まれ、ターゲット回路20、テストパタン生成回路25及びMUX40等に接続され、図1のFPGA2内に示す構成の回路データが作成される。
【0084】
論理合成終了後、作成された回路データをPC10から回路検証装置1へ与えてFPGA2に回路を構成し、回路検証装置1による回路検証を行う(ステップS6)。この検証にてエラーが発見されない場合には、半導体ICの製造を行うプロセスに適した条件でターゲット回路20の論理合成を行い(ステップS7)、ゲートレベルの回路を作成する。なお、ステップS6の検証にてエラーが発見された場合には、エラーの原因を特定し、ビヘイビアレベル設計又はRTL設計を再度行う必要がある。ゲートレベルの回路を作成した後、シミュレータを用いてゲートレベルシミュレーションを行う(ステップS8)。
【0085】
ゲートレベルシミュレーションの終了後、配置配線ツールを用いてターゲット回路20のレイアウトを作成し(ステップS9)、作成したレイアウトから遅延情報を抽出してバックアノテーションを行う(ステップS10)。バックアノテーション終了後、ターゲット回路20のレイアウトを基にマスクを作成し(ステップS11)、作成したマスクを用いてICを製造する(ステップS12)。
【0086】
以上のフローのステップS6にて行う回路検証では、本実施の形態に係る回路検証装置1を用いることによって、ステップS5の論理合成を繰り返し行うことなく、制御レジスタ30を利用して種々の検証を行うことができる。例えば、
(1)観測する内部信号の変更
(2)入力信号の変更
(3)回路ブロック単位での動作検証
(4)固定値の変更
(5)回路ブロックの置き換え
(6)データ入力
等を行うことができる。
【0087】
(1)観測する内部信号の変更
設計者は、ターゲット回路20内の各ノードの内部信号をメモリ5又は内部メモリ44に記憶させ、これを読み出すことにより観測することができる。このとき、設計者は制御レジスタ30の観測信号選択レジスタの値を変更することによって、メモリ5又は内部メモリ44に記憶する内部信号を変更することができるようにしてある。図5は、観測する内部信号の変更を行う方法を説明するための模式図であり、一例として、観測可能な2048本の内部信号がターゲット回路20に存在し、このうちの32本の内部信号を選択して観測する場合を図示してある。また、図6は、クロック信号の供給関係を示すブロック図であり、内部信号の観測に関するブロックのみを抜き出して図示してある。
【0088】
観測する内部信号の変更は、制御レジスタ30の観測信号選択レジスタ及びMUX41により実現される。MUX41は、64本の入力信号から1の信号を選択して出力するマルチプレクサを32個備えている(mux0〜mux31)。mux0〜mux31は、それぞれ制御レジスタ30の観測信号選択レジスタに接続されており、観測信号選択レジスタに記憶された設定値に応じて、64本の内部信号のうちの1つを観測信号として出力するようにしてある。MUX41から出力された32本の観測信号0〜31は、メモリ切替部42によりメモリ5又は内部メモリ44へ与えられ、その値が記憶されるようにしてある。よって、観測信号選択レジスタの設定値を変更するのみで観測する内部信号を変更することができる。
【0089】
また、水晶振動子などを有するクロック信号生成回路46が出力するクロック信号は、ターゲット回路20へ与えられると共に、周波数逓倍回路47へ与えられている。周波数逓倍回路47を用いて、ターゲット回路20を動作させるクロック信号の4倍の周波数を有する4倍クロック信号を生成し、4倍クロック信号に同期させて制御レジスタ30の設定値を変更すると共に、4倍クロック信号に同期させてメモリ5及び内部メモリ44の動作を行うことにより、ターゲット回路20の1クロックの動作中にMUX41の選択を4回行うことができるため、32×4=128本の内部信号の値をメモリ5又は内部メモリ44に記憶して観測することができる。なお、メモリ切替部42の切替は、制御レジスタ30のデバッグ設定レジスタに記憶された値に応じて行われるようにしてある。
【0090】
(2)入力信号の変更
設計者は、ターゲット回路20へ与える入力信号を、テストパタン生成回路25が生成する入力信号か、又はFPGA2の入力端子から入力される入力信号かのいずれかから選択することができる。このとき、設計者は制御レジスタ30のデバッグ設定レジスタの値を変更することによって、入力信号の選択を変更することができるようにしてある。図7は、入力信号の変更を行う方法を説明するための模式図であり、一例としてターゲット回路20に32本の入力信号を入力する場合を図示してある。
【0091】
入力信号の変更は、制御レジスタ30のデバッグ設定レジスタ及びMUX40により実現される。MUX40は、2つの入力信号のいずれか1つを選択して出力するマルチプレクサを32個備えている(mux0〜mux31)。mux0〜mux31は、制御レジスタ30の同じデバッグ設定レジスタに接続されており、デバッグ設定レジスタに記憶された設定値に応じて選択を行い、入力信号としてターゲット回路20へ与えるようにしてある。よって、デバッグ設定レジスタの値を変更するのみで、テストパタン生成回路25が生成する入力信号(テストパタン0〜31)か、FPGA2の入力端子0〜31から入力される入力信号かのいずれかをターゲット回路20へ入力信号として与えることができる。
【0092】
(3)回路ブロック単位での動作検証
大規模のデジタル回路を設計する場合、回路全体を機能別に分割して小さな回路ブロックとして設計し、複数の回路ブロックを接続して回路全体を構成することが多い。よって、ターゲット回路20が複数の回路ブロックを含み、ターゲット回路20の検証を行った結果、エラーが発生した場合、エラーの原因となる回路ブロックを特定することが望まれる。本実施の形態に係る回路検証装置1は、特定の回路ブロックへ任意の入力信号を与えることができ、上述のようにMUX41を用いて特定の回路ブロックの内部信号を観測することができるため、回路ブロック単位で動作検証を行うことができる。
【0093】
図8は、回路ブロック単位での動作検証を行う方法を説明するための模式図であり、一例としてターゲット回路20が4つの回路ブロック(回路ブロック0〜3)を有する場合を図示してある。なお、説明の簡略化のために各回路ブロックは1入力1出力のブロックとして図示してあるが、これに限るものではない。
【0094】
ターゲット回路20の回路ブロック0の出力信号がmux1(マルチプレクサ)を介して回路ブロック1へ入力され、回路ブロック1の出力信号がmux2を介して回路ブロック2へ入力され、回路ブロック2の出力信号がmux3を介して回路ブロック3へ入力されるように、mux1〜3が各回路ブロック間に挿入されている。なお、ターゲット回路20へのmux1〜3の挿入は、設計者が行う構成であってもよく、論理合成を行う前に自動的に行う構成であってもよい。
【0095】
mux1〜3は、2つの入力端子から入力される入力信号のいずれか一方を選択して出力するものであり、入力端子の一方には各回路ブロックの出力信号が入力され、他方には、MUX41の出力が接続されて、テストパタン生成回路25又はFPGA2の入力端子からの信号を入力することができるようにしてある。また、mux1〜3の選択は制御レジスタ30のデバッグ設定レジスタに記憶された設定値に応じて行われるようにしてある。テストパタン生成回路25を、ターゲット回路20の回路ブロック0のみではなく、他の回路ブロックへの入力信号を生成可能な構成としておくことによって、生成した入力信号を回路ブロック1〜3へ与えることができ、また、FPGA2の入力端子から直接入力した入力信号を与えることもできる。
【0096】
なお、mux1〜3の入力端子の他方に、制御レジスタ30の入力データレジスタを接続してもよく、この場合には、入力データレジスタに予め記憶したデータを入力することができ、データレジスタの値を変更することで各回路ブロックを動作させることができる。また、mux1〜3を3入力のマルチプレクサとし、回路ブロックの出力信号、MUX40の出力信号又は入力データレジスタの値のいずれかを選択する構成であってもよい。
【0097】
例えば、回路ブロック1の動作検証を行う場合、デバッグ設定レジスタ1の設定値を変更して、mux1がMUX40の出力信号を回路ブロック1へ与えるようにすると共に、制御レジスタ30の観測信号選択レジスタの設定値を変更して回路ブロック1の出力信号(内部信号1)をMUX41により選択する。更に、MUX40がテストパタン生成回路25の出力信号をターゲット回路20へ与えるように設定を変更する。これにより、メモリ4に一時的に記憶させた入力データを、テストパタン生成回路25を介して、回路ブロック1へ与え、このときの動作結果である内部信号1を観測することができる。
【0098】
この機能を利用することによって、以下のような検証を行うことができる。ターゲット回路20の出力信号にエラーが発生した場合に、まず、回路ブロック0の出力信号(内部信号0)を観測してエラーの有無を調べる。回路ブロック0の出力信号にエラーが発生していなければ、次に回路ブロック1の出力信号(内部信号1)を観測してエラーの有無を調べる。このように各ブロックを順に調べ、出力信号にエラーが発生している回路ブロックを特定した後に、テストパタン発生回路25からMUX40を介してエラーが発生している回路ブロックへ様々なテストパタンを入力し、エラーの原因を調べることができる。
【0099】
また、ターゲット回路20の回路構成が、図8に示すような4つの回路ブロックからなる単純な構成ではなく、複数の階層構造を有する複数の回路ブロックが相互に接続された複雑な構成の場合であっても、各回路ブロックの間にmuxを介在させて信号の授受を行うことで上述の検証を行うことが可能である。また、この機能を利用することにより、1つの回路ブロックをターゲット回路とみなして検証を行うことができ、1つの回路ブロックに対して上述した検証及び後述する検証の全ての検証を行うことができる。
【0100】
(4)固定値の変更
例えば、ターゲット回路20がカウンタ回路を有し、このカウンタ回路が特定の値をロードして値が0になるまでカウントダウンする回路である場合、設計者はカウンタの特定の値を固定値として設計するが、検証の段階ではこの固定値を変更して動作させたいことがある。カウンタ回路以外でも、例えば演算回路のオフセット値又は演算テーブル等を固定値として与える場合は同様である。本実施の形態に係る回路検証装置1は、制御レジスタ30の入力データレジスタを用いることで、論理合成を再度行うことなく、固定値の変更を行うことができる。
【0101】
図9は、固定値の変更を行う方法を説明するための模式図であり、一例としてカウンタ回路の固定値を変更する場合を図示してある。カウンタ回路に制御レジスタ30の入力データレジスタを接続し、カウンタ回路が固定値に代えて入力データレジスタが記憶した設定値をロードする構成とすることにより、設計者が入力データレジスタの設定値を変更するのみで簡単にカウンタ回路の動作を変更することができる。なお、入力データレジスタとカウンタ回路との接続は、設計者が行う構成であってもよく、論理合成を行う前に自動的に行う構成であってもよい。
【0102】
(5)回路ブロックの置き換え
ターゲット回路20が複数の回路ブロックを有し、このうちの1つの回路ブロックが特定の演算を行う回路ブロックであり、演算のアルゴリズムとして複数のアルゴリズムを選択可能である場合、いずれのアルゴリズムが最適であるかを検証するために、回路ブロックを置き換えて動作させたいことがある。また、アルゴリズムが同じであっても、回路規模、演算速度又はエラーの発生頻度等の違いにより回路構成が異なる複数の回路ブロックを置き換えて動作させたい場合もある。このような場合に、本実施の形態に係る回路検証装置1は、制御レジスタ30のデバッグ設定レジスタを用いることで、論理合成を再度行うことなく、回路ブロックの置き換えを行うことができる。
【0103】
図10は、回路ブロックの置き換えを行う方法を説明するための模式図であり、一例としてターゲット回路20が3つの回路ブロックにより動作するものであり、このうちの1つの回路ブロック(回路ブロック1a又は1b)を置き換える場合を図示してある。なお、説明の簡略化のために各回路ブロックは1入力1出力のブロックとして図示してあるが、これに限るものではない。
【0104】
置き換えを行う2つの回路ブロック1a及び1bは、入力端子及び出力端子の数が同じであり(必ずしも同じでなくてもよい)、回路ブロック0の出力端子が回路ブロック1a及び1bの入力端子にそれぞれ接続されている。また、回路ブロック1a及び1bの出力端子がmux(マルチプレクサ)に接続され、muxによりいずれか一方からの出力信号が選択されて回路ブロック2へ与えられるようにしてある。muxは制御レジスタ30のデバッグ設定レジスタに記憶された設定値に応じて選択を行うようにしてある。
【0105】
これにより、設計者はデバッグ設定レジスタの設定値を変更することによって、回路ブロック1a又は1bのいずれか一方の出力信号を回路ブロック2へ与えることができ、論理合成を再度行うことなく、回路ブロック1aを用いた場合及び回路ブロック1bを用いた場合の2つの場合のターゲット回路20の動作を検証することができる。なお、回路ブロック1a及び1bの設計は設計者が行う必要があるが、回路ブロック1a及び1b並びに他の回路ブロックの接続と、muxの挿入とは、設計者が行う構成であってもよく、論理合成を行う前に自動的に行う構成であってもよい。
【0106】
(6)データ入力
本実施の形態に係る回路検証装置1は、一の回路ブロックから他の回路ブロックへ与えられる入力信号に代えて、制御レジスタ30のデータレジスタに記憶されたデータを他の回路ブロックへ与えることができる。図11は、回路ブロックへのデータ入力を行う方法を説明するための模式図であり、一例としてターゲット回路が4つの回路ブロックにより動作するものであり、3つの回路ブロック(回路ブロック0〜2)の出力信号が、1つの回路ブロック(回路ブロック3)へ入力信号として与えられる場合を示してある。また、一例として回路ブロック3は、回路ブロック0〜2から与えられるデータの乗算及び加算を行って出力する演算回路を示してある。なお、これらの構成は一例であって、これに限るものではない。
【0107】
ターゲット回路20には3つのmux0〜2が設けられている。回路ブロック0の出力及び入力データレジスタ0がmux0に接続され、デバッグ設定レジスタ0に記憶された値に応じて、回路ブロック0の出力信号又は入力データレジスタ0に記憶されたデータのいずれか一方が回路ブロック3へ入力されるようにしてある。同様にして、回路ブロック1の出力及び入力データレジスタ1がmux1に接続され、デバッグ設定レジスタ1に記憶された値に応じて、回路ブロック1の出力信号又は入力データレジスタ1に記憶されたデータのいずれか一方が回路ブロック3へ入力されるようにしてあり、回路ブロック2の出力及び入力データレジスタ2がmux2に接続され、デバッグ設定レジスタ2に記憶された値に応じて、回路ブロック2の出力信号又は入力データレジスタ2に記憶されたデータのいずれか一方が回路ブロック3へ入力されるようにしてある。
【0108】
回路ブロック3は、回路ブロック0及び1から与えられた入力信号の乗算と、この乗算結果及び回路ブロック2から与えられた入力信号の加算とを行って出力する回路ブロックである。デバッグ設定レジスタ0〜2に、mux0〜2が入力データレジスタ0〜2に記憶されたデータを出力するように設定値を記憶させることによって、回路ブロック3へ入力データレジスタ0〜2に記憶された任意のデータを入力することができる。このときに、後述のようにターゲット回路20の動作を一時的に停止させることが可能である場合には、動作を停止させて入力データレジスタの値を変更することで、制御レジスタ30を擬似的な回路ブロック0〜2として利用することができる。なお、ターゲット回路20へのmux0〜2の挿入は、設計者が行う構成であってもよく、論理合成を行う前に自動で行う構成であってもよい。
【0109】
以上の構成の回路検証装置1においては、FPGA2内にCPU3が直接アクセスすることが可能な制御レジスタ30を設け、制御レジスタ30を利用してターゲット回路20及びその他の回路の動作を変更する構成としたため、上述の(1)〜(6)のような種々の検証を行うことができ、ターゲット回路20の検証精度を高めることができる。また、このときに論理合成を再度行う必要がないため、検証期間を短縮することができる。
【0110】
なお、本実施の形態に係る回路検証装置1は、FPGA2を1つ備える構成としたが、これに限るものではなく、複数のFPGAを備える構成であってもよい。また、FPGA2及びCPU3を同じ基板に設ける構成としたが、これに限るものではなく、それぞれを別の基板に設けて基板を電気的に接続する構成としてもよい。また、FPGA2はSRAM型のFPGAとしたが、これに限るものではなく、フラッシュ型又はアンチヒューズ型のFPGAを用いてもよく、FPGA以外のプログラマブル素子を用いてもよい。また、回路検証装置1がCPU3を1つ備える構成としたが、これに限るものではなく、2つ以上のCPUを備える構成であってもよい。同様に、通信用デバイス6を複数備える構成であってもよく、この場合には、PC10と通信用デバイス6との間でより多くのデータの送受信を行うことができるため、通信を高速化できるという利点があり、また、複数のPC10を回路検証装置1に接続することができるという利点がある。また、CPU3、メモリ4、メモリ5及び通信用デバイス6をそれぞれ別に設けてバス7を介して接続する構成としたが、これに限るものではなく、CPU3、メモリ4、メモリ5又は通信用デバイス6のいくつか又は全てをFPGA2内に構成することも可能である。
【0111】
また、ターゲット回路20の内部信号のみをMUX41により選択してメモリ切替部42へ与え、ターゲット回路20の出力信号はメモリ切替部42へ直接与える構成としたが、これに限るものではなく、ターゲット回路20の出力信号も内部信号と共にMUX41により選択してメモリ切替部42へ与える構成としてもよい。また、FPGA2の出力端子からMUX41の出力信号を出力する構成としてもよい。また、FPGA2の制御レジスタ30がCPU3のアドレス空間内にあり、CPU3が直接アクセスすることが可能な構成としたが、これに限るものではなく、CPU3及び制御レジスタ30の間に介在するインタフェース回路をFPGA2内又はFPGA2外に設ける構成であってもよい。
【0112】
また、制御レジスタ30が観測信号選択レジスタ、デバッグ設定レジスタ及び入力データレジスタの3種のレジスタを有する構成としたが、これらのレジスタはハードウェア的な構成は同一であるため、とくに区別する必要はない。また、制御レジスタ30を利用した回路の検証は上述の(1)〜(6)に限るものではなく、その他にも様々な目的に制御レジスタ30を用いることが可能である。制御レジスタ30に設計者が自由に利用できる領域を設けることにより、ターゲット回路20に適した検証を設計者が独自に行うことができる。
【0113】
(変形例1)
図12は、本発明の実施の形態1の変形例1に係る回路検証装置の構成を示すブロック図である。変形例1に係る回路検証装置81は、図1に示す回路検証装置1に備えられていた、ターゲット回路20の出力信号及び内部信号の値を記憶するための内部メモリ44、メモリ4及びメモリ5等の記憶素子を備えず、ターゲット回路20の出力信号及び内部信号を通信用デバイス6からPC10へ直接送信するようにしてある。通信用デバイス6からPC10へ与えられた信号は、図示は省略するがPC10に備えられたメモリに記憶するようにしてある。図1に示す回路検証装置1にはCPU3が備えられて記憶素子の管理を行うようにしていたが、変形例に係る回路検証装置81はこの必要がないため、CPU3より小規模な制御用チップ3aのみを備えればよい。よって、PC10のメモリを利用することにより、回路検証装置を低コスト化することができる。
【0114】
(変形例2)
図13は、本発明の実施の形態1の変形例2に係る回路検証装置の構成を示すブロック図である。変形例2に係る回路検証装置91は、設計者が設計したデジタル回路を構成することができる4つのFPGA2a、2b、2c、2dを備えている。4つのFPGA2a、2b、2c、2dは、バス7を介してCPU3、メモリ4、メモリ5及び通信用デバイス6等に接続されており、CPU3がメモリ4、メモリ5及び通信用デバイス6と共に、FPGA2a、2b、2c、2dを1つのアドレス空間内の資源としてアクセスすることができるようにしてある。
【0115】
図14は、本発明の実施の形態1の変形例2に係る回路検証装置91のCPU3のアドレス空間の一構成例を示す模式図である。CPU3のアドレス空間には、FPGA2a、2b、2c、2d内の資源を指定するためのアドレス空間が連続的に設けられ、更にメモリ4の記憶領域を指定するためのアドレス空間と、メモリ5の記憶領域を指定するためのアドレス空間と、通信用デバイス6の資源を指定するためのアドレス空間とが設けられている。
【0116】
これにより、CPU3は4つのFPGA2a、2b、2c、2dを1つの大きなFPGAとして扱うことができ、1つのFPGA内に収まらない大規模なデジタル回路の検証を行うことができる。なお、変形例2においては、回路検証装置91が4つのFPGA2a、2b、2c、2dを備える構成としたが、これに限るものではなく、搭載するFPGAの数は2つであってもよく、3つであってもよく、又は5つ以上であってもよい。また、アドレス空間内に、FPGA2a、2b、2c、2d内の資源を指定するためのアドレスを連続的に設ける構成としたが、これに限るものではなく、非連続であってもよい。
【0117】
(実施の形態2)
図15は、本発明の実施の形態2に係る回路検証装置の構成を示すブロック図である。実施の形態2に係る回路検証装置101は、ターゲット回路20の出力信号及び内部信号の期待値を記憶する期待値メモリ150がバス7を介して接続され、期待値メモリ150はCPU3のアドレス空間内にあり、CPU3が直接アクセスすることが可能にしてある。また、FPGA2内に構成された論理回路とCPU3が期待値メモリ150を共有するようにしてあり、FPGA2内の論理回路が期待値メモリ150に直接にアクセスすることが可能にしてある。
【0118】
また、FPGA2内には、期待値メモリ150に記憶された期待値と、MUX41が出力するターゲット回路20の内部信号又は出力信号の値とを比較する比較回路151が設けられている。比較回路151は、MUX41が出力する内部信号又は出力信号の値に対応する期待値を期待値メモリ150から読み出して比較し、例えば、全ての値が一致する場合には”1”を出力し、値が一致しないものが存在する場合には”0”を出力するようにしてある。また、比較回路151が比較を行うか否かは、制御レジスタ30のデバッグ設定レジスタに記憶された設定値に応じて決定され、比較を行わない場合には”1”を出力するようにしてある。
【0119】
ターゲット回路20を動作させるためのクロック信号は、FPGA2の入力端子からクロック供給部152に入力され、クロック供給部152を介してターゲット回路20へ与えられるようにしてある。クロック供給部152は、比較回路151の比較結果に応じて、ターゲット回路20へのクロック信号の供給/非供給を切り替えるものであり、最も簡単な構成では、例えば比較回路151が上述のように比較結果を”0”又は”1”で出力する場合、AND素子を1つ用いることで実現可能である。
【0120】
以上の構成の回路検証装置101では、ターゲット回路20の内部信号又は出力信号の期待値を予め期待値メモリ150に記憶させ、比較回路151により比較を行って、比較の結果に応じてターゲット回路20へのクロック信号の供給をクロック供給部152が停止させる構成とすることにより、ターゲット回路20の動作中にエラーが生じた場合に、ターゲット回路20の動作を自動的に停止させることができる。なお、比較回路151及びクロック供給部152等の追加及び期待値メモリ150との接続等は、設計者が行う構成であってもよく、論理合成を行う前に自動的に行う構成であってもよい。また、期待値メモリ150を、FPGA2内に設ける構成としてもよい。また、MUX41の出力信号の値と期待値メモリ150の期待値とを比較する構成としたが、これに限るものではなく、例えば内部メモリ44に記憶されたターゲット回路20の内部信号又は出力信号の値と期待値メモリ150の期待値とを比較する構成であってもよい。
【0121】
なお、実施の形態2に係る回路検証装置101のその他の構成は、実施の形態1に係る回路検証装置1の構成と同様であるため、対応する箇所には同じ符号を付して詳細な説明を省略する。
【0122】
(実施の形態3)
図16は、本発明の実施の形態3に係る回路検証装置の構成を示すブロック図である。実施の形態3に係る回路検証装置201では、ターゲット回路20を動作させるクロック信号が、FPGA2の入力端子からFPGA2内のクロック供給部252へ入力され、クロック供給部252を介してターゲット回路20にクロック信号が与えられるようにしてある。クロック供給部252は、クロックコントローラ251から与えられるクロック停止信号に応じて、ターゲット回路20へのクロック信号の供給/非供給を切り替えて行うようにしてある。
【0123】
クロックコントローラ251は、クロック供給部252の出力信号であるクロック信号により動作するものであり、制御レジスタ230のデバッグ設定レジスタに記憶されたクロック停止の条件をなす設定値に基づいてクロック停止信号をクロック供給部252へ与え、ターゲット回路20へのクロック信号の供給を停止させるようにしてある。また、CPU3から与えられる停止解除命令により、クロック供給部252のクロック供給を再開させるようにしてある。よって、設計者は、制御レジスタ230のデバッグ設定レジスタの設定値を変更するのみで、ターゲット回路20の動作を任意のタイミングで停止させることができ、停止させた後に停止解除命令を与えることでターゲット回路20の動作を再開させることができる。
【0124】
図17は、本発明の実施の形態3に係る回路検証装置201の制御レジスタ230の構成を示す模式図である。制御レジスタ230は、実施の形態1に係る制御レジスタ30とハードウェア構成は同じであるが、デバッグ設定レジスタに、ステップ実行開始設定を記憶するレジスタと、ステップ実行終了設定を記憶するレジスタと、ステップ数設定を記憶するレジスタとが設けられている。これらには、ターゲット回路20を動作させるクロック信号のクロック数を設定する。
【0125】
実施の形態3に係る回路検証装置201は、上述の3つのレジスタに設定値を記憶させることによって、ターゲット回路20を所謂ステップ実行することができるようにしてある。ターゲット回路20の動作開始後、クロック信号のクロック数が、ステップ実行開始設定として設定されたクロック数に達した場合に、ターゲット回路20へのクロック信号の供給を停止することで、ターゲット回路20の動作を停止させるようにしてある。また、動作の停止後に停止解除命令を与えることでターゲット回路20の動作を再開させることができ、その後、ステップ数設定として設定されたクロック数毎にターゲット回路20の動作を停止させるようにしてある。ターゲット回路20の動作の停止及び再開を繰り返し行って、クロック信号のクロック数がステップ実行終了設定として設定されたクロック数に達した場合、ステップ実行を終了し、ターゲット回路20へのクロック信号の供給を停止させることなく、通常の動作を行うようにしてある。
【0126】
図18は、本発明の実施の形態3に係る回路検証装置201のクロックコントローラ251の一構成例を示すブロック図である。クロックコントローラ251は、クロック供給部252の出力であるクロック信号に応じて値を増加させる第1カウンタ261及び第2カウンタ262を有している。第1カウンタ261は、ターゲット回路20の動作開始からのクロック信号のクロック数をカウントするためのものであり、第2カウンタ262は、ターゲット回路20の動作を停止させる間隔、所謂ステップ数をカウントするためのものである。なお、第2カウンタ262は、後述の判定部266によりリセットすることができるようにしてある。
【0127】
また、クロックコントローラ251は、第1カウンタ261の値及び制御レジスタ230にステップ実行開始設定として設定されたクロック数を比較する比較回路263と、第1カウンタ261の値及び制御レジスタ230にステップ実行終了設定として設定されたクロック数を比較する比較回路264と、第2カウンタ262の値及び制御レジスタ230にステップ数設定として設定されたクロック数を比較する比較回路265とを有しており、比較回路263、264及び265の比較結果は判定部266へ与えられる。
【0128】
判定部266は、比較回路263、264及び265の比較結果に応じて、クロック停止信号をクロック供給部252へ与えてターゲット回路20へのクロック信号の供給を停止させ、ターゲット回路20の動作を停止させるようにしてある。また、CPU3から停止解除命令が与えられた場合には、クロック供給部252のクロック信号の供給を再開させて、ターゲット回路20の動作を再開させるようにしてある。例えばクロック供給部252は、クロック停止信号が”1”の場合にターゲット回路20へのクロック信号の供給を停止し、クロック停止信号が”0”の場合にクロック信号の供給を行うようにしてある。
【0129】
図19は、本発明の実施の形態3に係る回路検証装置201のクロックコントローラ251の判定部266が行うクロック信号の供給停止処理の手順を示すフローチャートである。ターゲット回路20の動作が開始された後、判定部266は、比較回路263の比較結果を取得し(ステップS31)、第1カウンタ261の値とステップ実行開始設定として記憶されたクロック数とが一致するか否かを調べる(ステップS32)。一致しない場合は(S32:NO)、ステップS31へ戻り、一致するまで待機する。一致する場合は(S32:YES)、クロック停止信号として”1”を出力し、クロック供給部252によるターゲット回路20へのクロック信号の供給を停止し(ステップS33)、ターゲット回路20の動作を停止させる。
【0130】
クロック信号の供給を停止した後、CPU3から停止解除命令が与えられたか否かを調べ(ステップS34)、停止解除命令が与えられていない場合には(S34:NO)、ステップS33へ戻り、停止解除命令が与えられるまで待機する。停止解除命令が与えられた場合(S34:YES)、クロック停止信号として”0”を出力し、クロック供給部252によるターゲット回路20へのクロック信号の供給停止を解除し(ステップS35)、ターゲット回路20の動作を再開させる。
【0131】
次いで、第2カウンタ262の値をリセットし(ステップS36)、比較回路264の比較結果を取得して(ステップS37)、第1カウンタ261の値とステップ実行終了設定として記憶されたクロック数とが一致するか否かを調べる(ステップS38)。一致しない場合(S38:NO)、更に比較回路265の比較結果を取得して(ステップS39)、第2カウンタ262の値とステップ数設定として記憶されたクロック数とが一致するか否かを調べ(ステップS40)、一致しない場合は(S40:NO)、ステップS37へ戻り、比較回路264又は比較回路265から一致の比較結果が得られるまで比較結果の取得を継続して行う。ステップS40にて、比較回路265による比較が一致した場合(S40:YES)、ステップS33へ戻り、クロック信号の供給を停止する。また、ステップS38にて、比較回路264による比較が一致した場合(S38:YES)、判定部266はクロック信号の供給停止処理を終了する。この後、ターゲット回路20は停止することなく通常の動作を行う。
【0132】
以上の構成の実施の形態3に係る回路検証装置201においては、制御レジスタ230にステップ実行開始設定、ステップ実行終了設定及びステップ数設定の3つの設定値を記憶させるのみで、ターゲット回路20のステップ実行を行うことができる。
【0133】
例えば、ターゲット回路20の動作を停止させたときには、制御レジスタ230に記憶された設定値を変更してMUX41による信号の選択を切り替えることにより、設計者がターゲット回路20の全ての内部信号及び出力信号を観測することが可能となり、更に制御レジスタ230のステップ数設定を1に設定することにより、全てのタイミングでの全ての内部信号及び出力信号を観測することが可能となるため、デバッグの精度を高めることができる。
【0134】
なお、図18に示したクロックコントローラ251の回路構成は一例であってこれに限るものではない。また、ステップ実行の開始及び終了のタイミングを複数設定できる構成としてもよい。なお、クロックコントローラ251及びクロック供給部252等の追加及び接続等は、設計者が行う構成であってもよく、論理合成を行う前に自動的に行う構成であってもよい。
【0135】
なお、実施の形態3に係る回路検証装置201のその他の構成は、実施の形態1に係る回路検証装置1の構成と同様であるため、対応する箇所には同じ符号を付して詳細な説明を省略する。
【0136】
(実施の形態4)
図20は、本発明の実施の形態4に係る回路検証装置の構成を示すブロック図である。実施の形態4に係る回路検証装置301は、FPGA2の入力端子からターゲット回路20へ入力されるクロック信号に同期して動作するカウンタ351をFPGA2内に有している。カウンタ351はターゲット回路20の動作開始からのクロック信号のクロック数をカウントするためのものであり、カウンタ351の出力はFPGA2内の観測コントローラ352へ与えられている。
【0137】
観測コントローラ352は、制御レジスタ330のデバッグ設定レジスタに記憶された設定値及びカウンタ351の値に応じて、ターゲット回路20の出力信号とMUX41を介して内部メモリ44に与えられるターゲット回路20の内部信号とを、内部メモリ44に記憶するか否かを決定し、ターゲット回路20の出力信号及び内部信号の内部メモリ44への記憶を制御するようにしてある。
【0138】
図21は、本発明の実施の形態4に係る回路検証装置301の制御レジスタ330の構成を示す模式図である。制御レジスタ330は、実施の形態1に係る制御レジスタ30とハードウェア構成は同じであるが、デバッグ設定レジスタに、観測開始設定を記憶するレジスタと、観測終了設定を記憶するレジスタとが設けられている。これらには、ターゲット回路20を動作させるクロック信号のクロック数を設定する。
【0139】
観測コントローラ352は、ターゲット回路20の動作開始後、カウンタ351の値が制御レジスタ330に記憶された観測開始設定の値に一致した場合に、ターゲット回路20の出力信号及び内部信号の内部メモリ44への記憶を開始するようにしてある。また、内部メモリ44への記憶の開始後、カウンタ351の値が制御レジスタ330に記憶された観測終了設定の値に一致した場合に、ターゲット回路20の出力信号及び内部信号の内部メモリ44への記憶を終了するようにしてある。
【0140】
以上の構成の回路検証装置301は、設計者が予め制御レジスタ330に観測開始設定及び観測終了設定を記憶させておくことによって、ターゲット回路20を動作させた場合に限られた範囲内のみの出力信号及び内部信号の値を自動的に記憶することができる。よって、FPGA2内の内部メモリ44を有効に活用することができる。なお、本実施の形態においては、観測開始設定及び観測終了設定に関する設定値をそれぞれ1つ制御レジスタ330に記憶する構成としたが、これに限るものではなく、複数の設定値を記憶し、複数の範囲内で出力信号及び内部信号の値を記憶する構成としてもよい。
【0141】
なお、実施の形態4に係る回路検証装置301のその他の構成は、実施の形態1に係る回路検証装置1の構成と同様であるため、対応する箇所には同じ符号を付して詳細な説明を省略する。
【0142】
(実施の形態5)
図22は、本発明の実施の形態5に係る回路検証装置の構成を示すブロック図である。実施の形態5に係る回路検証装置401は、MUX41が出力するターゲット回路20の出力信号及び内部信号の値が、制御レジスタ430に予め設定された条件に一致するか否かを判定して、クロック信号をターゲット回路20へ供給するクロック供給部451のクロック信号の供給/非供給を切り替える条件判定部450を備えている。
【0143】
図示は省略するが、制御レジスタ430には、MUX41が出力するターゲット回路20の出力信号及び内部信号の値の中から任意の4つの信号を選択するための設定値(信号選択設定0〜3)と、選択された4つの信号の値の期待値を設定するための設定値(期待値設定0〜3)と、4つの信号の値及び4つの期待値がそれぞれ一致するか否かの比較結果を取得した場合に、4つの比較結果が全て一致である場合を判定の条件とするか、又は4つの比較結果が少なくとも1つ一致である場合を判定の条件とするかを選択するための設定(条件設定)を記憶するレジスタが設けられている。
【0144】
クロック供給部451は、条件判定部450の判定結果に応じて、ターゲット回路20へのクロック信号の供給/非供給を切り替えるものであり、最も簡単な構成では、例えばAND素子又はOR素子等を1つ用いることで実現可能である。
【0145】
図23は、本発明の実施の形態5に係る回路検証装置401の条件判定部450の構成を示すブロック図である。条件判定部450は、MUX41が出力するターゲット回路20の内部信号又は出力信号の値から、制御レジスタ430に記憶された信号選択設定0〜3の値に応じて、任意の1つの値を選択する4つのマルチプレクサ(mux0〜3)を備えている。mux0〜3により選択された4つの値は、4つの比較器(比較器0〜3)へそれぞれ与えられ、比較器0〜3は、与えられた4つの値と、制御レジスタ430に記憶された期待値設定0〜3とをそれぞれ比較し、一致するか否かの比較結果を判定部452へそれぞれ与えるようにしてある。
【0146】
判定部452は、比較器0〜3からの4つの比較結果と、制御レジスタ430に記憶された条件設定とが与えられており、与えられた比較結果及び条件設定に基づいてクロック供給部451によるクロック信号の供給/非供給の切替を行うようにしてある。例えば、条件設定が“0”のときには、4つの比較結果がすべて一致の場合にクロック信号を非供給とし、また、条件設定が“1”のときには、4つの比較結果の少なくとも1つが一致の場合にクロック信号を非供給とするようにしてある。判定部452の最も簡単な構成は、4入力のAND素子と、4入力のOR素子と、AND素子又はOR素子の出力のいずれか一方を選択して出力するマルチプレクサとを用いることで実現可能である。
【0147】
このように、条件判定部450を設けることにより、ターゲット回路20の内部信号又は出力信号が所定の条件となった場合に、クロック信号の供給を停止し、ターゲット回路20の動作を停止させることができる。このとき設計者は、制御レジスタ430に信号選択設定0〜3、期待値設定0〜3、及び条件設定の各設定値を記憶させるのみでよい。図24は、本発明の実施の形態5に係る回路検証装置の設定画面の一表示例を示す模式図であり、PC10に備えられた図示しないディスプレイ装置に表示されるものである。
【0148】
PC10のディスプレイに表示される設定画面には、ターゲット回路20の動作を停止させる条件として、ターゲット回路20の内部信号又は出力信号の信号名と、この信号に対する期待値とを入力するための入力ボックス461が設けられている。入力ボックス461には、4つの信号の信号名及び期待値を、停止条件として入力することができるようにしてある。また、入力ボックス461の下に、4つの停止条件の全てが成立した場合にターゲット回路20の動作を停止させることを選択するためのANDチェックボタン462と、4つの停止条件のいずれか1つが成立した場合にターゲット回路20の動作を停止させることを選択するためのORチェックボタン463とが設けられており、ANDチェックボタン462による選択と、ORチェックボタン463による選択とは、いずれか一方のみ行うことができるようにしてある。
【0149】
入力ボックス461、ANDチェックボタン462及びORチェックボタン463による設定は、設定画面の下部に設けられた設定ボタン464を押下することにより反映されるようにしてある。設定ボタン464を押下した場合、入力ボックス461に入力された信号名に対応する信号が条件判定部450のmux0〜3により選択されるように、信号選択設定0〜3として制御レジスタ430に記憶されるようにしてあり、信号名とmux0〜3の選択設定との対応付けは、PC10内の例えばハードディスクに記憶された設定ファイルなどを参照することで行うようにしてある。また、設定ボタン464を押下した場合、入力ボックス461に入力された4つの期待値が期待値設定0〜3として制御レジスタ430に記憶され、更に、ANDチェックボタン462又はORチェックボタン463のいずれが選択されているかが、条件設定として制御レジスタ430に記憶されるようにしてある。
【0150】
以上の構成の実施の形態5に係る回路検証装置401においては、ターゲット回路20の内部信号又は出力信号の値が予め定められた期待値と一致した場合に、ターゲット回路20の動作を停止させることができるため、設計者がデバッグ作業を行いやすく、回路検証装置の利便性を向上できる。なお、図24に示した設定画面は一例であってこれに限るものではない。また、ターゲット回路20の内部信号又は出力信号として4つの信号を指定可能な構成としたが、これに限るものではなく、3つ以下又は5つ以上の信号を指定し、期待値を設定してターゲット回路20の動作を停止させることができる構成としてもよい。なお、条件判定部450及びクロック供給部451等の追加及び接続等は、設計者が行う構成であってもよく、論理合成ツールが論理合成を行う前に自動的に行う構成であってもよい。
【0151】
なお、実施の形態5に係る回路検証装置401のその他の構成は、実施の形態1に係る回路検証装置1の構成と同様であるため、対応する箇所には同じ符号を付して詳細な説明を省略する。
【0152】
また、回路検証装置が、実施の形態1乃至実施の形態5の回路検証装置にそれぞれ設けられた機能の全て又はいくつかを兼ね備える構成であってもよい。
【図面の簡単な説明】
【0153】
【図1】本発明の実施の形態1に係る回路検証装置の構成を示すブロック図である。
【図2】本発明の実施の形態1に係る回路検証装置のCPUのアドレス空間の一構成例を示す模式図である。
【図3】本発明の実施の形態1に係る回路検証装置の制御レジスタの一構成例を示す模式図である。
【図4】本発明の実施の形態1に係る回路検証装置を利用したデジタル回路の設計フローの一例を示すフローチャートである。
【図5】観測する内部信号の変更を行う方法を説明するための模式図である。
【図6】クロック信号の供給関係を示すブロック図である。
【図7】入力信号の変更を行う方法を説明するための模式図である。
【図8】回路ブロック単位での動作検証を行う方法を説明するための模式図である。
【図9】固定値の変更を行う方法を説明するための模式図である。
【図10】回路ブロックの置き換えを行う方法を説明するための模式図である。
【図11】回路ブロックへのデータ入力を行う方法を説明するための模式図である。
【図12】本発明の実施の形態1の変形例1に係る回路検証装置の構成を示すブロック図である。
【図13】本発明の実施の形態1の変形例2に係る回路検証装置の構成を示すブロック図である。
【図14】本発明の実施の形態1の変形例2に係る回路検証装置のCPUのアドレス空間の一構成例を示す模式図である。
【図15】本発明の実施の形態2に係る回路検証装置の構成を示すブロック図である。
【図16】本発明の実施の形態3に係る回路検証装置の構成を示すブロック図である。
【図17】本発明の実施の形態3に係る回路検証装置の制御レジスタの構成を示す模式図である。
【図18】本発明の実施の形態3に係る回路検証装置のクロックコントローラの一構成例を示すブロック図である。
【図19】本発明の実施の形態3に係る回路検証装置のクロックコントローラの判定部が行うクロック信号の供給停止処理の手順を示すフローチャートである。
【図20】本発明の実施の形態4に係る回路検証装置の構成を示すブロック図である。
【図21】本発明の実施の形態4に係る回路検証装置の制御レジスタの構成を示す模式図である。
【図22】本発明の実施の形態5に係る回路検証装置の構成を示すブロック図である。
【図23】本発明の実施の形態5に係る回路検証装置の条件判定部の構成を示すブロック図である。
【図24】本発明の実施の形態5に係る回路検証装置の設定画面の一表示例を示す模式図である。
【符号の説明】
【0154】
1 回路検証装置
2、2a、2b、2c、2d FPGA(プログラマブル素子)
3 CPU(制御部)
3a 制御用チップ
5 メモリ(観測値記憶部)
6 通信用デバイス(通信手段)
10 PC
20 ターゲット回路(被検証回路)
25 テストパタン生成回路(補助回路)
30 制御レジスタ(規定値記憶部)
40、41 MUX(補助回路、選択回路)
42 メモリ切替部(補助回路)
44 内部メモリ(補助回路、観測値記憶部)
46 クロック信号生成回路
47 周波数逓倍回路(観測用クロック信号出力回路)
81、91 回路検証装置
101 回路検証装置
150 期待値メモリ(期待値記憶部)
151 比較回路(比較手段)
152 クロック供給部(停止手段)
201 回路検証装置
230 制御レジスタ(規定値記憶部)
251 クロックコントローラ
252 クロック供給部
261 第1カウンタ
262 第2カウンタ
263、264、265 比較回路
266 判定部
301 回路検証装置
330 制御レジスタ(規定値記憶部)
351 カウンタ
352 観測コントローラ
401 回路検証装置
430 制御レジスタ(規定値記憶部)
450 条件判定部
451 クロック供給部

【特許請求の範囲】
【請求項1】
論理回路を再構成することが可能なプログラマブル素子を備え、該プログラマブル素子に構成された被検証回路の動作を検証する回路検証装置において、
前記プログラマブル素子に、
前記被検証回路へ入力信号を与える機能及び/又は前記被検証回路からの出力信号を取得する機能を有する補助回路と、
前記被検証回路及び/又は前記補助回路の動作を規定する規定値を記憶する規定値記憶部と
が構成されるようにしてあり、
前記規定値記憶部へ規定値を記憶させ、前記被検証回路及び/又は前記補助回路の動作を制御する制御部を備えること
を特徴とする回路検証装置。
【請求項2】
前記被検証回路は複数の回路ブロックを有し、
該複数の回路ブロックには、被検証回路ブロック及び該被検証回路ブロックに入力信号を与える入力側回路ブロックを含み、
前記規定値記憶部は、前記入力側回路ブロックが与える入力信号に代えて前記被検証回路ブロックへ与える入力値と、該入力値を前記被検証回路へ与えるか否かを定める規定値とを記憶するようにしてあり、
前記補助回路は、前記規定値記憶部が記憶した前記規定値に応じて、前記入力側回路ブロックからの入力信号又は前記規定値記憶部が記憶した入力値を選択して前記被検証回路ブロックへ与える選択回路を有する請求項1に記載の回路検証装置。
【請求項3】
前記被検証回路は複数の回路ブロックを有し、
該複数の回路ブロックには、被検証回路ブロック、該被検証回路ブロックからの出力信号を取得する出力側回路ブロック及び前記被検証回路ブロックに代替可能な代替回路ブロックを含み、
前記規定値記憶部は、前記代替回路ブロックによる前記被検証回路ブロックの代替を行うか否かを定める規定値を記憶するようにしてあり、
前記補助回路は、前記規定値記憶部が記憶した前記規定値に応じて、前記被検証回路ブロックの出力信号又は前記代替回路ブロックの出力信号を選択して前記出力側回路ブロックへ与える選択回路を有する請求項1又は請求項2に記載の回路検証装置。
【請求項4】
前記補助回路は、前記被検証回路へ与える入力信号を生成するテストパタン生成回路と、前記プログラマブル素子に設けられた入力端子から与えられる入力信号又は前記テストパタン生成回路が生成する入力信号を選択して前記被検証回路へ与える選択回路とを有し、
前記規定値記憶部は、前記選択回路の選択を規定する規定値を記憶するようにしてある請求項1乃至請求項3のいずれか1つに記載の回路検証装置。
【請求項5】
前記補助回路は、前記被検証回路の内部信号を選択して出力する選択回路を有し、
前記規定値記憶部は、前記選択回路の選択を規定する規定値を記憶するようにしてある請求項1乃至請求項4のいずれか1つに記載の回路検証装置。
【請求項6】
前記被検証回路へ入力されるクロック信号より高周波の観測用クロック信号を出力する観測用クロック信号出力回路を備え、
前記規定値記憶部は、前記観測用クロック信号に同期して動作することが可能にしてあり、
前記制御部は、前記観測用クロック信号に同期して前記規定値記憶部の規定値を変更し、前記選択回路が出力する内部信号を変更するようにしてある請求項5に記載の回路検証装置。
【請求項7】
前記観測用クロック信号に同期して前記選択回路が出力する内部信号の値を記憶する観測値記憶部を備える請求項6に記載の回路検証装置。
【請求項8】
前記被検証回路へ入力されるクロック信号に応じて動作するカウンタを備え、
前記規定値記憶部は、前記観測値記憶部への内部信号の値の記憶を開始する開始カウンタ値及び記憶を終了する終了カウンタ値を記憶するようにしてあり、
前記観測値記憶部は、前記カウンタの値が前記開始カウンタ値に一致した場合に記憶を開始し、前記カウンタの値が前記終了カウンタ値に一致した場合に記憶を終了するようにしてある請求項7に記載の回路検証装置。
【請求項9】
前記被検証回路の内部信号の期待値を記憶する期待値記憶部と、
前記選択回路が出力する内部信号及び前記期待値記憶部が記憶した期待値を比較する比較手段と、
該比較手段による比較の結果、前記内部信号及び前記期待値が一致しない場合、前記被検証回路の動作を停止させる停止手段と
を備える請求項5乃至請求項8のいずれか1つに記載の回路検証装置。
【請求項10】
前記被検証回路へ入力されるクロック信号に応じて動作するカウンタと、
前記カウンタの値の所定値毎に、前記被検証回路の動作を停止させる停止手段と
を備え、
前記規定値記憶部は、前記所定値を記憶するようにしてある請求項1乃至請求項9のいずれか1つに記載の回路検証装置。
【請求項11】
前記停止手段は、前記被検証回路へのクロック信号の供給を停止することにより、前記被検証回路の動作を停止させるようにしてある請求項9又は請求項10に記載の回路検証装置。
【請求項12】
前記プログラマブル素子及び前記制御部が設けられた回路基板と、
該回路基板に設けられ、前記制御部及び外部装置の間で通信を行う通信手段と
を備え、
前記制御部は、前記プログラマブル素子の前記規定値記憶部に、アドレス及びデータの指定によりアクセス可能にしてある請求項1乃至請求項11のいずれか1つに記載の回路検証装置。
【請求項13】
論理回路を再構成することが可能なプログラマブル素子を備える回路検証装置を用いて、前記プログラマブル素子に被検証回路を構成し、該被検証回路の検証を行う回路検証方法において、
前記プログラマブル素子に、前記被検証回路と、前記被検証回路へ入力信号を与える機能及び/又は前記被検証回路からの出力信号を取得する機能を有する補助回路と、前記被検証回路及び/又は前記補助回路の動作を規定する規定値を記憶する規定値記憶部とを構成し、
前記規定値記憶部へ前記規定値を記憶させ、前記被検証回路及び前記補助回路の動作を制御して検証を行うこと
を特徴とする回路検証方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate


【公開番号】特開2007−292492(P2007−292492A)
【公開日】平成19年11月8日(2007.11.8)
【国際特許分類】
【出願番号】特願2006−118023(P2006−118023)
【出願日】平成18年4月21日(2006.4.21)
【出願人】(390022471)アオイ電子株式会社 (85)
【Fターム(参考)】