(57)【要約】【課題】記述検証手段から擬似エラーが発生するのを防止することができる記述検証装置及び方法及び制御プログラム及び記憶媒体を提供する。【解決手段】動作記述と合成制約とからハードウエア記述言語を生成する動作合成手段１０１と、前記合成制約を基に必要な検証項目を自動的に選択して前記ハードウエア記述言語に対する前記合成制約への準拠性を検証する記述検証手段１０２とを備える。【選択図】図１
2007094550.tif 000002
【特許請求の範囲】
【請求項１】
動作記述と合成制約とからハードウエア記述言語を生成する動作合成手段と、
前記合成制約を基に必要な検証項目を自動的に選択して前記ハードウエア記述言語に対する前記合成制約への準拠性を検証する記述検証手段とを備えることを特徴とする記述検証装置。
【請求項２】
動作記述と合成制約とからハードウエア記述言語を生成する動作合成手段と、
前記動作合成手段から出力される合成制約情報を基に前記ハードウエア記述言語に対する前記合成制約への準拠性を検証する記述検証手段とを備えることを特徴とする記述検証装置。
【請求項３】
前記動作合成手段は、前記合成制約情報を、前記記述検証手段が解読可能な書式で出力することを特徴とする請求項２に記載の記述検証装置。
【請求項４】
前記動作合成手段から出力される合成制約情報は、前記動作合成手段により生成されるハードウエア記述言語と同一のファイル内に出力されることを特徴とする請求項２に記載の記述検証装置。
【請求項５】
前記動作合成手段から出力される合成制約情報は、前記動作合成手段により生成されるハードウエア記述言語と別のファイルで出力されることを特徴とする請求項２に記載の記述検証装置。
【請求項６】
前記記述検証手段は、複数の検証項目を有し、前記動作合成手段から出力される合成制約情報を基に前記検証項目を選択することを特徴とする請求項１に記載の記述検証装置。
【請求項７】
動作記述と合成制約とからハードウエア記述言語を生成する動作合成ステップと、
前記合成制約を基に必要な検証項目を自動的に選択して前記ハードウエア記述言語に対する前記合成制約への準拠性を検証する記述検証ステップとを備えることを特徴とする記述検証方法。
【請求項８】
動作記述情報と合成制約情報とからハードウエア記述言語を生成する動作合成ステップと、
前記動作合成ステップからの合成制約情報を基に前記ハードウエア記述言語に対する前記合成制約情報への準拠性を検証する記述検証ステップとを備えることを特徴とする記述検証方法。
【請求項９】
請求項７または８に記載の記述検証方法を実現するためのコンピュータ読み取り可能なプログラムコードを有することを特徴とする制御プログラム。
【請求項１０】
請求項７または８に記載の記述検証方法を実現するためのコンピュータ読み取り可能なプログラムコードを保持することを特徴とする記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記述検証装置及び方法及び制御プログラム及び記憶媒体に関する。
【背景技術】
【０００２】
従来より、LSI(large scale integrated circuit)を開発する際の論理回路設計においては、C言語やC++言語によるアルゴリズムレベルの動作記述からハードウエアを実現する。このために、ハードウエア記述言語(HDL)による論理記述への変換を人手で行い、前記論理記述を論理合成ツールにより論理回路に変換する手法が採られてきた。
【０００３】
近年、LSIの大規模化に伴い、論理回路設計の工数も増大しており、前記動作記述から論理記述への変換処理の負荷を減らすべく、前記変換処理を自動的に行う動作合成ツールを用いた装置が実現されている（例えば、特許文献１参照）。
【０００４】
以下、従来のこの種の装置について、図６乃至図９を用いて説明する。
【０００５】
図６は、前記動作記述から論理記述への変換処理を自動的に行う動作合成ツール（動作合成手段）を用いた従来装置を説明するための図である。図７及び図８は、同従来装置において、合成制約として多相クロックが指定された場合の動作合成ツールの動作を説明する図、図９は、ルールファイルの一例を示す図である。
【０００６】
図６において、６００Aは合成制約で、例えば、同期リセット、非同期リセット、単相クロック、多相クロック等が制約条件として与えられる。６００Bは動作記述ファイルで、例えば、C言語やC++言語により記述されている。６００Cはハードウエア記述言語（HDL）ファイル、６００Dは検証項目（ルール）を記述したルールファイルで、例えば、同期リセット用、非同期リセット用、単相クロック用、多相クロック用等がある。６００Eは論理回路である。
【０００７】
まず、動作合成ツールの合成制約６００Aを指定する。即ち、合成される回路形式を動作合成ツールのGUI(Graphical User Interface)やファイル入力等で指定し、その指定した合成制約６００Aを動作合成ツールに入力する。また、動作記述ファイル６００Bを指定し、その指定した動作記述ファイル６００Bを動作合成ツールに入力する。
【０００８】
動作合成ツールは、ステップＳ６０１で、入力された合成制約６００Aと動作記述ファイル６００Bとを基に、HDLファイル６００Cを生成する。例えば、合成制約６００Aとして多相クロックを指定した、図７に示すように１つの動作記述ファイル６００Bに対して、clkAで動作する処理A部分と、clkBで動作する処理B部分とを指定したとする。この場合、動作合成ツールは、図８に示すように、処理A８０１（図７の処理A７０１に対応する。）と処理B８０２（図７の処理B７０２に対応する。）のクロックの違うデータの引渡し部分に、非同期対策用回路８０３を挿入する。
【０００９】
前記ステップＳ６０１において生成されたHDLファイル６００Cは、記述検証手段であるコードチェッカに入力される。また、前記指定された合成制約６００Aを基に、ルールファイル６００Dが選択されて、コードチェッカに入力される。ルールファイル６００Dとしては、例えば、図９に示すように、同期リセット用、非同期リセット用、単相クロック用、多相クロック用等から選択される。
【００１０】
そして、コードチェッカはステップＳ６０２で、動作合成ツールにより生成されたHDLファイル６００Cが合成制約６００Aに従って合成されているか否かを確認する。即ち、コードチェッカによるコードチェックが行われる。
【００１１】
そして、前記ステップＳ６０２において、コードチェッカにより、HDLファイル６００Cが合成制約６００Aに準拠していないと判断された場合は、ステップＳ６０３での判断結果が否定(no)となる。これにより、ステップＳ６０５でHDLファイル６００Cの修正処理が行われ、再びステップＳ６０２においてコードチェッカによる確認処理が行われる。
【００１２】
一方、前記ステップＳ６０２において、コードチェッカにより、HDLファイル６００Cが合成制約６００Aに準拠していると判断された場合は、ステップＳ６０３での判断結果が肯定(yes)となる。これにより、ステップＳ６０４で、論理合成ツールによる論理合成処理が行われ、論理回路６００Eが生成される。
【特許文献１】特開平１１−１５４１６７号公報
【発明の開示】
【発明が解決しようとする課題】
【００１３】
しかし、上述した従来技術によれば、記述検証手段であるコードチェッカで用いられるルールファイル６００Dの選択は人手で行われている。そのため、ルールファイル６００Dの選択ミスをすると、コードチェッカから擬似エラーが発生する等して、作業効率の低下を招いていた。
【００１４】
例えば、図９に示したように、同期リセット用ルールファイルで規定されているルールと、非同期リセット用ルールファイルで規定されているルールは、相反するものである。
【００１５】
よって、同期リセットを用いた回路形式のHDLファイルに非同期リセット用ルールファイルを選択して適用すれば、コードチェッカから擬似エラーが発生する。同様に、非同期リセットを用いた回路形式のHDLファイルに同期リセット用ルールファイルを選択して適用すれば、コードチェッカから擬似エラーが発生する。
【００１６】
また、多相クロックを用いた回路形式のHDLファイルに単相クロック用ルールファイル及び同期リセット用ルールファイルを選択して適用すれば、コードチェッカから擬似エラーが発生する。
【００１７】
本発明は、上述したような従来技術の有する問題点を解消するためになされたもので、記述検証手段から擬似エラーが発生するのを防止することができる記述検証装置及び方法及び制御プログラム及び記憶媒体を提供することを目的とする。
【課題を解決するための手段】
【００１８】
上述の目的を達成するために、本発明の記述検証装置は、動作記述と合成制約とからハードウエア記述言語を生成する動作合成手段と、前記合成制約を基に必要な検証項目を自動的に選択して前記ハードウエア記述言語に対する前記合成制約への準拠性を検証する記述検証手段とを備えることを特徴とする。
【００１９】
また、上述の目的を達成するために、本発明の記述検証装置は、動作記述情報と合成制約情報とからハードウエア記述言語を生成する動作合成手段と、前記動作合成手段から出力される合成制約情報を基に前記ハードウエア記述言語に対する前記合成制約情報への準拠性を検証する記述検証手段とを備えることを特徴とする。
【００２０】
また、上述の目的を達成するために、本発明の記述検証方法は、動作記述と合成制約とからハードウエア記述言語を生成する動作合成ステップと、前記合成制約を基に必要な検証項目を自動的に選択して前記ハードウエア記述言語に対する前記合成制約への準拠性を検証する記述検証ステップとを備えることを特徴とする。
【００２１】
また、上述の目的を達成するために、本発明の記述検証方法は、動作記述情報と合成制約情報とからハードウエア記述言語を生成する動作合成ステップと、前記動作合成ステップからの合成制約情報を基に前記ハードウエア記述言語に対する前記合成制約情報への準拠性を検証する記述検証ステップとを備えることを特徴とする。
【００２２】
また、上述の目的を達成するために、本発明の制御プログラムは、本発明の記述検証方法を実現するためのコンピュータ読み取り可能なプログラムコードを有することを特徴とする。
【００２３】
更に、上述の目的を達成するために、本発明の記憶媒体は、本発明の記述検証方法を実現するためのコンピュータ読み取り可能なプログラムコードを保持することを特徴とする。
【発明の効果】
【００２４】
本発明によれば、記述検証手段は、合成制約を基に必要な検証項目を自動的に選択して前記ハードウエア記述言語に対する前記合成制約への準拠性を検証する。これにより、人手による検証項目の選択ミスをなくすことができるので、記述検証手段からの擬似エラーの発生を防止することが可能となる。
【発明を実施するための最良の形態】
【００２５】
以下、本発明の実施の形態を、図１乃至図５に基づき説明する。
【００２６】
（第１の実施の形態）
まず、本発明の第１の実施の形態を、図１乃至図４に基づき説明する。
【００２７】
図１は、本発明の第１の実施の形態に係る記述検証装置の構成を示すブロック図であり、記述検証装置１００は、動作合成手段（動作合成ツール）１０１と、記述検証手段（コードチェッカ）１０２とを備えている。
【００２８】
動作合成手段１０１は、動作記述情報と合成制約情報とからハードウエア記述言語(HDL)を生成する。記述検証手段１０２は、前記ハードウエア記述言語に対する前記合成制約情報への準拠性を検証する。
【００２９】
次に、本実施の形態に係る記述検証装置１００の動作を図２に基づき説明する。
【００３０】
図２は、本実施の形態に係る記述検証装置１００の動作を説明するための図である。
【００３１】
図２において、２００Aは合成制約で、例えば、同期リセット、非同期リセット、単相クロック、多相クロック等が制約条件として与えられる。２００Bは動作記述情報を記述した動作記述ファイルで、例えば、C言語やC++言語により記述されている。２００Cはハードウエア記述言語（HDL）を記述したHDLファイルで、合成制約２００Aで与えられた制約情報が、コードチェッカが解読可能なフォーマットで含まれている。例えば、図３(a)〜(d)に示すように、HDLファイル２００Cの先頭部分にコメントとして合成制約情報が記述されている。図３(a)〜(d)において、” reset = sync”は同期リセットを、” reset = async”は非同期リセットを、それぞれ示す。また、”clock = single”は単相クロックを、”clock = mult”は多相クロックを、それぞれ示す。よって、図３（a）は単相同期リセット回路を、図３(b)は単相非同期リセット回路を、図３(2)は多相同期リセット回路を、図３(d)は多相非同期リセット回路を、それぞれ示している。
【００３２】
２００Dは記述検証手段１０２により検証すべき検証項目を記述したルールファイルで、例えば、同期リセット用、非同期リセット用、単相クロック用、多相クロック用等がある。２００Eは論理回路である。
【００３３】
まず、動作合成ツールの合成制約２００Aを指定する。即ち、合成される回路形式を動作合成ツールのGUI(Graphical User Interface)やファイル入力等で指定し、その指定した合成制約２００Aを動作合成ツールに入力する。また、動作記述ファイル２００Bを指定し、その指定した動作記述ファイル２００Bを動作合成ツール（動作合成手段）に入力する。
【００３４】
動作合成ツールは、ステップＳ２０１で、入力された合成制約２００Aと動作記述ファイル２００Bとを基に、HDLファイル２００Cを生成する。前記ステップＳ２０１において生成されたHDLファイル２００Cは、コードチェッカ（記述検証手段）に入力される。また、HDLファイル２００Cに含まれている合成制約を基に、必要なルールファイル２００Dが自動的に選択されて、コードチェッカに入力される。ルールファイル２００Dとしては、例えば、図４に示すように、単相同期リセット回路の場合は、単相クロック用と同期リセット用のルールファイルが選択される。単相非同期リセット回路の場合は、単相クロック用と非同期リセット用のルールファイルが選択される。多相同期リセット回路の場合は、多相クロック用と同期リセット用のルールファイルが選択される。多相非同期リセット回路の場合は、多相クロック用と非同期リセット用のルールファイルが選択される。
【００３５】
そして、コードチェッカはステップＳ２０２で、動作合成ツールにより生成されたHDLファイル２００Cが合成制約に従って合成されているか否かを確認する。即ち、コードチェッカによるコードチェックが行われる。
【００３６】
そして、前記ステップＳ２０２において、コードチェッカにより、HDLファイル２００Cが合成制約に準拠していないと判断された場合は、ステップＳ２０３での判断結果が否定(no)となる。よって、ステップＳ２０５でHDLファイル２００Cの修正処理が行われ、再びステップＳ２０２においてコードチェッカによる確認処理が行われる。
【００３７】
一方、前記ステップＳ２０２において、コードチェッカにより、HDLファイル２００Cが合成制約に準拠していると判断された場合は、ステップＳ２０３での判断結果が肯定(yes)となる。よって、ステップＳ２０４で、論理合成ツールによる論理合成処理が行われ、論理回路２００Eが生成される。
【００３８】
上述したように、コードチェッカに対して動作合成の合成制約を入力することにより、ルールファイルを自動的に選択するので、人手によるルールファイルの選択ミスを無くすことが可能となる。
【００３９】
なお、本実施の形態において、HDLファイルに合成制約のコメント文を含める箇所を、HDLファイルの先頭部分とした。しかしながら、HDLファイルに合成制約のコメント文を含める箇所は、HDLファイルの先頭部分に限定されるものではなく、HDLファイル内のどの箇所に挿入しても良い。
【００４０】
また、本実施の形態においては、合成制約として、同期リセット、非同期リセット、単相クロック、多相クロックの４種類のみを例示しているが、これ以外の回路形式についても、合成制約として与えても良い。
【００４１】
（第２の実施の形態）
次に、本発明の第２の実施の形態について、図５を用いて説明する。
【００４２】
なお、本実施の形態に係る記述検証装置の基本的な構成は、上述した第１の実施の形態の図１と同一であるから、同図を流用して説明する。
【００４３】
図５は、本実施の形態に係る記述検証装置の動作を説明するための図であり、同図において、上述した第１の実施の形態の図２と同一機能部分には同一符号を付して、その詳細説明を省略する。
【００４４】
図５において、５００Aはハードウエア記述言語（HDL）を記述したHDLファイル、５００Bは合成制約情報を記述した合成制約ファイルで、上述した第１の実施の形態の図３(a)〜(d)と同等な合成制約情報が含まれている。
【００４５】
上述した第１の実施の形態と同様にして合成制約２００Aと動作記述ファイル２００Bとが入力された動作合成ツールは、ステップＳ５０１で合成制約２００Aと動作記述ファイル２００Bとを基にHDLファイル５００Aと合成制約ファイル５００Bとを、コードチェッカが解読可能なフォーマットで生成する。
【００４６】
そして、生成されたHDLファイル５００Aがコードチェッカに入力され、また、合成制約ファイル５００Bを基に必要なルールファイル２００Dが自動的に選択されてコードチェッカに入力される。
【００４７】
コードチェッカは、ステップＳ５０２で、動作合成ツールにより生成されたHDLファイル５００Aが合成制約２００Aに従って合成されているか否かを確認する。
【００４８】
そして、前記ステップＳ５０２において、コードチェッカにより、HDLファイル２００Cが合成制約に準拠していないと判断された場合は、ステップＳ５０３での判断結果が否定(no)となる。そして、ステップＳ５０５でHDLファイル２００Cの修正処理が行われ、再びステップＳ５０２においてコードチェッカによる確認処理が行われる。
【００４９】
一方、前記ステップＳ５０２において、コードチェッカにより、HDLファイル２００Cが合成制約に準拠していると判断された場合は、ステップＳ５０３での判断結果が肯定(yes)となる。そして、ステップＳ５０４で、論理合成ツールによる論理合成処理が行われ、論理回路２００Eが生成される。
【００５０】
なお、本実施の形態におけるその他の構成、作用及び効果は、上述した第１の実施の形態と同一である。
【００５１】
また、本発明は、本実施の形態に限られるものではなく、本発明の主題に基づき、どのようなものであっても適用可能である。
【００５２】
また、本発明の目的は、上述した実施の形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システム又は装置に供給し、そのシステム又は装置のコンピュータ（又はＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読出して実行することによっても達成されることは言うまでもない。
【００５３】
この場合、記憶媒体から読出されたプログラムコード自体が上述した実施の形態の機能を実現することになり、そのプログラムコード及び該プログラムコードを記憶した記憶媒体は本発明を構成することになる。
【００５４】
また、コンピュータが読み出したプログラムコードを実行することにより、上述した実施の形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(ＯＳ)等が実際の処理の一部又は全部を行い、その処理によって上述した実施の形態の機能が実現される場合も含まれることは言うまでもない。
【００５５】
また、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部又は全部を行い、その処理によって上述した実施の形態の機能が実現される場合も含まれることは言うまでもない。
【００５６】
また、上記プログラムは、上述した実施の形態の機能をコンピュータで実現することができれば良く、その形態は、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給されるスクリプトデータ等の形態を有するものでも良い。
【００５７】
また、プログラムを供給する記録媒体としては、例えば、ＲＡＭ、ＮＶ−ＲＡＭ、フロッピー（登録商標）ディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＤＶＤ（ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＤＶＤ−ＲＷ、ＤＶＤ＋ＲＷ）、磁気テープ、不揮発性のメモリカード、他のＲＯＭ等の上記プログラムを記憶できるものであれば良い。
【００５８】
更に、上記プログラムは、インターネット、商用ネットワーク、若しくはローカルエリアネットワーク等に接続される不図示の他のコンピュータやデータベース等からダウンロードすることにより供給される。
【図面の簡単な説明】
【００５９】
【図１】本発明の第１の実施の形態に係る記述検証装置の概略構成を示すブロック図である。
【図２】本発明の第１の実施の形態に係る記述検証装置の動作を説明するための図である。
【図３】本発明の第１の実施の形態に係る記述検証装置のHDLファイル内の合成制約の一例を示す図である。
【図４】本発明の第１の実施の形態の回路形式とルールファイルの対応を説明するための図である。
【図５】本発明の第２の実施の形態に係る記述検証装置の動作を説明するための図である。
【図６】従来の記述検証装置の動作を説明するための図である。
【図７】従来の記述検証装置における合成制約として多相クロックが指定された場合の動作合成ツールの動作を説明するための図である。
【図８】従来の記述検証装置における合成制約として多相クロックが指定された場合の動作合成ツールの動作を説明するための図である。
【図９】従来の記述検証装置におけるルールファイルの具体的な内容を説明するための図である。
【符号の説明】
【００６０】
１００      記述検証装置
１０１      動作合成手段（動作合成ツール）
１０２      記述検証手段（コードチェッカ）
２００A    合成制約
２００B    動作記述ファイル
２００C    ハードウエア記述言語(HDL)ファイル
２００D    ルールファイル
２００E    論理回路
５００A    ハードウエア記述言語(HDL)ファイル
５００B    合成制約ファイル
【図１】
2007094550.tif 000003
【図２】
2007094550.tif 000004
【図３】
2007094550.tif 000005
【図４】
2007094550.tif 000006
【図５】
2007094550.tif 000007
【図６】
2007094550.tif 000008
【図７】
2007094550.tif 000009
【図８】
2007094550.tif 000010
【図９】
2007094550.tif 000011