JP2004200311A - Logic verifying device - Google Patents
Logic verifying device Download PDFInfo
- Publication number
- JP2004200311A JP2004200311A JP2002365569A JP2002365569A JP2004200311A JP 2004200311 A JP2004200311 A JP 2004200311A JP 2002365569 A JP2002365569 A JP 2002365569A JP 2002365569 A JP2002365569 A JP 2002365569A JP 2004200311 A JP2004200311 A JP 2004200311A
- Authority
- JP
- Japan
- Prior art keywords
- circuit
- fpga
- logic
- realized
- configuration data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Abstract
Description
【0001】
【発明の属する技術分野】
本発明は一般にLSIの論理検証に関し、詳しくは再構成可能なFPGAを用いてLSIの論理検証を行う装置に関する。
【従来の技術】
FPGA(Field Programmable Gate Array)は、プログラム可能な汎用ロジックLSIであり、メモリに書き込まれたコンフィギュレーションデータに従ってLSI内部の配線接続が制御され、所望のハードウェア構成を実現する。FPGAは、例えば、論理回路の設計において論理検証を実行するエミュレータとして用いられる。
【0002】
論理検証装置は、論理回路をハードウェア上にマッピングし、ハードウェアとして高速に動作する回路を構成して論理検証を行う。このハードウェアエミュレータは、ソフトウェアシミュレータの数千から数万倍の速度で動作するので、大規模な回路を論理検証する際には非常に有効である。
【0003】
FPGAに論理回路をマッピングして論理検証を行う場合、検証対象回路の回路規模が一つのFPGAチップには搭載できない程大きい場合がある。このような場合、従来の技術では複数のFPGAチップを用意して、検証対象の論理回路を一つのFPGAチップに収まる規模の複数のブロックに分割し、これら複数のブロックをそれぞれのFPGAチップにマッピングしていた。
【0004】
また、異なる時間に異なる論理回路を実現するように処理の途中でFPGA等を再構成することにより、一つのプログラマブル論理回路装置では実現できない規模の回路を実現することができるようになる。このような場合において、再構成回路のレイアウトを予め決められた大きさおよび形状に揃えておくことで、再構成の際に比較的容易に空き領域と再構成回路の形状や大きさをマッチングさせることができる従来技術がある(特許文献1)。
【0005】
またFPGAに実現したい論理回路の規模が大きい場合に、複数の論理ブロックの機能をいっせいに切り換えるのではなく、論理ブロック間の配線信号の変化を検出して、論理回路部の論理定義情報を自動的にかつ順を追って高速に切り換える従来技術がある(特許文献2)。
【0006】
【特許文献1】
特開平11‐017524号公報
【特許文献2】
特開平10‐173515号公報
【発明が解決しようとする課題】
複数のFPGAチップを用意する構成では、検証対象論理回路の規模が増大してくると、必要なFPGAチップの数が増加し、FPGAチップ間の配線遅延によって動作速度が上がらなくなるという問題がある。また、FPGAチップの数が増加すると装置構成が複雑となり、実現が難しくなるという問題もある。
【0007】
以上を鑑みて、本発明は、少ない数のFPGAチップで大規模な論理回路の検証が可能な論理検証装置を提供することを目的とする。
【課題を解決するための手段】
本発明による論理検証装置は、動的に再構成可能なFPGAと、複数のコンフィギュレーションデータを格納するコンフィギュレーションメモリと、該複数のコンフィギュレーションデータを順次選択して該FPGAに順次書き込む動作を該複数のコンフィギュレーションデータの全てに対して実行するサイクルを複数回繰り返す第1のセレクト回路を含み、コンフィギュレーションデータによって該FPGA上に実現される論理は該順次書き込む動作毎に入れ替えられることを特徴とする。
【0008】
上記論理検証装置においては、動的に再構成可能なFPGAに対して複数のコンフィギュレーションデータを順次選択して書き込む一連の動作を複数サイクル繰り返すと共に、コンフィギュレーションデータによってFPGA上に実現される論理を順次入れ替える。これにより、検証対象回路を複数の論理ブロックに分割してそれぞれのコンフィギュレーションデータを用意しておけば、検証対象回路の回路規模がFPGAの再構成領域の規模よりも大きい場合であっても、各論理ブロックを逐次的に実行することにより、検証対象回路全体の論理を実現することができる。
【0009】
また本発明の更なる側面によれば、上記論理検証装置は、コンフィギュレーションデータが書き込まれることで該FPGA上に実現された回路の回路状態を該複数のコンフィギュレーションデータ毎に格納する回路状態メモリと、コンフィギュレーションデータが該FPGAに書き込まれることで該FPGA上に実現された回路に対応する該回路状態を該回路状態メモリから読み出して該FPGA上の該回路に設定する第2のセレクト回路を更に含むことを特徴とする。
【0010】
上記構成においては、FPGA上に実現された回路の回路状態を回路状態メモリに格納しておくことで、FPGA上で順次回路を入れ替えて逐次的に実現する場合に、今回動作中断した回路の回路状態を次回再開するときに復元することができる。
【0011】
また本発明の更なる側面によれば上記論理検証装置は、記憶装置と、該記憶装置と該FPGAとの間の配線接続を自由に構成可能な配線用回路とを更に含み、第1のサイクルで該FPGA上に実現される回路から出力される値を該配線用回路を介して該記憶装置に格納し、第2のサイクルで該FPGA上に実現される回路に対して該記憶装置に格納されている該値を該配線用回路を介して入力することを特徴とする。
【0012】
上記構成においては、複数の論理ブロックが同時に存在することはなく逐次的に1つずつ実現される状態において、各論理ブロック間で時間を超えて信号伝送するために、記憶装置が信号値を記憶することで異なる時刻間の仲介をし、更に自由に構成可能な配線用回路を用いることによって、異なる論理ブロックに対して随時適切な信号経路を提供することができる。
【0013】
【発明の実施の形態】
以下に、本発明の実施例を添付の図面を用いて詳細に説明する。
【0014】
図1は、本発明による論理検証装置の第1の実施例の構成の一例を示す構成図である。
【0015】
図1の論理検証装置10は、動的再構成可能FPGA11、コンフィギュレーションメモリ12−1乃至12−N、回路状態メモリ13−1乃至13−N、セレクト回路14、セレクト回路15、配線用回路16、記憶装置17、バッファ18、及び制御回路19を含む。制御回路19が、各メモリ及び各回路に対して制御信号を供給し、各メモリ及び各回路の動作を制御する。
【0016】
動的再構成可能FPGA11は、コンフィギュレーションメモリ12−1乃至12−Nに格納されるコンフィギュレーションデータに基づいて、再構成可能な形で検証対象回路の論理11aを実現する。コンフィギュレーションメモリ12−1乃至12−Nは、検証対象回路を複数N個の論理ブロックに分割して、各論理ブロックの論理を実現するために必要なコンフィギュレーションデータを格納する。
【0017】
セレクト回路14は、コンフィギュレーションメモリ12−1乃至12−Nのうちの一つを選択して、それが格納するコンフィギュレーションデータを動的再構成可能FPGA11に書き込む。これにより、選択されたコンフィギュレーションメモリに対応する検証対象回路の論理ブロックの論理が、論理検証装置10上での論理11aとして実現される。
【0018】
例えばコンフィギュレーションメモリ12−1が最初に選択され、これに対応する検証対象回路の第1の論理ブロックが動的再構成可能FPGA11に実現される。次にコンフィギュレーションメモリ12−2が選択され、これに対応する検証対象回路の第2の論理ブロックが動的再構成可能FPGA11に実現される。同様の動作が各論理ブロックに対して実行されて、最後にコンフィギュレーションメモリ12−Nが選択され、検証対象回路の第Nの論理ブロックが動的再構成可能FPGA11に実現される。以上で1サイクルを完了する。このサイクルが繰り返されることで、検証対象回路全体についての各サイクルに応じた動作が実現される。
【0019】
N個の回路状態メモリ13−1乃至13−Nは、N個のコンフィギュレーションメモリ12−1乃至12−Nに対応し、動的再構成可能FPGA11上に実現された論理ブロックの回路状態(内部フリップフロップの値)を、各サイクルに対して保持するメモリである。即ち例えば、コンフィギュレーションメモリ12−1に対応する第1の論理ブロックを動的再構成可能FPGA11上で動作させると、次の第2の論理ブロックのコンフィギュレーションデータを動的再構成可能FPGA11にロードする前に、動的再構成可能FPGA11上の第1の論理ブロックの回路状態を回路状態メモリ13−1に記憶させる(セーブする)。これにより、次のサイクルで再び第1の論理ブロックを動的再構成可能FPGA11上で動作させる際に、回路状態メモリ13−1から回路状態を読み出して動的再構成可能FPGA11に書き込むことで、前回中断した状態から回路動作を再開することができる。
【0020】
この目的のために、セレクト回路15は、選択されたコンフィギュレーションメモリに対応する回路状態メモリを選択する。セレクト回路15は、回路状態メモリ13−1乃至13−Nのうちの選択されたメモリから回路状態を読み出して、動的再構成可能FPGA11に書き込む。ここで回路状態メモリ13−1乃至13−Nの各々は、複数(図では模式的に3つ)のメモリを含むものとして示されるが、これは過去から現在までの複数サイクルについての回路状態データを格納していることを意味する。また図1に示されるようにセレクト回路15は外部I/Oを備えており、回路状態メモリ13−1乃至13−Nの内容を外部に出力する。これにより、動的再構成可能FPGA11上に実現される論理の状態を、必要に応じて外部から観測することができる。
【0021】
図2は、動的再構成可能FPGA11により複数の論理ブロックを実現する動作を示すタイミングチャートである。
【0022】
図2は、ブロックの個数Nが3の場合を示し、外部クロックに対して内部クロックは6倍の周波数に設定されている。ここで外部クロックは検証対象回路の動作クロックに対応し、外部クロックの1サイクルの間に検証対象回路の1サイクル分の動作が実行される。内部クロックは、外部クロックの1サイクルの間に複数の論理ブロックの動作を実現するためのクロックであり、N個の論理ブロックが存在する場合には外部クロックの2N倍の周波数を有する。セレクト回路14及び15等はこの内部クロックに同期して動作する。
【0023】
図2に示される内部クロックの最初のサイクルにおいて、第1の論理ブロックのコンフィギュレーションが実行されると共に、それ以前に実行されていた第3の論理ブロックの回路状態がセーブされ、その後に第1の論理ブロックの回路状態がロードされる。これにより動的再構成可能FPGA11上に第1の論理ブロックが実現され、前回動作中断した時点の回路状態に復元される。次に内部クロックの第2のサイクルにおいて、第1の論理ブロックの1クロック分の動作が実行される。
【0024】
内部クロックの第3のサイクルにおいて、第2の論理ブロックのコンフィギュレーションが実行されると共に、それ以前に実行されていた第1の論理ブロックの回路状態がセーブされ、その後に第2の論理ブロックの回路状態がロードされる。これにより動的再構成可能FPGA11上に第2の論理ブロックが実現され、前回動作中断した時点の回路状態に復元される。内部クロックの第4のサイクルにおいて、第2の論理ブロックの1クロック分の動作が実行される。
【0025】
内部クロックの第5のサイクルにおいて、第3の論理ブロックのコンフィギュレーションが実行されると共に、それ以前に実行されていた第2の論理ブロックの回路状態がセーブされ、その後に第3の論理ブロックの回路状態がロードされる。これにより動的再構成可能FPGA11上に第3の論理ブロックが実現され、前回動作中断した時点の回路状態に復元される。内部クロックの第6のサイクルにおいて、第3の論理ブロックの1クロック分の動作が実行される。
【0026】
以上により、外部クロック1サイクルの間に、動的再構成可能FPGA11上に検証対象回路の第1乃至第3の論理ブロックが順次実現されて、それぞれについて1サイクル分の動作が実行される。
【0027】
図3は、動的再構成可能FPGAと回路状態メモリとの間で回路状態をロード・セーブする動作を説明するための図である。図3においては、検証対象回路は3つの論理ブロックに分割されているとする。
【0028】
図3に模式的に示されるように、動的再構成可能FPGA11が実現する論理11aは、論理値を格納するフリップフロップ21(図では模式的に1つとして示すが複数でよい)と、フリップフロップ21の値を入力とする組み合せ論理回路22と、組み合せ論理回路22の出力を格納するフリップフロップ23(図では模式的に1つとして示すが複数でよい)を含む構成として表現される。セレクト回路15は、動的再構成可能FPGA11上に論理11aとして例えば第1の論理ブロックを実現する際に、回路状態メモリ13−1から回路状態を読み出して、フリップフロップ21及び23のセット入力Sから回路状態データを書き込む。これにより、第1の論理ブロックが前回中断時の回路状態を有するように再現される。
【0029】
第1の論理ブロックが動的再構成可能FPGA11上で1クロック分動作した後に、セレクト回路15は、フリップフロップ21及び23の出力値Qを回路状態メモリ13−1に格納する。これにより、第1の論理ブロックの現在の回路状態を、回路状態メモリ13−1にセーブすることができる。その後第2及び第3の論理ブロックを実現した後に、次のクロックで第1の論理ブロックを再度実現する際には、回路状態メモリ13−1に格納される回路状態データを読み出すことで、回路状態を元に復元することができる。
【0030】
以下に、論理ブロック間の信号転送について説明する。
【0031】
図4は、検証対象回路の論理ブロック分割を模式的に示す図である。
【0032】
図4に示される例において、検証対象回路は、第1の論理ブロック31、第2の論理ブロック32、及び第3の論理ブロック33に分割される。第1の論理ブロック31は、外部I/O34とI/O1及びI/O2で接続される。第1の論理ブロック31は更に、第2の論理ブロック32と信号経路P1及びP2を介して接続され、第3の論理ブロック33と信号経路P3及びP4を介して接続される。また第2の論理ブロック32と第3の論理ブロック33とは、信号経路P5及びP6を介して接続される。
【0033】
しかしながら前述の説明のように、本発明においては、各論理ブロックは動的再構成可能FPGA11上に順次1つずつ実現されるので、同時に2つ以上の論理ブロックが実現されることはない。即ち図4に模式的に示す第1の論理ブロック31乃至第3の論理ブロック33は、同時に存在することはなく、時間を追って順次1つずつ実現される。従って、各論理ブロック間の信号経路P1乃至P6は、時間を超えて異なるタイミングの領域間で信号転送することが必要になり、そのような機能を実現して各論理ブロック間の信号転送をサポートする機構が必要になる。
【0034】
図1において、配線用回路16及び記憶装置17は、各論理ブロック間の信号転送を実現するために設けられる。
【0035】
配線用回路16は、各論理ブロック間の信号配線をエミュレートするためのものであり、例えば再構成可能なFPGAチップにより実現される。配線用回路16は、FPGA上に所望の論理を構成することで所望の信号配線を提供する。記憶装置17は、各論理ブロックが動的再構成可能FPGA11上に同時に実現されることはないので、各論理ブロック間の信号転送を実現するために、転送される信号の値を一時的に格納して仲介するためのメモリである。例えば記憶装置17は、あるクロックタイミングで信号値を入力して次のクロックタイミングで信号値を出力するFIFO(First In First Out)メモリであってよい。
【0036】
図5は、配線用回路16、記憶装置17、及びバッファ18の具体的な構成を示す図である。
【0037】
図5に示されるように、配線用回路16は配線用FPGAとして実現され、記憶装置17はFIFOとして実現される。FIFO17は、図4の6つの信号経路P1乃至P6に対応して6つの値を格納できるメモリ要素b1乃至b6を含む。例えば外部クロックの第m番目のサイクルにおいて、動的再構成可能FPGA11とFIFO17との間に適切な配線接続を配線用FPGA16により確立することで、第1の論理ブロック31乃至第3の論理ブロック33から各信号経路P1乃至P6に出力される信号値を、FIFO17の各メモリ要素b1乃至b6に格納する。外部クロックの次の第m+1番目のサイクルにおいて、メモリ要素b1乃至b6の値はメモリ要素a1乃至a6に転送される。メモリ要素a1乃至a6の値は、FIFO17と動的再構成可能FPGA11との間に適切な配線接続を配線用FPGA16により確立することで、動的再構成可能FPGA11の対応する信号経路P1乃至P6に供給される。
【0038】
図5に示されるように、例えば第1の論理ブロックが実現されている場合には、配線用FPGA16により信号経路P1及びP3をそれぞれメモリ要素b1及びb3に接続し、信号経路P1及びP3に出力される値をそれぞれメモリ要素b1及びb3に格納する。このメモリ要素b1及びb3に格納された値は次のサイクルで使用される。また配線用FPGA16により信号経路P2及びP4をそれぞれメモリ要素a2及びa4に接続し、メモリ要素a2及びa4に格納されている値を信号経路P2及びP4に供給する。このメモリ要素a2及びa4の値は、前のサイクルでb2及びb4に格納された値である。
【0039】
また配線用FPGA16は、動的再構成可能FPGA11とバッファ18との間に適切な配線険路を確立することで、第1の論理ブロック31と外部I/O34とを接続するための信号経路I/O1及びI/O2を介しての適切なデータ転送を実現する。ここで外部I/O34は、図2に示す外部クロックに同期して、内部クロックの6分の1の速度で動作している。従って、異なるクロック速度間の信号転送を実現するために、バッファ18を設けて外部I/Oとやり取りする値を保持している。
【0040】
以下に、本発明による論理検証装置の第2の実施例について説明する。
【0041】
図6において、(a)はチップ外部にコンフィギュレーションデータを備えた動的再構成可能FPGAを示し、(b)はチップ内部にコンフィギュレーションデータを備えた動的再構成可能FPGAを示す。
【0042】
(a)において、論理ブロック47は動的再構成可能FPGA41上に実現されるが、コンフィギュレーションメモリ43乃至45とセレクト回路46とは、動的再構成可能FPGA41の外部にそれぞれ独立した装置として実現される。それに対して(b)に示すチップ内部にコンフィギュレーションデータを備えた動的再構成可能FPGAにおいては、コンフィギュレーションメモリ48乃至50、セレクト回路51、及び論理ブロック52は、全て動的再構成可能FPGA42内部に実現される。この場合、論理構成が再構成されるのは論理ブロック52の部分のみであり、コンフィギュレーションメモリ48乃至50及びセレクト回路51に対応するFPGA部分は所定の配線に固定されている。
【0043】
図1に示す第1の実施例では、動的再構成可能FPGA11には検証対象回路の論理ブロックの論理11aのみを実現している。それに対して、図6(b)に示す構成のように、検証対象回路以外の論理構成についても動的再構成可能FPGAに実現することが考えられる。
【0044】
図7は、本発明による論理検証装置の第2の実施例の構成の一例を示す構成図である。
【0045】
図7の論理検証装置10Aは、動的再構成可能FPGA60、コンフィギュレーションメモリ12−1乃至12−3、回路状態メモリ13−1乃至13−3、セレクト回路14、セレクト回路15、配線用回路16、記憶装置17、バッファ18、及び制御回路19を含む。制御回路19が、各メモリ及び各回路に対して制御信号を供給し、各メモリ及び各回路の動作を制御する。図7において、図1と具体的なハードウェアとしての実現手段はことなっても論理構成で実現されるものは同一の記号で参照されている。
【0046】
図7の論理検証装置10Aにおいては、動的再構成可能FPGA60に、論理検証装置10Aを構成する全ての回路を内蔵する構成となっている。これらの回路は、動的再構成可能FPGA60の内部ロジックを使用することで容易に実現することができる。このようにして、第2の実施例2においては、1つの動的再構成可能FPGAチップにより論理検証機能を実現する。
【0047】
なお図7では、論理検証装置10Aを構成する全ての回路を動的再構成可能FPGAに内蔵する構成としたが、特定の回路のみをFPGAに内蔵してそれ以外の回路は独立した装置として設けてもよい。例えば、コンフィギュレーションメモリや回路状態メモリとして容量が大きいものが必要となる場合には、専用のメモリ装置を使用したほうが、FPGAの一部をメモリとして使用するよりも効率がよい。
【0048】
以上、本発明を実施例に基づいて説明したが、本発明は上記実施例に限定されるものではなく、特許請求の範囲に記載の範囲内で様々な変形が可能である。
【発明の効果】
本発明による論理検証装置においては、動的に再構成可能なFPGAに対して複数のコンフィギュレーションデータを順次選択して書き込む一連の動作を複数サイクル繰り返すと共に、コンフィギュレーションデータによってFPGA上に実現される論理を順次入れ替える。これにより、検証対象回路を複数の論理ブロックに分割してそれぞれのコンフィギュレーションデータを用意しておけば、検証対象回路の回路規模がFPGAの再構成領域の規模よりも大きい場合であっても、各論理ブロックを逐次的に実行することにより、検証対象回路全体の論理を実現することができる。
【0049】
またFPGA上に実現された回路の回路状態を回路状態メモリに格納しておくことで、FPGA上で順次回路を入れ替えて逐次的に実現する場合に、動作中断した回路の回路状態を次回再開するときに復元してその回路状態から再開することができる。
【0050】
また、複数の論理ブロックが逐次的に1つずつ実現される状態において各論理ブロック間で時間を超えて信号伝送するために、記憶装置が信号値を記憶することで異なる時刻間の仲介をし、更に自由に構成可能な配線用回路を用いることによって、異なる論理ブロックに対して随時適切な信号経路を提供することができる。
【図面の簡単な説明】
【図1】本発明による論理検証装置の第1の実施例の構成の一例を示す構成図である。
【図2】動的再構成可能FPGAにより複数の論理ブロックを実現する動作を示すタイミングチャートである。
【図3】動的再構成可能FPGAと回路状態メモリとの間で回路状態をロード・セーブする動作を説明するための図である。
【図4】検証対象回路の論理ブロック分割を模式的に示す図である。
【図5】図1に示される配線用回路、記憶装置、及びバッファの具体的な構成を示す図である。
【図6】(a)はチップ外部にコンフィギュレーションデータを備えた動的再構成可能FPGAを示し、(b)はチップ内部にコンフィギュレーションデータを備えた動的再構成可能FPGAを示す図である。
【図7】本発明による論理検証装置の第2の実施例の構成の一例を示す構成図である。
【符号の説明】
11 動的再構成可能FPGA
12−1〜12−N コンフィギュレーションメモリ
13−1〜13−N 回路状態メモリ
14 セレクト回路
15 セレクト回路
16 配線用回路
17 記憶装置
18 バッファ
19 制御回路[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention generally relates to LSI logic verification, and more particularly, to an apparatus for performing LSI logic verification using a reconfigurable FPGA.
[Prior art]
The FPGA (Field Programmable Gate Array) is a programmable general-purpose logic LSI, in which wiring connection inside the LSI is controlled according to configuration data written in a memory, and realizes a desired hardware configuration. The FPGA is used, for example, as an emulator that executes logic verification in designing a logic circuit.
[0002]
The logic verification device maps a logic circuit on hardware, configures a circuit that operates at high speed as hardware, and performs logic verification. Since this hardware emulator operates at a speed several thousand to tens of thousands times faster than a software simulator, it is very effective for logic verification of a large-scale circuit.
[0003]
When performing logic verification by mapping a logic circuit to an FPGA, the circuit scale of the circuit to be verified may be too large to be mounted on one FPGA chip. In such a case, the conventional technology prepares a plurality of FPGA chips, divides a logic circuit to be verified into a plurality of blocks that can be accommodated in one FPGA chip, and maps the plurality of blocks to each FPGA chip. Was.
[0004]
Also, by reconfiguring an FPGA or the like in the middle of processing so as to realize different logic circuits at different times, a circuit of a scale that cannot be realized by one programmable logic circuit device can be realized. In such a case, by aligning the layout of the reconfigurable circuit to a predetermined size and shape, it is relatively easy to match the shape and size of the free space with the shape and size of the reconfigurable circuit at the time of reconfiguration. There is a conventional technique that can perform the above-described method (Patent Document 1).
[0005]
Also, when the scale of a logic circuit to be realized in an FPGA is large, instead of switching the functions of a plurality of logic blocks all at once, a change in a wiring signal between the logic blocks is detected, and the logic definition information of the logic circuit unit is automatically converted. There is a prior art in which the switching is performed at high speed in accordance with the order (Japanese Patent Application Laid-Open No. H10-163873).
[0006]
[Patent Document 1]
Japanese Patent Application Laid-Open No. H11-017524 [Patent Document 2]
JP 10-173515 A [Problems to be Solved by the Invention]
In a configuration in which a plurality of FPGA chips are prepared, when the scale of the logic circuit to be verified increases, the number of necessary FPGA chips increases, and there is a problem that the operation speed cannot be increased due to a wiring delay between the FPGA chips. In addition, when the number of FPGA chips increases, there is a problem that the device configuration becomes complicated and realization becomes difficult.
[0007]
In view of the above, an object of the present invention is to provide a logic verification device capable of verifying a large-scale logic circuit with a small number of FPGA chips.
[Means for Solving the Problems]
A logic verification device according to the present invention includes a dynamically reconfigurable FPGA, a configuration memory storing a plurality of configuration data, and an operation of sequentially selecting the plurality of configuration data and sequentially writing the configuration data to the FPGA. A first select circuit that repeats a cycle executed for all of the plurality of configuration data a plurality of times, wherein a logic realized on the FPGA by the configuration data is replaced every time the sequential writing operation is performed; I do.
[0008]
In the logic verification device, a series of operations for sequentially selecting and writing a plurality of configuration data to a dynamically reconfigurable FPGA is repeated for a plurality of cycles, and the logic realized on the FPGA by the configuration data is repeated. Replace in order. Thus, if the circuit to be verified is divided into a plurality of logical blocks and the respective configuration data are prepared, even if the circuit size of the circuit to be verified is larger than the size of the reconfiguration area of the FPGA, By sequentially executing the logic blocks, the logic of the entire circuit to be verified can be realized.
[0009]
According to a further aspect of the present invention, the logic verification device includes a circuit state memory for storing, for each of the plurality of configuration data, a circuit state of a circuit realized on the FPGA by writing configuration data. And a second select circuit that reads the circuit state corresponding to the circuit realized on the FPGA from the circuit state memory by writing the configuration data to the FPGA and sets the circuit state on the FPGA. It is further characterized by including.
[0010]
In the above configuration, the circuit state of the circuit realized on the FPGA is stored in the circuit state memory, so that when the circuit is sequentially replaced on the FPGA and realized sequentially, The state can be restored the next time it is restarted.
[0011]
According to still another aspect of the present invention, the logic verification device further includes a storage device, and a wiring circuit capable of freely configuring a wiring connection between the storage device and the FPGA, and further comprising a first cycle. And stores the value output from the circuit realized on the FPGA in the storage device via the wiring circuit, and stores the value of the circuit realized on the FPGA in the storage device in the second cycle The input value is input via the wiring circuit.
[0012]
In the above configuration, in a state where a plurality of logical blocks do not exist at the same time and are realized one by one sequentially, the storage device stores a signal value to transmit a signal between the logical blocks over time. By doing so, mediation between different times can be performed, and further, by using a freely configurable wiring circuit, an appropriate signal path can be provided to different logic blocks at any time.
[0013]
BEST MODE FOR CARRYING OUT THE INVENTION
Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings.
[0014]
FIG. 1 is a configuration diagram showing an example of the configuration of the first embodiment of the logic verification device according to the present invention.
[0015]
1 includes a dynamically
[0016]
The dynamically
[0017]
The
[0018]
For example, the configuration memory 12-1 is selected first, and the corresponding first logic block of the circuit to be verified is realized in the dynamically
[0019]
The N circuit state memories 13-1 to 13-N correspond to the N configuration memories 12-1 to 12-N, and the circuit states (internal states) of the logic blocks realized on the dynamically
[0020]
For this purpose, the
[0021]
FIG. 2 is a timing chart showing an operation of realizing a plurality of logical blocks by the dynamically
[0022]
FIG. 2 shows a case where the number N of blocks is 3, and the internal clock is set to a frequency six times that of the external clock. Here, the external clock corresponds to the operation clock of the circuit to be verified, and one cycle of the operation of the circuit to be verified is performed during one cycle of the external clock. The internal clock is a clock for realizing the operation of a plurality of logic blocks during one cycle of the external clock, and has a frequency 2N times that of the external clock when there are N logic blocks. The
[0023]
In the first cycle of the internal clock shown in FIG. 2, the configuration of the first logic block is executed, and the circuit state of the previously executed third logic block is saved. Is loaded. As a result, the first logical block is realized on the dynamically
[0024]
In the third cycle of the internal clock, the configuration of the second logic block is executed, and the circuit state of the first logic block that has been executed before is saved, and thereafter, the configuration of the second logic block is saved. The circuit state is loaded. As a result, the second logic block is realized on the dynamically
[0025]
In the fifth cycle of the internal clock, the configuration of the third logic block is performed, and the circuit state of the previously executed second logic block is saved. The circuit state is loaded. As a result, the third logic block is realized on the dynamically
[0026]
As described above, the first to third logic blocks of the circuit to be verified are sequentially realized on the dynamically
[0027]
FIG. 3 is a diagram for explaining an operation of loading and saving a circuit state between a dynamically reconfigurable FPGA and a circuit state memory. In FIG. 3, it is assumed that the verification target circuit is divided into three logical blocks.
[0028]
As schematically illustrated in FIG. 3, the
[0029]
After the first logic block operates for one clock on the dynamically
[0030]
Hereinafter, signal transfer between logical blocks will be described.
[0031]
FIG. 4 is a diagram schematically illustrating logical block division of a circuit to be verified.
[0032]
In the example shown in FIG. 4, the circuit to be verified is divided into a
[0033]
However, as described above, in the present invention, since each logical block is realized one by one on the dynamically
[0034]
In FIG. 1, a
[0035]
The
[0036]
FIG. 5 is a diagram showing a specific configuration of the
[0037]
As shown in FIG. 5, the
[0038]
As shown in FIG. 5, for example, when the first logic block is realized, the signal paths P1 and P3 are connected to the memory elements b1 and b3 by the
[0039]
In addition, the
[0040]
Hereinafter, a second embodiment of the logic verification device according to the present invention will be described.
[0041]
6A shows a dynamically reconfigurable FPGA provided with configuration data outside the chip, and FIG. 6B shows a dynamically reconfigurable FPGA provided with configuration data inside the chip.
[0042]
3A, the logic block 47 is realized on the dynamically
[0043]
In the first embodiment shown in FIG. 1, only the
[0044]
FIG. 7 is a configuration diagram showing an example of the configuration of the second embodiment of the logic verification device according to the present invention.
[0045]
7 includes a dynamically
[0046]
In the
[0047]
In FIG. 7, all the circuits constituting the
[0048]
As described above, the present invention has been described based on the embodiments. However, the present invention is not limited to the above embodiments, and various modifications can be made within the scope of the claims.
【The invention's effect】
In the logic verification device according to the present invention, a series of operations of sequentially selecting and writing a plurality of configuration data to a dynamically reconfigurable FPGA is repeated for a plurality of cycles, and is realized on the FPGA by the configuration data. Change logic sequentially. Thus, if the circuit to be verified is divided into a plurality of logical blocks and the respective configuration data are prepared, even if the circuit size of the circuit to be verified is larger than the size of the reconfiguration area of the FPGA, By sequentially executing the logic blocks, the logic of the entire circuit to be verified can be realized.
[0049]
By storing the circuit state of the circuit realized on the FPGA in the circuit state memory, when the circuits are sequentially replaced on the FPGA and realized sequentially, the circuit state of the circuit whose operation has been interrupted is restarted next time. Sometimes it can be restored and restarted from that circuit state.
[0050]
Further, in a state where a plurality of logical blocks are sequentially realized one by one, in order to transmit signals between the logical blocks over time, the storage device stores a signal value to mediate between different times. Further, by using a freely configurable wiring circuit, an appropriate signal path can be provided to different logic blocks as needed.
[Brief description of the drawings]
FIG. 1 is a configuration diagram showing an example of a configuration of a first embodiment of a logic verification device according to the present invention.
FIG. 2 is a timing chart showing an operation of implementing a plurality of logical blocks by a dynamically reconfigurable FPGA.
FIG. 3 is a diagram for explaining an operation of loading and saving a circuit state between a dynamically reconfigurable FPGA and a circuit state memory.
FIG. 4 is a diagram schematically illustrating logical block division of a circuit to be verified.
FIG. 5 is a diagram showing a specific configuration of a wiring circuit, a storage device, and a buffer shown in FIG. 1;
6A is a diagram illustrating a dynamically reconfigurable FPGA having configuration data outside the chip, and FIG. 6B is a diagram illustrating a dynamically reconfigurable FPGA including configuration data inside the chip. .
FIG. 7 is a configuration diagram showing an example of a configuration of a second embodiment of the logic verification device according to the present invention.
[Explanation of symbols]
11 Dynamically Reconfigurable FPGA
12-1 to 12-N Configuration memories 13-1 to 13-N
Claims (10)
複数のコンフィギュレーションデータを格納するコンフィギュレーションメモリと、
該複数のコンフィギュレーションデータを順次選択して該FPGAに順次書き込む動作を該複数のコンフィギュレーションデータの全てに対して実行するサイクルを複数回繰り返す第1のセレクト回路
を含み、コンフィギュレーションデータによって該FPGA上に実現される論理は該順次書き込む動作毎に入れ替えられることを特徴とする論理検証装置。A dynamically reconfigurable FPGA;
A configuration memory for storing a plurality of configuration data;
A first select circuit that repeats a plurality of cycles of sequentially selecting the plurality of configuration data and sequentially writing the plurality of configuration data to the FPGA for all of the plurality of configuration data; A logic verifying device characterized in that the logic implemented above is exchanged for each successive writing operation.
コンフィギュレーションデータが該FPGAに書き込まれることで該FPGA上に実現された回路に対応する該回路状態を該回路状態メモリから読み出して該FPGA上の該回路に設定する第2のセレクト回路
を更に含むことを特徴とする請求項1記載の論理検証装置。A circuit state memory for storing a circuit state of a circuit realized on the FPGA by writing the configuration data for each of the plurality of configuration data;
A configuration further includes a second select circuit that reads the circuit state corresponding to the circuit realized on the FPGA from the circuit state memory by writing the configuration data to the FPGA and sets the circuit state on the FPGA. 2. The logic verification device according to claim 1, wherein:
該記憶装置と該FPGAとの間の配線接続を自由に構成可能な配線用回路
を更に含み、第1のサイクルで該FPGA上に実現される回路から出力される値を該配線用回路を介して該記憶装置に格納し、第2のサイクルで該FPGA上に実現される回路に対して該記憶装置に格納されている該値を該配線用回路を介して入力することを特徴とする請求項1記載の論理検証装置。A storage device,
A wiring circuit that can freely configure a wiring connection between the storage device and the FPGA; and a value output from a circuit realized on the FPGA in a first cycle through the wiring circuit. And inputting the value stored in the storage device to a circuit realized on the FPGA in a second cycle through the wiring circuit. Item 6. The logic verification device according to Item 1.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002365569A JP2004200311A (en) | 2002-12-17 | 2002-12-17 | Logic verifying device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002365569A JP2004200311A (en) | 2002-12-17 | 2002-12-17 | Logic verifying device |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004200311A true JP2004200311A (en) | 2004-07-15 |
Family
ID=32763091
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002365569A Withdrawn JP2004200311A (en) | 2002-12-17 | 2002-12-17 | Logic verifying device |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004200311A (en) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007293542A (en) * | 2006-04-24 | 2007-11-08 | Fujitsu Ltd | Fpga current consumption relational expression deriving method and program, fpga current consumption relational expression deriving system, and accuracy evaluation program for fpga estimation tool |
JP2008042546A (en) * | 2006-08-07 | 2008-02-21 | Nec Computertechno Ltd | Logic operation circuit, logic switching method, and electronic equipment |
JPWO2006046711A1 (en) * | 2004-10-28 | 2008-05-22 | アイピーフレックス株式会社 | Data processing apparatus having reconfigurable logic circuit |
JP2011203920A (en) * | 2010-03-25 | 2011-10-13 | Fuji Xerox Co Ltd | Data processing apparatus |
JP2012083901A (en) * | 2010-10-08 | 2012-04-26 | Nec Corp | Configuration information management device, method and program for the same, and operation synthesis device |
US8291129B2 (en) | 2010-01-21 | 2012-10-16 | Fuji Xerox Co., Ltd. | Data processing device |
-
2002
- 2002-12-17 JP JP2002365569A patent/JP2004200311A/en not_active Withdrawn
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPWO2006046711A1 (en) * | 2004-10-28 | 2008-05-22 | アイピーフレックス株式会社 | Data processing apparatus having reconfigurable logic circuit |
JP4893309B2 (en) * | 2004-10-28 | 2012-03-07 | 富士ゼロックス株式会社 | Data processing apparatus having reconfigurable logic circuit |
JP2007293542A (en) * | 2006-04-24 | 2007-11-08 | Fujitsu Ltd | Fpga current consumption relational expression deriving method and program, fpga current consumption relational expression deriving system, and accuracy evaluation program for fpga estimation tool |
JP2008042546A (en) * | 2006-08-07 | 2008-02-21 | Nec Computertechno Ltd | Logic operation circuit, logic switching method, and electronic equipment |
US8291129B2 (en) | 2010-01-21 | 2012-10-16 | Fuji Xerox Co., Ltd. | Data processing device |
JP2011203920A (en) * | 2010-03-25 | 2011-10-13 | Fuji Xerox Co Ltd | Data processing apparatus |
US8719550B2 (en) | 2010-03-25 | 2014-05-06 | Fuji Xerox Co., Ltd. | Reconfigurable processing system including synchronized postprocessing |
JP2012083901A (en) * | 2010-10-08 | 2012-04-26 | Nec Corp | Configuration information management device, method and program for the same, and operation synthesis device |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5354427B2 (en) | Reconfigurable logical fabric for integrated circuits and systems and methods for configuring a reconfigurable logical fabric | |
US6047115A (en) | Method for configuring FPGA memory planes for virtual hardware computation | |
US7138827B1 (en) | Programmable logic device with time-multiplexed interconnect | |
US6421817B1 (en) | System and method of computation in a programmable logic device using virtual instructions | |
US5892961A (en) | Field programmable gate array having programming instructions in the configuration bitstream | |
JP2018537871A (en) | System and method for FPGA testing and configuration | |
US8493091B2 (en) | Programmable logic device | |
JPH09181599A (en) | Time-multiplexed write enabled logic circuit | |
JPH08503111A (en) | Improved configurable cell array | |
US7268581B1 (en) | FPGA with time-multiplexed interconnect | |
JPH09231788A (en) | Shift register and programmable logic circuit and programmable logic circuit system | |
WO2014080872A2 (en) | Logic configuration method for reconfigurable semiconductor device | |
JP4423953B2 (en) | Semiconductor integrated circuit | |
WO2007119300A1 (en) | Test system of reconfigurable device and its method and reconfigurable device for use therein | |
US10855285B2 (en) | Field programmable transistor arrays | |
JP2006510980A (en) | Connecting multiple test access port controllers through a single test access port | |
KR20230002937A (en) | Compute dataflow architecture | |
Tian et al. | A field programmable transistor array featuring single-cycle partial/full dynamic reconfiguration | |
US7800404B2 (en) | Field programmable application specific integrated circuit with programmable logic array and method of designing and programming the programmable logic array | |
US7624209B1 (en) | Method of and circuit for enabling variable latency data transfers | |
JP2006236106A (en) | Data processor and data processing method | |
CN107145465B (en) | Transmission control method, device and system for Serial Peripheral Interface (SPI) | |
JP4246200B2 (en) | Programmable logic device | |
JP2004200311A (en) | Logic verifying device | |
US7509479B2 (en) | Reconfigurable global cellular automaton with RAM blocks coupled to input and output feedback crossbar switches receiving clock counter value from sequence control unit |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20060307 |