Active-HDL における ALTERA NIOS II 組み込みプロセッサデザインの
シミュレーション方法 

本アプリケーションノートでは、Active-HDL における ALTERA NIOS II 組み込みプロセッサデザインのシミュレーション方法を説明します。 ここでは Eclipse IDE for C/C++ Developers software のサンプルデザイン “Board Diagnostics” をベースにしていますが、基本フローは他のデザインでも同じです。

必要となるツール

本アプリケーションノートでは、次のツールをインストールしており、操作経験があることを前提としています。 

  1. Altera Quartus II 10.1 以降

  2. NIOS II EDS 9.0 以降

  3. Active-HDL 8.3 以降

デザインの設定

  1. “C:\” ルートデイレクトリに空の “TEMP” フォルダを作成します。コンピュータのコンテキストメニューからプロパティ | システムの詳細設定を選択し、詳細設定タブにて環境変数ボタンをクリックします。下記のようにシステム環境変数 TEMPTMP を設定します。

    図 1: 環境変数の設定

  2. 定義済みのシステム環境変数から Path を選択し、その変数値の設定欄にダブルセミコロン “;;” があるか確認し、ある場合には全ての “;;” をシングルセミコロン “;” に変更します。コンピュータを再起動します。

    図 2: Path 整合性の確認

  3. Quartus II を開きます。

  4. File メニューから Open project を選択します。

  5. プロジェクトディレクトリから任意の “.qpf” ファイルを選択して開くをクリックします。デザインが下記のように表示されます。

    図 3: Quartus II Configuration Controller プロジェクト

    SOPC Builder シミュレーション設定

  6. Quartus II にてプロジェクトを読み込んだ後、Tools メニューから SOPC Builder をクリックし、下記のようにデザインの全ての接続をチェックします。

    図4: clk_0 clk_reset 接続例

  7. 下記のようにエラーがないことを確認します。全てのワーニングやインフォメーションメッセージを読み、デザインへの影響を検討してください。

    図 5: Design Status Window

    シミュレーションファイルの生成

  8. Next をクリックしてシミュレーションファイルを生成します。

  9. System Generation タブにて Simulation にチェックを入れ、プロジェクトシミュレータファイルを作成します。

    図 6: System generation 設定

  10. Generate ボタンをクリックします。変更箇所の保存を要求される場合には Save をクリックします。

    図 7: Generate ボタン

    図 8: ファイル生成の完了

    ツールの構築とメモリ初期化ファイルの生成

    Eclipse にてプロジェクトを作成し構築するには、次の手順で行います。

  11. Tools メニューから NIOS II Software Build Tools for Eclipse を選択します。

  12. File | New| Project を選択します。

  13. NIOS II Application and BSP from Template を選択して Next をクリックします。

    図 9: NIOS II IDE にて新しいプロジェクトを作成

  14. 次のウィンドウで、SOPC 情報ファイルを探して Open をクリックします。

    図 10: SOPC 情報ファイルの選択

  15. Board Diagnostics プロジェクトテンプレートを選択して、プロジェクトに “BD_big_stack” と名前を付けます。“Next” をクリックします。
    注意: HAL BSP はメモリ管理ユニット (MMU) をサポートしていなため、Eclipse NIOS II サンプルを使用するには、MMU をデザインから除外する必要があります。

    図 11: 新プロジェクトの設定

  16. Create a new BSP project based ......を選択し、次のように設定します。“Finish” をクリックして、status ウィンドウが完了するのを待ちます。

    図 12: BSP の生成

  17. プロジェクトの生成をチェックし、status ウィンドウの出力が下記のようであることを確認します。

  18. *** Clean-only build of configuration Nios II for project BD_big_stack ****

    make clean

    [BD_big_stack clean complete]

  19. プロジェクトを選択し、マウス右ボタンメニューの Properties | Project References をクリックして、下記のような設定であることを確認します。OK をクリックします。

    図 13: Project References

  20. “BD_big_stack” プロジェクトを選択し、マウス右ボタンメニューの Build Project をクリックして実行します。出力ウィンドウをチェックします。プロジェクトによっては処理に時間がかかります。コンパイル処理が完了すると、プロジェクトディレクトリの .dat ファイルが更新されます。

    --quartus_project_dir "C:/Users/TerryT/workspace/niosII_stratixII_2s60"

    Info: (BD_big_stack.elf) 89 KBytes program size (code + initialized data).

    Info: 31 KBytes free for stack + heap.

    Info: Creating BD_big_stack.objdump

    nios2-elf-objdump --disassemble --syms --all-header --source BD_big_stack.elf >BD_big_stack.objdump

    [BD_big_stack build complete]

    ソフトウェアプロジェクトの作成と構築が完了したら、シミュレーションを実行するために Active-HDL で下記の操作をします。

    Active-HDL でのシミュレーションの実行

    SOPC と Eclipse でのシミュレーションファイルの生成が完了したら、下記を実行します。

  21. Active-HDL を起動します。Active-HDL がすでに立ち上がっている場合には、開いているワークスペースを閉じます。

  22. メニューの File | Import | Altera SOPC Simulation Script を選択します。

  23. setup_sim.do ファイルを選択し、Open をクリックします。[setup_sim.do ファイルはプロジェクトディレクトリに存在します。このファイルは SOPC builder により生成されています。]

    図 14: setup_sim.do ファイル

  24. Altera SOPC Simulation Script importing ウィザードにより、ワークスペースが作成され、必要な do ファイルが作成されて、ワークスペースに付加されます。下記は setup_sim.do ファイルインポート時の典型的なコンソール出力です。シミュレーションスクリプトを Active-HDL にインポートすると、ワークスペースは下記のようになります。

    # ELBREAD: Elaboration time 2.5 [s].

    # Reading "setup_sim.do" ...

    # Creating "setup_sim_altera.do" ...

    # Creating "comp_altera.do" ...

    # Creating "comp_mem_altera.do" ...

    # Creating "init_sim_altera.do" ...

    # Creating "wave_presets_altera.do" ...

    # Creating "list_presets_altera.do" ...

    # Creating "help_altera.do" ...

    # Creating "aliases_altera.do" ...

    # Creating "jtag_uart_0_log_altera.do" ...

    # Import process successfully finished, etc.

    図15: setup_sim.do ファイルインポート後のワークスペース

  25. comp_altera.do ファイルを実行して、必要なライブラリのマッピングとコンパイルを行います。 マクロファイルを実行するには、comp_altera.do を選択し、マウス右ボタンメニューの execute をクリックします。

    # Compile Architecture "europa" of Entity "onchip_memory2_0_s1_arbitrator"

    # Compile Entity "sysid_control_slave_arbitrator"

    # Compile Architecture "europa" of Entity "sysid_control_slave_arbitrator"

    # Compile Entity "timer_0_s1_arbitrator"

    # Compile Architecture "europa" of Entity "timer_0_s1_arbitrator"

    # Compile Entity "VME_HW_SOPC_BUILD_reset_clk_0_domain_synch_module"

    # Compile Architecture "europa" of Entity "VME_HW_SOPC_BUILD_reset_clk_0_domain_synch_module"

    # Compile Entity "VME_HW_SOPC_BUILD_reset_altpll_0_c0_out_domain_synch_module"

    # Compile Architecture "europa" of Entity "VME_HW_SOPC_BUILD_reset_altpll_0_c0_out_domain_synch_module"

    # Compile Entity "VME_HW_SOPC_BUILD"

    # Compile Architecture "europa" of Entity "VME_HW_SOPC_BUILD"

    # Compile Entity "test_bench"

    # Compile Architecture "europa" of Entity "test_bench"

    # Compile success 0 Errors 0 Warnings Analysis time : 0.8 [s]

  26. init_sim_altera.do ファイルを実行し、イニシャライズシミュレーション処理を行います。次のメッセージがコンソールに表示されます。

    # ELAB2: Elaboration final pass...

    # ELAB2: Create instances ...

    # ELAB2: Create instances complete.

    # SLP: Started

    # SLP: Elaboration phase ...

    # SLP: Elaboration phase ... skipped, nothing to simulate in SLP mode : 0.0 [s]

    # SLP: Finished : 0.0 [s]

    # ELAB2: Elaboration final pass complete - time: 1.2 [s].

    # KERNEL: Kernel process initialization done.

    # Allocation: Simulator allocated 25170 kB (elbread=6156 elab2=16989 kernel=2025 sdf=0)

    # KERNEL: ASDB file was created in location C:\Users\TerryT\workspace\niosII_stratixII_2s60\VME_HW_SOPC_BUILD_sim\src\wave.asdb

    # 11:36 AM, Wednesday, February 02, 2011

    # Simulation has been initialized

    # Selected Top-Level: test_bench (europa)

  27. wave_presets_altera.do ファイルを実行し、信号を波形に追加します。

  28. simulation メニューからシミュレーションを実行するか、コンソールに run 1000 us とタイプして enter キーを押します。コンソールには次のメッセージが表示されます。

    # # Displays virtual signals

    # 6 signal(s) traced.

    run 1000 us

    # EXECUTION:: NOTE : Stratix II GX PLL is enabled

    # EXECUTION:: Time: 0 ps, Iteration: 2, Instance: /DUT/the_altpll_0/altpll_0_altpll_sd1_183/STRATIXII_ALTPLL/M1, Process: SCHEDULE.

    # EXECUTION:: NOTE : Stratix II GX PLL locked to incoming clock

    # EXECUTION:: Time: 110 ns, Iteration: 4, Instance: /DUT/the_altpll_0/altpll_0_altpll_sd1_183/STRATIXII_ALTPLL/M1, Process: SCHEDULE.

    # KERNEL: stopped at time: 1 ms

  29. 下記は 1msec のシミュレーション実行結果の例です。

図16: Active-HDL シミュレーション実行

Ask Us a Question
x
Ask Us a Question
x
Captcha ImageReload Captcha
Incorrect data entered.
Thank you! Your question has been submitted. Please allow 1-3 business days for someone to respond to your question.
Internal error occurred. Your question was not submitted. Please contact us using Feedback form.
We use cookies to ensure we give you the best user experience and to provide you with content we believe will be of relevance to you. If you continue to use our site, you consent to our use of cookies. A detailed overview on the use of cookies and other website information is located in our Privacy Policy.