JP2011034517A - 等価性検証装置、そのデータ処理方法、およびプログラム - Google Patents
等価性検証装置、そのデータ処理方法、およびプログラム Download PDFInfo
- Publication number
- JP2011034517A JP2011034517A JP2009182810A JP2009182810A JP2011034517A JP 2011034517 A JP2011034517 A JP 2011034517A JP 2009182810 A JP2009182810 A JP 2009182810A JP 2009182810 A JP2009182810 A JP 2009182810A JP 2011034517 A JP2011034517 A JP 2011034517A
- Authority
- JP
- Japan
- Prior art keywords
- description
- bit width
- equivalence
- signal value
- signal
- 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
Abstract
【課題】信頼性の高い等価性検証を行うことができる等価性検証装置、そのデータ処理方法、およびプログラムを提供する。
【解決手段】等価性検証装置100は、動作記述31とRTL記述32、各記述の変数または信号の対応関係を表す対応情報34、および対応関係のある変数または信号の有効なビット幅を表すビット幅情報36を取得する取得部102と、取得した情報に基づいて対応関係にある変数または信号を特定する特定部104と、ビット幅情報36に基づいて有効なビット幅で変数または信号の信号値関数38を抽出する信号値関数抽出部106と、有効なビット幅については信号値が等しいと仮定し、それ以外のビット幅については信号値が等しくないと仮定を与えつつ、対応関係にある変数または信号を比較する信号値関数比較部110と、信号値関数比較部110による論理等価性の比較結果に基づいて等価性を判定する検証結果判定部112と、を備える。
【選択図】図1
【解決手段】等価性検証装置100は、動作記述31とRTL記述32、各記述の変数または信号の対応関係を表す対応情報34、および対応関係のある変数または信号の有効なビット幅を表すビット幅情報36を取得する取得部102と、取得した情報に基づいて対応関係にある変数または信号を特定する特定部104と、ビット幅情報36に基づいて有効なビット幅で変数または信号の信号値関数38を抽出する信号値関数抽出部106と、有効なビット幅については信号値が等しいと仮定し、それ以外のビット幅については信号値が等しくないと仮定を与えつつ、対応関係にある変数または信号を比較する信号値関数比較部110と、信号値関数比較部110による論理等価性の比較結果に基づいて等価性を判定する検証結果判定部112と、を備える。
【選択図】図1
Description
本発明は、等価性検証装置、そのデータ処理方法、およびプログラムに関し、特に、半導体集積回路の設計における2つの記述の論理等価性を検証する等価性検証装置、そのデータ処理方法、およびプログラムに関する。
LSI(Large-Scale Integration)設計において、設計の正しさを確かめる検証は、主にテストパターンを用いるシミュレーションによって行われていた。
しかし、テストパターンを必要とするシミュレーションでは、テストパターンの作成に膨大な時間およびコストを必要とする上に、検証の網羅性がテストパターンに依存するため、信頼性を確保するために十分な検証を行うことが必ずしも容易ではないという問題がある。
しかし、テストパターンを必要とするシミュレーションでは、テストパターンの作成に膨大な時間およびコストを必要とする上に、検証の網羅性がテストパターンに依存するため、信頼性を確保するために十分な検証を行うことが必ずしも容易ではないという問題がある。
これに対して、形式的手法に基づく検証は、テストパターンを用いることなく網羅的な検証を行うことが可能であり、シミュレーションの問題点を補う有効な手法である。
レジスタトランスファレベル(Register Transfer Level:RTL)記述とゲートレベル記述、ゲートレベル記述同士の等価性を保障する等価性検証では、形式的な等価性検証手法はもはや一般的に用いられているといえる。
レジスタトランスファレベル(Register Transfer Level:RTL)記述とゲートレベル記述、ゲートレベル記述同士の等価性を保障する等価性検証では、形式的な等価性検証手法はもはや一般的に用いられているといえる。
一方、近年はLSIの設計規模が増大しているため、C言語などのソフトウェア向け言語を拡張した言語などによる抽象度の高い動作記述から、動作合成を用いてRTL記述を生成する設計が増えつつある。動作合成を用いた設計手法は、抽象度の高い動作レベルでの設計を行うことで記述量を少なくすることができ、設計や検証の生産性を大きく高めることができる。しかし、動作合成は途中に複雑な工程を多く含む巨大なソフトウエアシステムであるため、内部にバグが存在し、誤ったRTL記述を出力する可能性は否定できない。ソフトウェアと異なり、ハードウェアであるLSIに設計誤りが存在した場合の修正は困難であるため、動作合成前後の動作記述とRTL記述の等価性検証はきわめて重要であり、形式的手法に基づく等価性検証手法への期待も高まっている。
等価性検証システムの一例が特許文献1および非特許文献1に記載されている。図10に示すように、特許文献1に記載の等価性検証システムは、動作合成前後の動作記述とRTL記述の等価性検証を対象としている。
そして、等価性検証装置10は、信号値関数抽出装置7と、関数等価性比較装置9とから構成されており、記憶装置5には動作レベル記述1、RTレベル記述3、対応関係4、および、信号値関数8が記憶される。
図10および図11に示すフローチャートによると、特許文献1に記載の等価性検証システムは概略以下のように動作する。
すなわち、動作合成装置2は、設計者が記述した動作レベル記述1を入力として、動作合成を行い、RTレベル記述3を出力する(ステップS1)。さらに、対応関係4として、動作レベル記述1中の記述がRTレベル記述3中のどの部分に変換されたかを示す情報や、動作レベル記述1上の変数とRTレベル記述3上の信号との対応を示す情報などを出力する。
信号値関数抽出装置7は、動作レベル記述1、RTレベル記述3および対応関係4を読込み(ステップS3およびS5)、等価性を検証するために必要となる変数や信号を特定し、それらの変数や信号の値の変化の様子、すなわち信号値関数8を抽出する(ステップS7)。信号値関数8の抽出は、たとえば記号シミュレーション、項書換えといった既知の手法によって行われる。抽出した信号値関数8は記憶装置5に記憶される。
関数等価性比較装置9は、2つの記述の対応する変数や信号の信号値関数8を入力し、2つが等価であるかを検証する(ステップS9)。かかる検証には、たとえば充足可能性判定(SAT:Satisfiability)、validity checkerなどとよばれる既知の技術を用いて行われる。比較対象とされる全ての変数や信号に対する信号値関数8が等価である場合、2つの記述が等価であると判定される。そうでない場合、2つの記述は等価でないと判定される。
ハードウェア設計においては、回路面積を削減するために、内部の信号のビット幅を実際の代入または参照される値を表すことができる幅に応じて縮小することがある。特に、動作合成により動作記述からRTL記述を合成する場合には、動作合成は、データフローなどを解析することにより、動作記述上で大きなビット幅を持つように宣言された変数に対して、ビット幅の小さなレジスタを割り当てる合成を行うことがある。
特許文献2に記載の回路設計を支援する回路設計支援装置として機能する情報処理装置は、回路の動作を記述した動作情報を保持する動作情報保持手段と、動作情報からより具体的な回路構成を決定するために必要な設計情報を保持する設計情報保持手段と、動作情報と設計情報とを関連づけ、該関連づけに関する情報を関連づけ情報として保持する関連づけ手段と、保持された動作情報、設計情報、関連づけ情報に基づいて回路設計を実行する回路設計手段とを備える。
特許文献2に記載の装置の例では、動作情報に記述された32ビットの変数が、動作合成により回路化されて12ビットの入力ポートに変換されている。
さらに、特許文献3に記載の回路設計支援システムは、動作レベル記述を基に動作合成処理を実施し、該動作合成処理の工程毎の処理結果である中間記述および該動作合成処理の結果であるRTレベル記述をそれぞれ生成する動作合成手段と、動作レベル記述とRTレベル記述の対応関係を生成する対応生成手段と、RTレベル記述内の指定された部品に対応する動作レベル記述の要素を抽出する対応解析手段とを備える。
竹中崇、外5名、「動作合成前後の動作記述とRTL記述の論理等価性検証」、第17回 回路とシステム軽井沢ワークショップ、2004年、p.555−560
ハードウェア設計において、回路面積を削減するために、上述したようなビット幅の縮減を行った場合、その正しさを確認するために、縮減前後の記述を等価性検証装置によって等価であることを確かめたいという要求は特に強いと考えられる。しかし、上述した特許文献1に記載の等価性検証装置では、比較対象となる変数や信号のビット幅は等しいのが通常である。そのため、かかる最適化が施された回路に対して上記等価性検証システムを用いて等価性検証を行おうとすると、検証が正しく行えない問題点があった。
その理由は、疑似エラー、すなわち、本来2つの記述の論理が等価であると判断すべき場合であっても、非等価であるとの検証結果を返す場合があるからである(フォールス・ネガティブ、false negativeと呼ばれることもある)。たとえば、削減前のビット幅を基準として等価性の検証を行うと、出力結果に影響がないとして削減されたビットまで検証を行ってしまうためである。
また、逆に、本来は2つ記述の論理が等価ではないと判断すべき場合であっても、等価であるとの検証結果を返す場合があるからである(フォールス・ポジティブ、false positiveと呼ばれることもある)。たとえば、ビット幅を削減した後のビット幅を基準として等価性の検証を行うと、本来は出力結果に影響を及ぼすビットが誤って削除される場合でも、そのことを判断できない場合があるためである。
すなわち、比較対象となる変数や信号のビット幅が最適化により変化する場合、上述した等価性検証装置では、2つの記述が一致する、すなわち等価であるとの報告がなされたとしても、実際には一致していない可能性があり、あるいは、不一致(等価でない)との報告がなされても、それが最適化に問題があるか、あるいは等価性検証装置自体の原理的な問題なのかが容易には分からないという問題点があった。
本発明の目的は、上述した課題である比較対象となる変数やレジスタのビット幅が異なる場合であっても、ビット幅が異なることが妥当であることも含めて、疑似エラーや検証漏れを解決する等価性検証装置、そのデータ処理方法、およびプログラムを提供することにある。
本発明の等価性検証装置は、半導体集積回路の設計を行う際に使用する第1の記述および第2の記述、前記第1の記述および前記第2の記述に記述された変数または信号の対応関係を表す対応情報、および、前記対応関係のある変数または信号について有効なビット幅を表すビット幅情報を取得する取得手段と、
前記第1の記述および前記第2の記述、前記対応情報、および前記ビット幅情報に基づいて、前記対応関係にある変数または信号を特定する特定手段と、
特定された前記対応関係にある変数または信号の信号値関数を抽出する際、前記ビット幅情報に基づいて、前記ビット幅情報に示される前記有効なビット幅で前記変数または信号の信号値関数をそれぞれ抽出する信号値関数抽出手段と、
前記対応関係にある変数または信号について、前記有効なビット幅については信号値が等しいと仮定し、それ以外のビット幅については信号値が等しくないと仮定を与えつつ、前記信号値関数抽出手段により抽出された前記信号値関数を参照し、前記対応関係にある変数または信号の前記信号値関数を比較する信号値関数比較手段と、
前記信号値関数比較手段による論理等価性の比較結果に基づいて、前記第1の記述および前記第2の記述の等価性を判定する検証結果判定手段と、を備える。
前記第1の記述および前記第2の記述、前記対応情報、および前記ビット幅情報に基づいて、前記対応関係にある変数または信号を特定する特定手段と、
特定された前記対応関係にある変数または信号の信号値関数を抽出する際、前記ビット幅情報に基づいて、前記ビット幅情報に示される前記有効なビット幅で前記変数または信号の信号値関数をそれぞれ抽出する信号値関数抽出手段と、
前記対応関係にある変数または信号について、前記有効なビット幅については信号値が等しいと仮定し、それ以外のビット幅については信号値が等しくないと仮定を与えつつ、前記信号値関数抽出手段により抽出された前記信号値関数を参照し、前記対応関係にある変数または信号の前記信号値関数を比較する信号値関数比較手段と、
前記信号値関数比較手段による論理等価性の比較結果に基づいて、前記第1の記述および前記第2の記述の等価性を判定する検証結果判定手段と、を備える。
本発明の等価性検証装置のデータ処理方法は、
前記等価性検証装置が、
半導体集積回路の設計を行う際に使用する第1の記述および第2の記述、前記第1の記述および前記第2の記述に記述された変数または信号の対応関係を表す対応情報、および、前記対応関係のある変数または信号について有効なビット幅を表すビット幅情報を取得し、
前記第1の記述および前記第2の記述、前記対応情報、および前記ビット幅情報に基づいて、前記対応関係にある変数または信号を特定し、
特定された前記対応関係にある変数または信号の信号値関数を抽出する際、前記ビット幅情報に基づいて、前記ビット幅情報に示される前記有効なビット幅で前記変数または信号の信号値関数をそれぞれ抽出し、
前記対応関係にある変数または信号について、前記有効なビット幅については信号値が等しいと仮定し、それ以外のビット幅については信号値が等しくないと仮定を与えつつ、抽出された前記信号値関数を参照し、前記対応関係にある変数または信号の前記信号値関数を比較し、
前記信号値関数の比較による論理等価性の比較結果に基づいて、前記第1の記述および前記第2の記述の等価性を判定する。
前記等価性検証装置が、
半導体集積回路の設計を行う際に使用する第1の記述および第2の記述、前記第1の記述および前記第2の記述に記述された変数または信号の対応関係を表す対応情報、および、前記対応関係のある変数または信号について有効なビット幅を表すビット幅情報を取得し、
前記第1の記述および前記第2の記述、前記対応情報、および前記ビット幅情報に基づいて、前記対応関係にある変数または信号を特定し、
特定された前記対応関係にある変数または信号の信号値関数を抽出する際、前記ビット幅情報に基づいて、前記ビット幅情報に示される前記有効なビット幅で前記変数または信号の信号値関数をそれぞれ抽出し、
前記対応関係にある変数または信号について、前記有効なビット幅については信号値が等しいと仮定し、それ以外のビット幅については信号値が等しくないと仮定を与えつつ、抽出された前記信号値関数を参照し、前記対応関係にある変数または信号の前記信号値関数を比較し、
前記信号値関数の比較による論理等価性の比較結果に基づいて、前記第1の記述および前記第2の記述の等価性を判定する。
本発明の等価性検証装置を実現するためのプログラムは、
半導体集積回路の設計を行う際に使用する第1の記述および第2の記述、前記第1の記述および前記第2の記述に記述された変数または信号の対応関係を表す対応情報、および、前記対応関係のある変数または信号について有効なビット幅を表すビット幅情報を取得する取得手順と、
前記第1の記述および前記第2の記述、前記対応情報、および前記ビット幅情報に基づいて、前記対応関係にある変数または信号を特定する特定手順と、
特定された前記対応関係にある変数または信号の信号値関数を抽出する際、前記ビット幅情報に基づいて、前記ビット幅情報に示される前記有効なビット幅で前記変数または信号の信号値関数をそれぞれ抽出する信号値関数抽出手順と、
前記対応関係にある変数または信号について、前記有効なビット幅については信号値が等しいと仮定し、それ以外のビット幅については信号値が等しくないと仮定を与えつつ、前記信号値関数抽出手順により抽出された前記信号値関数を参照し、前記対応関係にある変数または信号の前記信号値関数を比較する信号値関数比較手順と、
前記信号値関数の比較による論理等価性の比較結果に基づいて、前記第1の記述および前記第2の記述の等価性を判定する手順と、をコンピュータに実行させるためのものである。
半導体集積回路の設計を行う際に使用する第1の記述および第2の記述、前記第1の記述および前記第2の記述に記述された変数または信号の対応関係を表す対応情報、および、前記対応関係のある変数または信号について有効なビット幅を表すビット幅情報を取得する取得手順と、
前記第1の記述および前記第2の記述、前記対応情報、および前記ビット幅情報に基づいて、前記対応関係にある変数または信号を特定する特定手順と、
特定された前記対応関係にある変数または信号の信号値関数を抽出する際、前記ビット幅情報に基づいて、前記ビット幅情報に示される前記有効なビット幅で前記変数または信号の信号値関数をそれぞれ抽出する信号値関数抽出手順と、
前記対応関係にある変数または信号について、前記有効なビット幅については信号値が等しいと仮定し、それ以外のビット幅については信号値が等しくないと仮定を与えつつ、前記信号値関数抽出手順により抽出された前記信号値関数を参照し、前記対応関係にある変数または信号の前記信号値関数を比較する信号値関数比較手順と、
前記信号値関数の比較による論理等価性の比較結果に基づいて、前記第1の記述および前記第2の記述の等価性を判定する手順と、をコンピュータに実行させるためのものである。
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、記録媒体、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
また、本発明の各種の構成要素は、必ずしも個々に独立した存在である必要はなく、複数の構成要素が一個の部材として形成されていること、一つの構成要素が複数の部材で形成されていること、ある構成要素が他の構成要素の一部であること、ある構成要素の一部と他の構成要素の一部とが重複していること、等でもよい。
また、本発明のデータ処理方法およびコンピュータプログラムには複数の手順を順番に記載してあるが、その記載の順番は複数の手順を実行する順番を限定するものではない。このため、本発明のデータ処理方法およびコンピュータプログラムを実施するときには、その複数の手順の順番は内容的に支障しない範囲で変更することができる。
さらに、本発明のデータ処理方法およびコンピュータプログラムの複数の手順は個々に相違するタイミングで実行されることに限定されない。このため、ある手順の実行中に他の手順が発生すること、ある手順の実行タイミングと他の手順の実行タイミングとの一部ないし全部が重複していること、等でもよい。
本発明によれば、信頼性の高い等価性検証を行うことができる等価性検証装置、そのデータ処理方法、およびプログラムが提供される。
以下、本発明の実施の形態について、図面を用いて説明する。尚、すべての図面において、同様な構成要素には同様の符号を付し、適宜説明を省略する。
(第1の実施の形態)
図1は、本発明の実施の形態に係る等価性検証装置の構成を示す機能ブロック図である。
本発明の等価性検証システムは、2つの記述の論理等価性を検証するものである。本実施形態では、図1の動作合成装置20による動作合成前後の動作記述31とRTL(Register Transfer Level:レジスタ転送レベル)記述32との等価性を検証する等価性検証装置100を例に説明する。
図1は、本発明の実施の形態に係る等価性検証装置の構成を示す機能ブロック図である。
本発明の等価性検証システムは、2つの記述の論理等価性を検証するものである。本実施形態では、図1の動作合成装置20による動作合成前後の動作記述31とRTL(Register Transfer Level:レジスタ転送レベル)記述32との等価性を検証する等価性検証装置100を例に説明する。
本実施形態の等価性検証装置100は、半導体集積回路の設計を行う際に使用する第1の記述(動作記述31)および第2の記述(RTL記述32)、動作記述31およびRTL記述32に記述された変数または信号の対応関係を表す対応情報34、および、対応関係のある変数または信号について有効なビット幅を表すビット幅情報36を取得する取得部102と、動作記述31およびRTL記述32、対応情報34、およびビット幅情報36に基づいて、対応関係にある変数または信号を特定する特定部104と、特定された対応関係にある変数または信号の信号値関数38を抽出する際、ビット幅情報36に基づいて、ビット幅情報36に示される有効なビット幅で変数または信号の信号値関数38をそれぞれ抽出する信号値関数抽出部106と、対応関係にある変数または信号について、有効なビット幅については信号値が等しいと仮定し、それ以外のビット幅については信号値が等しくないと仮定を与えつつ、信号値関数抽出部106により抽出された信号値関数38を参照し、対応関係にある変数または信号の信号値関数38を比較する信号値関数比較部110と、信号値関数比較部110による論理等価性の比較結果に基づいて、動作記述31およびRTL記述32の等価性を判定する検証結果判定部112と、を備える。
等価性検証装置100は、たとえば、図示しないCPU(Central Processing Unit)やメモリ、ハードディスク、および通信装置を備え、キーボードやマウス等の入力装置やディスプレイやプリンタ等の出力装置と接続される一般的なコンピュータ、たとえば、サーバコンピュータやパーソナルコンピュータ、またはそれらに相当する装置により実現することができる。そして、CPUが、ハードディスク等に記憶されるプログラムをメモリに読み出して実行することにより、以下の各ユニットの各機能を実現することができる。なお、以下の図において、本発明の本質に関わらない部分の構成については省略してあり、図示されていない。
また、等価性検証装置100の各構成要素は、任意のコンピュータのCPU、メモリ、メモリにロードされた本図の構成要素を実現するプログラム、そのプログラムを格納するハードディスクなどの記憶ユニット、ネットワーク接続用インタフェースを中心にハードウェアとソフトウェアの任意の組合せによって実現される。そして、その実現方法、装置にはいろいろな変形例があることは、当業者には理解されるところである。以下説明する各図は、ハードウェア単位の構成ではなく、機能単位のブロックを示している。
具体的には、本実施形態の等価性検証装置100は、取得部102と、特定部104と、信号値関数抽出部106と、信号値関数比較部110と、検証結果判定部112と、を備える。また、等価性検証装置100は、記憶装置30に接続され、記憶装置30には、動作記述31、RTL記述32、対応情報34、ビット幅情報36、および信号値関数38が記憶される。
なお、図1では、等価性検証装置100と、記憶装置30および動作合成装置20は、別の装置として図示されているが、これに限定されない。動作合成装置20、記憶装置30、および等価性検証装置100は、同じコンピュータ上に構築されてもよいし、また、記憶装置30も必ずしも必要ではなく、記録媒体に記憶された動作記述31、RTL記述32、対応情報34、ビット幅情報36、および信号値関数38を読み出し、等価性検証装置100に読み込ませてもよい。
また、本実施形態では、動作合成装置20によって動作記述31がRTL記述32に変換された場合を例としているが、これに限定されない。たとえば、RTL記述32は、動作記述31を機能仕様として設計者が人手で記述したものであってもよく、等価性検証装置100は、RTL記述32のファイルを記録媒体から読み込んだり、他のコンピュータからネットワークを介してダウンロードしたりすることで受け付けてもよい。あるいは、等価性検証装置100でRTL記述32を作成および編集したものであってもよい。したがって、動作合成装置20は、必ずしも必要ではない。
動作合成装置20は、記憶装置30に記憶された動作記述31を入力として動作合成を行い、結果のRTL記述32とともに、ビット幅情報36、対応情報34を記憶装置30に記憶する。対応情報34は、動作記述31中の記述がRTL記述32中のどの部分に変換されたかを示す情報や、動作記述31上の変数とRTL記述32上の信号との対応を示す情報である。すなわち、RTL記述32および対応情報34は、動作合成装置20により動作記述31を動作合成することで得られ、記憶装置30に記憶される。
ビット幅情報36は、たとえば、動作合成装置20が動作記述31中の変数をRTL記述32中のレジスタに変換するにあたり、データフローやそれぞれの変数が取りうる値の範囲の解析を行うなどによって、レジスタのビット幅を変数のビット幅から縮減させている場合に、その変数とレジスタが参照されるビット幅の情報などが挙げられる。参照されるビット幅をビット幅情報36として用いることが考えられるのは、対応関係にあり、比較対象とすべき信号や変数に対して、それらが参照されるビット幅を常に比較していれば、回路の出力に影響を及ぼすビット幅について必ず信号値関数の比較が行われることとなり、本来は非等価である記述に対して誤って等価であるとの結果を返すような問題が起きないからである。
等価性検証装置100において、取得部102は、記憶装置30から、動作記述31、RTL記述32、対応情報34、およびビット幅情報36を読み出して取得する。特定部104は、取得部102が取得した情報に基づいて、等価性を検証するに必要な信号の対応関係を特定する。信号値関数抽出部106は、特定された対応関係にある変数または信号の信号値関数38を抽出する際、ビット幅情報36に基づいて、ビット幅情報36に示されるビット幅で変数または信号の信号値関数38をそれぞれ抽出する。信号値関数38は、特定された、等価性を検証するために必要となる変数や信号の値の変化の様子を示す。
信号値関数抽出部106における信号値関数38の取得は、項書き換えや記号シミュレーションなどの手法で行うことができる。このとき、信号値関数抽出部106は、当該信号が合成過程などでビット幅の最適化が行われている場合、当該信号に対するビット幅情報36に基づき、比較を行うとする信号値に対して最も適切な情報を取得し、そのビット幅について信号値関数38を取得する。
たとえば、信号値関数抽出部106は、元の変数や信号に対する信号値関数38を取得した上で、ビット幅情報36より実際の変数などのビット幅が大きければ、ビット幅情報36に示されるビット幅に対応する下位のビット分の信号値関数38のみを取得する。一方、ビット幅情報36より実際の変数などのビット幅が小さければ、不足ビット分に対応する上位ビットをその変数や信号の符号に応じて0もしくは最上位ビットの値で変数や信号を補充し、ビット幅情報36に示されるビット幅に対応するビット分の信号値関数38を取得するものとする。
各々の変数や信号について、他の変数や信号に参照されるビットは出力値に影響を及ぼしうるため、それらのビットに対する信号値比較が等価性を保障する上で必要十分な条件であると言える。しかしながら、対応関係にある変数や信号が参照されるビット幅をビット幅情報36として与えることにより、等価性検証の精度を向上させることができる。すなわち、記述全体の出力に影響を及ぼす可能性があり、記述の等価性を判定する上で必要となるビットの信号値関数38は、必ず比較されることとなる。一方、出力に影響を及ぼす可能性がなく等価性の判定で必要がない、削減対象となるビットの信号値関数38を、等価性検証の対象から除外することができることとなる。
信号値関数比較部110は、信号値関数抽出部106で抽出され、記憶装置30に記憶された対応関係にある変数または信号の信号値関数38同士を比較し、動作記述31上の変数とRTL記述32上の信号値が等しいか否か報告する。かかる検証には、たとえば充足可能性判定(SAT)、validity checkerなどとよばれる既知の技術を用いて行うことができる。信号値関数比較部110が信号値関数38の比較を行う際には、信号値関数38に含まれる変数や信号の信号値について、ビット幅情報36に基づいて、有効であると判断されるビット幅に対応するビットには信号値が等しいとの仮定を、有効であると判断されるビット幅を超えるビットには信号値が等しくないとの仮定を与える。
検証結果判定部112は、信号値関数比較部110による論理等価性の比較結果に基づいて、動作記述31およびRTL記述32の等価性を判定する。たとえば、比較対象とされる全ての変数や信号に対する信号値関数38がそれぞれ等価である場合、2つの記述が等価であると判定される。一つでも等価でない変数や信号が存在する場合、2つの記述は等価でないと判定される。
本実施の形態の等価性検証装置100は、コンピュータプログラムに対応する各種の処理動作をCPUが実行することにより、前述のような各種ユニットが各種機能として実現される。
本実施形態のコンピュータプログラムは、等価性検証装置100を実現させるためのコンピュータに、半導体集積回路の設計を行う際に使用する動作記述31および動作記述31と同様の機能を示すRTL記述32、動作記述31およびRTL記述32に記述された変数または信号の対応関係を表す対応情報34、および、対応関係のある変数または信号について有効なビット幅を表すビット幅情報36を取得する取得手順と、動作記述31およびRTL記述32、対応情報34、およびビット幅情報36に基づいて、対応関係にある変数または信号を特定する特定手順と、特定された対応関係にある変数または信号の信号値関数38を抽出する際、ビット幅情報36に基づいて、ビット幅情報36に示される有効なビット幅で変数または信号の信号値関数38をそれぞれ抽出する信号値関数抽出手順と、対応関係にある変数または信号について、有効なビット幅については信号値が等しいと仮定し、それ以外のビット幅については信号値が等しくないと仮定を与えつつ、信号値関数抽出手順により抽出された信号値関数38を参照し、対応関係にある変数または信号の信号値関数38を比較する信号値関数比較手順と、信号値関数比較手順による論理等価性の比較結果に基づいて、動作記述31およびRTL記述32の等価性を判定する手順と、を実行させるように記述されている。
本実施形態のコンピュータプログラムは、本実施形態の等価性検証装置100を実現するコンピュータで読み取り可能な記憶媒体に記録されてもよい。記録媒体は特に限定されず、様々な形態のものが考えられる。また、プログラムは、記録媒体からコンピュータのメモリにロードされてもよいし、ネットワークを通じてコンピュータにダウンロードされ、メモリにロードされてもよい。
このように構成された本実施形態の等価性検証装置100の動作について、以下に説明する。
図2は、本実施形態の等価性検証装置100の動作の一例を示すフローチャートである。以下、図1および図2を用いて説明する。
図2は、本実施形態の等価性検証装置100の動作の一例を示すフローチャートである。以下、図1および図2を用いて説明する。
本実施形態の等価性検証装置100のデータ処理方法は、等価性検証装置100が、半導体集積回路の設計を行う際に使用する動作記述31および動作記述31と同様の機能を示すRTL記述32、動作記述31およびRTL記述32に記述された変数または信号の対応関係を表す対応情報34、および、対応関係のある変数または信号について有効なビット幅を表すビット幅情報36を取得し(ステップS101、S103)、動作記述31およびRTL記述32、対応情報34、およびビット幅情報36に基づいて、対応関係にある変数または信号を特定し(ステップS105)、特定された対応関係にある変数または信号の信号値関数38を抽出する際、ビット幅情報36に基づいて、ビット幅情報36に示される有効なビット幅で変数または信号の信号値関数38をそれぞれ抽出し(ステップS107)、対応関係にある変数または信号について、有効なビット幅については(ステップS109のYES)信号値が等しいと仮定し(ステップS111)、それ以外のビット幅については(ステップS109のNO)信号値が等しくないと仮定を与えつつ(ステップS113)、抽出された信号値関数38を参照し、対応関係にある変数または信号の信号値関数38を比較し(ステップS115)、ステップS115で得られた論理等価性の比較結果に基づいて、動作記述31およびRTL記述32の等価性を判定する(ステップS117)。
具体的には、まず、動作合成装置20が、記憶装置30に記憶されている動作記述31に対して動作合成を行い(ステップS11)、その結果であるRTL記述32を記憶装置30に記憶する(ステップS13)。ここで、動作記述31は、たとえば、ユーザが予めコンピュータの一般的なエディタなどを用いて記述し、記憶装置30に記憶される。このとき、合わせて対応情報34とビット幅情報36も記憶装置30に記憶される(ステップS15)。
ビット幅情報36は、たとえば、動作合成装置20が動作記述31中の変数をRTL記述32中のレジスタに変換するにあたり、データフローやそれぞれの変数が取りうる値の範囲の解析を行うなどによって、レジスタのビット幅を変数のビット幅から縮減させている場合に、動作合成前後における、その変数とレジスタが参照されるビット幅の情報などが挙げられる。
ビット幅情報36は、動作記述31およびRTL記述32に記述された変数または信号に対する対応関係の各々について、それらの変数または信号が、半導体集積回路が実際に動作する時に参照されるビット幅であってもよいし、または、半導体集積回路が実際に動作する時に参照されるビット幅より大きいビット幅であってもよい。
動作合成装置20における動作合成が終わった後、本実施形態の等価性検証装置100を起動する。等価性検証装置100の起動は、自動的に行われるようにしてもよいし、ユーザが動作合成装置20における動作合成の終了を確認した後、起動を指示してもよい。等価性検証装置100が起動すると、まず、取得部102が、記憶装置30にアクセスし、動作記述31とRTL記述32を読み込む(ステップS101)。
続いて、取得部102が、動作合成装置20が出力した対応情報34とビット幅情報36を記憶装置30より取得する(ステップS103)。そして、特定部104が、対応関係にある変数または信号を特定する(ステップS105)。
そして、信号値関数抽出部106が、信号値関数38の抽出を行う。ここでは、信号値関数38は、ビット幅情報36の情報を利用して信号値関数38を抽出する。つまり、対応関係にあって信号値関数38を抽出しようとする変数や信号にビット幅情報36が設定されている場合は、それらの変数や信号の実際のビット幅に関わらず、信号値関数抽出部106が、与えられたビット幅情報36の幅を持つ信号値関数38を抽出する(ステップS107)。抽出された信号値関数38は、記憶装置30に記憶される。
このとき、信号値関数抽出部106は、以下の条件に従って処理を行う。たとえば、変数のビット幅がビット幅情報36で与えられた有効なビット幅より大きい場合はビット幅情報36を超えたビット幅を削除し、信号のビット幅がビット幅情報36で与えられた有効なビット幅より小さい場合は、信号のビット幅を超えたビットを信号の符号に応じて0や最上位ビットの値で埋めるものとする。
信号値関数38が得られると、信号値関数比較部110が、有効なビット幅のビットについては(ステップS109のYES)、信号値が等しいと仮定し(ステップS111)、それ以外のビット幅のビットについては(ステップS109のNO)、信号値が等しくないとの仮定を与えつつ(ステップS113)、信号値関数38を参照し、対応関係にある変数または信号の信号値関数38を比較し(ステップS115)、論理等価性の比較結果に基づいて、それらの論理等価性の判定を行う(ステップS117)。この論理等価性検証は、比較対象となる実際の変数や信号のビット幅に関わらず、与えられたビット幅情報36に基づいたビット幅を基準として行われる。
以上説明したように、本発明の実施の形態の等価性検証装置100によれば、回路の機能を示す2つの記述、たとえば、動作合成前後の対応関係にある動作記述31とRTL記述32のそれぞれのビット幅情報36を考慮しつつ信号値関数38を取得する信号値関数抽出部106と、さらにビット幅情報36に基づく有効なビット幅か否かで信号値の比較結果に仮定を与えつつ、等価性検証を行う信号値関数比較部110と、を備えるので、比較対象となる変数や信号のビット幅が異なる場合でも、信頼性の高い等価性検証を行うことができる。
たとえば、動作合成前後において、レジスタのビット幅が変数のビット幅から縮減されている場合に、信号値関数比較部110が、その変数とレジスタが参照されるビット幅の情報を考慮して等価性検証を行うので、ビット幅の減縮が考慮されていない等価性検証装置で生じていた、疑似エラーや検証漏れといった問題が生じることなく信頼性の高い等価性検証を行うことが可能になる。
すなわち、信号値比較の対象となる変数または信号にビット幅情報36が与えられるので、変数や信号の実際のビット幅に関わらず、当該与えられたビット幅情報36に基づき信号値関数38を抽出して信号値比較を行うことができる。
特に、各々の変数や信号について、他の変数や信号に参照されるビットは出力値に影響を及ぼしうるため、それらのビットに対する信号値比較が等価性を保障する上で必要十分な条件であると言える。しかしながら、ビット幅情報として、対応関係にある変数や信号が参照されるビット幅をビット幅情報36として与えることにより、等価性検証の精度を向上させることができる。すなわち、記述全体の出力に影響を及ぼす可能性があり、記述の等価性を判定する上で必要となるビットの信号値関数38は、必ず比較されることとなる。一方、出力に影響を及ぼす可能性がなく等価性の判定で必要がない、削減対象となるビットの信号値関数38を、等価性検証の対象から除外することができる。
このような構成を採用することにより、等価性を検証するために必要な変数や信号の信号値比較を、各々の変数や信号への代入や参照のビット幅など、等価性を証明するために必要なビットであるかどうかを考慮しながら過不足なく行われるため、ビット幅が変化したことの妥当性を含めた正確な検証結果を高速に報告するという効果を達成することができる。
本発明の実施の形態に係る等価性検証装置100によれば、信号値比較の対象となる変数や信号のビット幅が縮減された場合に、疑似エラーや検証漏れを回避できる。
疑似エラーを回避できる理由は、与えられたビット幅情報36に基づき信号値関数38を取得し比較するため、対応する変数および信号のビット幅が縮減された場合には、適切なビット幅情報36を与えることによって縮減されたビットについては等価性検証の対象から除外することができるためである。
疑似エラーを回避できる理由は、与えられたビット幅情報36に基づき信号値関数38を取得し比較するため、対応する変数および信号のビット幅が縮減された場合には、適切なビット幅情報36を与えることによって縮減されたビットについては等価性検証の対象から除外することができるためである。
また、検証漏れが回避できる理由は、対応関係にある変数や信号が参照されるビット幅をビット幅情報36とするなど、適切なビット幅情報36を与えることにより、等価性の証明に必要なビットの比較が必ず行われるためである。また、もしビット幅情報36が誤って与えられた場合でも、ビット幅情報36を超えたビットに対して信号値が異なるとの仮定が与えられている。このため、本来は参照されないはずの信号値が参照される場合など、等価性の証明に不要と判断されるビットが信号値関数38に含まれるならば、検証結果が不一致になることで、そのことを確認できるためである。
さらに、本発明の実施の形態に係る等価性検証装置100によれば、比較対象となる変数や信号のビット幅を変化させた場合に、ビット幅情報を適宜変化させて与えることでその妥当性を報告できる。
その理由は、実際に参照されるビット幅に対して信号のビット幅が適切に縮減されている場合で、ビット幅情報36に実際に参照されるビット幅より大きいビット幅を与えれば疑似エラーを報告し、適切なビット幅を与えれば一致との結果を報告することができるためである。一方、信号のビット幅が過剰に削減された場合は、参照されるビット幅をビット幅情報36で与えれば、不一致との結果を報告することが可能であるためである。
その理由は、実際に参照されるビット幅に対して信号のビット幅が適切に縮減されている場合で、ビット幅情報36に実際に参照されるビット幅より大きいビット幅を与えれば疑似エラーを報告し、適切なビット幅を与えれば一致との結果を報告することができるためである。一方、信号のビット幅が過剰に削減された場合は、参照されるビット幅をビット幅情報36で与えれば、不一致との結果を報告することが可能であるためである。
また、ビット幅の縮減などのような最適化が行われていない回路に対する等価性検証では、前記の疑似エラーや検証漏れ等の問題点が生ずることはない。しかし、内部の信号のビット幅が実際に代入または参照される値を表すために必要なビット幅より大きい場合、回路面積で無駄が生じるだけでなく、等価性検証においてもその実行時間や仕様記憶域が増大するという、別の問題点を生じることがあった。
さらに、本発明の実施の形態に係る等価性検証装置100によれば、検証の高速化を図ることができる。
その理由は、信号値関数38をビット幅情報36にて指定された範囲に絞り込むため、等価性の判定に不要な信号値関数38に対する論理等価性検証を行わなくても等価性検証が可能になるためである。
その理由は、信号値関数38をビット幅情報36にて指定された範囲に絞り込むため、等価性の判定に不要な信号値関数38に対する論理等価性検証を行わなくても等価性検証が可能になるためである。
このように、本発明によれば、2つの記述の等価性を、各記述の検証対象となる信号線の信号値関数38を比較することで検証する等価性検証装置100において、比較対象となる変数やレジスタのビット幅が異なる場合であっても、ビット幅が変化したことが妥当であることも含めて、疑似エラーや検証漏れを起こすことなく、かつ高速に等価性検証を行うことができる形式的な等価性検証システムを提供することができる。
(第2の実施の形態)
図3は、本発明の実施の形態に係る等価性検証装置200の構成を示す機能ブロック図である。本実施形態の等価性検証装置200は、上記実施の形態とは、記憶装置40を参照し、第1の記述(動作記述31)および第2の記述(RTL記述32)のいずれかまたは両方と対応情報34を解析し、記憶装置40のビット幅情報42にフィードバックする点で相違する。本実施形態でも、図3の動作合成装置20による動作合成前後の動作記述31とRTL記述32との等価性を検証する等価性検証装置200を例に説明する。
図3は、本発明の実施の形態に係る等価性検証装置200の構成を示す機能ブロック図である。本実施形態の等価性検証装置200は、上記実施の形態とは、記憶装置40を参照し、第1の記述(動作記述31)および第2の記述(RTL記述32)のいずれかまたは両方と対応情報34を解析し、記憶装置40のビット幅情報42にフィードバックする点で相違する。本実施形態でも、図3の動作合成装置20による動作合成前後の動作記述31とRTL記述32との等価性を検証する等価性検証装置200を例に説明する。
本実施形態の等価性検証装置200は、上記実施形態の等価性検証装置100と同じ構成を有し、さらに、動作記述31およびRTL記述32に記述された変数または信号に対する対応関係の各々について、ビット幅を解析し、ビット幅情報42にフィードバックするビット幅解析部202を備える。
本実施形態では、図1の上記実施形態の記憶装置30に換えて、記憶装置40を備えている。
本実施形態では、図1の上記実施形態の記憶装置30に換えて、記憶装置40を備えている。
ビット幅解析部202は、取得部102が取得した動作記述31およびRTL記述32のいずれか一方または両方と対応情報34とを解析し、ビット幅情報42を取得してその結果をビット幅情報42に記憶する。動作合成装置20により既にビット幅情報36(図3には不図示)が与えられている場合、記憶装置40は、動作合成装置20のビット幅情報と、ビット幅解析部202のビット幅情報42の両方を保持することができる。
ビット幅解析部202がビット幅情報42として取得する情報は、データフローやそれぞれの変数が取りうる値の範囲の解析などを行い、信号値比較の対象となる変数や信号のビット幅が縮減される場合などに、その変数や信号が参照されて出力結果に影響を及ぼすビット幅をなどが挙げられる。
本実施形態の信号値関数抽出部106では、信号値関数38を抽出するにあたり、ビット幅情報42について、動作合成装置20から取得した情報とビット幅解析部202で取得した情報のどちらか一方を用いてもよいし、両方用いてもよい。ここで、ビット幅情報42が比較対象となる変数やレジスタに2以上与えられている場合にあっては、対応情報34を考慮して、適切なビット幅情報42を選択してビット幅を決定することができる。
このように合成された本実施形態の等価性検証装置200の動作について、以下に説明する。以下、図3および図4を用いる。なお、図4に示すように、本実施形態の等価性検証装置200は、図2の上記実施形態の等価性検証装置100の動作を示すフローチャートと同様のステップを有するとともに、ステップS103の後に、ビット幅解析部202によるビット幅情報42を取得するステップS201をさらに有する。
等価性検証装置200にビット幅解析部202を備えることによって、等価性を検証すべきである変数や信号の一部またはすべてについて動作合成装置20からビット幅情報を得られない場合であっても、ビット幅解析部202でビット幅情報42を求めることができる。このため、与えられたビット幅情報に誤りが存在する場合であっても、上記実施形態と同様な効果を奏するとともに、ビット幅解析部202で求めたビット幅情報42と動作合成装置20から取得したビット幅情報を比較することで検出できるため、さらに、疑似エラーなどの問題が生じる可能性を低くすることができるという効果も得られる。
以上、図面を参照して本発明の実施形態について述べたが、これらは本発明の例示であり、上記以外の様々な構成を採用することもできる。
上記実施形態では、第1の記述および第2の記述は、それぞれ動作合成前後の動作記述31およびRTL記述32として説明したが、これに限定されない。たとえば、動作記述とそれを元に人手で記述したRTL記述として、対応情報やビット幅情報は別途設計者が指定して与えてもよい。あるいは、ある動作記述に対して何らかの書換えを行った動作記述や、RTL記述に対して何らかの書換えを行ったRTL記述、RTL記述から論理合成を行うことで得られたゲートレベル記述、ソフトウェア記述に対して何らかの書換えを行ったソフトウェア記述をそれぞれ比較する2つの記述として与えてもよい。すなわち、半導体集積回路により実現しようとする機能を表す種々の抽象度のハードウェア記述や、アルゴリズムや各種アプリケーションなど、一連の機能を表すソフトウェア記述を、本発明における第1の記述および第2の記述とすることができる。
ビット幅情報についても、常にビット幅解析部202で求めたビット幅情報42を使用する形態としてもよいし、また、ビット幅解析部202を備えることに代えて、等価性検証装置にビット幅情報受付部(不図示)を備え、設計者が与えた、対応関係にある変数や信号のそれぞれについて、ビット幅情報を受け付ける形態としてもよい。これらの形態は、動作合成装置がビット幅情報を出力しない場合や、動作記述とそれを元に人手で記述したRTL記述との等価性検証を行おうとする場合に特に有効であると考えられる。
また、ビット幅情報の内容としては、検証対象となる変数や信号のビット幅が縮減された場合に、その変数や信号が参照されるビット幅をビット幅情報として与えるだけでなく、参照されるビット幅より大きなビット幅をビット幅情報として与えることも考えられる。
かかる場合、参照されるビット幅より大きなビット幅をビット幅情報として与えた場合には、縮減対象となるレジスタが実際に参照されるビット幅と同じ幅までに縮減されていたら疑似エラーが報告される。
また、参照されるビット幅より大きなビット幅となるように縮減されていたら、その幅まではビット幅情報で与えるビット幅を大きくしても一致と報告されるので、ビット幅の縮減が十分でないことが判断できる。すなわち、2つの記述が等価であるか否かの判断に加えて、ビット幅が過不足なく十分に縮減されているかを判断することも可能になる。
さらに、ビット幅縮減がなされていない変数や信号に対しても、その変数や信号の一部のビット幅しか参照されていないなら、当該参照されるビット幅をビット幅情報として与えて検証してもよい。かかる場合は、ビット幅情報を与えなくとも疑似エラーや検証漏れの可能性はないが、ビット幅情報を与えることで信号値関数比較部に与えられるビット幅が絞り込まれるため、信号値比較の高速化や使用するメモリ量の削減にも効果がある。
次に、具体的な実施例を用いて本発明の等価性検証装置の動作を説明する。以下、図1および図2を用いて説明した等価性検証装置100を例とする。
図5は、記憶装置30に記憶された動作記述31の具体例を示している。図5に示す記述はSystemC言語を用いて書かれているものとする。
図5は、記憶装置30に記憶された動作記述31の具体例を示している。図5に示す記述はSystemC言語を用いて書かれているものとする。
動作合成装置20は、上記動作記述31を入力して、動作合成処理を行う。図6は、図5に示す動作記述31を動作合成して得られたRTL記述32の具体例を示している。図6に示すRTL記述32はVerilog HDL言語を用いて書かれているものとする。また、対応情報34として、動作記述31における出力変数は、動作合成後のRTL記述32における同名の出力信号線に対応し、動作記述31の変数r1はRTL記述32の信号RG_r1に対応するとの情報が与えられるものとする。また、r1とRG_r1との間には、ビット幅情報36として下位16ビットが参照されるとの情報が与えられるものとする。この16ビットは、出力oが16ビットであること、r1およびRG_r1は、出力oからのみ参照されることに起因する。RTL記述32、対応情報34およびビット幅情報36は、それぞれ記憶装置30に記憶されるものとする。
等価性検証装置100は、図5に示す動作記述31と図6に示すRTL記述32の間の等価性を検証する。まず、取得部102により、記憶装置30から動作記述31(図5)とRTL記述32(図6)が入力される。
続いて、信号値関数抽出部106が、読み込まれた動作記述31とRTL記述32に加えて対応情報34を参照し、対応関係にある変数と信号に対する信号値関数38を抽出する。図8に示すように、対応情報34には、動作記述31の変数(BEHAVE_SIG)とRTL記述32の信号(RTL_SIG)が対応付けられており、たとえば、変数r1と信号RG_r1が対応関係にあることが含まれている。本実施例では、対応情報34から、変数r1と信号RG_r1の信号値関数38を抽出する場合を考える。また、信号値関数38の取得に際しては、ビット幅情報36も取得するものとする。
図9に示すように、ビット幅情報36には、動作記述31の変数の有効ビット(BEHAVE_SIG_BW)と対応関係にあるRTL記述32信号の有効ビット(RTL_SIG_BW)が対応付けられて記憶されている。ここでは、r1の下位16ビットとRG_r1の16ビット全体が対応関係にあることが示されている。ビット幅情報36に基づいて、元の変数や信号に対する信号値関数38を取得した上で、ビット幅情報36より実際の変数などのビット幅が大きければビット幅情報36に対応する下位のビット分の信号値関数38のみを取得する。一方、ビット幅情報36より実際の変数などのビット幅が小さければ、不足ビット分に対応する上位ビットをその変数や信号の符号に応じて0もしくは最上位ビットの値で補充し、ビット幅情報36に示されるビット幅に対応するビット分の信号値関数38を取得するものとする。なお、図8および図9の各情報の構造は、一例であり、これに限定されるものではなく、様々な態様が考えられる。
r1とRG_r1に対する信号値関数38を図示すると、それぞれ図7の符号38aおよび符号38bのとおりになる。r1は32ビットの変数として宣言されているので、ここで取得した信号値関数38はそのうち下位16ビットである。RG_r1は16ビットの信号として宣言されているので、信号値がそのままここで取得した信号値関数38となる。
信号値関数38が取得されると、信号値関数比較部110にて比較対象の2つの信号値関数38の等価性が検証される。本実施例では、ビット幅情報36に基づいて16ビットの信号値として比較を行っているため、信号値関数比較部110は、r1とRG_r1が一致するとの結果を報告する。
もし、この比較をr1のビット幅を基準として32ビットの信号値として比較を行った場合、RG_r1の信号値について上位16ビットは0を補充することになるので、上位ビットにも演算結果が入るr1との信号値の比較では不一致との結果(疑似エラー)を返してしまう。
あるいは、RG_r1のビット幅を基準として信号値比較を行った場合、本実施例のように正しくビット幅が縮減されている場合には問題ないが、誤って過剰にビット幅が縮減された場合にも一致との結果を返してしまう。本実施例のように、ビット幅情報に基づいて信号値比較を行うことで、誤って過剰にビット幅が縮減された場合には、上位ビットの信号値が異なるため、不一致との結果を正しく返すことができるようになる。
また、記述全体の等価性を検証するためには、前記r1とRG_r1以外に対応関係にある信号の信号値関数を比較する必要があるが、かかる場合には、r1とRG_r1の信号値は下位16ビットの信号値は等しいとの、16ビットを超える信号値は等しくないとの仮定を与えて信号値比較を行うことができる。
以上、実施形態および実施例を参照して本願発明を説明したが、本願発明は上記実施形態および実施例に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
20 動作合成装置
30 記憶装置
31 動作記述
32 RTL記述
34 対応情報
36 ビット幅情報
38 信号値関数
100 等価性検証装置
102 取得部
104 特定部
106 信号値関数抽出部
110 信号値関数比較部
112 検証結果判定部
200 等価性検証装置
202 ビット幅解析部
40 記憶装置
42 ビット幅情報
30 記憶装置
31 動作記述
32 RTL記述
34 対応情報
36 ビット幅情報
38 信号値関数
100 等価性検証装置
102 取得部
104 特定部
106 信号値関数抽出部
110 信号値関数比較部
112 検証結果判定部
200 等価性検証装置
202 ビット幅解析部
40 記憶装置
42 ビット幅情報
Claims (14)
- 半導体集積回路の設計を行う際に使用する第1の記述および第2の記述、前記第1の記述および前記第2の記述に記述された変数または信号の対応関係を表す対応情報、および、前記対応関係のある変数または信号について有効なビット幅を表すビット幅情報を取得する取得手段と、
前記第1の記述および前記第2の記述、前記対応情報、および前記ビット幅情報に基づいて、前記対応関係にある変数または信号を特定する特定手段と、
特定された前記対応関係にある変数または信号の信号値関数を抽出する際、前記ビット幅情報に基づいて、前記ビット幅情報に示される前記有効なビット幅で前記変数または信号の信号値関数をそれぞれ抽出する信号値関数抽出手段と、
前記対応関係にある変数または信号について、前記有効なビット幅については信号値が等しいと仮定し、それ以外のビット幅については信号値が等しくないと仮定を与えつつ、前記信号値関数抽出手段により抽出された前記信号値関数を参照し、前記対応関係にある変数または信号の前記信号値関数を比較する信号値関数比較手段と、
前記信号値関数比較手段による論理等価性の比較結果に基づいて、前記第1の記述および前記第2の記述の等価性を判定する検証結果判定手段と、を備える等価性検証装置。 - 請求項1に記載の等価性検証装置において、
前記第1の記述、前記第2の記述、前記対応情報、前記ビット幅情報、および前記信号値関数を記憶する記憶装置をさらに備え、
前記取得手段は、前記記憶装置を参照し、前記第1の記述、前記第2の記述、前記対応情報、前記ビット幅情報、および前記信号値関数を取得する等価性検証装置。 - 請求項1または2に記載の等価性検証装置において、
前記ビット幅情報は、前記第1の記述および前記第2の記述に記述された変数または信号に対する前記対応関係の各々について、それらの変数または信号が、前記半導体集積回路が実際に動作する時に参照されるビット幅であることを含む等価性検証装置。 - 請求項1または2に記載の等価性検証装置において、
前記ビット幅情報は、前記第1の記述および前記第2の記述に記述された変数または信号に対する前記対応関係の各々について、それらの変数または信号が、前記半導体集積回路が実際に動作する時に参照されるビット幅より大きいビット幅であることを含む等価性検証装置。 - 請求項1乃至4いずれかに記載の等価性検証装置において、
前記第1の記述および前記第2の記述に記述された変数または信号に対する前記対応関係の各々について、ビット幅を解析し、前記ビット幅情報にフィードバックするビット幅解析手段をさらに備える等価性検証装置。 - 請求項1乃至5いずれかに記載の等価性検証装置において、
前記第1の記述および前記第2の記述が、それぞれ動作記述およびRTL(Register Transfer Level:レジスタ転送レベル)記述である等価性検証装置。 - 請求項6に記載の等価性検証装置において、
前記RTL記述および前記対応情報が、動作合成装置により前記動作記述を動作合成することで得られる等価性検証装置。 - 請求項1乃至3いずれかに記載の等価性検証装置において、
前記第1の記述および前記第2の記述が、それぞれ動作記述およびRTL記述であって、
当該RTL記述、前記対応情報および前記ビット幅情報が、当該動作記述を動作合成装置により動作合成を行うことで得られる等価性検証装置。 - 請求項1乃至5いずれかに記載の等価性検証装置において、
前記第1の記述および前記第2の記述は、ハードウェア記述、またはソフトウェア記述である等価性検証装置。 - 請求項9に記載の等価性検証装置において、
前記第1の記述および前記第2の記述が、ともにRTL記述である等価性検証装置。 - 請求項9に記載の等価性検証装置において、
前記第1の記述および前記第2の記述が、ともに動作記述であることを特徴とする等価性検証装置。 - 請求項9に記載の等価性検証装置において、
前記第1の記述および前記第2の記述が、それぞれRTL記述およびゲートレベル記述であることを特徴とする等価性検証装置。 - 等価性検証装置のデータ処理方法であって、
前記等価性検証装置が、
半導体集積回路の設計を行う際に使用する第1の記述および第2の記述、前記第1の記述および前記第2の記述に記述された変数または信号の対応関係を表す対応情報、および、前記対応関係のある変数または信号について有効なビット幅を表すビット幅情報を取得し、
前記第1の記述および前記第2の記述、前記対応情報、および前記ビット幅情報に基づいて、前記対応関係にある変数または信号を特定し、
特定された前記対応関係にある変数または信号の信号値関数を抽出する際、前記ビット幅情報に基づいて、前記ビット幅情報に示される前記有効なビット幅で前記変数または信号の信号値関数をそれぞれ抽出し、
前記対応関係にある変数または信号について、前記有効なビット幅については信号値が等しいと仮定し、それ以外のビット幅については信号値が等しくないと仮定を与えつつ、抽出された前記信号値関数を参照し、前記対応関係にある変数または信号の前記信号値関数を比較し、
前記信号値関数の比較による論理等価性の比較結果に基づいて、前記第1の記述および前記第2の記述の等価性を判定する等価性検証装置のデータ処理方法。 - 等価性検証装置を実現するためのプログラムであって、
半導体集積回路の設計を行う際に使用する第1の記述および第2の記述、前記第1の記述および前記第2の記述に記述された変数または信号の対応関係を表す対応情報、および、前記対応関係のある変数または信号について有効なビット幅を表すビット幅情報を取得する取得手順と、
前記第1の記述および前記第2の記述、前記対応情報、および前記ビット幅情報に基づいて、前記対応関係にある変数または信号を特定する特定手順と、
特定された前記対応関係にある変数または信号の信号値関数を抽出する際、前記ビット幅情報に基づいて、前記ビット幅情報に示される前記有効なビット幅で前記変数または信号の信号値関数をそれぞれ抽出する信号値関数抽出手順と、
前記対応関係にある変数または信号について、前記有効なビット幅については信号値が等しいと仮定し、それ以外のビット幅については信号値が等しくないと仮定を与えつつ、前記信号値関数抽出手順により抽出された前記信号値関数を参照し、前記対応関係にある変数または信号の前記信号値関数を比較する信号値関数比較手順と、
前記信号値関数比較手順による論理等価性の比較結果に基づいて、前記第1の記述および前記第2の記述の等価性を判定する手順と、をコンピュータに実行させるためのプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009182810A JP2011034517A (ja) | 2009-08-05 | 2009-08-05 | 等価性検証装置、そのデータ処理方法、およびプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009182810A JP2011034517A (ja) | 2009-08-05 | 2009-08-05 | 等価性検証装置、そのデータ処理方法、およびプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2011034517A true JP2011034517A (ja) | 2011-02-17 |
Family
ID=43763495
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009182810A Pending JP2011034517A (ja) | 2009-08-05 | 2009-08-05 | 等価性検証装置、そのデータ処理方法、およびプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2011034517A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013175002A (ja) * | 2012-02-24 | 2013-09-05 | Renesas Electronics Corp | 等価性検証方法、等価性検証プログラム及び等価性検証装置 |
US8839163B2 (en) | 2011-11-18 | 2014-09-16 | Renesas Electronics Corporation | Behavioral synthesis method, behavioral synthesis program and behavioral synthesis apparatus |
-
2009
- 2009-08-05 JP JP2009182810A patent/JP2011034517A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8839163B2 (en) | 2011-11-18 | 2014-09-16 | Renesas Electronics Corporation | Behavioral synthesis method, behavioral synthesis program and behavioral synthesis apparatus |
JP2013175002A (ja) * | 2012-02-24 | 2013-09-05 | Renesas Electronics Corp | 等価性検証方法、等価性検証プログラム及び等価性検証装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7231627B2 (en) | Merging a hardware design language source file with a separate assertion file | |
US6591403B1 (en) | System and method for specifying hardware description language assertions targeting a diverse set of verification tools | |
CN112560401B (zh) | Verilog文件转换方法、装置、存储介质及设备 | |
JP2009087354A (ja) | ウェブアプリケーションの自動テスト生成システム及び方法 | |
US11714742B2 (en) | Synthesizing printf and scanf statements for generating debug messages in high-level synthesis (HLS) code | |
CN117094269B (zh) | 一种验证方法、装置、电子设备及可读存储介质 | |
US8762907B2 (en) | Hierarchical equivalence checking and efficient handling of equivalence checks when engineering change orders are in an unsharable register transfer level | |
JP4147842B2 (ja) | 論理検証システム及び方法、論理コーン抽出装置及び方法、論理検証及び論理コーン抽出プログラム | |
CN114327476A (zh) | 芯片设计文件生成方法、装置、芯片设计方法及装置 | |
JP5040758B2 (ja) | シミュレーション装置、シミュレーション方法及びプログラム | |
US8140315B2 (en) | Test bench, method, and computer program product for performing a test case on an integrated circuit | |
JP2000207440A (ja) | 半導体集積回路の設計検証装置、方法及び記憶媒体 | |
US8806401B1 (en) | System and methods for reasonable functional verification of an integrated circuit design | |
CN111624475B (zh) | 大规模集成电路的测试方法及系统 | |
JP6567212B2 (ja) | 等価性検証装置および等価性検証プログラム | |
JP2008282351A (ja) | 回路設計検証方法および回路設計検証のためのプログラム | |
CN116955040A (zh) | 一种芯片读写性能测试方法、系统、设备及存储介质 | |
JP2011034517A (ja) | 等価性検証装置、そのデータ処理方法、およびプログラム | |
US20070266361A1 (en) | Logic verification method, logic verification apparatus and recording medium | |
US20190384867A1 (en) | Methods for Automatic Engineering Change Order (ECO) Bug Fixing in Integrated Circuit Design | |
CN115732025A (zh) | Ram访问冲突的验证方法及验证装置 | |
JP2008158696A (ja) | 一致検証方法及び装置 | |
US10546083B1 (en) | System, method, and computer program product for improving coverage accuracy in formal verification | |
JP5310397B2 (ja) | 動作合成検証補助装置、動作合成検証補助方法、プログラム、及び記録媒体 | |
CN111400994A (zh) | 网表形式验证方法、装置、计算机设备及存储介质 |