JP2009245148A - 再構成可能な論理デバイスのデバッグ装置、デバッグ方法及びデバッグプログラム - Google Patents
再構成可能な論理デバイスのデバッグ装置、デバッグ方法及びデバッグプログラム Download PDFInfo
- Publication number
- JP2009245148A JP2009245148A JP2008090775A JP2008090775A JP2009245148A JP 2009245148 A JP2009245148 A JP 2009245148A JP 2008090775 A JP2008090775 A JP 2008090775A JP 2008090775 A JP2008090775 A JP 2008090775A JP 2009245148 A JP2009245148 A JP 2009245148A
- Authority
- JP
- Japan
- Prior art keywords
- initial value
- area
- configuration information
- logical device
- debugging
- 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.)
- Pending
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
【課題】不定値伝播による不具合検出を行うことができる再構成可能な論理デバイスのデバッグ装置を提供する。
【解決手段】デバッグ装置は、設計回路により使用されないメモリブロックの未使用領域において、メモリアクセスの投機実行によりアクセスされない領域を検出する領域検出部214と、検出されたアクセスされない領域のための初期値を生成する初期値設定部215と、設定された初期値からその初期値が記述された未使用領域の構成情報を生成する未使用領域構成情報生成部219と、論理デバイスの構成情報と未使用領域の構成情報とを結合して検証用構成情報を生成する構成情報結合部216と、生成された検証用構成情報を論理デバイスに読み込み、論理デバイスを動作させ、実行結果を出力するデバイス試験部217と、実行結果と実行期待値とが一致するか比較する出力結果判定部218と、を備える。
【選択図】図2
【解決手段】デバッグ装置は、設計回路により使用されないメモリブロックの未使用領域において、メモリアクセスの投機実行によりアクセスされない領域を検出する領域検出部214と、検出されたアクセスされない領域のための初期値を生成する初期値設定部215と、設定された初期値からその初期値が記述された未使用領域の構成情報を生成する未使用領域構成情報生成部219と、論理デバイスの構成情報と未使用領域の構成情報とを結合して検証用構成情報を生成する構成情報結合部216と、生成された検証用構成情報を論理デバイスに読み込み、論理デバイスを動作させ、実行結果を出力するデバイス試験部217と、実行結果と実行期待値とが一致するか比較する出力結果判定部218と、を備える。
【選択図】図2
Description
本発明は、再構成可能な論理デバイスのデバッグ装置、デバッグ方法及びデバッグプログラムに関する。
近年、再構成可能な論理デバイスを用いたLSI(Large Scale Integration)開発において、ラピッド・プロトタイピング(Rapid Prototyping)方式の開発が盛んである。
そして、このラピッド・プロトタイピング方式により、LSIの設計・合成・実機試験の開発期間が短くなってきている。
また、論理回路の規模や実行サイクル数によっては、多少論理合成の時間が長くても、シミュレーションよりも実ハードウェアでデバッグを行う方が、TAT(Turn Around Time)が短くなる場合がある。
また、ソフトウェアによるシミュレーションの場合と実ハードウェアにマッピングした場合とでは、論理的に異なる場合があり、最終的には実ハードウェアでの検証が必須である。
このため、より短TATで正確なデバッグを行うため、低速なシミュレーションより、実ハードウェアにおけるデバッガの高機能化が期待されている。
ここで、例えば、デバッグに関するものが特許文献1に記載されている。
特開2002−49506号公報
ところで、論理回路のデバッグは、論理シミュレータを用いて、不定値伝播を解析することが有効であることが知られている。
しかしながら、実ハードウェアでは不定というものは存在せず、"1"か"0"の2値のいずれかに固定されるため、不定値検出による回路デバッグを行うことが出来ない、という問題があった。
本発明は上記事情に鑑みてなされたものであり、その目的とするところは、論理デバイス自体に何ら付加回路を加えることなく、不定値伝播による不具合検出を行うことができる、再構成可能な論理デバイスのデバッグ装置、デバッグ方法及びデバッグプログラムを提供することにある。
本発明によれば、再構成可能な論理デバイスのデバッグ装置であって、
前記論理デバイス内の1つ以上のメモリブロック内における、設計回路によって使用されない未使用領域において、メモリアクセスの投機実行によりアクセスされない領域を検出する投機非アクセス検出手段と、
前記投機非アクセス検出手段によって検出された前記アクセスされない領域のための初期値を生成する初期値設定手段と、
設定された前記初期値から当該初期値が記述された未使用領域の構成情報を生成する未使用領域構成情報生成手段と、
前記論理デバイスの構成情報と、生成された前記未使用領域の構成情報とを結合して、検証用構成情報を生成する構成情報結合生成手段と、
前記構成情報結合生成手段によって生成された前記検証用構成情報を前記論理デバイスに読み込み、当該論理デバイスを動作させ、実行結果を出力する論理デバイス実機試験手段と、
前記論理デバイス実機試験手段によって出力される前記実行結果と、実行期待値とが一致するか比較する実行結果比較手段と、を備え、
前記アクセスされない領域のための前記初期値を変更しながら、前記論理デバイス実機試験手段によって前記実行結果を出力し、前記実行結果比較手段によって当該実行結果と前記実行期待値とが一致しないときは、
不具合があったと判断し、当該不具合を自動で検出する
ことを特徴とするデバッグ装置が提供される。
前記論理デバイス内の1つ以上のメモリブロック内における、設計回路によって使用されない未使用領域において、メモリアクセスの投機実行によりアクセスされない領域を検出する投機非アクセス検出手段と、
前記投機非アクセス検出手段によって検出された前記アクセスされない領域のための初期値を生成する初期値設定手段と、
設定された前記初期値から当該初期値が記述された未使用領域の構成情報を生成する未使用領域構成情報生成手段と、
前記論理デバイスの構成情報と、生成された前記未使用領域の構成情報とを結合して、検証用構成情報を生成する構成情報結合生成手段と、
前記構成情報結合生成手段によって生成された前記検証用構成情報を前記論理デバイスに読み込み、当該論理デバイスを動作させ、実行結果を出力する論理デバイス実機試験手段と、
前記論理デバイス実機試験手段によって出力される前記実行結果と、実行期待値とが一致するか比較する実行結果比較手段と、を備え、
前記アクセスされない領域のための前記初期値を変更しながら、前記論理デバイス実機試験手段によって前記実行結果を出力し、前記実行結果比較手段によって当該実行結果と前記実行期待値とが一致しないときは、
不具合があったと判断し、当該不具合を自動で検出する
ことを特徴とするデバッグ装置が提供される。
本発明によれば、再構成可能な論理デバイスのデバッグ装置におけるデバッグ方法であって、
前記論理デバイス内の1つ以上のメモリブロック内における、設計回路によって使用されない未使用領域において、メモリアクセスの投機実行によりアクセスされない領域を検出する投機非アクセス検出ステップと、
前記投機非アクセス検出ステップにおいて検出された前記アクセスされない領域のための初期値を生成する初期値設定ステップと、
設定された前記初期値から当該初期値が記述された未使用領域の構成情報を生成する未使用領域構成情報生成ステップと、
前記論理デバイスの構成情報と、生成された前記未使用領域の構成情報とを結合して、検証用構成情報を生成する構成情報結合生成ステップと、
前記構成情報結合生成ステップにおいて生成された前記検証用構成情報を前記論理デバイスに読み込み、当該論理デバイスを動作させ、実行結果を出力する論理デバイス実機試験ステップと、
前記論理デバイス実機試験ステップにおいて出力される前記実行結果と、実行期待値とが一致するか比較する実行結果比較ステップと、
前記アクセスされない領域のための前記初期値を変更しながら、前記論理デバイス実機試験ステップによって前記実行結果を出力し、前記実行結果比較ステップによって当該実行結果と前記実行期待値とが一致しないときは、不具合があったと判断し、当該不具合を自動で検出する不具合検出ステップと、
を含むことを特徴とするデバッグ方法が提供される。
前記論理デバイス内の1つ以上のメモリブロック内における、設計回路によって使用されない未使用領域において、メモリアクセスの投機実行によりアクセスされない領域を検出する投機非アクセス検出ステップと、
前記投機非アクセス検出ステップにおいて検出された前記アクセスされない領域のための初期値を生成する初期値設定ステップと、
設定された前記初期値から当該初期値が記述された未使用領域の構成情報を生成する未使用領域構成情報生成ステップと、
前記論理デバイスの構成情報と、生成された前記未使用領域の構成情報とを結合して、検証用構成情報を生成する構成情報結合生成ステップと、
前記構成情報結合生成ステップにおいて生成された前記検証用構成情報を前記論理デバイスに読み込み、当該論理デバイスを動作させ、実行結果を出力する論理デバイス実機試験ステップと、
前記論理デバイス実機試験ステップにおいて出力される前記実行結果と、実行期待値とが一致するか比較する実行結果比較ステップと、
前記アクセスされない領域のための前記初期値を変更しながら、前記論理デバイス実機試験ステップによって前記実行結果を出力し、前記実行結果比較ステップによって当該実行結果と前記実行期待値とが一致しないときは、不具合があったと判断し、当該不具合を自動で検出する不具合検出ステップと、
を含むことを特徴とするデバッグ方法が提供される。
本発明によれば、再構成可能な論理デバイスのデバッグ装置におけるデバッグプログラムであって、
前記論理デバイス内の1つ以上のメモリブロック内における、設計回路によって使用されない未使用領域において、メモリアクセスの投機実行によりアクセスされない領域を検出する投機非アクセス検出手順と、
前記投機非アクセス検出手順によって検出された前記アクセスされない領域のための初期値を生成する初期値設定手順と、
設定された前記初期値から当該初期値が記述された未使用領域の構成情報を生成する未使用領域構成情報生成手順と、
前記論理デバイスの構成情報と、生成された前記未使用領域の構成情報とを結合して、検証用構成情報を生成する構成情報結合生成手順と、
前記構成情報結合生成手順によって生成された前記検証用構成情報を前記論理デバイスに読み込み、当該論理デバイスを動作させ、実行結果を出力する論理デバイス実機試験手順と、
前記論理デバイス実機試験手順によって出力される前記実行結果と、実行期待値とが一致するか比較する実行結果比較手順と、
前記アクセスされない領域のための前記初期値を変更しながら、前記論理デバイス実機試験手順によって前記実行結果を出力し、前記実行結果比較手順によって当該実行結果と前記実行期待値とが一致しないときは、不具合があったと判断し、当該不具合を自動で検出する不具合検出手順と、
をコンピュータに実行させることを特徴とするデバッグプログラムが提供される。
前記論理デバイス内の1つ以上のメモリブロック内における、設計回路によって使用されない未使用領域において、メモリアクセスの投機実行によりアクセスされない領域を検出する投機非アクセス検出手順と、
前記投機非アクセス検出手順によって検出された前記アクセスされない領域のための初期値を生成する初期値設定手順と、
設定された前記初期値から当該初期値が記述された未使用領域の構成情報を生成する未使用領域構成情報生成手順と、
前記論理デバイスの構成情報と、生成された前記未使用領域の構成情報とを結合して、検証用構成情報を生成する構成情報結合生成手順と、
前記構成情報結合生成手順によって生成された前記検証用構成情報を前記論理デバイスに読み込み、当該論理デバイスを動作させ、実行結果を出力する論理デバイス実機試験手順と、
前記論理デバイス実機試験手順によって出力される前記実行結果と、実行期待値とが一致するか比較する実行結果比較手順と、
前記アクセスされない領域のための前記初期値を変更しながら、前記論理デバイス実機試験手順によって前記実行結果を出力し、前記実行結果比較手順によって当該実行結果と前記実行期待値とが一致しないときは、不具合があったと判断し、当該不具合を自動で検出する不具合検出手順と、
をコンピュータに実行させることを特徴とするデバッグプログラムが提供される。
本発明によれば、論理デバイス自体に何ら付加回路を加えることなく、不定値伝播による不具合検出を行うことができる、再構成可能な論理デバイスのデバッグ装置、デバッグ方法及びデバッグプログラムが提供される。
以下、本発明の実施の形態について、図面を用いて説明する。尚、すべての図面において、同様な構成要素には同様の符号を付し、適宜説明を省略する。
図1は、本実施の形態に係る再構成可能な論理デバイス1のデバッグ装置を示したものである。
図1に示すデバッグ装置100は、計算部200を備え、入力装置400と、出力装置500と、再構成可能な論理デバイス1と、に接続されている。
図1に示すデバッグ装置100は、計算部200を備え、入力装置400と、出力装置500と、再構成可能な論理デバイス1と、に接続されている。
計算部200は、デバッグ装置100を統括制御するCPU210と、入力装置400から入力を受付可能に接続するI/Oインターフェース部220と、主記憶部240を制御するメモリ制御I/F部230と、各種プログラムやデータを格納する主記憶部240と、データを格納するデータ蓄積部260と、データ蓄積部260を制御するメモリ制御I/F部250と、出力装置500に接続されて結果を出力するI/Oインターフェース部270と、再構成可能な論理デバイス1と接続されるインターフェース部280とを備えている。
図2は、CPU210の機能を示した機能ブロック図である。
図2に示すCPU210は、論理デバイス1内の1つ以上のメモリブロック内における、設計回路によって使用されない未使用領域において、メモリアクセスの投機実行によりアクセスされない領域を検出する領域検出部214(投機非アクセス検出手段)と、領域検出部214によって検出されたアクセスされない領域のための初期値を生成する初期値設定部215(初期値設定手段)と、設定された初期値からその初期値が記述された未使用領域の構成情報(以下、これを未使用領域構成情報ともいう。)を生成する未使用領域構成情報生成部219と、論理デバイス1の構成情報と未使用領域の構成情報とを結合して検証用構成情報を生成する構成情報結合部216(構成情報結合生成手段)と、構成情報結合部216によって生成された検証用構成情報を論理デバイス1に読み込み、その論理デバイス1を動作させ、実行結果を出力するデバイス試験部217(論理デバイス実機試験手段)と、デバイス試験部217によって出力される実行結果と実行期待値とが一致するかと、未使用領域の値と初期値設定部215によって設定された初期値とが一致するか比較する出力結果判定部218(実行結果比較手段及び未使用領域比較手段)と、を備えている。
そして、CPU210は、アクセスされない領域のための初期値を変更しながら、デバイス試験部217によって実行結果を出力し、出力結果判定部218によって実行結果と実行期待値とが一致しないときは、不具合があったと判断し、その不具合を自動で検出する。また、CPU210は、未使用領域の値と初期値とが一致しないときにも、不具合があったと判断し、その不具合を自動で検出するようになっている。
また、CPU210は、コンパイルするRTL(Register Transfer Level)言語などの回路設計言語で記述されたソースコードや、コンパイル時に参照するファイルを管理するファイル管理部211と、回路設計言語で記述されたソースコードをコンパイルして、ゲートレベルのネットリスト(以下、ゲートレベルネットリストともいう。)を生成する論理合成部212と、ゲートレベルのネットリストから配置配線を行い、論理デバイス1に読み込み可能な構成情報を生成する構成情報生成部213と、を備えている。
入力装置400は、キーボードやマウスなどの入力装置であり、設計者によって入力される機能を有している。
出力装置500は、ディスプレイやプリンタなどの出力装置であり、出力結果判定部218の結果を出力する。
このように、デバッグ装置100は、コンピュータ及びソフトウェアによって形成され、上記の各機能を実現している。
次に、再構成可能な論理デバイス1について、図面を用いて説明する。
図3は、一般的な再構成可能な論理デバイス1の構成を示す概略構成図である。
以下、再構成可能な論理デバイスの構成1を例にして説明するが、
本実施の形態では、再構成可能な論理デバイス(以下、これを単に論理デバイスということがある。)1を、部分再構成可能なデバイスや動的再構成可能な論理デバイスにも適用することができる。
本実施の形態では、再構成可能な論理デバイス(以下、これを単に論理デバイスということがある。)1を、部分再構成可能なデバイスや動的再構成可能な論理デバイスにも適用することができる。
図3に示す論理デバイス1は、レジスタ・メモリブロックなどの記憶素子または演算器からなるプロセッシングエレメント(図中では、PEと表記する。)2と、配線3と、配線リソース、配線リソース間の接続を決めるスイッチ4と、論理デバイス1と外部回路(図示せず)との接続を行う入出力端子5と、論理デバイスの制御を行う制御器6と、を備えている。
制御器6は、論理デバイスを構成するレジスタ・メモリブロックなどの記憶素子(即ち、PEである。)に値を書き込み・読み出しする機能を有している。
この論理デバイス1は、レジスタ・メモリブロックの初期値や、演算器の設定、或いは配線リソースのスイッチ4の設定、制御器6の設定等からなる構成情報を設定することにより、設計者が設計した回路を実現することができる。
次に、本実施の形態におけるメモリブロックの未使用領域について説明する。
図4は、使用するメモリブロック内の使用領域と、未使用領域との関係を示したものである。
論理デバイス1内のメモリブロックは、設計回路として記述されたメモリサイズと、論理デバイス1のメモリブロックのサイズの不一致により、全ての領域が使用されるとは限らないので、未使用領域が発生する場合がある。
例えば、図4の左側のメモリブロックの例では、上側が使用領域であり、下側が未使用領域となっていることを示している。
また、図4の右側のメモリブロックの例では、2つ以上の回路記述のメモリ領域を、1つのメモリブロックに割当て、メモリブロックを使用した例である。
この場合、アドレス計算の簡略化のため、メモリ領域の開始アドレスを2nにすることがあり、使用するメモリ領域の間に未使用領域が発生する場合がある。
また、論理デバイス1に特有の点として、多次元配列をメモリブロックに割当てる際にも同様に未使用領域が発生する。
つまり、多次元配列を1次元の深さを持つメモリブロックに割当てる際にアドレス生成器を付加するが、このアドレス生成に使用される乗算をシフタなどで代用し簡略化することが行なわれ、上述のような未使用領域が発生する。
本実施の形態では、このように、従来使用されていなかったこれらのメモリブロックの未使用領域を、デバッグ装置100におけるデバッグ方法に利用することを特徴としている。
次に、図5は、メモリブロックの未使用領域を、デバッグ方法に利用したデバッグ装置の処理フローを示したフローチャートである。
図5に示すフローチャートでは、左側に通常フローを示し、右側に本実施の形態における検証フローを示している。
まず、図5に示す通常フロー(左側)について説明する。
ステップS10において、CPU210のファイル管理部211(図2)は、コンパイルするソースコード(例えば、Verilog-HDL言語やVHDL言語)の抽出や、コンパイル時に参照する環境設定ファイルなどを準備する。
ステップS20において、CPU210の論理合成部212は、そのソースコードに対して論理合成を行い、例えば、Verilog−HDL言語で記載された回路から、ゲートレベルネットリストを生成する。
ここで、論理合成する際に、メモリやFIFO(FirstIn-FirstOut)を使用する場合には、Word-bit構成のサイズを指定することができ、論理回路を始め、特殊セルなど、様々な回路構成を任意に設定できるものとする。
ステップS30において、CPU210の構成情報生成部213は、生成されたゲートレベルネットリストから配置配線を行い、構成情報(図中では、ユーザ設計構成情報と記載する。)を生成する。
ステップS40において、CPU210のデバイス試験部217は、生成された構成情報を再構成可能な論理デバイス1に読み込み、実機実行を行う。
ステップS50において、CPU210の出力結果判定部218は、予め用意された期待値(出力期待値ともいう。)と出力結果の比較を行い、出力期待値と異なる出力結果を得た実行結果に対して、不具合発生としてその結果を出力する。
次に、図5に示した本実施の形態に係る検証フロー(右側)について説明する。
本実施の形態では、ステップS20の論理合成部212が論理合成を行う段階において、設計回路として記述されたメモリサイズと、論理デバイスのメモリブロックのサイズとの差から、メモリブロックの未使用領域情報と、設計回路を論理合成する際に判明する投機的メモリアクセスによって余分なアクセスが発生してしまう領域の情報を検出する機能を有している。
すなわち、ステップS21において、CPU210の領域検出部214は、設計回路として使用されない未使用領域と、余分なアクセスによって発生してしまう領域との情報を検出し、未使用・投機的メモリアクセス領域情報を生成する。
そして、ステップS22において、CPU210の初期値設定部215は、本来なら未使用である未使用・投機的メモリアクセス領域情報のための初期値を生成し、その値を未使用領域の初期値として生成する。
これにより、ステップS23において、CPU210の未使用領域構成情報生成部219は、生成された初期値に対応する未使用領域構成情報を生成する。
そして、ステップS31において、CPU210の構成情報結合部216は、ステップS30において生成された構成情報と、ステップS23において生成された未使用領域構成情報とをマージ(結合)する。
ステップS32において、CPU210の構成情報結合部216は、設計者によって設計された構成情報と、初期値が記述された未使用領域構成情報とがマージされた構成情報を用いて、論理デバイス1の検証用構成情報を生成する。
ステップS33において、CPU210のデバイス試験部217は、生成された検証用構成情報を、I/Oインターフェース部280を介して論理デバイス1に読み込み、実機実行を行う。
そして、CPU210の出力結果判定部218は、論理デバイス1の実行結果に不一致が認められるか、或いは本来は未使用である未使用領域に変化が見られる場合には、設計回路に不具合があるものと判断し、設計者に出力装置500を介して実機試験の結果を提示する。
これにより、設計者は、再構成可能な論理デバイス1に不具合が発生したことを知ることができるので、即座に不具合解析を実行することができる。
具体的には、ステップS34において、CPU210の出力結果判定部218は、実機試験によって論理デバイス1の出力結果が、出力期待値と一致するか否か判定を行う。
そして、出力結果が出力期待値と一致しない場合には(ステップS34のno)、ステップS37へ進み、設計者は不具合解析を行う。
一方、出力結果が出力期待値と一致する場合には(ステップS34のyes)、ステップS35へ進み、未使用領域の初期値が一致するか判定を行う。
そして、未使用領域の初期値が一致しない場合には(ステップS35のno)、ステップS37へ進み、設計者は不具合解析を行う。
一方、未使用領域の初期値が一致する場合には(ステップS35のyes)、ステップS36へ進み、実機試験を終了するか否か判定を行うようになっている。
ステップS36において、実機試験を終了する場合には(ステップS36のyes)、ステップS38へ進み、終了する。
一方、実機試験を終了しない場合には(ステップS36のno)、ステップS22に戻り、未使用領域の初期値生成から再度、実行するようになっている。
このように、本実施の形態では、「本来は未使用である未使用領域」の値を読み出して、その値を初期値として、検証用構成情報の生成を行い、未使用領域のための初期値を変更しながら実機検証を繰り返し行うことにより、設計回路の潜在的な不具合を検出することができる。
以上のように本実施の形態によれば、デバッグ装置100は、論理デバイス1自体に何ら付加回路を加えることなく、不定値伝播による不具合検出を擬似的に行うことができる。
なお、本実施の形態で言う余分なメモリアクセスとは、以下のことをいう。
例えば、メモリアクセスを繰り返し行う繰り返し処理の最後において、高速化のためにアドレスの範囲を超えてメモりアクセスを行う回路を生成する場合があり、通常はこのメモリアクセスが発生しないように保護回路を付加する。
しかし、使用リソースを削減するためにこの保護回路を省略し、このメモリアクセスが発生することを許容することがある。
本実施の形態では、この保護回路を省略した場合に、その際に発生するこれらのアドレスにアクセスするものを、余分なメモリアクセスということにする。
なお、これらは、本来なら設計通りの動作であるが、不具合検出において擬似的にエラーとして検出されてしまうことを防ぐため、これらの余分なアクセスが発生してしまう領域の情報を生成し、未使用領域から除外するようにしている。
また、これらの余分なメモリアクセスは、本実施の形態ではこれに限定されるものではなく、設計者の意図する動作であっても不具合解析に支障を来すようなアクセスがあれば、それを余分なメモリアクセスとするようにしても良い。
以上、図面を参照して本発明の実施形態について述べたが、これらは本発明の例示であり、上記以外の様々な構成を採用することもできる。
次に、更に詳細な実施例について、以下に説明する。
(第一実施例)
論理デバイス1は、設計回路を構成情報として読み込むことにより機能するが、本実施の形態のデバッグ装置100は、メモリブロックにおける未使用領域であって、かつ投機的メモリアクセスによってもアクセスされない領域を検出し、その未使用領域のための初期値として所定の値を初期値として設定する。
論理デバイス1は、設計回路を構成情報として読み込むことにより機能するが、本実施の形態のデバッグ装置100は、メモリブロックにおける未使用領域であって、かつ投機的メモリアクセスによってもアクセスされない領域を検出し、その未使用領域のための初期値として所定の値を初期値として設定する。
ここで、この初期値は、所定の値に限定されるものではなく、初期値設定部215において再現可能なランダム値が任意に設定され、検証用構成情報を生成するようにしても良い。
そして、デバッグ装置100は、生成された検証用構成情報を、I/Oインターフェース部280を介して論理デバイス1に読み込み、設計回路を動作させる。
そして、設計回路の構成情報に不具合が無ければ、論理デバイス1の「本来は未使用である未使用領域」に設定された内容(値)は、一切利用されることなく、設計者の期待する動作であって不一致のない実行結果を得ることができる。
これに対し、設計回路の構成情報に何らかの不具合が有れば、「本来は未使用である未使用領域」に設定された内容(値)が利用される可能性があり、設計者の期待しない動作であって未使用領域が利用された出力結果が得られる場合がある。
また、この未使用領域に設定された値(即ち、初期値である。)を変更しながら、実機試験を繰り返すことにより、設計回路の潜在的な不具合を自動的に検出することができる。
従って、設計者の意図しない作用を及ぼすメモリブロック及びそのアドレス情報が設計者に提示されるので、設計者は速やかに回路の問題箇所を把握し、不具合のある回路の修正を行うことができる。
(第二実施例)
第一実施例では、メモリブロックにおける未使用領域であって、かつ投機的メモリアクセスによってもアクセスされない領域(即ち、メモリブロックの未初期化部分)の値を設定し、設計回路を動作させた際の実行結果の変化を検出するようになっているが、第二実施例では、「本来は未使用である未使用領域」に所定の値を書き込んで、その値の変化を検出することによって、設計回路の意図しない動作を検出する。
第一実施例では、メモリブロックにおける未使用領域であって、かつ投機的メモリアクセスによってもアクセスされない領域(即ち、メモリブロックの未初期化部分)の値を設定し、設計回路を動作させた際の実行結果の変化を検出するようになっているが、第二実施例では、「本来は未使用である未使用領域」に所定の値を書き込んで、その値の変化を検出することによって、設計回路の意図しない動作を検出する。
具体的には、メモリブロックの未使用領域であって、かつ投機的メモリアクセスによってアクセスされない領域に、所定の値を書き込むことによって設定し、その後に論理デバイス1を動作させる。
そして、設計回路の構成情報に不具合が無ければ、論理デバイス1の「本来は未使用である未使用領域」に設定された所定の値は変化しない。
これに対し、設計回路の構成情報に何らかの不具合が有れば、未使用領域に設定された所定の値が変更される可能性があり、期待しない動作を検出できる場合がある。
この場合、例えば、未使用領域に設定する所定の値を少なくとも2種類(全て0、全て1)でよく、それぞれにおいて設計回路を動作させることにより、設計回路の潜在的な不具合を自動的に検出することができる。
そして、検出されたメモリブロック及びそのアドレス情報は設計者に提示され、設計者は速やかに回路の問題箇所を把握し、不具合のある回路の修正を行うことができる。
(第三実施例)
次に、第三の実施例では、未使用領域であって投機的メモリアクセスによってアクセスされる可能性がある領域に対してのみ、第一実施例、又は第二実施例で示した初期値の設定及び実機試験の不具合動作検出を行うことにより、投機的メモリアクセスを行なう回路に対して選択的に検査を行なう。
次に、第三の実施例では、未使用領域であって投機的メモリアクセスによってアクセスされる可能性がある領域に対してのみ、第一実施例、又は第二実施例で示した初期値の設定及び実機試験の不具合動作検出を行うことにより、投機的メモリアクセスを行なう回路に対して選択的に検査を行なう。
この場合、不具合箇所の特定にかかる繰り返し回数が、通常のデバッグにおける繰り返し回数よりも少ない回数で済むため、全体としてデバッグにかかる検証時間を短縮することができる、という更なる効果を有している。
更に、未使用領域の中の投機的メモリアクセスによってアクセスされる可能性がある領域のみ実機検証を行うことによって、不具合解析の精度を高めることができる、という更なる効果を有している。
(第四実施例)
次に、第四の実施例では、未使用領域に設定する初期値の設定値を工夫することにより、不具合発見の可能性を高める機構を示す。
次に、第四の実施例では、未使用領域に設定する初期値の設定値を工夫することにより、不具合発見の可能性を高める機構を示す。
図5のステップS20の合成ステップにおいて、設計回路の記述であって、配列の宣言ビット幅、配列への読み書きの記述から、実効(実際に読み書きされる)ビット幅、また、それに初期値が付与されていれば取りうる値の範囲(値域)が分かり、メモリブロックに収められる値域が静的に求まる。
第四実施例では、これを正常な値域と定義する。一方、メモリブロックのビット幅で表現可能な値であって、正常な定義域ではない値の集合を、異常な値域と定義する。
そして、未使用領域に設定する値として、正常な閾値を採用した場合よりも異常な値域を採用する方が、異常な出力結果を引き起こす可能性が高い事が期待出来る。
つまり、第四実施例では、未使用領域情報に異常な値域が含まれる場合には、生成すべき初期値を未使用領域の異常な値域から選択することにより、より一層、不具合発見の可能性を高めることができる。
1 再構成可能な論理デバイス
2 レジスタ・メモリブロックなどの記憶素子または演算器からなるプロセッシングエレメント(PE)
3 配線
4 スイッチ
5 入出力端子
6 制御器
100 デバッグ装置
200 計算部
210 CPU
211 ファイル管理部
212 論理合成部
213 構成情報生成部
214 領域検出部
215 初期値設定部
216 構成情報結合部
217 デバイス試験部
218 出力結果判定部
219 未使用領域構成情報生成部
220 I/Oインターフェース部
230 メモリ制御I/F部
240 主記憶部
250 メモリ制御I/F部
260 データ蓄積部
270 I/Oインターフェース部
280 I/Oインターフェース部
400 入力装置
500 出力装置
2 レジスタ・メモリブロックなどの記憶素子または演算器からなるプロセッシングエレメント(PE)
3 配線
4 スイッチ
5 入出力端子
6 制御器
100 デバッグ装置
200 計算部
210 CPU
211 ファイル管理部
212 論理合成部
213 構成情報生成部
214 領域検出部
215 初期値設定部
216 構成情報結合部
217 デバイス試験部
218 出力結果判定部
219 未使用領域構成情報生成部
220 I/Oインターフェース部
230 メモリ制御I/F部
240 主記憶部
250 メモリ制御I/F部
260 データ蓄積部
270 I/Oインターフェース部
280 I/Oインターフェース部
400 入力装置
500 出力装置
Claims (12)
- 再構成可能な論理デバイスのデバッグ装置であって、
前記論理デバイス内の1つ以上のメモリブロック内における、設計回路によって使用されない未使用領域において、メモリアクセスの投機実行によりアクセスされない領域を検出する投機非アクセス検出手段と、
前記投機非アクセス検出手段によって検出された前記アクセスされない領域のための初期値を生成する初期値設定手段と、
設定された前記初期値から当該初期値が記述された未使用領域の構成情報を生成する未使用領域構成情報生成手段と、
前記論理デバイスの構成情報と、生成された前記未使用領域の構成情報とを結合して、検証用構成情報を生成する構成情報結合生成手段と、
前記構成情報結合生成手段によって生成された前記検証用構成情報を前記論理デバイスに読み込み、当該論理デバイスを動作させ、実行結果を出力する論理デバイス実機試験手段と、
前記論理デバイス実機試験手段によって出力される前記実行結果と、実行期待値とが一致するか比較する実行結果比較手段と、を備え、
前記アクセスされない領域のための前記初期値を変更しながら、前記論理デバイス実機試験手段によって前記実行結果を出力し、前記実行結果比較手段によって当該実行結果と前記実行期待値とが一致しないときは、
不具合があったと判断し、当該不具合を自動で検出する
ことを特徴とするデバッグ装置。 - 請求項1に記載のデバッグ装置であって、
前記論理デバイス実機試験手段によって前記論理デバイスを動作させ、動作後の前記未使用領域の値と、前記初期値とが一致するか比較する未使用領域比較手段を更に備え、
前記アクセスされない領域のための前記初期値を変更しながら、当該論理デバイスを動作させ、前記未使用領域比較手段によって当該未使用領域の値と前記初期値とが一致しないときは、
不具合があったと判断し、当該不具合を自動で検出する
ことを特徴とするデバッグ装置。 - 請求項1又は2に記載のデバッグ装置であって、
前記初期値設定手段は、
前記投機非アクセス検出手段によって検出された前記アクセスされない領域のための初期値として所定の値を生成する
ことを特徴とするデバッグ装置。 - 請求項1又は2に記載のデバッグ装置であって、
前記初期値設定手段は、
前記投機非アクセス検出手段によって検出された前記アクセスされない領域のための初期値として再現可能なランダムな値を生成する
ことを特徴とするデバッグ装置。 - 請求項1乃至4の何れか1項に記載のデバッグ装置であって、
前記投機非アクセス検出手段は、
前記メモリアクセスの投機実行によってアクセスされる可能性がある領域を検出する投機領域検出手段と、
前記投機領域検出手段によって検出された前記アクセスされる可能性がある領域に、所定の値を前記初期値として設定するアクセス領域初期値設定手段と、
を含むことを特徴とするデバッグ装置。 - 再構成可能な論理デバイスのデバッグ装置におけるデバッグ方法であって、
前記論理デバイス内の1つ以上のメモリブロック内における、設計回路によって使用されない未使用領域において、メモリアクセスの投機実行によりアクセスされない領域を検出する投機非アクセス検出ステップと、
前記投機非アクセス検出ステップにおいて検出された前記アクセスされない領域のための初期値を生成する初期値設定ステップと、
設定された前記初期値から当該初期値が記述された未使用領域の構成情報を生成する未使用領域構成情報生成ステップと、
前記論理デバイスの構成情報と、生成された前記未使用領域の構成情報とを結合して、検証用構成情報を生成する構成情報結合生成ステップと、
前記構成情報結合生成ステップにおいて生成された前記検証用構成情報を前記論理デバイスに読み込み、当該論理デバイスを動作させ、実行結果を出力する論理デバイス実機試験ステップと、
前記論理デバイス実機試験ステップにおいて出力される前記実行結果と、実行期待値とが一致するか比較する実行結果比較ステップと、
前記アクセスされない領域のための前記初期値を変更しながら、前記論理デバイス実機試験ステップによって前記実行結果を出力し、前記実行結果比較ステップによって当該実行結果と前記実行期待値とが一致しないときは、不具合があったと判断し、当該不具合を自動で検出する不具合検出ステップと、
を含むことを特徴とするデバッグ方法。 - 請求項6に記載のデバッグ方法であって、
前記論理デバイス実機試験ステップによって前記論理デバイスを動作させ、動作後の前記未使用領域の値と、前記初期値とが一致するか比較する未使用領域比較ステップと、
前記アクセスされない領域のための前記初期値を変更しながら、当該論理デバイスを動作させ、前記未使用領域比較ステップによって当該未使用領域の値と前記初期値とが一致しないときは、
不具合があったと判断し、当該不具合を自動で検出する不具合検出ステップと、
を含むことを特徴とするデバッグ方法。 - 請求項6又は7に記載のデバッグ方法であって、
前記初期値設定ステップは、
前記投機非アクセス検出ステップにおいて検出された前記アクセスされない領域のための初期値として所定の値を生成する初期値生成ステップ
を更に含むことを特徴とするデバッグ方法。 - 請求項6又は7に記載のデバッグ方法であって、
前記初期値設定ステップは、
前記投機非アクセス検出ステップによって検出された前記アクセスされない領域のための初期値として再現可能なランダムな値を生成するランダム初期値生成ステップ
を更に含むことを特徴とするデバッグ方法。 - 請求項6乃至9の何れか1項に記載のデバッグ方法であって、
前記投機非アクセス検出ステップは、
前記メモリアクセスの投機実行によってアクセスされる可能性がある領域を検出する投機領域検出ステップと、
前記投機領域検出ステップによって検出された前記アクセスされる可能性がある領域に、所定の値を前記初期値として設定するアクセス領域初期値設定ステップと、
を含むことを特徴とするデバッグ方法。 - 再構成可能な論理デバイスのデバッグ装置におけるデバッグプログラムであって、
前記論理デバイス内の1つ以上のメモリブロック内における、設計回路によって使用されない未使用領域において、メモリアクセスの投機実行によりアクセスされない領域を検出する投機非アクセス検出手順と、
前記投機非アクセス検出手順によって検出された前記アクセスされない領域のための初期値を生成する初期値設定手順と、
設定された前記初期値から当該初期値が記述された未使用領域の構成情報を生成する未使用領域構成情報生成手順と、
前記論理デバイスの構成情報と、生成された前記未使用領域の構成情報とを結合して、検証用構成情報を生成する構成情報結合生成手順と、
前記構成情報結合生成手順によって生成された前記検証用構成情報を前記論理デバイスに読み込み、当該論理デバイスを動作させ、実行結果を出力する論理デバイス実機試験手順と、
前記論理デバイス実機試験手順によって出力される前記実行結果と、実行期待値とが一致するか比較する実行結果比較手順と、
前記アクセスされない領域のための前記初期値を変更しながら、前記論理デバイス実機試験手順によって前記実行結果を出力し、前記実行結果比較手順によって当該実行結果と前記実行期待値とが一致しないときは、不具合があったと判断し、当該不具合を自動で検出する不具合検出手順と、
をコンピュータに実行させることを特徴とするデバッグプログラム。 - 請求項11に記載のデバッグプログラムであって、
前記論理デバイス実機試験手順によって前記論理デバイスを動作させ、動作後の前記未使用領域の値と、前記初期値とが一致するか比較する未使用領域比較手順と、
前記アクセスされない領域のための前記初期値を変更しながら、当該論理デバイスを動作させ、前記未使用領域比較手順によって当該未使用領域の値と前記初期値とが一致しないときは、不具合があったと判断し、当該不具合を自動で検出する不具合検出手順と、
を更にコンピュータに実行させることを特徴とするデバッグプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008090775A JP2009245148A (ja) | 2008-03-31 | 2008-03-31 | 再構成可能な論理デバイスのデバッグ装置、デバッグ方法及びデバッグプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008090775A JP2009245148A (ja) | 2008-03-31 | 2008-03-31 | 再構成可能な論理デバイスのデバッグ装置、デバッグ方法及びデバッグプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2009245148A true JP2009245148A (ja) | 2009-10-22 |
Family
ID=41306959
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008090775A Pending JP2009245148A (ja) | 2008-03-31 | 2008-03-31 | 再構成可能な論理デバイスのデバッグ装置、デバッグ方法及びデバッグプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2009245148A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101181795B1 (ko) | 2011-04-05 | 2012-09-12 | 한국과학기술원 | 영구적 오류에 강인한 저비용 n 비트 산술논리연산기 |
-
2008
- 2008-03-31 JP JP2008090775A patent/JP2009245148A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101181795B1 (ko) | 2011-04-05 | 2012-09-12 | 한국과학기술원 | 영구적 오류에 강인한 저비용 n 비트 산술논리연산기 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7379861B2 (en) | Dynamic programming of trigger conditions in hardware emulation systems | |
US8595676B2 (en) | BDD-based functional modeling | |
US8892386B2 (en) | Method and apparatus for post-silicon testing | |
US20100313175A1 (en) | Verification systems and methods | |
JP6995451B2 (ja) | 回路適正化装置及び回路適正化方法 | |
US10235485B1 (en) | Partial reconfiguration debugging using hybrid models | |
US7523029B2 (en) | Logic verification and logic cone extraction technique | |
JP2000207440A (ja) | 半導体集積回路の設計検証装置、方法及び記憶媒体 | |
US9404972B2 (en) | Diagnosis and debug with truncated simulation | |
CN111858290A (zh) | 用于检测目标代码的内存泄漏路径的方法和设备 | |
JP6663801B2 (ja) | 半導体lsi設計装置および設計方法 | |
JP7045921B2 (ja) | 半導体lsi設計装置および設計方法 | |
JP4242741B2 (ja) | デバッグ用信号処理回路 | |
US7103859B2 (en) | System and method for improving testability independent of architecture | |
Laeufer et al. | Simulator independent coverage for RTL hardware languages | |
JP2009245148A (ja) | 再構成可能な論理デバイスのデバッグ装置、デバッグ方法及びデバッグプログラム | |
JP5454349B2 (ja) | 性能推定装置 | |
JPWO2006025412A1 (ja) | 論理検証方法、論理モジュールデータ、デバイスデータおよび論理検証装置 | |
US20090171648A1 (en) | Instruction check program, instruction check apparatus, and i/o simulator | |
JP4899927B2 (ja) | テストパターン自動生成方法およびテストパターン自動生成プログラム | |
Di Carlo et al. | On enhancing fault injection's capabilities and performances for safety critical systems | |
JP7335535B2 (ja) | ハードウエアトロイ検出装置及びハードウエアトロイ検出用プログラム | |
JP7274063B2 (ja) | テストケース生成装置、テストケース生成方法及びテストケース生成プログラム | |
Chang et al. | InVerS: an incremental verification system with circuit similarity metrics and error visualization | |
JP2011034517A (ja) | 等価性検証装置、そのデータ処理方法、およびプログラム |