Vengineerの妄想(準備期間)

人生は短いけど、長いです。人生を楽しみましょう!

Aldec :プロジェクトファイル


Aldecシリーズの第2弾は、プロジェクトファイルについてです。

プロジェクトファイル(rdsn、rwsp)は、XMLライクなフォーマットを使用しています。
rwspは、riviera-workspaceの略。これがワークスペース用ファイル。

サンプルのプロジェクトファイルとして、examples/interface/dpi/basicディレクトリにあるものを見てみます。
このサンプルは、DPI-Cの例題でVerilog HDLとC++コードがプロジェクト内にあります。

デザインは下記のように指定します。この場合は、basic.rdsnがデザインファイルになります。
デザインは、複数していすることができます。
    <designs>
        <design path="basic.rdsn" />
    </designs>
デフォルトのデザインは、次のようにactive-designにて指定します。
    <active-design name="basic" />
コンフィギュレーションを設定できます。
このコンフィギュレーションとは、MicrosoftVisual StudioのRelase/Debugなどと同じようなものを設定するもの。
たとえば、
    <configurations>
        <configuration name="optimized" >
            <design name="basic" configuration="optimized" />
        </configuration>
        <configuration name="debug" >
            <design name="basic" configuration="debug" />
        </configuration>
    </configurations>
な設定がされていた場合は、2つのコンフィギュレーション(optimizedとdebug)が存在することになります。
デフォルトのコンフィギュレーションは、
    <active-configuration name="debug" />
のように設定し、この場合は、"debug"になります。

rdsnは、riviera-designの略でデザインファイル。
デザインファイルにもコンフィギュレーションを指定します。
rwspで指定したconfigurationと同じもの。
    <configurations>
        <configuration name="optimized" />
        <configuration name="debug" />
    </configurations>
propertiesにて、各コンフィギュレーションで何をするかを指定します。
optimizedとdebugの2つをそれぞれ指定します。
違いは、
  1)、中間コード用ディレクトリ名
  2)、コンパイル(Verilog HDL/c++)時のデバック情報のON/OFF
  3)、シミュレーション時のデバック機能のON/OFF
    <properties>
        <configuration name="optimized" >
            <global>
                <intermediate-dir value="./optimized" />
            </global>
            <library>
                <simulated-library value="basic" />
                <active-library value="basic" />
                <simulated-modules value="top;" />
            </library>
            <compilation>
                <verilog>
                    <generate-debug-information value="false" />
                </verilog>
                <cpp>
                    <generate-debug-information value="false" />
                    <output-file value="./optimized/dpi_lib" />
                    <application-type value="4" />
                </cpp>
                <vhdl>
                    <generate-debug-information value="false" />
                </vhdl>
            </compilation>
            <simulation>
                <verilog>
                    <slp>
                        <enable value="true" />
                    </slp>
                    <dpi-applications value="1|optimized/dpi_lib;" />
                </verilog>
            </simulation>
        </configuration>
        <configuration name="debug" >
            <global>
                <intermediate-dir value="./debug" />
            </global>
            <library>
                <simulated-library value="basic" />
                <active-library value="basic" />
                <simulated-modules value="top;" />
            </library>
            <compilation>
                <verilog>
                    <generate-debug-information value="true" />
                </verilog>
                <cpp>
                    <generate-debug-information value="true" />
                    <output-file value="./debug/dpi_lib" />
                    <application-type value="4" />
                </cpp>
                <vhdl>
                    <generate-debug-information value="true" />
                </vhdl>
            </compilation>
            <simulation>
                <general>
                    <enable-cdebug value="true" />
                    <enable-debug value="true" />
                </general>
                <verilog>
                    <dpi-applications value="1|debug/dpi_lib;" />
                </verilog>
            </simulation>
        </configuration>
    </properties>
必要なファイルのパスの指定は、structureにて行います。
ソースコード(Verilog HDL/C++)だけでなく、コマンドファイル(doファイル)や
テキストファイルも指定できます。
    <structure>
        <file path="src/project_runme.do" />
        <file path="src/debug_windows.do" />
        <file path="src/breakpoints.do" />
        <file path="src/variables.do" />
        <file path="readme.txt" />
        <file path="src/dpi_basic.cpp" />
        <file path="src/dpi_basic.sv" />
    </structure>

検証、Verification、Aldec、SystemVerilog