(57)【要約】【課題】専用ソフトウェアを使わずに容易に回路構造を把握する技術を提供する。【解決手段】プログラムは、コンピュータに、ディレクトリ構造１００の階層情報を取得するステップ（Ｓ９１０）と、ディレクトリ構造１００内を検索して、 ハードウェア記述ファイルのパスを取得するステップ（Ｓ９２０）と、コンパイラ３０２に、ハードウェア記述ファイルおよび実行オプションを渡し、コンパイル処理を実行させるステップ（Ｓ９３０）と、コンパイラ３０２から、各モジュールの他のモジュールに対する参照情報を取得するステップと（Ｓ９４０）、取得した参照情報に基づいて、各モジュールに対応するディレクトリ構造２００を生成するステップ（Ｓ９５０）と、各モジュールに対応するディレクトリの中に、各モジュールを定義するハードウェア記述ファイルをそれぞれコピーするステップ（Ｓ９６０）とを実行させる。【選択図】図９
2020149559.tif 000002
【特許請求の範囲】
【請求項１】
ハードウェア記述ファイルをコンピュータに解析させるためのプログラムであって、前記プログラムは前記コンピュータに、
ファイルシステムに階層的に配置された複数のディレクトリの階層情報を取得するステップと、
前記階層情報に基づいて前記複数のディレクトリの内部を検索することにより、複数のハードウェア記述ファイルのパスを収集するステップと、
前記複数のハードウェア記述ファイルを前記ハードウェア記述ファイルのコンパイラに入力するステップとを実行させ、前記複数のハードウェア記述ファイルのそれぞれはモジュールを定義しており、
前記プログラムは前記コンピュータに、
前記コンパイラから、各モジュールの他のモジュールに対する参照情報を取得するステップと、
前記参照情報に基づいて、前記ファイルシステムに、各モジュールに対応するディレクトリを階層的に生成するステップと、
前記各モジュールに対応するディレクトリの中に、前記各モジュールを定義するハードウェア記述ファイルをそれぞれコピーするステップとを、実行させる、プログラム。
【請求項２】
ハードウェア記述ファイルを解析するためにコンピュータで実行されるプログラムであって、前記プログラムは前記コンピュータに、
ファイルシステムに階層的に配置された複数のディレクトリの階層情報を取得するステップと、
前記階層情報に基づいて前記複数のディレクトリの内部を検索することで、複数のハードウェア記述ファイルのパスを収集するステップと、
前記複数のハードウェア記述ファイルを前記ハードウェア記述ファイルのコンパイラに入力するステップとを実行させ、前記複数のハードウェア記述ファイルのそれぞれはモジュールを定義しており、
前記プログラムは前記コンピュータに、
前記コンパイラから、各モジュールの他のモジュールに対する参照情報を取得するステップと、
前記参照情報に基づいて、前記ファイルシステムに、各モジュールに対応するディレクトリを階層的に生成するステップと、
前記各モジュールに対応するディレクトリの中に、前記各モジュールを定義するハードウェア記述ファイルへのリンクファイルをそれぞれ生成するステップとを、実行させる、プログラム。
【請求項３】
前記各モジュールに対応するディレクトリと、前記各モジュールに対応するハードウェア記述ファイルとを含む階層情報をテキストファイルに出力するステップを、前記コンピュータにさらに実行させる、請求項１または２に記載のプログラム。
【請求項４】
前記各モジュールに対応するディレクトリと、前記各モジュールに対応するハードウェア記述ファイルとを含む階層情報をマークアップ言語により記述されたファイルに出力するステップを、前記コンピュータにさらに実行させる、請求項１または２に記載のプログラム。
【請求項５】
ハードウェア記述ファイルを解析するためにコンピュータで実行されるプログラムであって、前記プログラムは前記コンピュータに、
他の装置から、複数のディレクトリに階層的に配置された複数のハードウェア記述ファイルを含む第１のデータ群を受信するステップと、
前記第１のデータ群から前記複数のディレクトリのファイルシステムの階層情報を取得するステップと、
前記階層情報に基づいて前記複数のディレクトリの内部を検索することにより、複数のハードウェア記述ファイルのパスを収集するステップと、
前記複数のハードウェア記述ファイルを前記ハードウェア記述ファイルのコンパイラに入力するステップとを実行させ、前記複数のハードウェア記述ファイルのそれぞれはモジュールを定義しており、
前記プログラムは前記コンピュータに、
前記コンパイラから、各モジュールの他のモジュールに対する参照情報を取得するステップと、
前記参照情報に基づいて、前記コンピュータのファイルシステムに、各モジュールに対応するディレクトリを階層的に生成するステップと、
前記各モジュールに対応するディレクトリの中に、前記各モジュールを定義するハードウェア記述ファイルをそれぞれコピーするステップと、
前記各モジュールに対応するディレクトリおよび前記各モジュールを定義するハードウェア記述ファイルを含む第２のデータ群を前記他の装置に送信するステップとを、実行させる、プログラム。
【請求項６】
前記各モジュールに対応するディレクトリと、前記各モジュールに対応するハードウェア記述ファイルとを含む階層情報が出力されたテキストファイルを前記第２のデータ群に含めるステップを、前記コンピュータにさらに実行させる、請求項５に記載のプログラム。
【請求項７】
前記各モジュールに対応するディレクトリと、前記各モジュールに対応するハードウェア記述ファイルとを含む階層情報が出力されたマークアップ言語により記述されたファイルを前記第２のデータ群に含めるステップを、前記コンピュータにさらに実行させる、請求項５に記載のプログラム。
【請求項８】
ハードウェア記述ファイルを解析するためにコンピュータで実行されるプログラムであって、前記プログラムは前記コンピュータに、
前記コンピュータ内のバージョン管理プログラムのリポジトリから、複数のディレクトリに階層的に配置された複数のハードウェア記述ファイルを含む第１のデータ群を取得するステップと、
前記第１のデータ群から前記複数のディレクトリのファイルシステムの階層情報を取得するステップと、
前記階層情報に基づいて前記複数のディレクトリの内部を検索することにより、複数のハードウェア記述ファイルのパスを収集するステップと、
前記複数のハードウェア記述ファイルを前記ハードウェア記述ファイルのコンパイラに入力するステップとを実行させ、前記複数のハードウェア記述ファイルのそれぞれはモジュールを定義しており、
前記プログラムは前記コンピュータに、
前記コンパイラから、各モジュールの他のモジュールに対する参照情報を取得するステップと、
前記参照情報に基づいて、前記コンピュータのファイルシステムに、各モジュールに対応するディレクトリを階層的に生成するステップと、
前記各モジュールに対応するディレクトリの中に、前記各モジュールを定義するハードウェア記述ファイルをそれぞれコピーするステップとを、実行させる、プログラム。
【請求項９】
前記各モジュールに対応するディレクトリおよび前記各モジュールに対応するハードウェア記述ファイルを含む第２のデータ群を前記バージョン管理プログラムのリポジトリに登録するステップを、前記コンピュータにさらに実行させる、請求項８に記載のプログラム。
【請求項１０】
前記ハードウェア記述ファイルは、ＲＴＬ（Register Transfer Level）ファイルである、請求項１〜９のいずれか１項に記載のプログラム。
【請求項１１】
請求項１〜１０のいずれか１項に記載のプログラムを格納したメモリと、
前記プログラムを実行するためのプロセッサとを備える、コンピュータ。
【請求項１２】
ハードウェア記述ファイルを解析するための方法であって、
ファイルシステムに階層的に配置された複数のディレクトリの階層情報を取得するステップと、
前記階層情報に基づいて前記複数のディレクトリの内部を検索することにより、複数のハードウェア記述ファイルのパスを収集するステップと、
前記複数のハードウェア記述ファイルを前記ハードウェア記述ファイルのコンパイラに入力するステップとを含み、前記複数のハードウェア記述ファイルのそれぞれはモジュールを定義しており、
前記コンパイラから、各モジュールの他のモジュールに対する参照情報を取得するステップと、
前記参照情報に基づいて、前記ファイルシステムに、各モジュールに対応するディレクトリを階層的に生成するステップと、
前記各モジュールに対応するディレクトリの中に、前記各モジュールを定義するハードウェア記述ファイルをそれぞれコピーするステップとを含む、方法。
【請求項１３】
ハードウェア記述ファイルを解析するための方法であって、
ファイルシステムに階層的に配置された複数のディレクトリの階層情報を取得するステップと、
前記階層情報に基づいて前記複数のディレクトリの内部を検索することで、複数のハードウェア記述ファイルのパスを収集するステップと、
前記複数のハードウェア記述ファイルを前記ハードウェア記述ファイルのコンパイラに入力するステップとを含み、前記複数のハードウェア記述ファイルのそれぞれはモジュールを定義しており、
前記コンパイラから、各モジュールの他のモジュールに対する参照情報を取得するステップと、
前記参照情報に基づいて、前記ファイルシステムに、各モジュールに対応するディレクトリを階層的に生成するステップと、
前記各モジュールに対応するディレクトリの中に、前記各モジュールを定義するハードウェア記述ファイルへのリンクファイルをそれぞれ生成するステップとを含む、方法。
【請求項１４】
前記各モジュールに対応するディレクトリと、前記各モジュールに対応するハードウェア記述ファイルとを含む階層情報をテキストファイルに出力するステップをさらに含む、請求項１２または１３に記載の方法。
【請求項１５】
前記各モジュールに対応するディレクトリと、前記各モジュールに対応するハードウェア記述ファイルとを含む階層情報をマークアップ言語により記述されたファイルに出力するステップをさらに含む、請求項１２または１３に記載の方法。
【請求項１６】
ハードウェア記述ファイルを解析するための方法であって、
他の装置から、複数のディレクトリに階層的に配置された複数のハードウェア記述ファイルを含む第１のデータ群を受信するステップと、
前記第１のデータ群から前記複数のディレクトリのファイルシステムの階層情報を取得するステップと、
前記階層情報に基づいて前記複数のディレクトリの内部を検索することにより、複数のハードウェア記述ファイルのパスを収集するステップと、
前記複数のハードウェア記述ファイルを前記ハードウェア記述ファイルのコンパイラに入力するステップとを含み、前記複数のハードウェア記述ファイルのそれぞれはモジュールを定義しており、
前記コンパイラから、各モジュールの他のモジュールに対する参照情報を取得するステップと、
前記参照情報に基づいて、前記ファイルシステムに、各モジュールに対応するディレクトリを階層的に生成するステップと、
前記各モジュールに対応するディレクトリの中に、前記各モジュールを定義するハードウェア記述ファイルをそれぞれコピーするステップと、
前記各モジュールに対応するディレクトリおよび前記各モジュールを定義するハードウェア記述ファイルを含む第２のデータ群を前記他の装置に送信するステップとを含む、方法。
【請求項１７】
前記各モジュールに対応するディレクトリと、前記各モジュールに対応するハードウェア記述ファイルとを含む階層情報が出力されたテキストファイルを前記第２のデータ群に含めるステップをさらに含む、請求項１６に記載の方法。
【請求項１８】
前記各モジュールに対応するディレクトリと、前記各モジュールに対応するハードウェア記述ファイルとを含む階層情報が出力されたマークアップ言語により記述されたファイルを前記第２のデータ群に含めるステップをさらに含む、請求項１６に記載の方法。
【請求項１９】
ハードウェア記述ファイルを解析するための方法であって、
バージョン管理プログラムのリポジトリから、複数のディレクトリに階層的に配置された複数のハードウェア記述ファイルを含む第１のデータ群を取得するステップと、
前記第１のデータ群から前記複数のディレクトリのファイルシステムの階層情報を取得するステップと、
前記階層情報に基づいて前記複数のディレクトリの内部を検索することにより、複数のハードウェア記述ファイルのパスを収集するステップと、
前記複数のハードウェア記述ファイルを前記ハードウェア記述ファイルのコンパイラに入力するステップとを含み、前記複数のハードウェア記述ファイルのそれぞれはモジュールを定義しており、
前記コンパイラから、各モジュールの他のモジュールに対する参照情報を取得するステップと、
前記参照情報に基づいて、前記ファイルシステムに、各モジュールに対応するディレクトリを階層的に生成するステップと、
前記各モジュールに対応するディレクトリの中に、前記各モジュールを定義するハードウェア記述ファイルをそれぞれコピーするステップとを含む、方法。
【請求項２０】
前記各モジュールに対応するディレクトリおよび前記各モジュールに対応するハードウェア記述ファイルを含む第２のデータ群を前記バージョン管理プログラムのリポジトリに登録するステップをさらに含む、請求項１９に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、ハードウェア記述ファイルの解析に関し、より特定的には、ハードウェア記述ファイル間の参照関係の解析に関する。
【背景技術】
【０００２】
近年、大規模ＬＳＩ（Large Scale Integration）等の半導体装置の開発のために、回路の動作を記述するＲＴＬ（Register Transfer Level）等の手法を用いたハードウェア記述言語が用いられている。
【０００３】
通常、ハードウェア記述言語を用いた半導体装置回路設計では、ソフトウェア開発と同様に、回路の機能毎に作業者が割り当てられる。作業者は、ハードウェア記述言語を用いて、担回路の機能をハードウェア記述ファイルに記述する。
【０００４】
ハードウェア記述ファイルを保存するディレクトリや各ディレクトリの階層構造は、作業者によって異なり統一されていないこともある。そのため、開発を担当していない作業者にとって、目的のハードウェア記述ファイルの場所または半導体装置の回路構造を把握することは容易ではない。これらのハードウェア記述ファイルを解析し回路構造を把握するには、専用ソフトウェアでハードウェア記述ファイルをコンパイルする必要がある。しかし、専用ソフトウェアの実行環境を保有していない部門の作業者が回路構造を把握することは困難であった。
【０００５】
ハードウェア記述ファイルの解析に関して、例えば、特開平１１−１７５５７８号公報（特許文献１）は、「与えられたレジスタトランスファレベル記述モジュールを分割または併合する際に、分割または併合後に生成される新たなモジュールがその後に行われる論理合成等に適した回路規模となるように、分割または併合の対象となるモジュールのレジスタトランスファレベル記述の中からその一部を抜き出し、その抜き出された記述部分から新たなモジュールを自動生成する」方法を開示している（［要約］参照）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平１１−１７５５７８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
特許文献１に開示された技術によると、誰でも専用ソフトウェアを使わずに容易に回路構造を把握することができない。従って、誰でも専用ソフトウェアを使わずに容易に回路構造を把握することができる技術が必要とされている。本開示は、上記のような背景に鑑みてなされたものであって、ある局面における目的は、誰でも専用ソフトウェアを使わずに容易に回路構造を把握することができる技術を提供することにある。
【課題を解決するための手段】
【０００８】
ある実施の形態に従うプログラムは、コンピュータに、ファイルシステムに階層的に配置された複数のディレクトリの階層情報を取得するステップと、階層情報に基づいて複数のディレクトリの内部を検索することにより、複数のハードウェア記述ファイルのパスを収集するステップと、複数のハードウェア記述ファイルをハードウェア記述ファイルのコンパイラに入力するステップとを実行させる。複数のハードウェア記述ファイルのそれぞれはモジュールを定義している。プログラムはコンピュータに、コンパイラから、各モジュールの他のモジュールに対する参照情報を取得するステップと、参照情報に基づいて、ファイルシステムに、各モジュールに対応するディレクトリを階層的に生成するステップと、各モジュールに対応するディレクトリの中に、各モジュールを定義するハードウェア記述ファイルをそれぞれコピーするステップとを、実行させる。
【発明の効果】
【０００９】
この発明は、ハードウェア記述ファイルに定義される各モジュールに対応するディレクトリ構成を生成することにより、誰でも専用ソフトウェアを使わずに容易に回路構造を把握することを可能にする。
【図面の簡単な説明】
【００１０】
【図１】開発中のハードウェア記述ファイルのディレクトリ構造１００の一例を示す図である。
【図２】ディレクトリ構造２００の一例を示す図である。
【図３】ディレクトリ構造１００からディレクトリ構造２００を生成する手段の一例を示す図である。
【図４】ディレクトリ生成モジュール３０１を含むコンピュータ１０の構成の一例を示す図である。
【図５】ディレクトリ生成モジュール３０１がディレクトリ構造１００に基づいてディレクトリ構造２００を生成する処理の一例である。
【図６】ステップＳ５１０の詳細な処理内容の一例である。
【図７】ステップＳ５２０およびステップＳ５３０の詳細な処理内容の一例である。
【図８】ステップＳ５４０の詳細な処理内容の一例である。
【図９】ディレクトリ構造の階層情報をファイルとして出力する処理の詳細の一例である。
【図１０】ディレクトリ構造の階層情報をファイルとして出力する処理の詳細の一例である。
【図１１】ディレクトリ構造２００内に、ディレクトリ構造１００内のハードウェア記述ファイルのリンクファイルを生成する処理の詳細の一例である。
【図１２】ディレクトリ構造２００に含まれるモジュール名および、それらのモジュールの階層構造、インスタンス情報をテキストファイルに出力する処理の詳細の一例である。
【発明を実施するための形態】
【００１１】
以下、図面を参照しつつ、本開示に係る技術思想の実施の形態について説明する。以下の説明では、同一の部位には同一の符号を付してある。それらの名称および機能も同じである。したがって、それらについての詳細な説明は繰り返さない。
【００１２】
［実施例１］
図１は、開発中のハードウェア記述ファイルのディレクトリ構造１００の一例を示す図である。ディレクトリ構造１００は、コンピュータの記憶部に保存されているとする。ある局面において、コンピュータとは、例えば、ＰＣ（Personal Computer）、サーバ装置、タブレット端末、スマートフォンおよびクラウドサーバであってもよい。
【００１３】
最初に、ディレクトリ構造１００について説明する。ディレクトリ（「フォルダ」と呼ばれることもある）は、コンピュータの記憶部のファイルシステムにおいて、複数のファイルを格納することができる保管場所であり、データの仮想的な入れ物を意味する。ディレクトリは、階層構造をとることができ、ディレクトリの中（ディレクトリ「の下の階層」と呼ばれることもある）にあるディレクトリは、サブディレクトリ（子ディレクトリ）と呼ばれることもある。ディレクトリは、その内部に、サブディレクトリおよびファイルを格納できる。また、サブディレクトリは、同様に、その内部に、別のディレクトリおよびファイルを格納できる。本実施の例では、これらのディレクトリやファイルを全て含んだ階層構造をディレクトリ構造と呼ぶ。
【００１４】
本実施の形態に従うディレクトリ構造１００は、階層構造に配置された各ディレクトリ（ディレクトリ「１」，ディレクトリ「２」等）を含む。また、各ディレクトリは、その中にハードウェア記述ファイル（「ｅｅｅ．ｖ」，「ａａａ．ｖ」等）を含む。
【００１５】
次に、ハードウェア記述ファイルについて説明する。ハードウェア記述ファイルは、分割された半導体装置の各機能をモジュールという単位で定義する。各モジュールは、単体で機能する場合もあれば、他のモジュールを参照することで機能する場合もある。なお、本実施の例においては、ハードウェア記述ファイルの名称と、モジュールの名称とは同一であるとする。例えば、ハードウェア記述ファイル「ｅｅｅ．ｖ」は、モジュール「ｅｅｅ」を定義する。
【００１６】
また、各ハードウェア記述ファイルに含まれるモジュールは、プログラムのモジュールと同様に、他の各ハードウェア記述ファイルに含まれるモジュールを参照して呼び出すことができる。例えば、回路のシミュレーション等において、モジュール「Ａ」がモジュール「Ｂ」を参照する場合、モジュール「Ａ」はモジュール「Ｂ」を「インスタンス」として呼び出し得る。
【００１７】
「モジュール」とは、半導体装置の機能を定義したものであり、これに対して「インスタンス」とは、モジュールが実態を持ったものといえる。なお、ここでの「モジュールが実態を持つ」とは、コンピュータのＣＰＵ（Central Processing Unit）が、ＲＡＭ（Random Access Memory）上にモジュールの実行領域を確保することをいう。
【００１８】
ある局面において、ハードウェア記述ファイルは、ＲＴＬに基づいて記述されたファイルであってもよいが、これに限られるわけではない。本実施の例は、半導体装置の回路の機能をモジュールとして定義できるファイルであれば適用することができる。
【００１９】
次に、半導体装置の開発の進め方について説明する。本実施の例では、複数の作業者が、半導体装置の開発を行う。半導体装置の開発中、開発を担当する各作業者は、ディレクトリの名称と場所を自由に決めてよく、どのハードウェア記述ファイルをどのディレクトリに置くかも決めてよいものとする。
【００２０】
各作業者は、ディレクトリ名称と、担当のハードウェア記述ファイルの位置とを自身が開発しやすいように決めることができる。例えば、作業者Ｘは、ディレクトリ「１，２」を作成し、ディレクトリ「１，２」の中に（直下に）、それぞれハードウェア記述ファイル「ｅｅｅ．ｖ，ａａａ．ｖ」作成する。また、作業者Ｙは、ディレクトリ「５」を作成し、ディレクトリ「５」の中に、ハードウェア記述ファイル「ｂｂｂ．ｖ，ｈｈｈ．ｖ」作成する。以下同様に、他の作業者も、それぞれディレクトリ名称と、担当のハードウェア記述ファイルの位置とを決める。
【００２１】
つまり、ディレクトリ構造１００は、各作業者が開発を行いやすいようにディレクトリ名称やハードウェア記述ファイルの位置を決定した結果できたものであり、必ずしも、各ハードウェア記述ファイルにより定義されるモジュール間の参照関係に基づいて整理されているわけではない。
【００２２】
次に、複数の作業者が共同で半導体装置の開発を行う際の問題点について説明する。上述したように、ディレクトリ構造１００は、開発を担当する各作業者にとって開発しやすいようにディレクトリおよびハードウェア記述ファイルが配置されたものである。そのため、複数の作業者により作成されたディレクトリ構造１００の階層構造は、厳密な意味を持つとは限らない。そのため、開発を担当していない作業者が、開発中の半導体装置の回路構成を把握できない、または、目的の機能を定義するモジュールの場所を発見できない等の問題が生じ得る。
【００２３】
作業者は、ハードウェア記述ファイルのコンパイル機能を有する専用ソフトウェアを使用することにより、ディレクトリ構造１００に含まれるハードウェア記述ファイルを解析して半導体装置の回路構成を把握することができる。しかし、専用ソフトウェアは、予算等の制約により、会社の全ての部門に導入されない場合がある。そのため、誰もが特別なソフトウェアを使用することなく、半導体装置の回路構成および各ハードウェア記述ファイルの位置を確認できることが望ましい。
【００２４】
そこで、以下に、誰もが特別なソフトウェアを使用することなく、半導体装置の回路構成および各ハードウェア記述ファイルの位置を確認することができるディレクトリ構造２００について説明する。
【００２５】
図２は、ディレクトリ構造２００の一例を示す図である。最初に、ディレクトリ構造２００およびディレクトリ構造１００の差異について説明する。ディレクトリ構造２００に含まれるディレクトリの名称は、いずれもハードウェア記述ファイルで定義されたモジュールと同じ名称である。また、各ディレクトリは、その中にディレクトリと同一の名称のモジュールを定義したハードウェア記述ファイルを含む。さらに、各ディレクトリの階層構造は、各モジュールの参照関係に基づく。例えば、モジュール「ａａａ」は、モジュール「ｂｂｂ，ｃｃｃ」を参照し、モジュール「ｂｂｂ」は、モジュール「ｇｇｇ，ｅｅｅ」を参照する。
【００２６】
上記の内容からわかるように、ディレクトリ構造１００の階層構造が、開発を担当する作業者の開発のしやすさという主観に基づいているのに対して、ディレクトリ構造２００の階層構造は、明確にモジュール間の参照関係に基づいている。
【００２７】
次に、作業者がディレクトリ構造２００を参照することで半導体装置の回路構成およびハードウェア記述ファイルの位置を把握できる理由について説明する。ディレクトリ構造２００がモジュールの参照関係に基づいているということは、最上位ディレクトリから順に、半導体装置の機能を実現するためにトップダウン形式で、関連するモジュールが配置されていることを意味する。例えば、モジュール「ｂｂｂ」が、「映像機能」を実現するためのモジュールであり、モジュール「ｃｃｃ」が「オーディオ機能」を実現するためのモジュールであるとする。そうすると、「映像機能」に関連するモジュールは、必ずディレクトリ「ｂｂｂ」の下の階層にあることがわかる。同様に、「オーディオ機能」に関連するモジュールは、必ずディレクトリ「ｃｃｃ」の下の階層にあることがわかる。
【００２８】
「映像機能」を実現する最上位のモジュールがモジュール「ｂｂｂ」であるならば、その下の階層のモジュール「ｇｇｇ」は「映像機能」を実現するための中部品であり、その下の階層のモジュール「ｆｆｆ」は「映像機能」を実現するための小部品であることがわかる。つまり、作業者はディレクトリ構造２００を階層的に調べることにより、自然と機能ごとの回路構成を確認することができる。
【００２９】
以上の説明から、ディレクトリ構造２００は、作業者が半導体装置の装置構成を把握するのに適していることがわかる。一方で、ディレクトリ構造１００は、半導体装置の開発を担当する作業者にとってより開発がしやすい場合も考えられる。
【００３０】
そのため、ディレクトリ構造１００からディレクトリ構造２００を生成することができれば、作業者は使い慣れたディレクトリ構造１００を用いて開発を行い、かつ、開発を担当していない作業者はディレクトリ構造２００を用いて半導体装置の回路構成を容易に把握することができる。
【００３１】
なお、図１および図２に示すディレクトリ構造１００，２００は、あくまで例示であり、本実施の形態の適用範囲はこれらに限られるわけではない。これ以降、本実施の例において、ディレクトリ構造１００を例に説明する内容は、作業者が生成した任意のディレクトリ構造に対して適用可能である。同様に、これ以降、本実施の例において、ディレクトリ構造２００を例に説明する内容は、モジュールの参照関係に基づいて生成された任意のディレクトリ構造に対して適用可能である。
【００３２】
図３は、ディレクトリ構造１００からディレクトリ構造２００を生成する手段の一例を示す図である。ディレクトリ生成モジュール３０１は、ディレクトリ構造１００のディレクトリの階層情報を取得し、ハードウェア記述ファイルのコンパイラ３０２と連携し、ディレクトリ構造１００に基づいてディレクトリ構造２００を生成する。コンピュータは、ディレクトリ生成モジュール３０１をプログラムとして実行してもよいし、ディレクトリ生成モジュール３０１を専用のハードウェアとして備えていてもよい。以降、ディレクトリ生成モジュール３０１は、図４に示すコンピュータ１０のハードウェア上で実行されるプログラムであるとして説明する。
【００３３】
図４は、ディレクトリ生成モジュール３０１を含むコンピュータ１０の構成の一例を示す図である。図４を参照して、コンピュータ１０は、制御装置１１と、１次記憶装置１２と、２次記憶装置１３と、外部機器インターフェース１４と、入力インターフェース１５と、出力インターフェース１６と、通信インターフェース１７とを備える。また、コンピュータ１０は、外部記憶装置１８および表示装置１９をさらに備えていてもよい。
【００３４】
制御装置１１は、コンピュータ１０で動作するプログラムやデータを処理する。１次記憶装置１２は、制御装置１１によって実行されるプログラムおよび参照されるデータを格納する。ある局面において、ＤＲＡＭ（Dynamic Random Access Memory）が１次記憶装置１２として使用されてもよい。
【００３５】
２次記憶装置１３は、プログラムやデータ等を長期間記憶する。一般的に２次記憶装置１３は、１次記憶装置１２よりも低速であるため、制御装置１１で直接使用するデータは、１次記憶装置１２に配置され、それ以外のデータは、２次記憶装置１３に配置される。ある局面において、ＨＤＤ（Hard Disk Drive）やＳＳＤ（Solid State Drive）等の不揮発性の記憶装置が２次記憶装置１３として使用されてもよい。
【００３６】
外部機器インターフェース１４は、コンピュータ１０に補助デバイスを接続する場合等に使用される。ある局面において、ＵＳＢ（Universal Serial Bus）インターフェースが、外部機器インターフェース１４として使用されてもよい。入力インターフェース１５は、キーボードやマウス等を接続するために使用される。ある局面において、ＵＳＢインターフェースが、入力インターフェース１５として使用されてもよい。
【００３７】
出力インターフェース１６は、ディスプレイ等の出力デバイスを接続するために使用される。ある局面において、ＨＤＭＩ（登録商標）（High-Definition Multimedia Interface）やＤＶＩ（Digital Visual Interface）が出力インターフェース１６として使用されてもよい。または、コンピュータ１０がサーバーマシンの場合には、コンピュータ１０は、外部の端末と通信するためのシリアルインターフェースを備えてもよい。
【００３８】
通信インターフェース１７は、外部の通信機器と通信するために使用される。ある局面において、ＬＡＮ（Local Area Network）ポートや、Ｗｉ−Ｆｉ（登録商標）（Wireless Fidelity）の送受信装置等が、通信インターフェース１７として使用されてもよい。
【００３９】
外部記憶装置１８は、外部機器インターフェース１４を介して、コンピュータ１０に接続される。外部記憶装置１８は、１次記憶装置１２と同様に制御装置１１によって実行されるプログラムおよび参照されるデータを格納する。ある局面において、外部記憶装置１８は、外付けＨＤＤドライブおよび外付けＳＳＤドライブであってもよい。
【００４０】
表示装置１９は、出力インターフェース１６を介して、コンピュータ１０に接続される。表示装置１９は、制御装置１１によって実行されるプログラムの実行結果等を表示する。ある局面において、表示装置１９は、液晶モニターやプロジェクターであってもよい。
【００４１】
また、ある局面において、コンピュータ１０は、ＰＣ、ワークステーションまたはデータセンターのクラウド上に設けられた仮想マシンであってもよい。また、ある局面において、ディレクトリ生成モジュール３０１およびコンパイラ３０２は、図４のハードウェア上でプログラムとしてＣＰＵに実行されてもよい。また、ディレクトリ構造１００およびディレクトリ構造２００は、図４のハードウェア上でデータとしてＣＰＵに参照されてもよい。
【００４２】
図５は、ディレクトリ生成モジュール３０１がディレクトリ構造１００に基づいてディレクトリ構造２００を生成する処理の一例である。ある局面において、制御装置１１は、図５の処理を行うためのプログラムとしてディレクトリ生成モジュール３０１およびコンパイラ３０２を１次記憶装置１２から読み出して実行してもよい。
【００４３】
ステップＳ５１０において、ディレクトリ生成モジュール３０１は、ディレクトリ構造１００から、コンパイル対象となるハードウェア記述ファイルのリスト（ＲＴＬファイルのリスト）を生成する。
【００４４】
ステップＳ５２０において、ディレクトリ生成モジュール３０１は、ハードウェア記述ファイルのリストおよび実行オプションを引数として、コンパイラ３０２をキックする。キックするとは、あるプログラムから他のプログラムを起動することをいう。コンパイラ３０２は、実行オプションに基づいて、取得したハードウェア記述ファイルを解析してコンパイルする。また、コンパイラ３０２は、ハードウェア記述ファイルに定義されるモジュールの階層構造を生成する。
【００４５】
ステップＳ５３０において、ディレクトリ生成モジュール３０１は、コンパイラ３０２によって生成された各モジュールの階層構造を取得する。
【００４６】
ステップＳ５４０において、ディレクトリ生成モジュール３０１は、取得した各モジュールの階層構造に基づいて、各モジュールの階層構造と同じになるようにディレクトリ構造２００の各ディレクトリを生成する。また、ディレクトリ生成モジュール３０１は、ディレクトリ構造１００からディレクトリ構造２００に、ハードウェア記述ファイルをコピーする。図２に示すように、コピーされたハードウェア記述ファイルは、それぞれ、各ハードウェア記述ファイルに定義されるモジュールに対応するディレクトリの直下にコピーされる。
【００４７】
図６〜図８を参照して、図５のステップＳ５１０〜ステップＳ５４０の処理の詳細について説明する。なお、これ以降、制御装置１１が、プログラムであるディレクトリ生成モジュール３０１およびコンパイラ３０２を実行するものとして説明する。また、ディレクトリ構造１００，２００は、コンピュータ１０の２次記憶装置１３に保存されるものとして説明する。さらに、ディレクトリ生成モジュール３０１は、入力インターフェース１５の入力に基づいて、制御装置１１に実行されるコマンドラインプログラムであり、ディレクトリ生成モジュール３０１の実行結果は表示装置１９に表示されるものとして説明する。ただし、図６〜図８に示すコードは一例であり、図５の処理の実現方法はこれらに限られない。
【００４８】
ある局面において、コンピュータ１０は、ウェブサービスとして、ディレクトリ生成モジュール３０１の機能を提供してもよい。その場合、制御装置１１は、通信インターフェース１７を介して、他の装置からディレクトリ構造１００を受信し、制御装置１１は、ディレクトリ生成モジュール３０１を用いて、ディレクトリ構造１００からディレクトリ構造２００を生成して他の装置に返信してもよい。制御装置１１は、ディレクトリ構造１００からディレクトリ構造２００を生成する場合、図６〜図８の処理を実行する。なお、通信インターフェース１７は、ウェブＡＰＩ（Application Programming Interface）やブラウザ経由で、他の装置と、ディレクトリ構造１００，２００を送受信してもよい。また、ある局面において、コンピュータ１０は、後述する図９以降の処理を実行することにより生成される各種ファイルをウェブサービスの実行結果データに含めてもよい。
【００４９】
また、ある局面において、コンピュータ１０は、ＧＩＴやＳｕｂｖｅｒｓｉｏｎ等のバージョン管理システムを含んでいてもよい。制御装置１１は、バージョン管理システムのリポジトリに含まれるディレクトリ構造に対して、図５の処理を実行してもよい。その場合、制御装置１１は、ディレクトリ生成モジュール３０１を用いて、リポジトリに含まれるディレクトリ構造１００に基づいて、ディレクトリ構造２００を生成する。制御装置１１は、ディレクトリ構造１００からディレクトリ構造２００を生成する場合は、図６〜図８の処理を実行する。なお、制御装置１１は、バージョン管理システムのリポジトリに含まれる複数のディレクトリ構造を合わせて１つのディレクトリ構造１００として扱ってもよい。
【００５０】
ある局面において、制御装置１１は、生成したディレクトリ構造２００を自装置内のＧＩＴやＳｕｂｖｅｒｓｉｏｎ等のバージョン管理システムのリポジトリに登録してもよい。また、ある局面において、コンピュータ１０は、自装置内のＧＩＴやＳｕｂｖｅｒｓｉｏｎ等のバージョン管理システムのリポジトリに含まれるディレクトリ構造に対して、図５の処理を実行し、その実行結果データを返信するウェブサービスを提供してもよい。
【００５１】
図６は、ステップＳ５１０の詳細な処理内容の一例である。図６を参照して、ディレクトリ構造１００を例にステップＳ５１０の詳細な処理内容を説明する。コード６００は、制御装置１１がステップＳ５１０の処理を実行するためのプログラムの一例の抜粋である。コード６０１，６０２は、コード６００のさらに一部を示す。
【００５２】
コード６０１の処理において、制御装置１１は、カレントディレクトリの直下のファイルリストを生成する。図１の例では、ディレクトリ「１」が、カレントディレクトリになる。制御装置１１は、ファイルを見つけられなかった場合は、ファイルリストの生成処理を終了する。図１の例では、制御装置１１は、カレントディレクトリ「１」の直下で、「ｅｅｅ．ｖ」，ディレクトリ「２」，ディレクトリ「４」およびディレクトリ「５」を見つける（ここでは、ディレクトリもファイルの一種類として説明している）。
【００５３】
なお、図６の例では、制御装置１１は、カレントディレクトリのファイルリストを生成しているが、ステップＳ５１０の実現例はこれに限られるわけではない。制御装置１１は、コマンドラインやＧＵＩ（Graphical User Interface）からの入力によりファイルシステム上のパスを指定されたことに基づいて、指定されたディレクトリ直下のファイルリストを生成してもよい。
【００５４】
コード６０２の処理において、制御装置１１は、コード６０１の実行により取得したファイルリストに含まれるファイルのそれぞれに対して以下の処理を行う。
【００５５】
（１）ファイルリストに含まれるファイルがディレクトリ（以下、ディレクトリ「Ａ」と呼ぶ）である場合、制御装置１１は、ディレクトリ「Ａ」をインクルードファイルのリストに追加する。ディレクトリ「Ａ」の内部にコンパイルに必要なインクルードファイルが含まれる可能性があるためである。制御装置１１は、コンパイラ３０２をキックする際に、インクルードファイルのリストを引数としてコンパイラ３０２に渡す。併せて、制御装置１１は、ディレクトリ「Ａ」を引数にしてコード６００の処理を再帰的に実行する。図１の例では、制御装置１１は、ディレクトリ「１」にコード６０２の処理を実行した後に、ディレクトリ「２」、ディレクトリ「４」およびディレクトリ「５」に対して、（１）の処理を実行する。
【００５６】
（２）ファイルリストに含まれるファイルがハードウェア記述ファイル（以下、ハードウェア記述ファイル「Ｂ」と呼ぶ）である場合、制御装置１１は、ハードウェア記述ファイル「Ｂ」をコンパイル対象のリストに追加する。制御装置１１は、コンパイラ３０２をキックする際に、コンパイル対象のリストを引数としてコンパイラ３０２に渡す。ある局面において、ハードウェア記述ファイルがＶｅｒｉｌｏｇで記載されていた場合、制御装置１１は、ファイルの拡張子「．ｖ」，「．ｓｖ」を確認することによって、そのファイルがハードウェア記述ファイルであるか否かを確認し得る。図１の例では、制御装置１１は、「ｅｅｅ．ｖ」に対して、（２）の処理を実行する。
【００５７】
（３）ファイルリストに含まれるファイルがディレクトリでもハードウェア記述ファイルでもないその他のファイル（以下、ファイル「Ｃ」と呼ぶ）の場合、制御装置１１は、ファイル「Ｃ」をインクルードファイルのリストおよびコンパイル対象のリストのいずれにも含めない。
【００５８】
図７は、ステップＳ５２０およびステップＳ５３０の詳細な処理内容の一例である。図７を参照して、ディレクトリ構造１００を例にステップＳ５２０およびステップＳ５３０の詳細な処理内容を説明する。コード７００は、制御装置１１がステップＳ５２０およびステップＳ５３０の処理を実行するためのプログラムの一例の抜粋である。コード７０１，７０２，７０３は、コード７００のさらに一部を示す。
【００５９】
コード７０１の処理において、制御装置１１は、インクルードファイルのリストに含まれるディレクトリを全てコンパイラに渡す。図１の例では、ディレクトリ「２」〜ディレクトリ「７」が、インクルードファイルのリストに含まれる。なお、制御装置１１は、ディレクトリ「１」より下の階層のディレクトリに対してコード６００の処理を実行しているため、インクルードファイルのリストにディレクトリ「１」は含まれない。
【００６０】
コード７０２の処理において、制御装置１１は、コンパイル対象のリストに含まれるハードウェア記述ファイルを全てコンパイラに渡す。図１の例では、ディレクトリ「１」より下の階層の全てのハードウェア記述ファイル「ａａａ．ｖ」〜「ｈｈｈ．ｖ」が、インクルードファイルのリストに含まれる。
【００６１】
コード７０３の処理において、制御装置１１は、コンパイラによって処理されたモジュール間のリンクの階層情報のリストを取得する。図１の例では、制御装置１１は、ハードウェア記述ファイル「ａａａ．ｖ」〜「ｈｈｈ．ｖ」に定義されたモジュール間のリンクの階層情報のリストを取得する。
【００６２】
図８は、ステップＳ５４０の詳細な処理内容の一例である。図８を参照して、ディレクトリ構造２００を例にステップＳ５４０の詳細な処理内容を説明する。コード８００は、制御装置１１がステップＳ５４０の処理を実行するためのプログラムの一例の抜粋である。コード８０１，８０２，８０３は、コード８００のさらに一部を示す。
【００６３】
コード８０１の処理において、制御装置１１は、コード７０３の処理で取得したモジュール間のリンクの階層情報のリストに含まれる各モジュール名を順次取り出して、以下の処理を行う。
【００６４】
（１）モジュール間のリンクの階層情報のリストから取り出されたモジュール名が、最上位モジュールである場合、制御装置１１は、最上位モジュールとを同じ名称のディレクトリを作成する。図２の例では、制御装置１１は、最上位モジュール「ａａａ」に基づいて、ディレクトリ「ａａａ」を生成する。
【００６５】
（２）モジュール間のリンクの階層情報のリストから取り出されたモジュール名が、最上位モジュールではない場合、制御装置１１は、インスタンスとして呼び出されるモジュール名と同じ名称のディレクトリを作成する。なお、モジュールＡがモジュールＢをインスタンスとして呼び出す場合、制御装置１１は、ディレクトリ「Ａ」の直下にディレクトリ「Ｂ」を生成する。図２の例では、モジュール「ａａａ」は、インスタンスとしてモジュール「ｂｂｂ」および「ｃｃｃ」を呼び出すので、制御装置１１は、ディレクトリ「ａａａ」の直下にディレクトリ「ｂｂｂ」およびディレクトリ「ｃｃｃ」を生成する。
【００６６】
コード８０２の処理において、制御装置１１は、生成したディレクトリの直下に、ディレクトリ名に対応するハードウェア記述ファイルをコピーする。図１および図２の例では、制御装置１１は、パス「＊／ディレクトリ１／ディレクトリ２／」にあるハードウェア記述ファイル「ａａａ．ｖ」をパス「＊／ａａａ／」にコピーする。制御装置１１は、他のハードウェア記述ファイルも同様にコピーする。
【００６７】
コード８０３の処理において、コード８０１およびコード８０２で処理されたモジュールがさらに下位のモジュールをインスタンスとして呼び出す場合、制御装置１１は、再帰的に下位のモジュールに対してコード８０１およびコード８０２の処理を実行する。
【００６８】
図９は、ディレクトリ構造１００からディレクトリ構造２００を生成する処理の一例を示す図である。図９に示すフローは、図６〜図８に示すコードに対応する。以下の説明では、制御装置１１が、プログラムであるディレクトリ生成モジュール３０１およびコンパイラ３０２を実行するものとして説明する。また、ディレクトリ構造１００，２００は、コンピュータ１０の２次記憶装置１３に保存されるものとして説明する。
【００６９】
ステップＳ９１０において、制御装置１１は、ディレクトリ構造１００の階層情報を取得する。または、制御装置１１は、ディレクトリ構造１００に含まれる各ディレクトリのファイルシステム上のパスを取得する。
【００７０】
ステップＳ９２０において、制御装置１１は、取得したディレクトリ構造１００の階層情報に基づいて、ディレクトリ構造１００に含まれるハードウェア記述ファイルのパスを全て取得する。
【００７１】
ステップＳ９３０において、制御装置１１は、コンパイラ３０２に、ハードウェア記述ファイルおよびコンパイルの実行オプションを渡し、コンパイラ３０２にコンパイル処理を実行させる。
【００７２】
ステップＳ９４０において、制御装置１１は、コンパイラ３０２から、各モジュールの他のモジュールに対する参照情報を取得する。各モジュールの他のモジュールに対する参照情報の例として、モジュール「ａａａ」は、モジュール「ｂｂｂ，ｃｃｃ」を参照し、モジュール「ｂｂｂ」は、モジュール「ｇｇｇ，ｅｅｅ」を参照する。
【００７３】
ステップＳ９５０において、制御装置１１は、コンパイラ３０２から取得した参照情報に基づいて、各モジュールに対応するディレクトリ構造２００を生成する。そのため、ディレクトリ構造２００は、各モジュールの参照関係に基づいたディレクトリ構造となる。
【００７４】
ステップＳ９６０において、制御装置１１は、ディレクトリ構成２００内の各モジュールに対応するディレクトリの中に、ディレクトリ構造１００から各モジュールを定義するハードウェア記述ファイルをそれぞれコピーする。
【００７５】
以上の説明から、制御装置１１は、図５〜図９の処理を実行することで、作業者が生成したディレクトリ構造１００から、誰もが特別なプログラムを必要とすることなく半導体装置の回路構成を把握できるディレクトリ構造２００を生成することができる。
【００７６】
［実施例２］
次に、第２の実施の形態について説明する。第２の実施の形態は、ディレクトリ構造１００の階層情報をファイルとして出力する点で、前述の第１の実施の形態とは異なる。
【００７７】
図１０は、ディレクトリ構造の階層情報をファイルとして出力する処理の詳細の一例である。コード１０００は、制御装置１１がディレクトリ構造１００の階層情報をファイルとして出力する処理を実行するためのプログラムの一例の抜粋である。コード１００１，１００２は、コード１０００のさらに一部を示す。なお、図１０に示すコード１０００は、コード６０２の一部を修正したものである。そのため、制御装置１１は、第１の実施の形態の処理と併せてコード１０００の処理を実行することができる。
【００７８】
コード１００１の処理おいて、制御装置１１は、ディレクトリ構造１００内で、拡張子が「．ｖ」および「．ｓｖ」以外のファイルを発見した場合、テキストファイル「ＵＮＲＥＡＤ．ＴＸＴ」に、発見したファイルを保存する。テキストファイル「ＵＮＲＥＡＤ．ＴＸＴ」は、コンパイル対象ではないファイルの一覧を含む。
【００７９】
コード１００２の処理おいて、制御装置１１は、ディレクトリ構造１００内で、拡張子が「．ｖ」および「．ｓｖ」のファイルを発見した場合、テキストファイル「ＲＴＬＬＩＳＴ．ＴＸＴ」に、発見したファイルを保存する。テキストファイル「ＲＴＬＬＩＳＴ．ＴＸＴ」は、コンパイル対象のファイルの一覧を含む。
【００８０】
なお、制御装置１１は、ディレクトリ構造２００に対し、図６および図１０の処理の中からコンパイルの処理を削除したコードを実行してもよい。そうすることで、制御装置１１は、ディレクトリ構造２００から、テキストファイル「ＵＮＲＥＡＤ．ＴＸＴ」および「ＲＴＬＬＩＳＴ．ＴＸＴ」を生成することもできる。その場合、制御装置１１は、テキストファイル「ＵＮＲＥＡＤ．ＴＸＴ」に含まれるファイルも、ディレクトリ構造２００にコピーしておく必要がある。例えば、制御装置１１は、ディレクトリ構造１００内で「ｂｂｂ．ｖ」と同じ場所にあったファイルを、ディレクトリ構造２００内の「ｂｂｂ．ｖ」と同じ場所にコピーしてもよい。
【００８１】
また、本実施の例においては、制御装置１１は、ディレクトリ構造１００，２００の階層情報をテキストファイルに出力しているが、階層情報が出力されるファイルのフォーマットはこれに限られるわけではない。ある局面において、階層情報が出力されるファイルは、ＨＴＭＬ（HyperText Markup Language）ファイルやＸＭＬ（Extensible Markup Language）ファイル等のマークアップ言語で記述されたファイル、ＣＳＶ（Comma-Separated Values）ファイル、ＪＳＯＮ（JavaScript（登録商標） Object Notation）ファイルおよびその他のテキスト情報を含むファイルであってもよい。
【００８２】
また、ある局面において、作業者は、テキストエディタ、ブラウザおよび表計算ソフトウェア等を用いて、階層情報が出力されるファイルを参照してもよい。
【００８３】
以上の説明から、制御装置１１は、図６〜８の処理と併せて図１０の処理を実行することで、ディレクトリ構造１００およびディレクトリ構造２００から、ディレクトリ構造内に含まれるファイルの一覧を取得することができる。そうすることで、誰もが、出力されたファイルを参照するだけで、半導体装置の開発で生成されたファイルの一覧を確認することができる。
【００８４】
［実施例３］
次に、第３の実施の形態について説明する。第３の実施の形態は、ディレクトリ構造１００からディレクトリ構造２００に、ハードウェア記述ファイルをコピーせず、代わりにそれぞれのハードウェア記述ファイルのリンクファイルを生成する点で前述の第１および第２の実施の形態とは異なる。
【００８５】
図１１は、ディレクトリ構造２００内に、ディレクトリ構造１００内のハードウェア記述ファイルのリンクファイルを生成する処理の詳細の一例である。
【００８６】
コード１１００は、制御装置１１が、ディレクトリ構造２００内に、ディレクトリ構造１００内のハードウェア記述ファイルのリンクファイルを生成する処理を実行するためのプログラムの一例の抜粋である。なお、コード８０２は、コード１１００に置き換えることができる。
【００８７】
コード１１００の処理において、制御装置１１は、ディレクトリ構造２００内のディレクトリのパスと、ディレクトリ構造１００内のハードウェア記述ファイルのパスとを取得する。そして、制御装置１１は、取得したディレクトリ構造１００内のハードウェア記述ファイルのリンクファイルをディレクトリ構造２００内のディレクトリ内に生成する。
【００８８】
図１および図２の例では、制御装置１１は、例えば、ディレクトリ構造１００内の「＊／ディレクトリ１／ディレクトリ２／ａａａ．ｖ」のリンクファイルを、ディレクトリ構造２００内の「＊／ａａａ／」直下に生成する。制御装置１１は、他のハードウェア記述ファイルに関しても同様にディレクトリ構造２００内にリンクファイルを生成する。
【００８９】
以上の説明から、制御装置１１は、図６〜８の処理のコード８０２に換えて、図１１の処理を実行することで、ディレクトリ構造２００に、ディレクトリ構造１００内のハードウェア記述ファイルのリンクファイルを生成することができる。そうすることで、コンピュータ１０の２次記憶装置１３の使用領域を削減することができる。
【００９０】
［実施例４］
次に、第４の実施の形態について説明する。第４の実施の形態は、ディレクトリ構造２００を生成後に、ディレクトリ構造２００に含まれるモジュール名および、それらのモジュールの階層構造、インスタンス情報をテキストファイルに出力する点で、前述の第１から第３の実施の形態とは異なる。
【００９１】
図１２は、ディレクトリ構造２００に含まれるモジュール名および、それらのモジュールの階層構造、インスタンス情報をテキストファイルに出力する処理の詳細の一例である。
【００９２】
制御装置１１は、図８の処理の後にコード１２００の処理を実行することで、ディレクトリ構造２００に含まれるモジュール名および、それらのモジュールの階層構造、インスタンス情報をテキストファイルに出力する。
【００９３】
本実施の例においては、制御装置１１は、各種情報をテキストファイルに出力しているが、各種情報が出力されるファイルのフォーマットはこれに限られない。ある局面において、階層情報が出力されるファイルは、ＨＴＭＬファイルやＸＭＬファイル等のマークアップ言語で記述されたファイル、ＣＳＶファイル、ＪＳＯＮファイルおよびその他のテキスト情報を含むファイルであってもよい。
【００９４】
また、ある局面において、作業者は、テキストエディタ、ブラウザおよび表計算ソフトウェア等を用いて、階層情報が出力されるファイルを参照してもよい。
【００９５】
以上の説明から、制御装置１１は、図１２の処理を実行することで、ディレクトリ構造２００から、ディレクトリ構造２００に含まれるモジュール名および、それらのモジュールの階層構造、インスタンス情報の一覧を取得することができる。そうすることで、誰もが、出力されたファイルを参照するだけで、容易に半導体装置の回路構成を把握することができる。
【００９６】
今回開示された実施の形態は全ての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内で全ての変更が含まれることが意図される。
【符号の説明】
【００９７】
１，２  ディレクトリ、１０  コンピュータ、１１  制御装置、１２  １次記憶装置、１３  ２次記憶装置、１４  外部機器インターフェース、１５  入力インターフェース、１６  出力インターフェース、１７  通信インターフェース、１８  外部記憶装置、１９  表示装置、１００，２００  ディレクトリ構造、３０１  ディレクトリ生成モジュール、３０２  コンパイラ。
【図１】
2020149559.tif 000003
【図２】
2020149559.tif 000004
【図３】
2020149559.tif 000005
【図４】
2020149559.tif 000006
【図５】
2020149559.tif 000007
【図６】
2020149559.tif 000008
【図７】
2020149559.tif 000009
【図８】
2020149559.tif 000010
【図９】
2020149559.tif 000011
【図１０】
2020149559.tif 000012
【図１１】
2020149559.tif 000013
【図１２】
2020149559.tif 000014