JP2004145712A - 半導体設計における動作記述の等価性検証方法 - Google Patents
半導体設計における動作記述の等価性検証方法 Download PDFInfo
- Publication number
- JP2004145712A JP2004145712A JP2002311069A JP2002311069A JP2004145712A JP 2004145712 A JP2004145712 A JP 2004145712A JP 2002311069 A JP2002311069 A JP 2002311069A JP 2002311069 A JP2002311069 A JP 2002311069A JP 2004145712 A JP2004145712 A JP 2004145712A
- Authority
- JP
- Japan
- Prior art keywords
- level
- register transfer
- cycles
- simulation result
- transfer level
- 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
【課題】動作レベルの回路記述とレジスタトランスファレベルの回路記述との等価性をそれぞれのシミュレーション結果から求める等価性検証方法において、誤判定を防止して正しく検証することができるようにする。
【解決手段】(1)動作レベルで記述された半導体装置の設計データを動作合成してレジスタトランスファレベルで記述された半導体装置の設計データを生成し、(2)前記レジスタトランスファレベルと前記動作レベルの各設計データの動作シミュレーションを個別に行ってそれぞれのシミュレーション結果を得、(3)前記レジスタトランスファレベルのシミュレーション結果と前記動作レベルのシミュレーション結果とを前記動作合成でのトランザクションのサイクル数単位で比較し、(4)前記比較において差異がある場合に報告を行う。
【選択図】 図1
【解決手段】(1)動作レベルで記述された半導体装置の設計データを動作合成してレジスタトランスファレベルで記述された半導体装置の設計データを生成し、(2)前記レジスタトランスファレベルと前記動作レベルの各設計データの動作シミュレーションを個別に行ってそれぞれのシミュレーション結果を得、(3)前記レジスタトランスファレベルのシミュレーション結果と前記動作レベルのシミュレーション結果とを前記動作合成でのトランザクションのサイクル数単位で比較し、(4)前記比較において差異がある場合に報告を行う。
【選択図】 図1
Description
【0001】
【発明の属する技術分野】
本発明は、動作レベルで記述された半導体装置の設計データとレジスタトランスファレベル(RTL)で記述された半導体装置の設計データとの等価性を検証する方法に関する。
【0002】
【従来の技術】
近年、システムLSIの設計の分野においては、C言語など汎用のプログラミング言語をハードウェア用に拡張した言語(例えばSystemCなど)を用いて動作記述などの抽象度の高いレベルで設計し、動作合成等により抽象度をレジスタトランスファレベルまで落とす手法が使われ始めている。
【0003】
従来、動作合成前の動作レベル記述による設計と動作合成後のレジスタトランスファレベル記述による設計とが同じ機能であるかどうかの判断について、双方のシミュレーションを実行し、それら設計データから出力される最終的なデータ(例えば画像や音声などの最終形)をコンピュータ上のファイルとして保持し、双方の結果を比較し、差異がないかどうかで判断していた。
【0004】
また、先行技術として、C言語などのプログラム言語とVHDLなどのハードウェア記述言語とで動作合成結果が異なることを検証する手法がある(例えば、特許文献1参照)。
【0005】
【特許文献1】
特開2001−222565号公報(第4−5頁、図1、図5−6)
【0006】
【発明が解決しようとする課題】
しかしながら、上記従来の方法は抽象度を超えて検証するものではなく、最終的な結果のみを比較するだけである。そのため、途中の状態をチェックすることができず、問題が発生した場合に原因を究明するのが困難である。また、動作レベルの設計データはクロックの概念をもたないため、設計データから途中結果として出力される値を逐一比較した場合に、実際は正常に機能合成されていても、比較するタイミングによっては不一致が生じてしまうことがある。以下、この不都合を、図を用いて説明する。
【0007】
2つの入力信号をとり、その積を出力信号とする回路 mult を設計するとする。これを図2のようなテストベンチでシミュレーションするとする。図2において、“int”は整数型を意味する。“c=mult(a,b)”は変数aと変数bを乗算し、その結果を変数cに代入することを意味する。“printf”は文字列を表示する関数である。“%d”は数字を整数の形式で表示することを指定する書式形式である。“¥n”は改行を指定する書式形式である。
【0008】
回路multが正常に設計されているとすると、動作レベルのシミュレーションでは図3の結果が得られる。
【0009】
一方、レジスタトランスファレベルで記述された回路multをシミュレーションする。図4は、演算のスケジューリングの結果により得られる波形表示の一例を示す。この場合、Aのタイミングで結果を比較すると、動作レベルの結果(図3)とレジスタトランスファレベルの結果は一致する。ところが、Bのタイミングで比較すると、結果が相違することになる。つまり、動作レベルの回路とレジスタトランスファレベルの回路が同等であるにもかかわらず、比較タイミングによっては相違であると誤判定されてしまうことがある。
【0010】
本発明は、このような事情に鑑みて創作されたものであり、動作レベルの回路記述とレジスタトランスファレベルの回路記述との等価性をそれぞれのシミュレーション結果から求める等価性検証方法において、誤判定を防止して正しく検証することができるようにすることを目的とする。
【0011】
【課題を解決するための手段】
上記の課題を解決するための本発明による半導体設計における動作記述の等価性検証方法は、次のような複数のステップを含んで構成されている。
【0012】
(1)動作レベルで記述された半導体装置の設計データを動作合成してレジスタトランスファレベルで記述された半導体装置の設計データを生成するステップ。
【0013】
(2)前記レジスタトランスファレベルと前記動作レベルの各設計データの動作シミュレーションを個別に行ってそれぞれのシミュレーション結果を得るステップ。
【0014】
(3)前記レジスタトランスファレベルのシミュレーション結果と前記動作レベルのシミュレーション結果とを前記動作合成でのトランザクションのサイクル数単位で比較するステップ。
【0015】
(4)前記比較において差異がある場合に報告を行うステップ。
【0016】
この構成によれば、レジスタトランスファレベルと動作レベルの両レベルの設計データが互いに等価であるか否かを検証するに際して、両レベルのシミュレーション結果どうしの比較を動作合成でのトランザクションのサイクル数単位で行うので、単に最終的な結果だけでなく、途中状態についても誤判定なく正しく検証することができ、問題が発生した場合の原因究明が容易となる。
【0017】
上記の両シミュレーション結果の比較のステップにおいて好ましい態様は、前記レジスタトランスファレベルのシミュレーション結果での入力信号確定時から出力信号確定時までの遅れサイクル数に基づいて比較タイミングを求め、前記比較タイミングにおける前記レジスタトランスファレベルのシミュレーション結果の出力信号の値と、その信号に該当する前記動作レベルのシミュレーション結果の出力信号とを比較することである。
【0018】
そして、上記の遅れサイクル数の求め方としては、次のようないくつかの形態がある。
【0019】
1つは、前記遅れサイクル数を、前記動作合成時の制約条件で与えられるサイクル数に基づいて決定する方式である。
【0020】
別の1つは、前記遅れサイクル数を、前記動作合成で決定されたサイクル数情報に基づいて決定する方式である。
【0021】
もう1つは、前記遅れサイクル数を、前記レジスタトランスファレベルのシミュレーション結果における入力から出力までの内部の状態遷移数に基づいて決定する方式である。
【0022】
また、上記のいずれにおいても、前記両シミュレーション結果の比較のステップにおいては、前記動作レベル側の記述で使用される変数の型で比較するのがよい。
【0023】
【発明の実施の形態】
以下、本発明にかかわる半導体装置設計における動作記述の等価性検証方法の実施の形態について図面に基づいて詳細に説明する。
【0024】
図1は本発明の実施の形態の半導体設計における動作記述の等価性検証方法の手順を示すフローチャートである。図1において、1は動作レベルで記述された半導体装置の設計データ、2はトランザクションのタイミング情報である。
【0025】
動作合成等低抽象度化のステップ3において、トランザクションのタイミング情報2を用いて動作レベルで記述された半導体装置の設計データ1からレジスタトランスファレベルで記述された半導体装置の設計データ4を動作合成(高位合成)する。RTLシミュレーションのステップ5において、レジスタトランスファレベルの設計データ4に対してRTLシミュレーションを行って、そのシミュレーション結果6を取得する。一方、動作レベルシミュレーションのステップ7において、動作レベルの設計データ1に対して動作シミュレーションを行って、そのシミュレーション結果8を取得する。
【0026】
上記のようにして両設計データ1,4のシミュレーション結果6,8を取得した後、ステップ9において、トランザクションのタイミング情報2からトランザクションのサイクル数単位を抽出した上で、ステップ10において、上記で取得したトランザクションのサイクル数単位で上記2つのシミュレーション結果6,8を比較し、両設計データ1,4の機能が互いに等価であるか否かを検証する。そして、ステップ11の判定で、両シミュレーション結果6,8に差異があったときは、ステップ12で差異がある旨の報告を行う。
【0027】
上記の処理の具体的な一例を図5に示す。図5はレジスタトランスファレベルのシミュレーション結果において、図3で示される動作レベルのシミュレーション結果に対する比較タイミング501を説明する。
【0028】
乗算回路multは、入力にかかわる2つの変数a,bに対して、出力にかかわる被代入変数cが、c=mult(a,b)で表される。レジスタトランスファレベルの設計データ4のシミュレーション結果6においては、図5に示すように、被代入変数cの開始タイミングが変数bの開始タイミングに比べて、トランザクションのサイクル数単位で3サイクル遅れている。この3サイクルが遅れサイクル数Tdである(Td=3)。そこで、ステップ9,10において、遅れサイクル数Tdを抽出し、その抽出した遅れサイクル数Td(=3サイクル)を加味して、比較タイミング501を設定する。入力にかかわる変数a,bのタイミングに対して出力にかかわる被代入変数cのタイミングを遅れサイクル数Td(=3サイクル)だけ遅らせた比較タイミング501を設定する。
【0029】
次に、図5の比較タイミング501の求め方の例をいくつか説明する。
【0030】
(1)動作合成時のタイミング制約条件から求める方式
動作合成において、例えば、図6に示すようなタイミング制約があったとする。すなわち、入力bから出力cまでのサイクル数3のタイミング制約である。
【0031】
このような制約ファイルから、図7で示されるようなcプログラムで、入力から出力までのサイクル数(遅れサイクル数Td)を求め、このサイクル数に基づいて図5の比較タイミング501を求める。すなわち、“set_cycles”で与えられるタイミング制約から、比較対象となる信号の制約値を求める。レジスタトランスファレベルのシミュレーション結果から出力信号値を求めるタイミングとして前記の制約値を利用する。
【0032】
すなわち、動作合成時の制約条件で与えられるサイクル数(遅れサイクル数Td)を求め、レジスタトランスファレベルのシミュレーション結果において、入力信号確定時から遅れサイクル数Tdを経過したタイミング(比較タイミング)での出力信号の値と、この場合の入力信号に該当する動作レベルのシミュレーション結果の出力信号の値(図3)とを比較し、差異があった場合に報告する。これは、請求項3に相当する。
【0033】
(2)動作合成でのサイクル数情報から求める方式
動作合成時に決定される入力信号の確定時から出力信号の確定時までのサイクル数を遅れサイクル数Tdとする。例えば、動作合成時にサイクル数が図8で示されるように決定されたとする。このような動作合成の結果から、図9で示される処理でレジスタトランスファレベルのシミュレーション結果から出力信号値を求めるタイミング値を決定する。すなわち、まず、ステップ901で、比較対象となる入力ピン、出力ピンを指定する。次いで、ステップ902で、図8で示されるような動作合成で決定されたサイクル数情報ファイルから1行ずつ情報を読み出す。ステップ903で、EOF(ファイルの終わり)になったか否かを判断し、なっていれば処理を終了するが、EOFになっていなければ次のステップ904に進む。
【0034】
ステップ904で、読み出した情報が指定された入力ピンのものであるか否かを判断し、そうであれば、ステップ905に進んで、変数Taにその時点のサイクル時を代入する。そうでなければ、ステップ906に進んで、読み出した情報が指定された出力ピンのものであるか否かを判断し、そうであれば、ステップ907に進んで、変数Tbにその時点のサイクル時を代入する。そうでなければ、ステップ908に進んで、Tb−Ta+1の演算を実行し、この演算で求めた値をレジスタトランスファレベルのシミュレーションの出力データの比較タイミング501を決めるための遅れサイクル数Tdとする(Td=Tb−Ta+1)。EOF、入力ピン、出力ピンのいずれでもなければ、ステップ902に戻る。
【0035】
このように、レジスタトランスファレベルのシミュレーション結果において、動作合成時に決定される入力信号確定時から出力信号確定時までのサイクル数である遅れサイクル数Tdを求め、この遅れサイクル数Tdに基づいて決定した比較タイミングにおいて、レジスタトランスファレベルのシミュレーション結果の出力信号とこれに該当する動作レベル記述のシミュレーション結果の出力信号とを比較し、差異があった場合に報告する。これは請求項4に相当する。
【0036】
(3)動作合成における入力から出力までの状態遷移数から求める方式
レジスタトランスファレベルで記述された設計データの状態遷移情報が例えば図10で示されるように抽出されたとする。このような状態遷移情報から、図11で示されるような処理により、入力から出力までの状態遷移数を求める。状態遷移を1クロックサイクルとして、求めた状態遷移数をサイクル数に換算し、そのサイクル数を遅れサイクル数Tdとして、図5の比較タイミング501を決定する。
【0037】
すなわち、図11において、まず、ステップ1101で、比較対象となる入力ピン、出力ピンを指定する。次いで、ステップ1102で、レジスタトランスファレベルの設計データから図10に示されるような状態遷移情報を抽出する。ステップ1103で、上記の抽出した状態遷移情報に基づいて、指定の入力ピンへの入力の状態から、指定の出力ピンからの出力の状態までの状態遷移パスを求める。そして、ステップ1104で、上記状態遷移パス中の状態の遷移数を1サイクルとして、その総数をレジスタトランスファレベルでの遅れサイクル数Tdとし、レジスタトランスファレベルのシミュレーション結果の出力信号値の比較タイミング501を決定する。比較の結果、差異があった場合には報告する。これは請求項5に相当する。
【0038】
【発明の効果】
以上のように本発明によれば、レジスタトランスファレベルと動作レベルの両レベルの設計データが互いに等価であるか否かを検証するに際して、両レベルのシミュレーション結果どうしの比較を動作合成でのトランザクションのサイクル数単位で行うので、単に最終的な結果だけでなく、途中状態についても誤判定なく正しく検証することができ、問題が発生した場合の原因究明を容易化することができる。
【図面の簡単な説明】
【図1】本発明の実施の形態における半導体設計における動作記述の等価性検証方法の手順を示すフローチャート
【図2】動作レベル記述の例
【図3】動作レベル記述のシミュレーション結果の例
【図4】レジスタトランスファレベルのシミュレーション結果の例
【図5】本発明の実施の形態におけるレジスタトランスファレベルのシミュレーション結果および比較タイミングの例
【図6】本発明の実施の形態における動作合成のタイミング制約の例
【図7】本発明の実施の形態におけるタイミング制約に基づいて入力から出力までのサイクル数を求めるcプログラムの例
【図8】本発明の実施の形態における動作合成で決定されるサイクル数情報の例
【図9】本発明の実施の形態における動作合成で決定されるサイクル数から比較のためのサイクル数を抽出する手順を示すフローチャート
【図10】本発明の実施の形態におけるレジスタトランスファレベルから抽出された状態遷移情報の例
【図11】本発明の実施の形態における状態遷移情報から比較のためのサイクル数を抽出する手順を示すフローチャート
【符号の説明】
1 動作レベルの設計データ
2 トランザクションのタイミング情報
3 動作合成等低抽象度化のステップ
4 レジスタトランスファレベルの設計データ
5 RTLシミュレーションのステップ
6 レジスタトランスファレベルのシミュレーション結果
7 動作レベルシミュレーションのステップ
8 動作レベルのシミュレーション結果
9 トランザクションのサイクル数単位の抽出のステップ
10 トランザクションのサイクル数単位での2つのシミュレーション結果の比較のステップ
11 判定のステップ
12 差異がある旨の報告のステップ
【発明の属する技術分野】
本発明は、動作レベルで記述された半導体装置の設計データとレジスタトランスファレベル(RTL)で記述された半導体装置の設計データとの等価性を検証する方法に関する。
【0002】
【従来の技術】
近年、システムLSIの設計の分野においては、C言語など汎用のプログラミング言語をハードウェア用に拡張した言語(例えばSystemCなど)を用いて動作記述などの抽象度の高いレベルで設計し、動作合成等により抽象度をレジスタトランスファレベルまで落とす手法が使われ始めている。
【0003】
従来、動作合成前の動作レベル記述による設計と動作合成後のレジスタトランスファレベル記述による設計とが同じ機能であるかどうかの判断について、双方のシミュレーションを実行し、それら設計データから出力される最終的なデータ(例えば画像や音声などの最終形)をコンピュータ上のファイルとして保持し、双方の結果を比較し、差異がないかどうかで判断していた。
【0004】
また、先行技術として、C言語などのプログラム言語とVHDLなどのハードウェア記述言語とで動作合成結果が異なることを検証する手法がある(例えば、特許文献1参照)。
【0005】
【特許文献1】
特開2001−222565号公報(第4−5頁、図1、図5−6)
【0006】
【発明が解決しようとする課題】
しかしながら、上記従来の方法は抽象度を超えて検証するものではなく、最終的な結果のみを比較するだけである。そのため、途中の状態をチェックすることができず、問題が発生した場合に原因を究明するのが困難である。また、動作レベルの設計データはクロックの概念をもたないため、設計データから途中結果として出力される値を逐一比較した場合に、実際は正常に機能合成されていても、比較するタイミングによっては不一致が生じてしまうことがある。以下、この不都合を、図を用いて説明する。
【0007】
2つの入力信号をとり、その積を出力信号とする回路 mult を設計するとする。これを図2のようなテストベンチでシミュレーションするとする。図2において、“int”は整数型を意味する。“c=mult(a,b)”は変数aと変数bを乗算し、その結果を変数cに代入することを意味する。“printf”は文字列を表示する関数である。“%d”は数字を整数の形式で表示することを指定する書式形式である。“¥n”は改行を指定する書式形式である。
【0008】
回路multが正常に設計されているとすると、動作レベルのシミュレーションでは図3の結果が得られる。
【0009】
一方、レジスタトランスファレベルで記述された回路multをシミュレーションする。図4は、演算のスケジューリングの結果により得られる波形表示の一例を示す。この場合、Aのタイミングで結果を比較すると、動作レベルの結果(図3)とレジスタトランスファレベルの結果は一致する。ところが、Bのタイミングで比較すると、結果が相違することになる。つまり、動作レベルの回路とレジスタトランスファレベルの回路が同等であるにもかかわらず、比較タイミングによっては相違であると誤判定されてしまうことがある。
【0010】
本発明は、このような事情に鑑みて創作されたものであり、動作レベルの回路記述とレジスタトランスファレベルの回路記述との等価性をそれぞれのシミュレーション結果から求める等価性検証方法において、誤判定を防止して正しく検証することができるようにすることを目的とする。
【0011】
【課題を解決するための手段】
上記の課題を解決するための本発明による半導体設計における動作記述の等価性検証方法は、次のような複数のステップを含んで構成されている。
【0012】
(1)動作レベルで記述された半導体装置の設計データを動作合成してレジスタトランスファレベルで記述された半導体装置の設計データを生成するステップ。
【0013】
(2)前記レジスタトランスファレベルと前記動作レベルの各設計データの動作シミュレーションを個別に行ってそれぞれのシミュレーション結果を得るステップ。
【0014】
(3)前記レジスタトランスファレベルのシミュレーション結果と前記動作レベルのシミュレーション結果とを前記動作合成でのトランザクションのサイクル数単位で比較するステップ。
【0015】
(4)前記比較において差異がある場合に報告を行うステップ。
【0016】
この構成によれば、レジスタトランスファレベルと動作レベルの両レベルの設計データが互いに等価であるか否かを検証するに際して、両レベルのシミュレーション結果どうしの比較を動作合成でのトランザクションのサイクル数単位で行うので、単に最終的な結果だけでなく、途中状態についても誤判定なく正しく検証することができ、問題が発生した場合の原因究明が容易となる。
【0017】
上記の両シミュレーション結果の比較のステップにおいて好ましい態様は、前記レジスタトランスファレベルのシミュレーション結果での入力信号確定時から出力信号確定時までの遅れサイクル数に基づいて比較タイミングを求め、前記比較タイミングにおける前記レジスタトランスファレベルのシミュレーション結果の出力信号の値と、その信号に該当する前記動作レベルのシミュレーション結果の出力信号とを比較することである。
【0018】
そして、上記の遅れサイクル数の求め方としては、次のようないくつかの形態がある。
【0019】
1つは、前記遅れサイクル数を、前記動作合成時の制約条件で与えられるサイクル数に基づいて決定する方式である。
【0020】
別の1つは、前記遅れサイクル数を、前記動作合成で決定されたサイクル数情報に基づいて決定する方式である。
【0021】
もう1つは、前記遅れサイクル数を、前記レジスタトランスファレベルのシミュレーション結果における入力から出力までの内部の状態遷移数に基づいて決定する方式である。
【0022】
また、上記のいずれにおいても、前記両シミュレーション結果の比較のステップにおいては、前記動作レベル側の記述で使用される変数の型で比較するのがよい。
【0023】
【発明の実施の形態】
以下、本発明にかかわる半導体装置設計における動作記述の等価性検証方法の実施の形態について図面に基づいて詳細に説明する。
【0024】
図1は本発明の実施の形態の半導体設計における動作記述の等価性検証方法の手順を示すフローチャートである。図1において、1は動作レベルで記述された半導体装置の設計データ、2はトランザクションのタイミング情報である。
【0025】
動作合成等低抽象度化のステップ3において、トランザクションのタイミング情報2を用いて動作レベルで記述された半導体装置の設計データ1からレジスタトランスファレベルで記述された半導体装置の設計データ4を動作合成(高位合成)する。RTLシミュレーションのステップ5において、レジスタトランスファレベルの設計データ4に対してRTLシミュレーションを行って、そのシミュレーション結果6を取得する。一方、動作レベルシミュレーションのステップ7において、動作レベルの設計データ1に対して動作シミュレーションを行って、そのシミュレーション結果8を取得する。
【0026】
上記のようにして両設計データ1,4のシミュレーション結果6,8を取得した後、ステップ9において、トランザクションのタイミング情報2からトランザクションのサイクル数単位を抽出した上で、ステップ10において、上記で取得したトランザクションのサイクル数単位で上記2つのシミュレーション結果6,8を比較し、両設計データ1,4の機能が互いに等価であるか否かを検証する。そして、ステップ11の判定で、両シミュレーション結果6,8に差異があったときは、ステップ12で差異がある旨の報告を行う。
【0027】
上記の処理の具体的な一例を図5に示す。図5はレジスタトランスファレベルのシミュレーション結果において、図3で示される動作レベルのシミュレーション結果に対する比較タイミング501を説明する。
【0028】
乗算回路multは、入力にかかわる2つの変数a,bに対して、出力にかかわる被代入変数cが、c=mult(a,b)で表される。レジスタトランスファレベルの設計データ4のシミュレーション結果6においては、図5に示すように、被代入変数cの開始タイミングが変数bの開始タイミングに比べて、トランザクションのサイクル数単位で3サイクル遅れている。この3サイクルが遅れサイクル数Tdである(Td=3)。そこで、ステップ9,10において、遅れサイクル数Tdを抽出し、その抽出した遅れサイクル数Td(=3サイクル)を加味して、比較タイミング501を設定する。入力にかかわる変数a,bのタイミングに対して出力にかかわる被代入変数cのタイミングを遅れサイクル数Td(=3サイクル)だけ遅らせた比較タイミング501を設定する。
【0029】
次に、図5の比較タイミング501の求め方の例をいくつか説明する。
【0030】
(1)動作合成時のタイミング制約条件から求める方式
動作合成において、例えば、図6に示すようなタイミング制約があったとする。すなわち、入力bから出力cまでのサイクル数3のタイミング制約である。
【0031】
このような制約ファイルから、図7で示されるようなcプログラムで、入力から出力までのサイクル数(遅れサイクル数Td)を求め、このサイクル数に基づいて図5の比較タイミング501を求める。すなわち、“set_cycles”で与えられるタイミング制約から、比較対象となる信号の制約値を求める。レジスタトランスファレベルのシミュレーション結果から出力信号値を求めるタイミングとして前記の制約値を利用する。
【0032】
すなわち、動作合成時の制約条件で与えられるサイクル数(遅れサイクル数Td)を求め、レジスタトランスファレベルのシミュレーション結果において、入力信号確定時から遅れサイクル数Tdを経過したタイミング(比較タイミング)での出力信号の値と、この場合の入力信号に該当する動作レベルのシミュレーション結果の出力信号の値(図3)とを比較し、差異があった場合に報告する。これは、請求項3に相当する。
【0033】
(2)動作合成でのサイクル数情報から求める方式
動作合成時に決定される入力信号の確定時から出力信号の確定時までのサイクル数を遅れサイクル数Tdとする。例えば、動作合成時にサイクル数が図8で示されるように決定されたとする。このような動作合成の結果から、図9で示される処理でレジスタトランスファレベルのシミュレーション結果から出力信号値を求めるタイミング値を決定する。すなわち、まず、ステップ901で、比較対象となる入力ピン、出力ピンを指定する。次いで、ステップ902で、図8で示されるような動作合成で決定されたサイクル数情報ファイルから1行ずつ情報を読み出す。ステップ903で、EOF(ファイルの終わり)になったか否かを判断し、なっていれば処理を終了するが、EOFになっていなければ次のステップ904に進む。
【0034】
ステップ904で、読み出した情報が指定された入力ピンのものであるか否かを判断し、そうであれば、ステップ905に進んで、変数Taにその時点のサイクル時を代入する。そうでなければ、ステップ906に進んで、読み出した情報が指定された出力ピンのものであるか否かを判断し、そうであれば、ステップ907に進んで、変数Tbにその時点のサイクル時を代入する。そうでなければ、ステップ908に進んで、Tb−Ta+1の演算を実行し、この演算で求めた値をレジスタトランスファレベルのシミュレーションの出力データの比較タイミング501を決めるための遅れサイクル数Tdとする(Td=Tb−Ta+1)。EOF、入力ピン、出力ピンのいずれでもなければ、ステップ902に戻る。
【0035】
このように、レジスタトランスファレベルのシミュレーション結果において、動作合成時に決定される入力信号確定時から出力信号確定時までのサイクル数である遅れサイクル数Tdを求め、この遅れサイクル数Tdに基づいて決定した比較タイミングにおいて、レジスタトランスファレベルのシミュレーション結果の出力信号とこれに該当する動作レベル記述のシミュレーション結果の出力信号とを比較し、差異があった場合に報告する。これは請求項4に相当する。
【0036】
(3)動作合成における入力から出力までの状態遷移数から求める方式
レジスタトランスファレベルで記述された設計データの状態遷移情報が例えば図10で示されるように抽出されたとする。このような状態遷移情報から、図11で示されるような処理により、入力から出力までの状態遷移数を求める。状態遷移を1クロックサイクルとして、求めた状態遷移数をサイクル数に換算し、そのサイクル数を遅れサイクル数Tdとして、図5の比較タイミング501を決定する。
【0037】
すなわち、図11において、まず、ステップ1101で、比較対象となる入力ピン、出力ピンを指定する。次いで、ステップ1102で、レジスタトランスファレベルの設計データから図10に示されるような状態遷移情報を抽出する。ステップ1103で、上記の抽出した状態遷移情報に基づいて、指定の入力ピンへの入力の状態から、指定の出力ピンからの出力の状態までの状態遷移パスを求める。そして、ステップ1104で、上記状態遷移パス中の状態の遷移数を1サイクルとして、その総数をレジスタトランスファレベルでの遅れサイクル数Tdとし、レジスタトランスファレベルのシミュレーション結果の出力信号値の比較タイミング501を決定する。比較の結果、差異があった場合には報告する。これは請求項5に相当する。
【0038】
【発明の効果】
以上のように本発明によれば、レジスタトランスファレベルと動作レベルの両レベルの設計データが互いに等価であるか否かを検証するに際して、両レベルのシミュレーション結果どうしの比較を動作合成でのトランザクションのサイクル数単位で行うので、単に最終的な結果だけでなく、途中状態についても誤判定なく正しく検証することができ、問題が発生した場合の原因究明を容易化することができる。
【図面の簡単な説明】
【図1】本発明の実施の形態における半導体設計における動作記述の等価性検証方法の手順を示すフローチャート
【図2】動作レベル記述の例
【図3】動作レベル記述のシミュレーション結果の例
【図4】レジスタトランスファレベルのシミュレーション結果の例
【図5】本発明の実施の形態におけるレジスタトランスファレベルのシミュレーション結果および比較タイミングの例
【図6】本発明の実施の形態における動作合成のタイミング制約の例
【図7】本発明の実施の形態におけるタイミング制約に基づいて入力から出力までのサイクル数を求めるcプログラムの例
【図8】本発明の実施の形態における動作合成で決定されるサイクル数情報の例
【図9】本発明の実施の形態における動作合成で決定されるサイクル数から比較のためのサイクル数を抽出する手順を示すフローチャート
【図10】本発明の実施の形態におけるレジスタトランスファレベルから抽出された状態遷移情報の例
【図11】本発明の実施の形態における状態遷移情報から比較のためのサイクル数を抽出する手順を示すフローチャート
【符号の説明】
1 動作レベルの設計データ
2 トランザクションのタイミング情報
3 動作合成等低抽象度化のステップ
4 レジスタトランスファレベルの設計データ
5 RTLシミュレーションのステップ
6 レジスタトランスファレベルのシミュレーション結果
7 動作レベルシミュレーションのステップ
8 動作レベルのシミュレーション結果
9 トランザクションのサイクル数単位の抽出のステップ
10 トランザクションのサイクル数単位での2つのシミュレーション結果の比較のステップ
11 判定のステップ
12 差異がある旨の報告のステップ
Claims (6)
- 動作レベルで記述された半導体装置の設計データを動作合成してレジスタトランスファレベルで記述された半導体装置の設計データを生成するステップと、
前記レジスタトランスファレベルと前記動作レベルの各設計データの動作シミュレーションを個別に行ってそれぞれのシミュレーション結果を得るステップと、
前記レジスタトランスファレベルのシミュレーション結果と前記動作レベルのシミュレーション結果とを前記動作合成でのトランザクションのサイクル数単位で比較するステップと、
前記比較において差異がある場合に報告を行うステップとを含むことを特徴とする半導体設計における動作記述の等価性検証方法。 - 前記両シミュレーション結果の比較のステップは、前記レジスタトランスファレベルのシミュレーション結果での入力信号確定時から出力信号確定時までの遅れサイクル数に基づいて比較タイミングを求め、前記比較タイミングにおける前記レジスタトランスファレベルのシミュレーション結果の出力信号の値と、その信号に該当する前記動作レベルのシミュレーション結果の出力信号とを比較する請求項1に記載の半導体設計における動作記述の等価性検証方法。
- 前記遅れサイクル数を、前記動作合成時の制約条件で与えられるサイクル数に基づいて決定する請求項2に記載の半導体設計における動作記述の等価性検証方法。
- 前記遅れサイクル数を、前記動作合成で決定されたサイクル数情報に基づいて決定する請求項2に記載の半導体設計における動作記述の等価性検証方法。
- 前記遅れサイクル数を、前記レジスタトランスファレベルのシミュレーション結果における入力から出力までの内部の状態遷移数に基づいて決定する請求項2に記載の半導体設計における動作記述の等価性検証方法。
- 前記両シミュレーション結果の比較のステップは、前記動作レベル側の記述で使用される変数の型で比較する請求項1から請求項5までのいずれかに記載の半導体設計における動作記述の等価性検証方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002311069A JP2004145712A (ja) | 2002-10-25 | 2002-10-25 | 半導体設計における動作記述の等価性検証方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002311069A JP2004145712A (ja) | 2002-10-25 | 2002-10-25 | 半導体設計における動作記述の等価性検証方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004145712A true JP2004145712A (ja) | 2004-05-20 |
Family
ID=32456405
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002311069A Pending JP2004145712A (ja) | 2002-10-25 | 2002-10-25 | 半導体設計における動作記述の等価性検証方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004145712A (ja) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006309666A (ja) * | 2005-05-02 | 2006-11-09 | Ricoh Co Ltd | プログラム開発支援装置、プログラム動作比較方法および半導体集積回路製造方法 |
JP2008181490A (ja) * | 2006-12-15 | 2008-08-07 | Onespin Solutions Gmbh | プロセッサの例におけるトランザクションレベルモデルとrtlとの間の等価性検証 |
US7840922B2 (en) | 2005-12-09 | 2010-11-23 | Nec Electronics Corporation | Semiconductor design support apparatus |
US8091051B2 (en) | 2007-01-30 | 2012-01-03 | Nec Corporation | Behavioral synthesis apparatus, method, and program having test bench generation function |
US8122402B2 (en) | 2008-03-24 | 2012-02-21 | Renesas Electronics Corporation | Equivalence checking method, equivalence checking program, and generating method for equivalence checking program |
US8359561B2 (en) | 2007-12-06 | 2013-01-22 | Onespin Solutions Gmbh | Equivalence verification between transaction level models and RTL at the example to processors |
-
2002
- 2002-10-25 JP JP2002311069A patent/JP2004145712A/ja active Pending
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006309666A (ja) * | 2005-05-02 | 2006-11-09 | Ricoh Co Ltd | プログラム開発支援装置、プログラム動作比較方法および半導体集積回路製造方法 |
US8239834B2 (en) | 2005-05-02 | 2012-08-07 | Ricoh Company, Ltd. | Method and system of program development supporting |
US7840922B2 (en) | 2005-12-09 | 2010-11-23 | Nec Electronics Corporation | Semiconductor design support apparatus |
JP2008181490A (ja) * | 2006-12-15 | 2008-08-07 | Onespin Solutions Gmbh | プロセッサの例におけるトランザクションレベルモデルとrtlとの間の等価性検証 |
US8091051B2 (en) | 2007-01-30 | 2012-01-03 | Nec Corporation | Behavioral synthesis apparatus, method, and program having test bench generation function |
US8386973B2 (en) | 2007-01-30 | 2013-02-26 | Nec Corporation | Behavioral synthesis apparatus, method, and program having test bench generation function |
US8359561B2 (en) | 2007-12-06 | 2013-01-22 | Onespin Solutions Gmbh | Equivalence verification between transaction level models and RTL at the example to processors |
US8122402B2 (en) | 2008-03-24 | 2012-02-21 | Renesas Electronics Corporation | Equivalence checking method, equivalence checking program, and generating method for equivalence checking program |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8914761B2 (en) | Metastability effects simulation for a circuit description | |
US8468475B2 (en) | Conversion of circuit description to an abstract model of the circuit | |
US7343575B2 (en) | Phase abstraction for formal verification | |
US20030192018A1 (en) | Apparatus and method for automated use of phase abstraction for enhanced verification of circuit designs | |
JP2000132416A (ja) | 半導体集積回路設計検証装置 | |
JP2000082094A (ja) | 半導体集積回路設計検証システム | |
US8060847B2 (en) | Clock model for formal verification of a digital circuit description | |
JP2006048525A (ja) | シミュレーション方法 | |
JP2004145712A (ja) | 半導体設計における動作記述の等価性検証方法 | |
US6789242B1 (en) | Method and system for integrated circuit design and diagnosis | |
Safarpour et al. | Failure triage: The neglected debugging problem | |
JP5104356B2 (ja) | 検証支援プログラム、検証支援装置、および検証支援方法 | |
US7080335B2 (en) | Methods for modeling latch transparency | |
JP4307169B2 (ja) | 遅延検証装置 | |
US7047173B1 (en) | Analog signal verification using digital signatures | |
JP2002259488A (ja) | クロックスキュー検証方法 | |
JP2007241836A (ja) | マルチサイクルパス検証方法 | |
JP2001229211A (ja) | 非同期回路の検証方法 | |
JP2001235522A (ja) | テストベクタ作成装置 | |
KR20080039182A (ko) | 하드웨어기반 검증플랫폼에서의 클럭발생 방법 및 이를이용하는 동적검증 방법 | |
JP2001255357A (ja) | テストパターン妥当性検証方法及びその装置 | |
JP2015127847A (ja) | 論理合成装置、論理合成方法および半導体集積回路の製造方法 | |
JPH10319090A (ja) | テストベンチ変換方法および変換装置 | |
JP2011054070A (ja) | 冗長論理回路検出方法及び冗長論理回路検出装置 | |
JP2000348076A (ja) | シミュレーション方法、シミュレーション装置および記録媒体 |