(57)【要約】【課題】動作レベルの回路記述とレジスタトランスファレベルの回路記述との等価性をそれぞれのシミュレーション結果から求める等価性検証方法において、誤判定を防止して正しく検証することができるようにする。【解決手段】（１）動作レベルで記述された半導体装置の設計データを動作合成してレジスタトランスファレベルで記述された半導体装置の設計データを生成し、（２）前記レジスタトランスファレベルと前記動作レベルの各設計データの動作シミュレーションを個別に行ってそれぞれのシミュレーション結果を得、（３）前記レジスタトランスファレベルのシミュレーション結果と前記動作レベルのシミュレーション結果とを前記動作合成でのトランザクションのサイクル数単位で比較し、（４）前記比較において差異がある場合に報告を行う。【選択図】　図１
2004145712.tif 000002
【特許請求の範囲】
【請求項１】
動作レベルで記述された半導体装置の設計データを動作合成してレジスタトランスファレベルで記述された半導体装置の設計データを生成するステップと、
前記レジスタトランスファレベルと前記動作レベルの各設計データの動作シミュレーションを個別に行ってそれぞれのシミュレーション結果を得るステップと、
前記レジスタトランスファレベルのシミュレーション結果と前記動作レベルのシミュレーション結果とを前記動作合成でのトランザクションのサイクル数単位で比較するステップと、
前記比較において差異がある場合に報告を行うステップとを含むことを特徴とする半導体設計における動作記述の等価性検証方法。
【請求項２】
前記両シミュレーション結果の比較のステップは、前記レジスタトランスファレベルのシミュレーション結果での入力信号確定時から出力信号確定時までの遅れサイクル数に基づいて比較タイミングを求め、前記比較タイミングにおける前記レジスタトランスファレベルのシミュレーション結果の出力信号の値と、その信号に該当する前記動作レベルのシミュレーション結果の出力信号とを比較する請求項１に記載の半導体設計における動作記述の等価性検証方法。
【請求項３】
前記遅れサイクル数を、前記動作合成時の制約条件で与えられるサイクル数に基づいて決定する請求項２に記載の半導体設計における動作記述の等価性検証方法。
【請求項４】
前記遅れサイクル数を、前記動作合成で決定されたサイクル数情報に基づいて決定する請求項２に記載の半導体設計における動作記述の等価性検証方法。
【請求項５】
前記遅れサイクル数を、前記レジスタトランスファレベルのシミュレーション結果における入力から出力までの内部の状態遷移数に基づいて決定する請求項２に記載の半導体設計における動作記述の等価性検証方法。
【請求項６】
前記両シミュレーション結果の比較のステップは、前記動作レベル側の記述で使用される変数の型で比較する請求項１から請求項５までのいずれかに記載の半導体設計における動作記述の等価性検証方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、動作レベルで記述された半導体装置の設計データとレジスタトランスファレベル（ＲＴＬ）で記述された半導体装置の設計データとの等価性を検証する方法に関する。
【０００２】
【従来の技術】
近年、システムＬＳＩの設計の分野においては、Ｃ言語など汎用のプログラミング言語をハードウェア用に拡張した言語（例えばＳｙｓｔｅｍＣなど）を用いて動作記述などの抽象度の高いレベルで設計し、動作合成等により抽象度をレジスタトランスファレベルまで落とす手法が使われ始めている。
【０００３】
従来、動作合成前の動作レベル記述による設計と動作合成後のレジスタトランスファレベル記述による設計とが同じ機能であるかどうかの判断について、双方のシミュレーションを実行し、それら設計データから出力される最終的なデータ（例えば画像や音声などの最終形）をコンピュータ上のファイルとして保持し、双方の結果を比較し、差異がないかどうかで判断していた。
【０００４】
また、先行技術として、Ｃ言語などのプログラム言語とＶＨＤＬなどのハードウェア記述言語とで動作合成結果が異なることを検証する手法がある（例えば、特許文献１参照）。
【０００５】
【特許文献１】
特開２００１−２２２５６５号公報（第４−５頁、図１、図５−６）
【０００６】
【発明が解決しようとする課題】
しかしながら、上記従来の方法は抽象度を超えて検証するものではなく、最終的な結果のみを比較するだけである。そのため、途中の状態をチェックすることができず、問題が発生した場合に原因を究明するのが困難である。また、動作レベルの設計データはクロックの概念をもたないため、設計データから途中結果として出力される値を逐一比較した場合に、実際は正常に機能合成されていても、比較するタイミングによっては不一致が生じてしまうことがある。以下、この不都合を、図を用いて説明する。
【０００７】
２つの入力信号をとり、その積を出力信号とする回路　ｍｕｌｔ　を設計するとする。これを図２のようなテストベンチでシミュレーションするとする。図２において、“ｉｎｔ”は整数型を意味する。“ｃ＝ｍｕｌｔ（ａ，ｂ）”は変数ａと変数ｂを乗算し、その結果を変数ｃに代入することを意味する。“ｐｒｉｎｔｆ”は文字列を表示する関数である。“％ｄ”は数字を整数の形式で表示することを指定する書式形式である。“￥ｎ”は改行を指定する書式形式である。
【０００８】
回路ｍｕｌｔが正常に設計されているとすると、動作レベルのシミュレーションでは図３の結果が得られる。
【０００９】
一方、レジスタトランスファレベルで記述された回路ｍｕｌｔをシミュレーションする。図４は、演算のスケジューリングの結果により得られる波形表示の一例を示す。この場合、Ａのタイミングで結果を比較すると、動作レベルの結果（図３）とレジスタトランスファレベルの結果は一致する。ところが、Ｂのタイミングで比較すると、結果が相違することになる。つまり、動作レベルの回路とレジスタトランスファレベルの回路が同等であるにもかかわらず、比較タイミングによっては相違であると誤判定されてしまうことがある。
【００１０】
本発明は、このような事情に鑑みて創作されたものであり、動作レベルの回路記述とレジスタトランスファレベルの回路記述との等価性をそれぞれのシミュレーション結果から求める等価性検証方法において、誤判定を防止して正しく検証することができるようにすることを目的とする。
【００１１】
【課題を解決するための手段】
上記の課題を解決するための本発明による半導体設計における動作記述の等価性検証方法は、次のような複数のステップを含んで構成されている。
【００１２】
（１）動作レベルで記述された半導体装置の設計データを動作合成してレジスタトランスファレベルで記述された半導体装置の設計データを生成するステップ。
【００１３】
（２）前記レジスタトランスファレベルと前記動作レベルの各設計データの動作シミュレーションを個別に行ってそれぞれのシミュレーション結果を得るステップ。
【００１４】
（３）前記レジスタトランスファレベルのシミュレーション結果と前記動作レベルのシミュレーション結果とを前記動作合成でのトランザクションのサイクル数単位で比較するステップ。
【００１５】
（４）前記比較において差異がある場合に報告を行うステップ。
【００１６】
この構成によれば、レジスタトランスファレベルと動作レベルの両レベルの設計データが互いに等価であるか否かを検証するに際して、両レベルのシミュレーション結果どうしの比較を動作合成でのトランザクションのサイクル数単位で行うので、単に最終的な結果だけでなく、途中状態についても誤判定なく正しく検証することができ、問題が発生した場合の原因究明が容易となる。
【００１７】
上記の両シミュレーション結果の比較のステップにおいて好ましい態様は、前記レジスタトランスファレベルのシミュレーション結果での入力信号確定時から出力信号確定時までの遅れサイクル数に基づいて比較タイミングを求め、前記比較タイミングにおける前記レジスタトランスファレベルのシミュレーション結果の出力信号の値と、その信号に該当する前記動作レベルのシミュレーション結果の出力信号とを比較することである。
【００１８】
そして、上記の遅れサイクル数の求め方としては、次のようないくつかの形態がある。
【００１９】
１つは、前記遅れサイクル数を、前記動作合成時の制約条件で与えられるサイクル数に基づいて決定する方式である。
【００２０】
別の１つは、前記遅れサイクル数を、前記動作合成で決定されたサイクル数情報に基づいて決定する方式である。
【００２１】
もう１つは、前記遅れサイクル数を、前記レジスタトランスファレベルのシミュレーション結果における入力から出力までの内部の状態遷移数に基づいて決定する方式である。
【００２２】
また、上記のいずれにおいても、前記両シミュレーション結果の比較のステップにおいては、前記動作レベル側の記述で使用される変数の型で比較するのがよい。
【００２３】
【発明の実施の形態】
以下、本発明にかかわる半導体装置設計における動作記述の等価性検証方法の実施の形態について図面に基づいて詳細に説明する。
【００２４】
図１は本発明の実施の形態の半導体設計における動作記述の等価性検証方法の手順を示すフローチャートである。図１において、１は動作レベルで記述された半導体装置の設計データ、２はトランザクションのタイミング情報である。
【００２５】
動作合成等低抽象度化のステップ３において、トランザクションのタイミング情報２を用いて動作レベルで記述された半導体装置の設計データ１からレジスタトランスファレベルで記述された半導体装置の設計データ４を動作合成（高位合成）する。ＲＴＬシミュレーションのステップ５において、レジスタトランスファレベルの設計データ４に対してＲＴＬシミュレーションを行って、そのシミュレーション結果６を取得する。一方、動作レベルシミュレーションのステップ７において、動作レベルの設計データ１に対して動作シミュレーションを行って、そのシミュレーション結果８を取得する。
【００２６】
上記のようにして両設計データ１，４のシミュレーション結果６，８を取得した後、ステップ９において、トランザクションのタイミング情報２からトランザクションのサイクル数単位を抽出した上で、ステップ１０において、上記で取得したトランザクションのサイクル数単位で上記２つのシミュレーション結果６，８を比較し、両設計データ１，４の機能が互いに等価であるか否かを検証する。そして、ステップ１１の判定で、両シミュレーション結果６，８に差異があったときは、ステップ１２で差異がある旨の報告を行う。
【００２７】
上記の処理の具体的な一例を図５に示す。図５はレジスタトランスファレベルのシミュレーション結果において、図３で示される動作レベルのシミュレーション結果に対する比較タイミング５０１を説明する。
【００２８】
乗算回路ｍｕｌｔは、入力にかかわる２つの変数ａ，ｂに対して、出力にかかわる被代入変数ｃが、ｃ＝ｍｕｌｔ（ａ，ｂ）で表される。レジスタトランスファレベルの設計データ４のシミュレーション結果６においては、図５に示すように、被代入変数ｃの開始タイミングが変数ｂの開始タイミングに比べて、トランザクションのサイクル数単位で３サイクル遅れている。この３サイクルが遅れサイクル数Ｔｄである（Ｔｄ＝３）。そこで、ステップ９，１０において、遅れサイクル数Ｔｄを抽出し、その抽出した遅れサイクル数Ｔｄ（＝３サイクル）を加味して、比較タイミング５０１を設定する。入力にかかわる変数ａ，ｂのタイミングに対して出力にかかわる被代入変数ｃのタイミングを遅れサイクル数Ｔｄ（＝３サイクル）だけ遅らせた比較タイミング５０１を設定する。
【００２９】
次に、図５の比較タイミング５０１の求め方の例をいくつか説明する。
【００３０】
（１）動作合成時のタイミング制約条件から求める方式
動作合成において、例えば、図６に示すようなタイミング制約があったとする。すなわち、入力ｂから出力ｃまでのサイクル数３のタイミング制約である。
【００３１】
このような制約ファイルから、図７で示されるようなｃプログラムで、入力から出力までのサイクル数（遅れサイクル数Ｔｄ）を求め、このサイクル数に基づいて図５の比較タイミング５０１を求める。すなわち、“ｓｅｔ＿ｃｙｃｌｅｓ”で与えられるタイミング制約から、比較対象となる信号の制約値を求める。レジスタトランスファレベルのシミュレーション結果から出力信号値を求めるタイミングとして前記の制約値を利用する。
【００３２】
すなわち、動作合成時の制約条件で与えられるサイクル数（遅れサイクル数Ｔｄ）を求め、レジスタトランスファレベルのシミュレーション結果において、入力信号確定時から遅れサイクル数Ｔｄを経過したタイミング（比較タイミング）での出力信号の値と、この場合の入力信号に該当する動作レベルのシミュレーション結果の出力信号の値（図３）とを比較し、差異があった場合に報告する。これは、請求項３に相当する。
【００３３】
（２）動作合成でのサイクル数情報から求める方式
動作合成時に決定される入力信号の確定時から出力信号の確定時までのサイクル数を遅れサイクル数Ｔｄとする。例えば、動作合成時にサイクル数が図８で示されるように決定されたとする。このような動作合成の結果から、図９で示される処理でレジスタトランスファレベルのシミュレーション結果から出力信号値を求めるタイミング値を決定する。すなわち、まず、ステップ９０１で、比較対象となる入力ピン、出力ピンを指定する。次いで、ステップ９０２で、図８で示されるような動作合成で決定されたサイクル数情報ファイルから１行ずつ情報を読み出す。ステップ９０３で、ＥＯＦ（ファイルの終わり）になったか否かを判断し、なっていれば処理を終了するが、ＥＯＦになっていなければ次のステップ９０４に進む。
【００３４】
ステップ９０４で、読み出した情報が指定された入力ピンのものであるか否かを判断し、そうであれば、ステップ９０５に進んで、変数Ｔａにその時点のサイクル時を代入する。そうでなければ、ステップ９０６に進んで、読み出した情報が指定された出力ピンのものであるか否かを判断し、そうであれば、ステップ９０７に進んで、変数Ｔｂにその時点のサイクル時を代入する。そうでなければ、ステップ９０８に進んで、Ｔｂ−Ｔａ＋１の演算を実行し、この演算で求めた値をレジスタトランスファレベルのシミュレーションの出力データの比較タイミング５０１を決めるための遅れサイクル数Ｔｄとする（Ｔｄ＝Ｔｂ−Ｔａ＋１）。ＥＯＦ、入力ピン、出力ピンのいずれでもなければ、ステップ９０２に戻る。
【００３５】
このように、レジスタトランスファレベルのシミュレーション結果において、動作合成時に決定される入力信号確定時から出力信号確定時までのサイクル数である遅れサイクル数Ｔｄを求め、この遅れサイクル数Ｔｄに基づいて決定した比較タイミングにおいて、レジスタトランスファレベルのシミュレーション結果の出力信号とこれに該当する動作レベル記述のシミュレーション結果の出力信号とを比較し、差異があった場合に報告する。これは請求項４に相当する。
【００３６】
（３）動作合成における入力から出力までの状態遷移数から求める方式
レジスタトランスファレベルで記述された設計データの状態遷移情報が例えば図１０で示されるように抽出されたとする。このような状態遷移情報から、図１１で示されるような処理により、入力から出力までの状態遷移数を求める。状態遷移を１クロックサイクルとして、求めた状態遷移数をサイクル数に換算し、そのサイクル数を遅れサイクル数Ｔｄとして、図５の比較タイミング５０１を決定する。
【００３７】
すなわち、図１１において、まず、ステップ１１０１で、比較対象となる入力ピン、出力ピンを指定する。次いで、ステップ１１０２で、レジスタトランスファレベルの設計データから図１０に示されるような状態遷移情報を抽出する。ステップ１１０３で、上記の抽出した状態遷移情報に基づいて、指定の入力ピンへの入力の状態から、指定の出力ピンからの出力の状態までの状態遷移パスを求める。そして、ステップ１１０４で、上記状態遷移パス中の状態の遷移数を１サイクルとして、その総数をレジスタトランスファレベルでの遅れサイクル数Ｔｄとし、レジスタトランスファレベルのシミュレーション結果の出力信号値の比較タイミング５０１を決定する。比較の結果、差異があった場合には報告する。これは請求項５に相当する。
【００３８】
【発明の効果】
以上のように本発明によれば、レジスタトランスファレベルと動作レベルの両レベルの設計データが互いに等価であるか否かを検証するに際して、両レベルのシミュレーション結果どうしの比較を動作合成でのトランザクションのサイクル数単位で行うので、単に最終的な結果だけでなく、途中状態についても誤判定なく正しく検証することができ、問題が発生した場合の原因究明を容易化することができる。
【図面の簡単な説明】
【図１】本発明の実施の形態における半導体設計における動作記述の等価性検証方法の手順を示すフローチャート
【図２】動作レベル記述の例
【図３】動作レベル記述のシミュレーション結果の例
【図４】レジスタトランスファレベルのシミュレーション結果の例
【図５】本発明の実施の形態におけるレジスタトランスファレベルのシミュレーション結果および比較タイミングの例
【図６】本発明の実施の形態における動作合成のタイミング制約の例
【図７】本発明の実施の形態におけるタイミング制約に基づいて入力から出力までのサイクル数を求めるｃプログラムの例
【図８】本発明の実施の形態における動作合成で決定されるサイクル数情報の例
【図９】本発明の実施の形態における動作合成で決定されるサイクル数から比較のためのサイクル数を抽出する手順を示すフローチャート
【図１０】本発明の実施の形態におけるレジスタトランスファレベルから抽出された状態遷移情報の例
【図１１】本発明の実施の形態における状態遷移情報から比較のためのサイクル数を抽出する手順を示すフローチャート
【符号の説明】
１　動作レベルの設計データ
２　トランザクションのタイミング情報
３　動作合成等低抽象度化のステップ
４　レジスタトランスファレベルの設計データ
５　ＲＴＬシミュレーションのステップ
６　レジスタトランスファレベルのシミュレーション結果
７　動作レベルシミュレーションのステップ
８　動作レベルのシミュレーション結果
９　トランザクションのサイクル数単位の抽出のステップ
１０　トランザクションのサイクル数単位での２つのシミュレーション結果の比較のステップ
１１　判定のステップ
１２　差異がある旨の報告のステップ
【図１】
2004145712.tif 000003
【図２】
2004145712.tif 000004
【図３】
2004145712.tif 000005
【図４】
2004145712.tif 000006
【図５】
2004145712.tif 000007
【図６】
2004145712.tif 000008
【図７】
2004145712.tif 000009
【図８】
2004145712.tif 000010
【図９】
2004145712.tif 000011
【図１０】
2004145712.tif 000012
【図１１】
2004145712.tif 000013