説明

遅延付加RTL論理シミュレーション方法および装置

【課題】 比較的簡単な方法で遅延情報を含んだRTL論理シミュレーションを実行可能にする。
【解決手段】 遅延付加RTL論理シミュレータに対して、設計者により定義されたタイミング制約4、検証対象回路(RTL)5、テストベンチ6が与えられる。遅延演算部1は、タイミング制約4を参照して、HDLで記述された検証対象回路(RTL)5におけるすべての記憶素子間に付加すべきパス遅延を演算し、演算結果を遅延付加RTL生成部2へ出力する。遅延付加RTL生成部2は、遅延演算部1により演算された遅延値を検証対象回路(RTL)5に対して付加したRTL記述を生成する。論理シミュレート部3は遅延付加RTL生成部2により遅延付加されたRTLを、テストベンチ6を用いて論理シミュレートし、シミュレート結果7を得る。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、HDL(Hardware Description Language:ハードウェア記述言語)により回路設計されたRTL(Resister Transfer Level)の論理シミュレーション技術に関する。
【背景技術】
【0002】
論理機能を実現するデジタル回路は、コンピュータ技術の進歩に伴って複雑化の一途をたどっており、そのため回路設計には通常、HDLと論理合成プログラムを用いたトップダウン設計手法が採用されている(特許文献1〜6等参照)。トップダウン設計は、デジタル回路全体の動作や機能を決定し、徐々に回路化していく回路設計手法である。設計者は、論理合成可能なRTL論理回路を、HDLを用いて記述することにより回路設計を行う。そして、HDLで記述されたRTL論理回路が所望の機能を実現しているかRTL論理シミュレーションを実行することによりRTL論理回路を検証し、所望の機能が実現されるまで、RTL論理回路の修正、RTL論理シミュレーションを繰り返す。
【0003】
このRTL記述に基づく機能シミュレータは、論理回路の機能設計段階で用いられる場合が多い。この機能設計段階では、論理回路の詳細な実現方法よりは論理機能の正しさに主眼が置かれているため、遅延時間を考慮にいれないゼロ遅延シミュレーション、あるいは全ての信号に一律に1単位の遅延時間を割り当てたユニット遅延シミュレーションといったシミュレーション方式が用いられている(特許文献1等参照)。
【0004】
図8は、このような従来のトップダウン設計による論理回路設計の手順を示すフローチャートである。以下、図8を参照して、従来の論理回路設計手順について説明する。
【0005】
最初に、HDLで記述されたRTL論理回路が期待通りの動作を実現しているかについて、RTL論理シミュレーションを行うことにより検証される。このときの制約情報としては、例えば動作クロックに基づく情報のみが与えられる。そして期待通りの動作が実現されるまで、RTL論理回路の修正、RTL論理シミュレーションを繰り返すことにより、所望の動作を実現するRTL論理回路を得る。
【0006】
次にこのようにして得られたRTL論理回路に対して、予め与えられているタイミング制約定義を適用してタイミング解析を行うことにより、所望の動作速度で動作するような論理回路を生成するためのタイミング制約条件を決定し、タイミング制約として出力する。次に、得られたタイミング制約を適用して論理合成プログラムを実行し、RTL論理シミュレーションを行った回路RTL記述の論理合成を行い、ネットリストを出力する。さらに、自動配置配線プログラムを実行して自動配置配線を行って、遅延付きネットリストを出力する。
【0007】
最後に、得られた遅延付きネットリストで定義されている回路のセル遅延および配線遅延を含めたシミュレーションを実行し、シミュレーション結果とエラーメッセージを出力する。シミュレーション結果が期待通りの動作を示しているときには、この論理回路設計を終了する。期待通りの動作が実現されていないときには、エラーメッセージに従って、自動配置配線、論理合成、RTL記述の修正などの工程を、期待通りの動作が実現されるまで繰り返す。
【0008】
【特許文献1】特開平05−342294号公報
【特許文献2】特開平11−126218号公報
【特許文献3】特開2000−113019号公報
【特許文献4】特開2001−117961号公報
【特許文献5】特開2002−288258号公報
【特許文献6】特開2004−030186号公報
【発明の開示】
【発明が解決しようとする課題】
【0009】
図8に示す従来の論理回路設計手法の場合、HDLによる回路設計、RTL論理シミュレーション、論理合成、配置配線を行った後に遅延シミュレーションを行っているので、論理合成、配置配線を行ってからでなければタイミング制約に伴うエラーを発見することはできず問題箇所の発見が大幅に遅れるという問題があり、また、配置配線を行った後の遅延シミュレーションによってRTLの不具合が発見された場合、RTL記述に戻って再度修正を加えるため、設計効率も悪くなる。
【0010】
このように従来のRTL論理シミュレータでは、各信号の代入に対して、例えば単位遅延を付加してシミュレートしているが、論理合成時にはマルチサイクルパスや、最大遅延制約パス、最小遅延制約パス、あるいはタイミング制約を必要としないフォルスパスなどの指定を行って論理合成を行うため、実際に生成される回路とRTL論理シミュレータでシミュレートする結果は必ずしも一致するとはいえない。
【0011】
そのため、例えば特許文献1では、RTL記述から論理回路を合成し、合成された論理回路を表わす論理記述を生成する論理合成手段と、生成された論理記述と元のRTL記述との対応付けを行い、RTL記述の各文に対応する遅延時間を、合成された論理回路から計算して抽出する遅延情報抽出手段と、抽出された遅延情報をRTL記述の各文と対応付けて蓄積する遅延情報データベースと、論理回路の動作をシミュレーションする際に、実行するRTL記述の文に対応する遅延時間を遅延情報データベースより取り出し、取り出された遅延時間を実行された時刻に加算する機能シミュレータを備えることにより、遅延情報を持たないRTL記述に対し、現実に近い遅延時間を考慮したシミュレーションを可能にする方法が提案されている。
【0012】
しかし、この特許文献1に記載の発明の場合、RTL記述から論理回路を合成しなければならず、また合成された論理回路から、遅延情報を持たないRTL記述の各文に対応する遅延時間を計算して抽出する手段を設けなければならないので、その構成が複雑となる。
【0013】
また、特許文献5では、各セルの動作をRTLで記述したRTLライブラリと、回路を構成している各セルの入・出力の配線をネットリスト形式で記述したネットリスト記述ファイルと、各セルにかかわる回路の遅延時間を規定する情報を記述したSDFファイルを用意し、ネットリスト記述ファイルの回路図情報とSDFファイルの遅延情報を元に、RTLライブラリ中の遅延変数を書き換えて新たに作成された回路に対する遅延情報を含んだセルライブラリ基づいてシミュレーションを行うことにより、抽象度の高いRTL記述によってゲートレベルのシミュレーションと同等の検証を実現し、大規模な半導体集積回路のシミュレーション検証時間を減少可能にする方法が提案されている。
【0014】
しかし、この特許文献5に記載の発明の場合も、RTL記述によるシミュレーションを実行するに際して、論理合成と配置配線を行って、ネットリスト記述ファイルとSDFファイルを作成しなければならないという問題がある。
【0015】
本発明の目的は、上記の問題点に鑑み、比較的簡単な方法で遅延情報を含んだRTL論理シミュレーションを実行可能にする新規な手段を提供し、それにより論理回路設計の効率を改善することにある。
【課題を解決するための手段】
【0016】
RTL(Resister Transfer Level)記述による論理回路を設計する際に、RTL記述された各論理素子および論理素子間の入出力信号の関係から、RTLによる機能設計段階において、遅延を与える必要性のあるパスについての認識が得られる場合が多い。本発明はこの点に着目し、HDLにより設計したRTL論理回路に対して、設計者がタイミング制約を定義可能にする手段を設け、上記HDLにより設計したRTL論理回路のシミュレーションを実行する際に、設計者により定義された上記タイミング制約を反映させることを特徴とする。
【0017】
それにより、論理シミュレート後に実施される論理合成および配置配線プログラムで生成される回路において期待通りの動作を行う回路を得るためのシミュレーション検証時間を短縮することが可能となる。従って、生成された回路が期待通りの動作を実現しないことによる、論理合成、自動配置配線、RTL記述の修正などの、工程の繰り返しも減らすことができ、論理回路設計の効率が改善される。
【0018】
具体的には、本発明の遅延付加RTL論理シミュレーション方法は、RTL(Resister Transfer Level)記述と、該RTL記述に対して設計者により定義されたタイミング制約を入力することにより、前記タイミング制約を満たしたパス遅延付きRTLを生成し、該生成したパス遅延付きRTLによりRTL論理シミュレーションを実行することを特徴とする。
【0019】
また、前記パス遅延付きRTLに記述されるパス遅延の値は、前記パス遅延を生成する際にとり得る値として前記タイミング制約により定義された範囲内においてランダム(無作為)に設定することができる。また、論理シミュレータは、ランダムに設定した遅延値を有する遅延付加RTLを複数生成し、生成されたすべての遅延付きRTLに対しテストベンチを用いて論理シミュレーションを行うことにより、最適な動作を実現するRTL論理回路を出力する。
【0020】
本発明のRTL論理シミュレーション方法では、初期設計段階のRTLに対してタイミング制約情報をユーザ定義し、その情報を元に各信号に対して遅延を付加した遅延付加RTLを作成し、この遅延付加RTLにより論理シミュレーションを実行するので、論理合成と配置配線後に生成される回路に対してより忠実なRTL論理シミュレートが可能となる。
【0021】
また本発明の遅延付加RTL論理シミュレータは、RTLで記述された検証対象回路と、設計者により定義されたタイミング制約とを入力して、前記検証回路におけるすべてのパス遅延を演算する遅延演算部と、該遅延演算部で演算された前記パス遅延の値を前記検証対象回路の該当するパスに付加した遅延付加RTLを生成する遅延付加RTL生成部と、該生成された遅延付加RTLに対してテストベンチを用いて論理シミュレーションを実行する論理シミュレート部を備えていることを特徴とする。
【発明の効果】
【0022】
本発明は、論理合成時に定義するものと同様のタイミング制約を用いて、初期設計段階のRTLに遅延値が付加されるので、論理合成後に生成される回路に対してより忠実なRTL論理シミュレートを行うことができ、それにより論理回路設計の効率を改善することが可能となる。
【0023】
例えば、図6(a)に示した回路が図6(b)に示したタイミングのようにS602がHIGHの期間で記憶素子F601の内容S601をF602に保持することを期待していたとする。しかし論理合成、配置配線後の回路で、F601からF602へのパスP601のセットアップが2サイクルパスであり、図6(c)に示すように、S601が1サイクルを越える遅延値DS601によりS601_Dとなる場合には、F602はF601の内容S601を保持することができない。
【0024】
しかし、このような遅延を考慮しない論理シミュレータでは図6(b)のように期待値が保持できてしまい、論理合成、配置配線後の回路のシミュレーション結果とは異なってしまうため、回路の不具合の問題が発見できない。
【0025】
一方、遅延付きRTLを生成する本シミュレーション方法を用いれば、取得するランダム遅延の値によっては、図6(c)のように1サイクルを越える遅延値が付加されることがあり、その場合にはRTLシミュレーションでもF601の内容を保持できない論理合成後の回路と同等な動作が期待できるので、RTLシミュレーションの段階で回路の不具合を発見することができる。そのため、設計期待値への収束を早めることができ設計効率が改善される。
【発明を実施するための最良の形態】
【0026】
図1は、本発明の実施形態を示す遅延付加RTLシミュレータの機能ブロック図である。本実施形態の遅延付加RTL論理シミュレータは、遅延演算部1と、遅延付加RTL生成部2と、論理シミュレート部3とから構成される。この遅延付加RTL論理シミュレータに対してタイミング制約4、検証対象回路(RTL)5、テストベンチ6を与えて論理シミュレーションを実行する。本発明においては、タイミング制約4は、検証対象回路(RTL)5の設計段階において、設計者により定義される。
【0027】
検証対象回路(RTL)とはHDL(Hardware Description Language)で記述された動作検証がなされるデザインである。テストベンチとは検証対象回路の機能を検証するために、設計者によって与えられるテストシナリオやテスト結果の期待値などである。また、タイミング制約とは、クロック定義、マルチサイクルパス、フォルスパス、あるいは最大遅延、最小遅延など一般的な論理合成ツールやスタティックタイミング解析ツールで通常用いる制約であり、マルチサイクルパスとは2つの記憶素子の間で、始点と終点までの信号が2サイクル以上の時間をかけられるパス、フォルスパスとは2つの記憶素子の間で始点と終点までの信号の遅延時間に制約がないパスのことである。
【0028】
次に、図1を参照して本実施形態の動作の概略について説明する。
【0029】
本実施形態の遅延付加RTL論理シミュレータに対して、設計者により定義されたタイミング制約4、検証対象回路(RTL)5、テストベンチ6が与えられる。遅延演算部1は、設計者によって与えられたタイミング制約4を参照して、HDLで記述された検証対象回路(RTL)5におけるすべての記憶素子間に付加すべきパス遅延を演算し、演算結果を遅延付加RTL生成部2へ出力する。
【0030】
遅延付加RTL生成部2は、遅延演算部1により演算された遅延値を検証対象回路(RTL)5に対して付加したRTL記述を生成する。論理シミュレート部3は遅延付加RTL生成部2により遅延付加されたRTLを、テストベンチ6を用いて論理シミュレートし、シミュレート結果7を得る。
【0031】
図2は、単一クロックの同期回路という条件での遅延演算部1における遅延演算方法を示すフローチャートである。以下、図2を参照して遅延演算部1における遅延演算方法を説明する。
【0032】
ステップ201でパス遅延Dのとり得る値の最小値Dmin、最大値Dmaxを0に設定する。ステップ202で設計者によってタイミング制約が与えられているパスかどうかの判断を行う。タイミング制約が与えられていない場合にはステップ215に進み、初期値としてパス遅延のとり得る範囲の最小値Dmin、最大値Dmaxをともに0に設定し、次のパスの処理に移る。タイミング制約が与えられている場合にはステップ203に進む。
【0033】
ステップ203では2点間がフォルスパスかどうかの判断を行い、フォルスパスであればステップ204でパス遅延Dのとり得る値の最小値Dminを0に設定する。ステップ205では2点間が最小遅延制約パスであるかどうかの判断を行い、最小遅延制約パスであればステップ206でパス遅延Dのとり得る最小値Dminをタイミング制約4で与えられた遅延値に設定する。
【0034】
ステップ207では2点間がホールドに対してマルチサイクルパスであるかどうかの判断を行い、マルチサイクルパスであればステップ208に進み、タイミング制約4で与えられたマルチサイクル数×クロック周期をDminに設定する。パス遅延の最大値Dmaxについても同様な判断を行い、ステップ209からステップ214を実行する。ただしステップ204、210に示した通り2点間がフォルスパスであった場合、ユーザ定義可能なデフォルト値DdefをDmaxとして設定する。
【0035】
ステップ215では、タイミング制約が与えられていないパスについてはパス遅延を0とするが、設計者によってタイミング制約が与えられているパスについては、このフローを実行することにより設定されたDmin≦D<Dmaxの範囲内で無作為(ランダム)にパス遅延Dを取得する。検証対象回路(RTL)のすべての記憶素子を始点、終点とするすべての組合せに対してこのパス遅延の取得を行い、取得したすべてのパス遅延Dを満たすようRTL上に遅延を追加していく。
【0036】
図3は本実施形態の検証対象回路(RTL)5およびタイミング制約4の一例、図3は遅延演算部1の動作例、図5は遅延付加RTL生成部2で生成された遅延付加RTLの例を示している。次に、本実施形態の動作について、図3〜図5に示す具体例を参照して詳細に説明する。
【0037】
本実施形態では、RTLによる回路設計に際してタイミング制約を与える記述を付加することができる構成となっている。図3(b)はそのRTL記述、図3(c)は本実施形態により与えられるタイミング制約を示している。
【0038】
設計者は、設計した図3(b)のRTL記述から図3(a)に示す論理回路を認識して、各記憶素子間の入出力信号S301〜S309の入出力タイミングを推定し、各記憶素子間のパスP301〜P306についてタイミング制約を設定する。なお、このタイミング制約は、入出力タイミング関係が推定できるものについて設定し、推定できないものについては設定しない。このようにして、設計者は、図3(b)に示すRTL記述とともに、図3(c)に示すタイミング制約を作成して本実施形態の遅延付加RTL論理シミュレータに与える。
【0039】
遅延付加RTL論理シミュレータの遅延演算部1は、図3(b)〜図3(c)に示すRTL(検証対象回路)記述5およびタイミング制約4に基づいて以下の演算を行う。
【0040】
記憶素子F301から記憶素子F303へのパスP301に対しては、タイミング制約は定義されていないためこのパスの遅延DP301は図2のフローチャートより0になる。記憶素子F302から記憶素子F303へのパスP302はホールド1サイクル、セットアップ2サイクルパスなので図2のフローチャートからパス遅延DP302は10≦DP302<20となる。
【0041】
記憶素子F301から記憶素子F304へのパスP303はセットアップ2サイクルパスなので、パス遅延DP303は0≦DP303<20となる。同様にP304のパス遅延DP304は0、P305のパス遅延DP305は0≦DP305<50(=Ddef)、P306のパス遅延DP306は0となる。一覧を図4(b)にまとめる。
【0042】
次に、図3(a)の記憶素子F301から組合せ回路C301への信号S303を分岐点301で分割し、分岐点301からC301へのパスをS3031、分岐点301からC302へのパスをS3032として定義する。同様にS304も分岐点302以降をS3041、S3042として定義し、S306も分岐点303以降をS3061、S3062として定義する(図4(a)参照)。
【0043】
図4(a)において信号S303の遅延をDS303、信号S3031の遅延をDS3031、同様にすべての信号の遅延を定義すると図4(c)が成り立つ。図4(b)、図4(c)から図4(c)に示す結果が得られる。この結果よりDS3032は0以上20未満の値で無作為に設定し、DS3041は10以上20未満の値で無作為に設定する。このようにして得られた演算結果を遅延付加RTL生成部2に渡す。
【0044】
遅延付加RTL生成部2は遅延演算結果と検証対象回路(RTL)から、パス遅延値が0でない信号に対して遅延値をつけた図5に示すようなRTL記述を生成する。いくつかの遅延値によってRTLシミュレートできるように、無作為な遅延値の取得と遅延付加RTL生成は繰り返し行い、複数の遅延付加RTLを生成できるようにする。論理シミュレート部3は生成されたすべての遅延付きRTLに対しテストベンチ6を用いて論理シミュレーションを行うことにより、所望の動作を実現するRTL論理回路を得る。
【0045】
なお、上記実施形態では遅延付加論理シミュレータとして構成したが、論理シミュレート部3は既存のRTL論理シミュレータを用いることが可能である。その場合の実施形態を図7に示す。本実施形態では、遅延演算部1は設計者に定義されたタイミング制約4、検証対象回路(RTL)5から対象となるパスの遅延演算を行う。遅延付加RTL生成部2は遅延演算部1により演算された遅延値を、検証対象回路(RTL)5に対して付加したRTL記述を生成する。この遅延付加されたRTLを既存の論理シミュレータ7によりシミュレートする。
【図面の簡単な説明】
【0046】
【図1】本発明の実施形態を示す遅延付加RTLシミュレータの機能ブロック図である。
【図2】本実施形態における遅延演算部の動作を示すフローチャートである。
【図3】本実施形態の検証対象回路(RTL)5およびタイミング制約4の例を示す図である。
【図4】本実施形態の遅延演算部の動作例を示す図である。
【図5】本実施形態の遅延付加RTL生成部で生成された遅延付加RTLの例を示す図である。
【図6】本発明の課題および効果を説明するための図である。
【図7】本発明の他の実施形態を示す機能ブロック図である。
【図8】従来の論理回路設計の手順を示すフローチャートである。
【符号の説明】
【0047】
1 遅延演算部
2 遅延付加RTL生成部
3 論理シミュレート部
4 タイミング制約
5 検証対象回路(RTL)
6 テストベンチ
7 シミュレート結果
8 RTL論理シミュレータ

【特許請求の範囲】
【請求項1】
RTL(Resister Transfer Level)記述と、該RTL記述に対して設計者により定義されたタイミング制約を入力することにより、前記タイミング制約を満たしたパス遅延付きRTLを生成し、該生成したパス遅延付きRTLによりRTL論理シミュレーションを実行することを特徴とする遅延付加RTL論理シミュレーション方法。
【請求項2】
前記パス遅延付きRTLに記述されるパス遅延の値は、前記パス遅延を生成する際にとり得る値として前記タイミング制約により定義された範囲内においてランダムに設定されることを特徴とする請求項1に記載の遅延付加RTL論理シミュレーション方法。
【請求項3】
前記遅延付加RTL論理シミュレーションは、前記タイミング制約により定義された範囲内において設定された複数のパス遅延値を用いて繰り返し実行され、最適な動作を実現するRTL論理シミュレート結果を出力することを特徴とする請求項2に記載の遅延付加RTL論理シミュレーション方法。
【請求項4】
RTL(Resister Transfer Level)で記述された検証対象回路と、設計者により定義されたタイミング制約とを入力して、前記検証回路におけるすべてのパス遅延を演算する遅延演算部と、該遅延演算部で演算された前記パス遅延の値を前記検証対象回路の該当するパスに付加した遅延付加RTLを生成する遅延付加RTL生成部と、該生成された遅延付加RTLに対してテストベンチを用いて論理シミュレーションを実行する論理シミュレート部を備えていることを特徴とする遅延付加RTL論理シミュレータ。
【請求項5】
前記遅延演算部は、前記パス遅延付きRTLに記述されるパス遅延を、当該パスが採り得る値として前記タイミング制約により定義された範囲内の値からランダムに設定する機能を有していることを特徴とする請求項4に記載の遅延付加RTL論理シミュレータ。
【請求項6】
前記遅延付加RTL論理シミュレータは、前記タイミング制約により定義された範囲内において設定された複数のパス遅延値を用いて繰り返し実行して最適な動作を実現するRTL論理シミュレート結果を出力する機能を有し、前記遅延付加RTL論理シミュレーションが実行される毎に、前記遅延演算部から前記パス遅延の値がランダムに設定され、前記遅延付加RTL生成部から遅延付加RTLが生成されることを特徴とする請求項5に記載の遅延付加RTL論理シミュレータ。
【請求項7】
RTL(Resister Transfer Level)で記述された検証対象回路と、設計者により定義されたタイミング制約とを入力して、前記検証回路におけるすべてのパス遅延を演算する遅延演算部と、該遅延演算部で演算された前記パス遅延の値を前記検証対象回路の該当するパスに付加した遅延付加RTLを生成する遅延付加RTL生成部とからなる遅延付加RTL生成手段と、該遅延付加RTL生成手段で生成された遅延付加RTLに対してテストベンチを用いて論理シミュレーションを実行するRTL論理シミュレータを備えていることを特徴とする遅延付加RTL論理シミュレート装置。
【請求項8】
前記遅延演算部は、前記パス遅延付きRTLに記述されるパス遅延を、当該パスが採り得る値として前記タイミング制約により定義された範囲内の値からランダムに設定する機能を有していることを特徴とする請求項7に記載の遅延付加RTL論理シミュレート装置。
【請求項9】
前記遅延付加RTL論理シミュレータは、前記タイミング制約により定義された範囲内において設定された複数のパス遅延値を用いて繰り返し実行して最適な動作を実現するRTL論理シミュレート結果を出力する機能を有し、前記遅延付加RTL論理シミュレーションが実行される毎に、前記遅延演算部から前記パス遅延の値がランダムに設定され、前記遅延付加RTL生成部から遅延付加RTLが生成されることを特徴とする請求項8に記載の遅延付加RTL論理シミュレート装置。


【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2006−318121(P2006−318121A)
【公開日】平成18年11月24日(2006.11.24)
【国際特許分類】
【出願番号】特願2005−138750(P2005−138750)
【出願日】平成17年5月11日(2005.5.11)
【出願人】(000197366)NECアクセステクニカ株式会社 (1,236)
【Fターム(参考)】