(57)【要約】【課題】  ＲＴＬの完成前にＣＤＣの検証を行い、設計検証期間を短縮する。【解決手段】  集積回路の回路設計時に用いられる設計ツールにおいて信号を検証する信号検証システムであって、設計されるモジュールの端子情報を読み込む入力部と、入力部に読み込まれた端子情報の記載内容が正しいかどうか確認する構文確認部と、構文確認部で確認された端子情報がモジュール間で一致しているかどうかを検証する検証部と、検証部で得られる検証結果から所定のファイルを生成するファイル生成部とを有している。【選択図】      図１
2016119026.tif 000002
【特許請求の範囲】
【請求項１】
集積回路の回路設計時に用いられる設計ツールにおいて信号を検証する信号検証システムであって、
設計されるモジュールの端子情報を読み込む入力部と、
前記入力部に読み込まれた前記端子情報の記載内容が正しいかどうか確認する構文確認部と、
前記構文確認部で確認された前記端子情報が前記モジュール間で一致しているかどうかを検証する検証部と、
前記検証部で得られる検証結果から所定のファイルを生成するファイル生成部と、
を有することを特徴とする信号検証システム。
【請求項２】
前記端子情報は、前記モジュールにおける端子の同期クロックの情報を含んでいることを特徴とする請求項１に記載の信号検証システム。
【請求項３】
前記検証部は、前記端子情報の前記同期クロックの情報が前記モジュール間で一致しているかどうかを検証することを特徴とする請求項２に記載の信号検証システム。
【請求項４】
前記入力部は、スプレッドシートに記載された設計されるモジュールの端子情報を読み込むことを特徴とする請求項１または２に記載の信号検証システム。
【請求項５】
前記所定のファイルは、テキストファイルであることを特徴とする請求項１から４のうち１項に記載の信号検証システム。
【請求項６】
集積回路の回路設計時に用いられる設計ツールにおいて信号を検証する信号検証方法であって、
設計されるモジュールの端子情報を読み込むステップと、
入力部に読み込まれた前記端子情報の記載内容が正しいかどうか確認するステップと、
確認された前記端子情報が前記モジュール間で一致しているかどうかを検証するステップと、
検証結果から所定のファイルを生成するステップと、
を有することを特徴とする信号検証方法。
【請求項７】
前記入力部は、スプレッドシートに記載された設計されるモジュールの端子情報を読み込むステップを有することを特徴とする請求項６に記載の信号検証方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、信号検証システムおよび信号検証方法に関し、特に、ＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ）開発において設計された回路の信号を検証する信号検証システムおよび信号検証方法に関する。
【背景技術】
【０００２】
近年、ＬＳＩの集積化が進んでおり、１つのＬＳＩに搭載される回路規模及び、機能モジュール数が増大している。そのため、設計においては、設計者をモジュール毎に分担する等、複数人で１つのＬＳＩを設計するのが一般的である。機能モジュールは、各々異なるクロックにて動作することも多く、この場合モジュールを跨ぐ信号については、どのクロックで動作しているのかを認識して設計する必要がある。ところが実際の設計現場においては、各端子のクロック情報（クロックドメイン）が仕様書等の文書に明文化されていないことが多いことと、上述の通り分業のため、信号接続先が他者の設計モジュールである場合、確認を怠り、思い込みで設計を行ってしまうことがある。この時に生じたモジュール間の信号処理の不具合については、全モジュールの設計が完了した後の上位階層組上げまで発見することができず、多くの設計の後戻りが生じてしまうことがある。
【０００３】
上記に関連する技術として、特許文献１には、仕様に記載された機能ブロックがハードウェア記述言語において漏れなく実装されているかどうか判断するための手段を提供するため、識別子を用いて記述した論理回路の仕様書から自動抽出した論理検証項目と、ハードウェア記述言語により記述した論理システムおよび動作仕様記述の等価性を判定し論理検証をおこなう論理検証装置が用いる動作仕様記述を生成する装置から自動抽出した論理検証項目を比較する技術が開示されている。
【０００４】
また、特許文献２には、半導体集積回路の設計時に論理合成以後にあたる下流工程に用いる設計ツールに、設計者に依存することなく適切なタイミング制約を与える技術が開示されている。すなわち、半導体設計支援装置に、非同期回路を内在する電気回路の設計時にソースコードに対して行われたＣＤＣ（Ｃｌｏｃｋ  Ｄｏｍａｉｎ  Ｃｒｏｓｓｉｎｇ）検証結果と当該ソースコードのコーディングに用いられた仕様策定工程で定められた既知情報とから、ソースコードに含まれる全てのクロックについて明確化処理してＣＤＣ検証用設定ファイルとして収集取得する手段と、ＣＤＣ検証用設定ファイルとＣＤＣ検証結果から得られた非同期パス毎の入出力パスとから、下流工程で用いられる設計ツールで読み込み可能な形式に合わせるように所定の情報を抽出処理してタイミング制約ファイルを生成出力する手段を設ける技術が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００７−０２６３６９号公報
【特許文献２】特開２０１２−１６８７１８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１は、検証項目を抽出する技術であり、モジュール間の接続信号については考慮されていないという課題があった。
【０００７】
また、特許文献２は、論理合成以後にあたる下流工程に用いる設計ツールに、設計者に依存することなく適切なタイミング制約を与える技術であって、上流工程であるＲＴＬ（Ｒｅｇｉｓｔｅｒ  Ｔｒａｎｓｆｅｒ  Ｌｅｖｅｌ）作成前の段階で作成される仕様書に対しては考慮されていない、という課題があった。
【０００８】
本発明の目的は、この点を鑑みたものであり、ＲＴＬの完成前にＣＤＣの検証を行うことが可能となり、設計検証期間を短縮することにある。
【課題を解決するための手段】
【０００９】
本発明では、上記課題を解決するために、集積回路の回路設計時に用いられる設計ツールにおいて信号を検証する信号検証システムであって、設計されるモジュールの端子情報を読み込む入力部と、入力部に読み込まれた端子情報の記載内容が正しいかどうか確認する構文確認部と、構文確認部で確認された端子情報がモジュール間で一致しているかどうかを検証する検証部と、検証部で得られる検証結果から所定のファイルを生成するファイル生成部とを有することを特徴としている。
【００１０】
また、本発明では、集積回路の回路設計時に用いられる設計ツールにおいて信号を検証する信号検証方法であって、設計されるモジュールの端子情報を読み込むステップと、入力部に読み込まれた端子情報の記載内容が正しいかどうか確認するステップと、確認された端子情報がモジュール間で一致しているかどうかを検証するステップと、検証結果から所定のファイルを生成するステップとを有することを特徴としている。
【発明の効果】
【００１１】
本発明によれば、ＲＴＬの完成前にＣＤＣの検証を行うことが可能となり、設計検証期間を短縮することが可能となる。
【図面の簡単な説明】
【００１２】
【図１】本発明の実施の形態における信号検証システムの構成を示すブロック図である。
【図２】本発明の実施の形態における信号検証システムの動作を示すフローチャートである。
【図３】本発明の実施の形態における信号検証システムの動作を説明する図である。
【図４】本発明の実施の形態における信号検証システムの端子接続例を示す図である。
【発明を実施するための形態】
【００１３】
以下、本発明の実施形態について図面を参照して詳細に説明する。
（実施形態）
図１を用いて、本発明の実施形態の構成を説明する。図１は、本発明の実施形態における信号検証システムの構成を示すブロック図である。
【００１４】
本実施形態の信号検証システムは、図１のように、入力部１０、クロックドメイン間信号検証部２０から構成されている。これらの各要素は、通常、コンピュータ上にソフトウェアとして構成されている。
【００１５】
入力部１０では、スプレッドシートで用意した仕様書テンプレートに、接続情報が記載された端子情報１５、端子情報１６を入力する。端子情報１５には、上位階層モジュールの端子情報や接続先情報を入力する。端子情報１６には、下位階層モジュールの端子情報や接続先情報を入力する。端子情報１５、端子情報１６には、複数の階層モジュールの端子情報や接続先情報が入力されてもよい。
【００１６】
クロックドメイン間信号検証部２０は、入力部１０で入力された接続情報の検証を行い、接続元で定義した同期クロック名と接続先で定義した同期クロック名を比較し、一致または不一致の情報を提供する。
【００１７】
クロックドメイン間信号検証部２０は、構文確認部２１、ファイル生成部２２、検証部２３を有している。
【００１８】
構文確認部２１は、入力部１０で作成された情報を確認し、不足や誤りがあれば、エラー通知として作業者に通知し、仕様書の修正を促す。不足や誤りがなければ、検証及びファイル生成実行許可をファイル生成部２２や検証部２３に通知する。不足や誤りとは、未記入の場合や該当するクロック端子名が存在しない場合、または、予約語以外が記入された場合をいう。
【００１９】
検証部２３は、構文確認部２１から検証許可が通知されると、入力部１０で作成された情報から、接続元信号の同期クロック名と接続先信号の同期クロック名を比較し、端子毎に一致または不一致の情報をスプレッドシート上に表示する。
【００２０】
ファイル生成部２２は、構文確認部２１からファイル生成実行許可が通知されると、入力部１０で作成された情報から、各端子の同期クロック名が記載されたファイルを同期クロック情報３０としてテキストファイルの形式で出力する。
【００２１】
図１、図２を用いて本発明の実施形態の動作について説明する。
【００２２】
図２は、本発明の実施形態の動作を示すフローチャートである。
【００２３】
作業者が、モジュール間接続仕様書として、仕様書テンプレートに情報を入力する。下位階層モジュールの端子情報（端子名、端子幅、入出力極性、同期クロック名）、上位階層モジュールの端子情報（端子名、端子幅、入出力極性、同期クロック名）、使用モジュールのインスタンス名、各端子の接続先情報（接続先のインスタンス名と端子名）等を記載する。ここでは、インスタンスとは、ＲＴＬ上で使用される各モジュールに付与する固有のＩＤとしている。
【００２４】
クロックドメイン間信号検証部２０の構文確認部２１は、入力部１０で作成された情報を確認する（Ｓ１０１）。仕様書の記載に不足や誤りがあれば（Ｓ１０２のＹｅｓ）、その旨を作業者にエラーを通知し、仕様書の修正を促し（Ｓ１０６）、修正後、再度確認する。不足や誤りがなければ（Ｓ１０２のＮｏ）、検証及びファイル生成実行許可を通知する（Ｓ１０３）。
【００２５】
構文確認部２１から検証許可が通知されると、接続元信号の同期クロック名と接続先信号の同期クロック名を検証し、端子毎に両クロック名が一致しているか不一致かの情報をスプレッドシート上に表示する（Ｓ１０４）。ファイル生成実行許可が通知されると、ファイル生成部２２では、各端子の同期クロック名を記載したファイルを同期クロック情報３０としてテキストファイルの形式で出力する（Ｓ１０５）。
【００２６】
図３は、本発明の実施形態の動作を説明する図である。図４は、本発明の実施形態の端子接続例を示す図である。図３、図４を用いて本発明の実施形態の動作について説明する。
【００２７】
図３には、具体例として、使用モジュールの名称、各端子の接続先情報（接続先のモジュール名と端子名）が記載されている。ここで、上位階層モジュールは、ＴＯＰというモジュール名でＣＬＫという端子からＣＬＫ＿Ａというクロックが、各下位階層モジュールに供給されている。下位階層モジュールは、ＭＡとＭＢという２個のモジュールであって、それぞれ、ＴＯＰからＣＬＫ＿Ａというクロックとの供給を受けている。また、ＭＡは、ＴＯＰからＣＬＫ＿Ｂというクロックの供給もＣＬＫ＿Ｂという端子に受けていて、クロックに同期したデータを出力すると仮定する。さらに、ＭＡのＯＵＴ＿ＭＡという端子とＭＢのＩＮ＿ＭＢという端子が接続されている。
【００２８】
図４は、スプレッドシートで用意した仕様書テンプレートに、上位階層モジュールのＴＯＰ、ＴＯＰと接続を行う下位階層モジュールＭＡ、ＭＢの端子情報（端子名、入出力極性）、各端子の接続先情報（接続先のモジュール名と端子名）を記載した一覧である。これらの情報に加え、端子毎に同期クロック名を記載する。
【００２９】
例えば、作業者は、入力端子については、自モジュールに入力されるクロック信号に同期した信号であることを想定していれば、その入力クロック端子名を記載する。クロック端子であれば、クロックであることを示す予約語（例：ｃｌｏｃｋ）を記載する。自モジュールに入力されるクロック信号に同期した信号でないことを想定していれば、非同期であることを示す予約語（例：ａｓｙｎｃ）を記載する。なおモジュールＭＡの入力端子ＣＬＫ＿Ｂについては、上位階層のＴＯＰからクロック信号ＣＬＫ＿Ｂが入力されている。
【００３０】
作業者は、出力端子については、自モジュールに入力されるクロック信号に同期した出力とすることを想定していれば、その入力クロック端子名を記載する。自モジュールに入力されるクロック信号に同期した出力としないことを想定していれば、非同期であることを示す予約語（例：ａｓｙｎｃ）を記載する。
【００３１】
そして、クロックドメイン間信号検証部２０は、この端子毎の同期クロック名に対し、接続元で定義したクロック情報と接続先で定義したクロック情報を比較し、一致または不一致の情報を表示する。
【００３２】
図４において、モジュールＭＡの端子接続では、ＣＬＫ端子には、ＴＯＰのＣＬＫ端子からＣＬＫ＿Ａが入力されていて、同期クロック名は、ｃｌｏｃｋと記載する。ＲＳＴ端子には、ＴＯＰのＲＳＴ端子からＲＳＴ（リセット信号）が入力されるが、この２つの端子間は同期を想定していないので同期クロック名は、ａｓｙｎｃと記載する。ＣＬＫ＿Ｂ端子には、ＴＯＰのＣＬＫ＿Ｂ端子からＣＬＫ＿Ｂが入力されていて、同期クロック名は、ｃｌｏｃｋと記載する。ＯＵＴ＿ＭＡ端子には、モジュールＭＢのＩＮ＿ＭＢ端子に対して、ＣＬＫ＿Ｂ端子に同期したデータを出力すると仮定すると、同期クロック名は、ＣＬＫ＿Ｂと記載する。
【００３３】
モジュールＭＢの端子接続一覧においては、ＣＬＫ端子とＲＳＴ端子は、モジュールＭＡの端子接続と同じであり、ＩＮ＿ＭＢ端子は、自モジュールに入力されるクロック信号に同期した信号であることを想定しているので、ＣＬＫと記載する。
【００３４】
ＭＡの端子名ＯＵＴ＿ＭＡの同期クロック名は、ＣＬＫ＿Ｂで、ＭＢの端子名ＩＮ＿ＭＢの同期クロック名は、ＣＬＫとなり、ＭＡの端子名ＣＬＫの接続先はＴＯＰの端子名ＣＬＫ、ＭＢの端子名ＣＬＫ＿Ｂの接続先はＴＯＰの端子名ＣＬＫ＿Ｂであり、ＴＯＰの端子名ＣＬＫとＴＯＰの端子名ＣＬＫ＿Ｂは独立したクロックであることがわかるため、判定は、不一致となる。
【００３５】
これらの同期クロック名や、同期クロック名の一致、不一致の情報は、ＣＤＣ検証ツールに読み込まれることによって、ＣＤＣ検証に用いられる。ここで、ＣＤＣ検証とは、ＬＳＩの機能モジュールを跨ぐ信号について、どのクロックで動作しているのかを認識して設計するために行う検証である。一般的なＣＤＣ検証ツールは、テキストファイルを読み込むことが可能である。
【００３６】
ファイル生成部２２では、各端子の同期クロック名を記載した同期クロック情報３０としてテキストファイルを出力する。このテキストファイルは、ＲＴＬの代わりにＣＤＣ検証ツールに読み込ませて使用することが可能である。
【００３７】
以上、説明してきたように、本発明の実施形態によれば、ＬＳＩ設計時の各モジュールについて各端子の同期クロック名情報を記載したテキストファイルを出力することができる。このテキストファイルは、ＲＴＬの代わりにＣＤＣ検証ツールに読み込ませて使用することが可能であるため、ＲＴＬの完成前にＣＤＣの検証を行うことが可能となり、設計検証期間を短縮することが可能となる。
【００３８】
尚、本願発明は、上述の実施の形態に限定されるものではなく、本願発明の要旨を逸脱しない範囲で種々変更、変形して実施することが出来る。ＬＳＩやＰＬＤ（ｐｒｏｇｒａｍｍａｂｌｅ  ｌｏｇｉｃ  ｄｅｖｉｃｅ）等の設計において、ＲＴＬを用いる場合に広く用いることが可能である。
【産業上の利用可能性】
【００３９】
本発明は、ＬＳＩやＰＬＤ等の設計において、ＲＴＬを用いる場合に利用可能である。
【符号の説明】
【００４０】
１０    入力部
１５    端子情報
１６    端子情報
２０    クロックドメイン間信号検証部
２１    構文確認部
２２    ファイル生成部
２３    検証部
３０    同期クロック情報
【図１】
2016119026.tif 000003
【図２】
2016119026.tif 000004
【図３】
2016119026.tif 000005
【図４】
2016119026.tif 000006