(57)【要約】【課題】仕様書に一致するＲＴＬを自動で生成するとともに仕様書の誤りを操作者に通知すること。【解決手段】ＲＴＬ生成装置は、上位階層の第１のモジュールに含まれる第１の端子とその接続先端子とを表す第１の情報と、下位階層の第２のモジュールに含まれる第２の端子とその接続先端子とを表す第２の情報とを含む仕様書を参照して、第１の情報と第２の情報との整合性を確認し、整合性がない場合、その旨を出力する確認手段と、第１の情報と第２の情報との間に整合性がある場合、第１の情報および第２の情報に基づいて、第１のモジュールに対する第１のＲＴＬと第２のモジュールに対する第２のＲＴＬを生成する生成手段とを備えている。【選択図】図１
2015138482.tif 000002
【特許請求の範囲】
【請求項１】
上位階層の第１のモジュールに含まれる第１の端子とその接続先端子とを表す第１の情報と、下位階層の第２のモジュールに含まれる第２の端子とその接続先端子とを表す第２の情報とを含む仕様書を参照して、前記第１の情報と前記第２の情報との整合性を確認し、整合性がない場合、その旨を出力する確認手段と、
前記第１の情報と前記第２の情報との間に整合性がある場合、前記第１の情報および前記第２の情報に基づいて、前記第１のモジュールに対する第１のＲＴＬ（Register Transfer Level）と前記第２のモジュールに対する第２のＲＴＬを生成する生成手段と、を備える、ＲＴＬ生成装置。
【請求項２】
前記第１の情報は、前記第１の端子の端子名、端子幅、入出力属性、および、前記第１の端子の接続先端子の端子名の少なくともいずれかを含み、
前記第２の情報は、前記第２の端子の端子名、端子幅、入出力属性、および、前記第２の端子の接続先端子の端子名の少なくともいずれかを含む、請求項１に記載のＲＴＬ生成装置。
【請求項３】
前記確認手段は、前記第１の情報および前記第２の情報に基づいて、前記第１の端子の接続先端子の端子名が前記第２の情報に含まれるかどうか、および／または、前記第２の端子の接続先端子の端子名が前記第１の情報に含まれるかどうかを確認し、少なくともいずれか一方が含まれない場合、その旨を出力する、請求項２に記載のＲＴＬ生成装置。
【請求項４】
前記確認手段は、前記第１の情報および前記第２の情報に基づいて、前記第１の端子の端子幅と前記第１の端子の接続先端子の端子幅とが一致するかどうか、および／または、前記第２の端子の端子幅と前記第２の端子の接続先端子の端子幅とが一致するかどうかを確認し、少なくともいずれか一方が一致しない場合、その旨を出力する、請求項２または３に記載のＲＴＬ生成装置。
【請求項５】
前記確認手段は、前記第１の情報および前記第２の情報に基づいて、前記第１の端子の入出力属性と前記第１の端子の接続先端子の入出力属性とが反対であるかどうか、および／または、前記第２の端子の入出力属性と前記第２の端子の接続先端子の入出力属性とが反対であるかどうかを確認し、少なくともいずれか一方が反対でない場合、その旨を出力する、請求項２ないし４のいずれか１項に記載のＲＴＬ生成装置。
【請求項６】
前記仕様書は、下位階層の第３のモジュールに含まれる第３の端子とその接続先端子とを表す第３の情報を含み、
前記確認手段は、前記仕様書を参照して、前記第１ないし第３の情報の整合性を確認し、整合性がない場合、その旨を出力し、
前記生成手段は、前記第１ないし第３の情報の間に整合性がある場合、前記第１ないし第３の情報に基づいて、前記第１ないし第３のモジュールのそれぞれに対する第１ないし第３のＲＴＬを生成する、請求項１ないし５のいずれか１項に記載のＲＴＬ生成装置。
【請求項７】
前記第３の情報は、前記第３の端子の端子名、端子幅、入出力属性、および、前記第２の端子の接続先端子の端子名の少なくともいずれかを含む、請求項６に記載のＲＴＬ生成装置。
【請求項８】
前記確認手段は、前記第１ないし第３の情報に基づいて、前記第１の端子の接続先端子の端子名が前記第２の情報または前記第３の情報に含まれるかどうか、および／または、前記第２の端子の接続先端子の端子名が前記第１の情報または前記第３の情報に含まれるかどうか、および／または、前記第３の端子の接続先端子の端子名が前記第１の情報または前記第２の情報に含まれるかどうかを確認し、少なくともいずれか１つが含まれない場合、その旨を出力する、請求項７に記載のＲＴＬ生成装置。
【請求項９】
コンピュータが、上位階層の第１のモジュールに含まれる第１の端子とその接続先端子とを表す第１の情報と、下位階層の第２のモジュールに含まれる第２の端子とその接続先端子とを表す第２の情報とを含む仕様書を記憶部から読み出す工程と、
前記第１の情報と前記第２の情報との整合性を確認する工程と、
前記第１の情報と前記第２の情報との間に整合性がない場合、その旨を出力する工程と、
前記第１の情報と前記第２の情報との間に整合性がある場合、前記第１の情報および前記第２の情報に基づいて、前記第１のモジュールに対する第１のＲＴＬ（Register Transfer Level）と前記第２のモジュールに対する第２のＲＴＬを生成する工程と、を含む、ＲＴＬ生成方法。
【請求項１０】
上位階層の第１のモジュールに含まれる第１の端子とその接続先端子とを表す第１の情報と、下位階層の第２のモジュールに含まれる第２の端子とその接続先端子とを表す第２の情報とを含む仕様書を記憶部から読み出す処理と、
前記第１の情報と前記第２の情報との整合性を確認する処理と、
前記第１の情報と前記第２の情報との間に整合性がない場合、その旨を出力する処理と、
前記第１の情報と前記第２の情報との間に整合性がある場合、前記第１の情報および前記第２の情報に基づいて、前記第１のモジュールに対する第１のＲＴＬ（Register Transfer Level）と前記第２のモジュールに対する第２のＲＴＬを生成する処理と、をコンピュータに実行させる、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＬＳＩ（Large Scale Integration）を設計する際のＲＴＬ（Register Transfer Level）を生成するＲＴＬ生成装置、ＲＴＬ生成方法、および、プログラムに関し、特に、ＬＳＩを構成するモジュールを上位階層のモジュールと下位階層のモジュールに階層化して設計する場合のＲＴＬを生成するＲＴＬ生成装置、ＲＴＬ生成方法、および、プログラムに関する。
【背景技術】
【０００２】
近年、ＬＳＩ（Large Scale Integration）の集積化が進んでおり、単一のＬＳＩに搭載される回路規模が増大している。これに伴い、モジュールの個数も増大しており、モジュール間を接続する信号の数も増加傾向にある。
【０００３】
関連技術として、特許文献１には、下位のＲＴＬを接続して上位のＲＴＬを生成する回路生成装置が記載されている。また、特許文献２には、仕様書に基づいてＲＴＬを生成するＬＳＩ開発支援システムが記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１３−００４０６６号公報
【特許文献２】特開２００４−１９９３４７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上記特許文献の全開示内容は、本書に引用をもって繰り込み記載されているものとする。以下の分析は、本発明者によってなされたものである。
【０００６】
モジュール数およびモジュール間を接続する信号数が多い場合、モジュール間の接続を記述する上位階層のＲＴＬ（Register Transfer Level）を手作業で作成すると、作業工数の増大を招き、人的ミスが生じるおそれがある。また、一般に仕様書は自然言語で記述されており、ＲＴＬ作成において必要な情報が記述されていないケースやあいまいな表現で記述されているケースがある。これにより、不明箇所を明文化するのに長い時間を要し、明文化することなく思い込みでＲＴＬを作成してしまい、結果的に意図しないＲＴＬが作成されるおそれがある。これを防ぐには、ＲＴＬ作成のために必要十分な仕様書を作成することが求められる。
【０００７】
特に、ＲＴＬの作成においては、以下の（１）ないし（４）のような問題が生じている。（１）ＲＴＬ作成に必要な情報が仕様書に記載されていない場合、不足内容の確認に工数がかかる。（２）人手により仕様書を目視してＲＴＬ作成するため、人的ミスにより仕様とＲＴＬの不一致が生じる可能性がある。（３）搭載モジュール数が多く、各モジュールの端子数が多いことにより、ＲＴＬ作成に長い時間を要する。（４）モジュール間の接続検証を一般的なＲＴＬシミュレータにて実施する場合、搭載モジュール配下のＲＴＬが完成しないと接続検証を実施することができない。
【０００８】
なお、特許文献１に記載された技術では、必要とされる入力ファイルのうちの「端子属性情報ファイル」は、当該装置を利用するために新たに作成する必要があり、当該ファイルを手作業で作成することにより人的ミスが発生し、仕様書との不一致が生じるおそれがある。
【０００９】
また、特許文献２に記載された技術は、ＬＳＩ設計データ（ＲＴＬデータ）の出力に関し、操作者が詳細仕様テンプレートに誤った情報（例えば、接続先端子名の不一致や入出力属性の不一致により端子同士を接続できないような情報）を入力した場合であっても、その誤りを操作者に通知して修正を促す手段を有していない。したがって、特許文献２に記載された技術によると、構文エラーを含むＲＴＬデータを出力され、または、ＬＳＩ開発支援システムの動作が正常終了しないという問題が生じるおそれがある。
【００１０】
そこで、仕様書に一致するＲＴＬを自動で生成するとともに仕様書の誤りを操作者に通知することが課題となる。本発明の目的は、かかる課題の解決に寄与するＲＴＬ生成装置、ＲＴＬ生成方法、および、プログラムを提供することにある。
【課題を解決するための手段】
【００１１】
本発明の第１の態様に係るＲＴＬ生成装置は、上位階層の第１のモジュールに含まれる第１の端子とその接続先端子とを表す第１の情報と、下位階層の第２のモジュールに含まれる第２の端子とその接続先端子とを表す第２の情報とを含む仕様書を参照して、前記第１の情報と前記第２の情報との整合性を確認し、整合性がない場合、その旨を出力する確認手段と、前記第１の情報と前記第２の情報との間に整合性がある場合、前記第１の情報および前記第２の情報に基づいて、前記第１のモジュールに対する第１のＲＴＬ（Register Transfer Level）と前記第２のモジュールに対する第２のＲＴＬを生成する生成手段と、を備えている。
【００１２】
本発明の第２の態様に係るＲＴＬ生成方法は、コンピュータが、上位階層の第１のモジュールに含まれる第１の端子とその接続先端子とを表す第１の情報と、下位階層の第２のモジュールに含まれる第２の端子とその接続先端子とを表す第２の情報とを含む仕様書を記憶部から読み出す工程と、前記第１の情報と前記第２の情報との整合性を確認する工程と、前記第１の情報と前記第２の情報との間に整合性がない場合、その旨を出力する工程と、前記第１の情報と前記第２の情報との間に整合性がある場合、前記第１の情報および前記第２の情報に基づいて、前記第１のモジュールに対する第１のＲＴＬ（Register Transfer Level）と前記第２のモジュールに対する第２のＲＴＬを生成する工程と、を含む。
【００１３】
本発明の第３の態様に係るプログラムは、上位階層の第１のモジュールに含まれる第１の端子とその接続先端子とを表す第１の情報と、下位階層の第２のモジュールに含まれる第２の端子とその接続先端子とを表す第２の情報とを含む仕様書を記憶部から読み出す処理と、前記第１の情報と前記第２の情報との整合性を確認する処理と、前記第１の情報と前記第２の情報との間に整合性がない場合、その旨を出力する処理と、前記第１の情報と前記第２の情報との間に整合性がある場合、前記第１の情報および前記第２の情報に基づいて、前記第１のモジュールに対する第１のＲＴＬ（Register Transfer Level）と前記第２のモジュールに対する第２のＲＴＬを生成する処理と、をコンピュータに実行させる。なお、プログラムは、非一時的なコンピュータ可読記録媒体（non-transitory computer-readable storage medium）に記録されたプログラム製品として提供することができる。
【発明の効果】
【００１４】
本発明に係るＲＴＬ生成装置、ＲＴＬ生成方法、および、プログラムによると、仕様書に一致するＲＴＬを自動で生成するとともに仕様書の誤りを操作者に通知することが可能となる。
【図面の簡単な説明】
【００１５】
【図１】実施形態に係るＲＴＬ生成装置の構成を一例として示すブロック図である。
【図２】実施形態に係るＲＴＬ生成装置の動作を一例として示すフロー図である。
【図３】実施例に係るＲＴＬ生成装置の構成を一例として示すブロック図である。
【図４】実施例において、ＲＴＬの生成対象とされた回路の構成を示す図である。
【図５】実施例における仕様書のうちの上位階層のモジュール（ＴＯＰ）に関するシートの記載内容を示す図である。
【図６】実施例における仕様書のうちの下位階層のモジュール（ＭＡＣＲＯ１）に関するシートの記載内容を示す図である。
【図７】実施例における仕様書のうちの下位階層のモジュール（ＭＡＣＲＯ２）に関するシートの記載内容を示す図である。
【図８】実施例におけるモジュールＤＢ（Database）および端子ＤＢの内容を示す図である。
【図９】実施例におけるＲＴＬ生成装置の動作を一例として示すフロー図である。
【図１０】実施例において生成されたＲＴＬ（図１１に続く）を示す図である。
【図１１】実施例において生成されたＲＴＬ（図１０からの続き）を示す図である。
【図１２】端子名に誤りがある仕様書を例示する図である。
【図１３】端子幅に誤りがある仕様書を例示する図である。
【図１４】入出力属性に誤りがある仕様書を例示する図である。
【発明を実施するための形態】
【００１６】
はじめに、一実施形態の概要について説明する。なお、この概要に付記する図面参照符号は、専ら理解を助けるための例示であり、本発明を図示の態様に限定することを意図するものではない。
【００１７】
図１は、一実施形態に係るＲＴＬ（Register Transfer Level）生成装置１０の構成を示すブロック図である。図１を参照すると、ＲＴＬ生成装置１０は、確認手段１２および生成手段１４を備えている。
【００１８】
確認手段１２は、上位階層の第１のモジュールに含まれる第１の端子とその接続先端子とを表す第１の情報と、下位階層の第２のモジュールに含まれる第２の端子とその接続先端子とを表す第２の情報とを含む仕様書（モジュール間接続仕様書）を参照して、第１の情報と第２の情報との整合性を確認する。確認手段１２は、第１の情報と第２の情報との間に整合性がない場合、その旨を出力する。生成手段１４は、第１の情報と第２の情報との間に整合性がある場合、第１の情報および第２の情報に基づいて、第１のモジュールに対する第１のＲＴＬと第２のモジュールに対する第２のＲＴＬを生成する。
【００１９】
ここで、第１の情報は、第１の端子の端子名、端子幅（ビット幅）、入出力属性（ＩＮ／ＯＵＴ）、および、第１の端子の接続先端子の端子名の少なくともいずれかを含んでいてもよい。一方、第２の情報は、第２の端子の端子名、端子幅、入出力属性、および、第２の端子の接続先端子の端子名の少なくともいずれかを含んでいてもよい。
【００２０】
確認手段１２は、第１の情報および第２の情報に基づいて、第１の端子の接続先端子の端子名が第２の情報に含まれるかどうか、および／または、第２の端子の接続先端子の端子名が第１の情報に含まれるかどうかを確認し、少なくともいずれか一方が含まれない場合、その旨を出力するようにしてもよい。
【００２１】
また、確認手段１２は、第１の情報および第２の情報に基づいて、第１の端子の端子幅（ビット幅）と第１の端子の接続先端子の端子幅とが一致するかどうか、および／または、第２の端子の端子幅と第２の端子の接続先端子の端子幅とが一致するかどうかを確認し、少なくともいずれか一方が一致しない場合、その旨を出力するようにしてもよい。
【００２２】
さらに、確認手段１２は、第１の情報および第２の情報に基づいて、第１の端子の入出力属性と第１の端子の接続先端子の入出力属性とが反対である（すなわち、一方がＩＮで他方がＯＵＴである）かどうか、および／または、第２の端子の入出力属性と第２の端子の接続先端子の入出力属性とが反対であるかどうかを確認し、少なくともいずれか一方が反対でない場合、その旨を出力するようにしてもよい。
【００２３】
操作者は必要項目を記載したテンプレートを準備し、これを仕様書（モジュール間接続仕様書）として、ＲＴＬ生成装置１０に入力する。ＲＴＬ生成装置１０は、入力された仕様書に未記載箇所または誤記が含まれる場合、エラーを通知し、操作者に対して追記または修正を促す。これにより、ＲＴＬ作成に必要な情報が仕様書に記載されていない場合、不足内容の確認に工数を要するという問題を解消することができる。
【００２４】
また、ＲＴＬ生成装置１０は、仕様書に記載された情報から人手を介することなく、上位階層ＲＴＬ（第１のＲＴＬ）を自動生成する。これにより、人手により仕様書を目視してＲＴＬ作成することにより人的ミスが生じ、仕様書とＲＴＬの不一致が生じるという問題を解決することができる。すなわち、ＲＴＬ生成装置１０によれば、仕様書から直接ＲＴＬを生成するため、特許文献１に記載された技術とは異なり、仕様書とＲＴＬの一致を保証することができる。また、ＲＴＬ生成装置１０によると、搭載モジュール数が多く、各モジュールの端子数が多いことにより、ＲＴＬ作成に要する時間が増大するという問題を解決することもできる。
【００２５】
さらに、ＲＴＬ生成装置１０は、仕様書に記載された情報から人手を介さずに、搭載モジュール階層の端子情報のみを記述したダミーのＲＴＬを自動生成する。このとき、モジュール間の接続のみを目的とした検証においては、ダミーのＲＴＬを利用することにより、シミュレーションが可能となり、モジュール配下のＲＴＬ完成前に事前に検証することが可能となる。すなわち、ＲＴＬ生成装置１０によると、一般的なＲＴＬシミュレータでモジュール間の接続検証を実施する場合、搭載モジュール配下のＲＴＬが完成しないと接続検証を実施することができないという問題を解決することができる。
【００２６】
＜実施形態１＞
次に、第１の実施形態に係るＲＴＬ生成装置について、図面を参照して説明する。図１は、本実施形態に係るＲＴＬ生成装置１０の構成を示すブロック図である。図１を参照すると、ＲＴＬ生成装置は、確認手段１２および生成手段１４を備えている。
【００２７】
ＲＴＬ生成装置１０は、一例として、公知の表計算ソフトウェアで用意した仕様書テンプレートに、接続を行う下位階層モジュールの端子情報（端子名、端子幅、入出力属性）、上位階層モジュールの端子情報（端子名、端子幅、入出力属性）、使用モジュールのインスタンス名、各端子の接続先情報（接続先のインスタンス名と端子名）を記載した仕様書（モジュール間接続仕様書）を読み込む。
【００２８】
確認手段１２は、仕様書の記載内容の整合性を確認し、整合性がない場合、エラーを通知する。生成手段１４は、仕様書の記載内容に整合性がある場合、ＲＴＬ生成プログラムを実行することにより、各モジュール間の接続を記述した上位階層モジュールのＲＴＬを含むＲＴＬファイルを生成する。
【００２９】
図２は、ＲＴＬ生成装置１０によりＲＴＬを自動生成する動作を一例として示すフロー図である。図１および図２を参照して、ＲＴＬ生成装置１０動作について説明する。
【００３０】
はじめに、仕様書の記載内容について説明する。操作者は、接続を行う下位階層モジュールの端子情報（端子名、端子幅、入出力属性）、上位階層モジュールの端子情報（端子名、端子幅、入出力属性）、使用モジュールのインスタンス名、各端子の接続先情報（接続先のインスタンス名と端子名）を仕様書テンプレートに記載し、モジュール間接続仕様書としてＲＴＬ生成装置に入力する。
【００３１】
確認手段１２は、作成された仕様書に記載された情報を確認し（ステップＳ１）、不足・誤りがあれば（ステップＳ２のＹｅｓ）、その旨を操作者に通知し（ステップＳ３）、仕様書の修正を促す。一方、仕様書に不足や誤りがなければ（ステップＳ２のＮｏ）、確認手段１２は、生成手段１４に対してＲＴＬ生成の実行許可を通知する。
【００３２】
生成手段１４は、確認手段１２からＲＴＬ生成の実行許可が通知されると、作成された仕様書の情報に基づいて、下位階層モジュール間の接続情報を含む上位階層モジュールのＲＴＬと、端子情報のみを記載した下位階層モジュールのＲＴＬを各々生成する（ステップＳ４）。なお、生成手段１４は、下位階層モジュールのＲＴＬとして、上位階層で使用するすべてのモジュール分のＲＴＬを生成する。
【００３３】
本実施形態のＲＴＬ生成装置１０によると、仕様書テンプレートと内容チェック機能を具備したことにより、操作者のスキルに依らず仕様書の品質を確保することができる。また、ＲＴＬ生成装置１０は、仕様書からＲＴＬを直接自動生成するため、手作業によるＲＴＬ作成に比べ、作成工数を大幅に削減することが可能となる。さらに、ＲＴＬ生成装置１０によると、仕様書から直接ＲＴＬを自動生成するため、仕様書とＲＴＬの一致を保証することができる。また、新規設計において、搭載モジュール配下のＲＴＬが完成していない場合でも、仕様書が完成すれば、一般的なＲＴＬシミュレータにて接続検証を行うことが可能となる。
【００３４】
なお、特許文献１では、必要とされる入力ファイルのうちの「端子属性情報ファイル」は当該装置を利用するために新たに作成する必要があり、当該ファイルを人手作成することにより人的ミスが発生し、仕様書との不一致が生じる可能性がある。一方、本実施形態のＲＴＬ生成装置１０によれば、仕様書からＲＴＬを直接生成するため、仕様書とＲＴＬの一致を保証することができる。
【実施例】
【００３５】
次に、上記実施形態に係るＲＴＬ生成装置１０の動作について、具体的な実施例に基づいて説明する。
【００３６】
図３は、実施例に係るＲＴＬ生成装置の構成を一例として示すブロック図である。図３を参照すると、確認手段１２はモジュールＤＢ（Database）２２、端子ＤＢ２４およびエラー情報ＤＢ２６を備えている。各ＤＢが保持するデータの内容については後述する。
【００３７】
図４は、本実施例において、ＲＴＬの生成対象となる回路の構成を示す図である。図４を参照すると、回路は、上位階層のモジュールＴＯＰと、２つの下位階層のモジュールＭＡＣＲＯ１，ＭＡＣＲＯ２を備えている。ここでは、モジュールＭＡＣＲＯ１のインスタンス名をＵ＿ＭＡＣＲＯ１とし、モジュールＭＡＣＲＯ２のインスタンス名をＵ＿ＭＡＣＲＯ２とする。モジュールＴＯＰ、ＭＡＣＲＯ１およびＭＡＣＲＯ２は、各モジュールに設けられた端子を介して、互いに接続されている。
【００３８】
図５は、仕様書に含まれる複数のシートのうちの上位階層のモジュール（ＴＯＰ）に関するシートの記載内容を示す図である。上位階層のモジュールについては、モジュール名をシート名としてもよい。ここでは、上位階層モジュール（ＴＯＰ）のシート名を「ＴＯＰ」とする。
【００３９】
図５を参照すると、欄５１にモジュール名として「ＴＯＰ」が記載されている。列５２には、自モジュールに含まれる端子名（port name）が記載されている。列５３には、自モジュールの端子の入出力属性（ＩＮまたはＯＵＴ）が記載されている。列５４には、自モジュールの端子の端子幅（ビット幅）が記載されている。列５５には、接続先モジュールのインスタンス名（instance name）が記載されている。列５６には、接続先モジュールの端子名（port name）が記載されている。
【００４０】
例えば、図５の最上段のレコードは、モジュールＴＯＰの端子ＲＳＴは端子幅「１」の入力端子（ＩＮ）であって、インスタンスＵ＿ＭＡＣＲＯ１の端子ＲＳＴとインスタンスＵ＿ＭＡＣＲＯ２の端子ＲＳＴに接続されることを表す。
【００４１】
図６は、仕様書に含まれる複数のシートのうちの下位階層のモジュール（ＭＡＣＲＯ１）に関するシートの記載内容を示す図である。下位階層のモジュールについては、インスタンス名をシート名としてもよい。ここでは、下位階層モジュールＭＡＣＲＯ１のインスタンス名「Ｕ＿ＭＡＣＲＯ１」をシート名とする。
【００４２】
図６を参照すると、欄６１にモジュール名として「ＭＡＣＲＯ１」が記載されている。列６２には、自モジュールに含まれる端子名（port name）が記載されている。列６３には、自モジュールの端子の入出力属性（ＩＮまたはＯＵＴ）が記載されている。列６４には、自モジュールの端子の端子幅（ビット幅）が記載されている。列６５には、接続先モジュールのインスタンス名（またはモジュール名）が記載されている。列６６には、接続先モジュールの端子名が記載されている。
【００４３】
例えば、図６の最上段のレコードは、モジュールＭＡＣＲＯ１のインスタンスＵ＿ＭＡＣＲＯ１の端子ＲＳＴは端子幅「１」の入力端子（ＩＮ）であり、モジュールＴＯＰの端子ＲＳＴに接続されることを表す。
【００４４】
図７は、仕様書に含まれる複数のシートのうちの下位階層のモジュール（ＭＡＣＲＯ２）に関するシートの記載内容を示す図である。図７のシートの記載内容は、図６のシートの記載内容と同様であることから、説明を省略する。
【００４５】
図８は、本実施例におけるモジュールＤＢ２２および端子ＤＢ２４の内容を示す図である。確認手段１２は、仕様書（図５ないし図７のシート）の記載内容とシート名に基づいて、モジュールＤＢ２２および端子ＤＢ２４を生成する。
【００４６】
確認手段１２は、図６および図７のシートのシート名に基づいて、モジュール名とインスタンス名を紐付けたデータベースとして、図８上段に示したモジュールＤＢ２２を生成する。また、確認手段１２は、図５ないし図７のシートに記載された情報に基づいて、自モジュール端子の名前に対して属性・幅・モジュール名を紐付けたデータベースとして、図８の下段に示した端子ＤＢ２４を生成する。
【００４７】
確認手段１２は、仕様書に含まれるシート（図５ないし図７）に誤りがある場合、誤りの内容に応じて、以下のエラー通知を出力する。
「エラー通知Ａ」：接続先端子名が存在しない（未記入の場合を含む）旨の通知
「エラー通知Ｂ」：接続元端子幅と接続先端子幅が一致しない旨の通知
「エラー通知Ｃ」：接続元端子の入出力属性と接続先端子の入出力属性が整合しない旨の通知
【００４８】
図９は、本実施例におけるＲＴＬ生成装置１０の確認手段１２の動作を一例として示すフロー図である。確認手段１２は、仕様書中に接続先情報として記載された内容に対して、次の確認を行う。
【００４９】
図９を参照すると、確認手段１２は、接続元端子に対する接続先インスタンス名に基づいてモジュールＤＢ２２を検索し、当該接続先インスタンスに対応するモジュール名を決定する（ステップＳ１１）。
【００５０】
次に、確認手段１２は、接続元端子に対する接続先端子名が、ステップＳ１１で決定したモジュールに存在するかどうかを、端子ＤＢ２４において検索する（ステップＳ１２）。存在する場合（ステップＳ１２のＹｅｓ）、確認手段１２は次の処理に移行する。
【００５１】
一方、存在しない場合（ステップＳ１２のＮｏ）、確認手段１２はエラー通知Ａと、対象となる接続元端子名および接続先端子名をエラー情報ＤＢ２６に格納して（ステップＳ１３）、次の処理に移行する。
【００５２】
次に、確認手段１２は、存在した端子名に対応する端子幅（ビット幅）が接続元と接続先との間で一致しているかどうかを確認する（ステップＳ１４）。端子幅が一致する場合（ステップＳ１４のＹｅｓ）、確認手段１２は次の処理に移行する。
【００５３】
一方、端子幅が一致しない場合（ステップＳ１４のＮｏ）、確認手段１２はエラー通知Ｂと、対象となる接続元端子名および接続先端子名をエラー情報ＤＢ２６に格納して（ステップＳ１５）、次の処理に移行する。
【００５４】
次に、確認手段１２は、接続元端子の入出力属性と、存在した端子名に対応する入出力属性との間で整合性があるかどうかを判定する（ステップＳ１６）。確認手段１２は、接続元と接続先の両端子のうちの一方の端子の入出力属性が「ＩＮ」であり、他方の端子の入出力属性が「ＯＵＴ」であれば、接続元端子の入出力属性と接続先端子の入出力属性との間に整合性があるものと判定し（ステップＳ１６のＹｅｓ）、次の処理に移行する。
【００５５】
一方、接続先端子の入出力属性と接続先端子の入出力属性とが同一である場合、確認手段１２は、接続元の入出力属性と接続先の入出力属性との間に整合性がないものと判定し（ステップＳ１６のＮｏ）、エラー通知Ｃと、対象となる接続元端子名および接続先端子名をエラー情報ＤＢ２６に格納して（ステップＳ１７）、次の処理に移行する。
【００５６】
上記のいずれのエラーも存在しない場合（ステップＳ１２、Ｓ１４、Ｓ１６のいずれもＹｅｓ）、ＲＴＬ生成装置１０はＲＴＬ生成実行許可を出力（例えば、ポップアップ表示）して（ステップＳ１８）、ＲＴＬ生成（図２のステップＳ４）に移行する。一方、上記のいずれかのエラーが存在する場合（ステップＳ１２、Ｓ１４、Ｓ１６の少なくともいずれかがＮｏ）、ＲＴＬ生成装置１０はエラー通知（図２のステップＳ３）に移行する。
【００５７】
なお、図２のステップＳ３においては、一例として、エラーが存在する旨のポップアップ表示とエラーファイルへの出力を行うようにしてもよい。また、図９のステップＳ１４、Ｓ１５の処理と、ステップＳ１６、Ｓ１７の処理との間で順序を変更してもよい。
【００５８】
図１０および図１１は、本実施例において、ＲＴＬ生成装置１０によって生成されたＲＴＬを示す図である。図５ないし図７に示した仕様書の場合、仕様書に不足や誤りがないため（図２のステップＳ２のＮｏ）、生成手段１４は仕様書に基づいてＲＴＬを生成する。
【００５９】
生成手段１４は、図５の上位階層モジュールＴＯＰに対するシート「ＴＯＰ」の記載内容に応じて、図１０の６行目から１７行目のentity部を生成する。また、生成手段１４は、図６の下位階層モジュールＭＡＣＲＯ１に対するシート「Ｕ＿ＭＡＣＲＯ１」の「ＭＡＣＲＯ１」欄の記載内容に応じて、図１０の２５行目から第３５行目のcomponent部を生成する。同様に、生成手段１４は、図７の下位階層モジュールＭＡＣＲＯ２に対するシート「Ｕ＿ＭＡＣＲＯ２」の「ＭＡＣＲＯ２」欄の記載内容に応じて、図１１の３７行目から第４７行目のcomponent部を生成する。さらに、生成手段１４は、図６のシート「Ｕ＿ＭＡＣＲＯ１」の「from/to」欄の記載内容に応じて、図１１の５４行目から第６２行目のport map部を生成する。同様に、生成手段１４は、図７のシート「Ｕ＿ＭＡＣＲＯ２」の「from/to」欄の記載内容に応じて、図１１の６５行目から第７３行目のport map部を生成する。
【００６０】
次に、仕様書に不足や誤りがあり、エラー通知が出力される場合について説明する。
【００６１】
図１２は、端子名に誤りがある場合の仕様書を例示する。図１２の上段に示したシート「Ｕ＿ＭＡＣＲＯ１」において、端子Ｍ１＿Ｍ２＿ＤＯの接続先は、インスタンスＵ＿ＭＡＣＲＯ２の端子Ｍ１＿Ｍ２＿ＤＯと記載されている（図１２の枠囲み箇所参照）。
【００６２】
確認手段１２は、モジュールＤＢ２２（図８）を検索して、接続元端子Ｍ１＿Ｍ２＿ＤＯの接続先インスタンスＵ＿ＭＡＣＲＯ２に対応するモジュールはＭＡＣＲＯ２であることを把握する（図９のステップＳ１１）。
【００６３】
次に、確認手段１２は、接続元端子Ｍ１＿Ｍ２＿ＤＯに対する接続先端子名Ｍ１＿Ｍ２＿ＤＯが、ステップＳ１１で決定したモジュールＭＡＣＲＯ２に存在するかどうかを端子ＤＢ２４（図８）において検索する（ステップＳ１２）。端子ＤＢ２４において、モジュールＭＡＣＲＯ２の端子にはＭ１＿Ｍ２＿ＤＯは含まれていないため（図９のステップＳ１２のＮｏ）、確認手段１２は「エラー通知Ａ」と、「接続元端子名」、「接続先端子名」をエラー情報ＤＢ２６に格納して（図９のステップＳ１３）、処理を終了する。
【００６４】
このとき、操作者は、エラー情報ＤＢ２６に格納された情報を確認して、仕様書に含まれる端子名の記載に関する誤りを直ちに修正することができる。
【００６５】
図１３は、端子幅（ビット幅）に誤りがある場合の仕様書を例示する。図１３の下段に示したシート「Ｕ＿ＭＡＣＲＯ２」において、端子Ｍ１＿Ｍ２＿ＤＩの端子幅は「４」と記載されている（図１３の枠囲み箇所参照）。
【００６６】
確認手段１２は、モジュールＤＢ２２（図８）を検索して、接続元端子Ｍ１＿Ｍ２＿ＤＩの接続先インスタンスＵ＿ＭＡＣＲＯ１に対応するモジュールはＭＡＣＲＯ１であることを把握する（図９のステップＳ１１）。
【００６７】
次に、確認手段１２は、接続元端子Ｍ１＿Ｍ２＿ＤＩに対する接続先端子名Ｍ１＿Ｍ２＿ＤＯが、ステップＳ１１で決定したモジュールＭＡＣＲＯ１に存在するかどうかを、端子ＤＢ２４（図８）において検索する（図９のステップＳ１２）。端子ＤＢ２４において、モジュールＭＡＣＲＯ１の端子にはＭ１＿Ｍ２＿ＤＯが含まれている（図９のステップＳ１２のＹｅｓ）。
【００６８】
次に、確認手段１２は、存在した端子名Ｍ１＿Ｍ２＿ＤＯに対応する端子幅（ビット幅）が、接続元と接続先との間で一致しているかどうかを確認する（ステップＳ１４）。接続元端子Ｍ１＿Ｍ２＿ＤＩの端子幅は「４」であるが（図１３）、接続先端子Ｍ１＿Ｍ２＿ＤＯの端子幅は「８」であり（図８）、接続元と接続先との間で端子幅が一致しない（図９のステップＳ１４のＮｏ）。そこで、確認手段１２はエラー通知Ｂと、「接続元端子名」、「接続先端子名」をエラー情報ＤＢ２６に格納して（図９のステップＳ１５）、処理を終了する。
【００６９】
操作者は、エラー情報ＤＢ２６に格納された情報を確認して、仕様書に含まれる端子幅（ビット幅）の記載に関する誤りを速やかに修正することができる。
【００７０】
図１４は、入出力属性に誤りがある場合の仕様書を例示する。図１４の下段に示したシート「Ｕ＿ＭＡＣＲＯ２」において、端子Ｍ１＿Ｍ２＿ＤＩの入出力属性は「ＯＵＴ」と記載されている（図１４の枠囲み箇所参照）。
【００７１】
確認手段１２は、モジュールＤＢ２２（図８）を検索して、接続元端子Ｍ１＿Ｍ２＿ＤＩの接続先インスタンスＵ＿ＭＡＣＲＯ１に対応するモジュールはＭＡＣＲＯ１であることを把握する（図９のステップＳ１１）。
【００７２】
次に、確認手段１２は、接続元端子Ｍ１＿Ｍ２＿ＤＩに対する接続先端子名Ｍ１＿Ｍ２＿ＤＯが、ステップＳ１１で決定したモジュールＭＡＣＲＯ１に存在するかどうかを端子ＤＢ２４（図８）において検索する（図９のステップＳ１２）。端子ＤＢ２４において、モジュールＭＡＣＲＯ１の端子にはＭ１＿Ｍ２＿ＤＯが含まれている（図９のステップＳ１２のＹｅｓ）。
【００７３】
次に、確認手段１２は、存在した端子名Ｍ１＿Ｍ２＿ＤＯに対応する端子幅（ビット幅）が接続元と接続先との間で一致しているかどうかを確認する（ステップＳ１４）。接続元端子Ｍ１＿Ｍ２＿ＤＩの端子幅は「８」であり（図１４）、接続先端子Ｍ１＿Ｍ２＿ＤＯの端子幅は「８」であるから（図８）、接続元と接続先との間で端子幅が一致する（図９のステップＳ１４のＹｅｓ）。
【００７４】
次に、確認手段１２は、接続元の端子Ｍ１＿Ｍ２＿ＤＩと接続先の端子Ｍ１＿Ｍ２＿ＤＯとの間で、入出力属性が整合しているかどうかを確認する（ステップＳ１６）。接続元端子Ｍ１＿Ｍ２＿ＤＩの入出力属性は「ＯＵＴ」であり（図１４）、接続先端子Ｍ１＿Ｍ２＿ＤＯの入出力属性も「ＯＵＴ」である（図８）。したがって、接続元の入出力属性と接続先の入出力属性との間で整合性がない（図９のステップＳ１６のＮｏ）。そこで、確認手段１２はエラー通知Ｃと、「接続元端子名」、「接続先端子名」をエラー情報ＤＢ２６に格納して（図９のステップＳ１７）、処理を終了する。
【００７５】
このとき、操作者は、エラー情報ＤＢ２６に格納された情報を確認して、仕様書に含まれる入出力属性の記載に関する誤りを直ちに修正することができる。
【００７６】
本発明に係るＲＴＬ生成装置、ＲＴＬ生成方法およびプログラムは、一例として、ＲＴＬを使用するＬＳＩ開発において、階層化設計を行う場合に適用することができる。
【００７７】
なお、本発明において、下記の形態が可能である。
［形態１］
上記第１の態様に係るＲＴＬ生成装置のとおりである。
［形態２］
前記第１の情報は、前記第１の端子の端子名、端子幅、入出力属性、および、前記第１の端子の接続先端子の端子名の少なくともいずれかを含み、
前記第２の情報は、前記第２の端子の端子名、端子幅、入出力属性、および、前記第２の端子の接続先端子の端子名の少なくともいずれかを含む、形態１に記載のＲＴＬ生成装置。
［形態３］
前記確認手段は、前記第１の情報および前記第２の情報に基づいて、前記第１の端子の接続先端子の端子名が前記第２の情報に含まれるかどうか、および／または、前記第２の端子の接続先端子の端子名が前記第１の情報に含まれるかどうかを確認し、少なくともいずれか一方が含まれない場合、その旨を出力する、形態２に記載のＲＴＬ生成装置。
［形態４］
前記確認手段は、前記第１の情報および前記第２の情報に基づいて、前記第１の端子の端子幅と前記第１の端子の接続先端子の端子幅とが一致するかどうか、および／または、前記第２の端子の端子幅と前記第２の端子の接続先端子の端子幅とが一致するかどうかを確認し、少なくともいずれか一方が一致しない場合、その旨を出力する、形態２または３に記載のＲＴＬ生成装置。
［形態５］
前記確認手段は、前記第１の情報および前記第２の情報に基づいて、前記第１の端子の入出力属性と前記第１の端子の接続先端子の入出力属性とが反対であるかどうか、および／または、前記第２の端子の入出力属性と前記第２の端子の接続先端子の入出力属性とが反対であるかどうかを確認し、少なくともいずれか一方が反対でない場合、その旨を出力する、形態２ないし４のいずれか一に記載のＲＴＬ生成装置。
［形態６］
前記仕様書は、下位階層の第３のモジュールに含まれる第３の端子とその接続先端子とを表す第３の情報を含み、
前記確認手段は、前記仕様書を参照して、前記第１ないし第３の情報の整合性を確認し、整合性がない場合、その旨を出力し、
前記生成手段は、前記第１ないし第３の情報の間に整合性がある場合、前記第１ないし第３の情報に基づいて、前記第１ないし第３のモジュールのそれぞれに対する第１ないし第３のＲＴＬを生成する、形態１ないし５のいずれか一に記載のＲＴＬ生成装置。
［形態７］
前記第３の情報は、前記第３の端子の端子名、端子幅、入出力属性、および、前記第２の端子の接続先端子の端子名の少なくともいずれかを含む、形態６に記載のＲＴＬ生成装置。
［形態８］
前記確認手段は、前記第１ないし第３の情報に基づいて、前記第１の端子の接続先端子の端子名が前記第２の情報または前記第３の情報に含まれるかどうか、および／または、前記第２の端子の接続先端子の端子名が前記第１の情報または前記第３の情報に含まれるかどうか、および／または、前記第３の端子の接続先端子の端子名が前記第１の情報または前記第２の情報に含まれるかどうかを確認し、少なくともいずれか１つが含まれない場合、その旨を出力する、形態７に記載のＲＴＬ生成装置。
［形態９］
前記確認手段は、前記第１ないし第３の情報に基づいて、前記第１の端子の端子幅と前記第１の端子の接続先端子の端子幅とが一致するかどうか、および／または、前記第２の端子の端子幅と前記第２の端子の接続先端子の端子幅とが一致するかどうか、および／または、前記第３の端子の端子幅と前記第３の端子の接続先端子の端子幅とが一致するかどうかを確認し、少なくともいずれか１つが一致しない場合、その旨を出力する、形態７または８に記載のＲＴＬ生成装置。
［形態１０］
前記確認手段は、前記第１の情報および前記第２の情報に基づいて、前記第１の端子の入出力属性と前記第１の端子の接続先端子の入出力属性とが反対であるかどうか、および／または、前記第２の端子の入出力属性と前記第２の端子の接続先端子の入出力属性とが反対であるかどうか、および／または、前記第３の端子の入出力属性と前記第３の端子の接続先端子の入出力属性とが反対であるかどうかを確認し、少なくともいずれか１つが反対でない場合、その旨を出力する、形態７ないし９のいずれか一に記載のＲＴＬ生成装置。
［形態１１］
上記第２の態様に係るＲＴＬ生成方法のとおりである。
［形態１２］
前記第１の情報は、前記第１の端子の端子名、端子幅、入出力属性、および、前記第１の端子の接続先端子の端子名の少なくともいずれかを含み、
前記第２の情報は、前記第２の端子の端子名、端子幅、入出力属性、および、前記第２の端子の接続先端子の端子名の少なくともいずれかを含む、形態１１に記載のＲＴＬ生成方法。
［形態１３］
前記コンピュータが、前記第１の情報および前記第２の情報に基づいて、前記第１の端子の接続先端子の端子名が前記第２の情報に含まれるかどうか、および／または、前記第２の端子の接続先端子の端子名が前記第１の情報に含まれるかどうかを確認する工程と、
少なくともいずれか一方が含まれない場合、その旨を出力する工程と、を含む、形態１２に記載のＲＴＬ生成方法。
［形態１４］
前記コンピュータが、前記第１の情報および前記第２の情報に基づいて、前記第１の端子の端子幅と前記第１の端子の接続先端子の端子幅とが一致するかどうか、および／または、前記第２の端子の端子幅と前記第２の端子の接続先端子の端子幅とが一致するかどうかを確認する工程と、
少なくともいずれか一方が一致しない場合、その旨を出力する工程と、を含む、形態１２または１３に記載のＲＴＬ生成方法。
［形態１５］
前記コンピュータが、前記第１の情報および前記第２の情報に基づいて、前記第１の端子の入出力属性と前記第１の端子の接続先端子の入出力属性とが反対であるかどうか、および／または、前記第２の端子の入出力属性と前記第２の端子の接続先端子の入出力属性とが反対であるかどうかを確認する工程と、
少なくともいずれか一方が反対でない場合、その旨を出力する工程と、を含む、形態１２ないし１４のいずれか一に記載のＲＴＬ生成方法。
［形態１６］
上記第３の態様に係るプログラムのとおりである。
［形態１７］
前記第１の情報は、前記第１の端子の端子名、端子幅、入出力属性、および、前記第１の端子の接続先端子の端子名の少なくともいずれかを含み、
前記第２の情報は、前記第２の端子の端子名、端子幅、入出力属性、および、前記第２の端子の接続先端子の端子名の少なくともいずれかを含む、形態１６に記載のプログラム。
［形態１８］
前記第１の情報および前記第２の情報に基づいて、前記第１の端子の接続先端子の端子名が前記第２の情報に含まれるかどうか、および／または、前記第２の端子の接続先端子の端子名が前記第１の情報に含まれるかどうかを確認する処理と、
少なくともいずれか一方が含まれない場合、その旨を出力する処理と、を前記コンピュータに実行させる、形態１７に記載のプログラム。
［形態１９］
前記第１の情報および前記第２の情報に基づいて、前記第１の端子の端子幅と前記第１の端子の接続先端子の端子幅とが一致するかどうか、および／または、前記第２の端子の端子幅と前記第２の端子の接続先端子の端子幅とが一致するかどうかを確認する処理と、
少なくともいずれか一方が一致しない場合、その旨を出力する処理と、を前記コンピュータに実行させる、形態１７または１８に記載のプログラム。
［形態２０］
前記第１の情報および前記第２の情報に基づいて、前記第１の端子の入出力属性と前記第１の端子の接続先端子の入出力属性とが反対であるかどうか、および／または、前記第２の端子の入出力属性と前記第２の端子の接続先端子の入出力属性とが反対であるかどうかを確認する処理と、
少なくともいずれか一方が反対でない場合、その旨を出力する処理と、を前記コンピュータに実行させる、形態１７ないし１９のいずれか一に記載のプログラム。
【００７８】
なお、上記特許文献の全開示内容は、本書に引用をもって繰り込み記載されているものとする。本発明の全開示（請求の範囲を含む）の枠内において、さらにその基本的技術思想に基づいて、実施形態の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素（各請求項の各要素、各実施形態の各要素、各図面の各要素等を含む）の多様な組み合わせ、ないし、選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。特に、本書に記載した数値範囲については、当該範囲内に含まれる任意の数値ないし小範囲が、別段の記載のない場合でも具体的に記載されているものと解釈されるべきである。
【符号の説明】
【００７９】
１０    ＲＴＬ生成装置
１２    確認手段
１４    生成手段
２２    モジュールＤＢ
２４    端子ＤＢ
２６    エラー情報ＤＢ
５１、６１    欄
５２−５６、６２−６６  列
【図１】
2015138482.tif 000003
【図２】
2015138482.tif 000004
【図３】
2015138482.tif 000005
【図４】
2015138482.tif 000006
【図５】
2015138482.tif 000007
【図６】
2015138482.tif 000008
【図７】
2015138482.tif 000009
【図８】
2015138482.tif 000010
【図９】
2015138482.tif 000011
【図１０】
2015138482.tif 000012
【図１１】
2015138482.tif 000013
【図１２】
2015138482.tif 000014
【図１３】
2015138482.tif 000015
【図１４】
2015138482.tif 000016