CoDeveloper_Altera_NiosⅡ_HelloWorld_jp.doc Impulse Accelerated Technologies 社 CoDeveloper Altera Nios Ⅱプラットフォームサポートパッケージ( プラットフォームサポートパッケージ(Platform Support Package) Package)の 操作手順チュートリアル 操作手順 チュートリアル チュートリアル1 チュートリアル1:NiosII プラットフォームで プラットフォームで HelloWorld アプリケーションを アプリケーションを実行する 実行する InterLink (有)インターリンク 〒231-0023 横浜市中区山下町 252 グランベル横浜ビル 9 階 TEL:045-663-5940 / FAX:045-663-5945 E-mail: [email protected] URL: http://www.ilink.co.jp 1 - 36 CoDeveloper_Altera_NiosⅡ_HelloWorld_jp.doc 概要 このチュートリアルでは、Altera 社のソフトウェア QuartusⅡ、SPOC Builder、NiosⅡIDE ツールで使用する為 の「RTL フォームでのハードウェアの生成」と「関連するソフトウェアインタフェースファイル」を CoDeveloper で生成する為の操作方法を解説します。 サンプルプロジェクトとしてよくある簡単な"Hello World"アプリケーションを使用します。このデザインを評 価ボードへインプリメントします。このサンプルプロジェクト"Hello World"には、ソフトウェアプロセス(Nios Ⅱプロセッサ上で動作)と、Avalon バスを介して通信するハードウェアプロセス(FPGA ロジック部で動作)と が含まれます。 このチュートリアルでは、 「ハードウェアとソフトウェア・インタフェースの生成方法」や、 「必要なファイルを Altera 環境へインポートする為の操作手順の全体像」を示すことを目的とします。また「Altera ツールを使っ たプラットフォームの生成方法」や「FPGA ビットマップファイルの生成方法」の手順についても解説します。 2 - 36 CoDeveloper_Altera_NiosⅡ_HelloWorld_jp.doc ステップ1 ステップ1:HelloWorld アプリケーションを アプリケーションをロードする ロードする CoDeveloper Application Manager を起動します。Windows の[スタート]ボタン→[すべてのプログラム]→ [Impulse Accelerated Technologies]→[CoDeveloper]グループから選択します。 Altera NiosⅡ用の Hello World サンプルプロジェクトを開きます。メニュー[File]→[Open Project…]を選択 します。するとダイヤログが開くので、 <CoDeveloper インストールディレクトリ¥Examples¥Altera¥NiosII¥HelloWorld> までナビゲートし、プロジェクトファイル HelloWorld.icProj を開きます。 (必要があれば、 チュートリアルを始める前に Example ディレクトリのファイルを他のディレクトリにコピーし ておいてください) プロジェクトファイルが開かれると、下図のように表示されます: HelloWorld プロジェクトには下記のファイルが含まれています: Source Files:HelloWorld_sw.c Files HelloWorld_sw.c、HelloWorld_hw.c HelloWorld_sw.c HelloWorld_hw.c−これらソースファイルは完全なアプリケーション、すな HelloWorld_hw.c わち main()ファンクション、ソフトウェアプロセス、ハードウェアプロセス、を記述しています。 main() Quartus サブフォルダ−Quartus サブフォルダには、後工程のハードウェアプラットフォーム生成時に使用する サブフォルダ ファイルが含まれています。 3 - 36 CoDeveloper_Altera_NiosⅡ_HelloWorld_jp.doc ステップ2 テップ2:シミュレーションの シミュレーションの為にアプリケーションを アプリケーションをコンパイルする コンパイルする HelloWorld アプリケーションをターゲットとなる NiosⅡプラットフォームにコンパイルする前に、基本的なオ ペレーションとソースファイルの基本的な中身について見てみます。 ハードウェアへコンパイルしようとしているプロセスは、HelloWorld_hw.c に下記のように記述されています: void say_hello(co_stream hello_out) このハードウェアプロセスは単純に出力ストリーム(hello_out hello_out)へデータを送り出します。 hello_out 一方、HelloWorld_sw.c にはプロセス hear_hello(HelloWorld_hw.c の最初の方で extern 宣言されている)が hear_hello 記述されています。このプロセスは、コンパイルされると NiosⅡプロセッサにロードされ、自動生成されたハ ードウェア/ソフトウェア・インタフェース経由で、FPGA ハードウェア部とコミュニケーションを行います。 今回のチュートリアルの場合、ソフトウェアプロセスは、ハードウェアプロセスに関連するストリームからのデ ータを、シンプルに読み込みます。 (典型的な Impulse C アプリケーションでは、関連するハードウェアプロセ スからの複数の入力/出力ストリームがあります。 ) また、HelloWorld_sw.c にはアプリケーションの main()関数も含まれています。この main 関数は、ローレベル main() の configuration ファンクション config_hello()を、Impulse C 関数 co_initialize()を通じてリフェレンスし config_hello() co_initialize() ています。co_initialize() co_initialize()は co_initialize() HelloWorld_hw.c の中で extern function として宣言されています。 4 - 36 CoDeveloper_Altera_NiosⅡ_HelloWorld_jp.doc Hello World アプリケーションの アプリケーションのシミュレーション 機能検証の為に、アプリケーションのコンパイルとシミュレーションを行います: 1. メニュー[Project]→[Build Simulation Executable]を選択し、HelloWorld.exe 実行ファイルをビルドしま す。コマンドウィンドウが開き、コンパイルとリンクのメッセージが下記のように表示されます: 2. Windows 実行ファイルの HelloWorld アプリケーションがデスクトップ(コンソール)ソフトウェアアプリケ ーションとして作成されました。このアプリケーションを実行するには、メニュー[Project]→[Launch Simulation Executable]を選択します。コマンドウィンドウが開き、下図のようにアプリケーションが実行され ます: シミュレーションは下記のように出力している事を確認します: CPU listing for hello… FPGA hardware says: 0 1 2 3 4 5 6 7 8 9 アプリケーションでは FPGA ハードウェアが上記値を生成したとのメッセージを表示していますが、実際は、シ ミュレーションの為にハードウェアプロセスがソフトウェアプロセスとしてホスト開発システム(Windows)上 でコンパイルされています。 5 - 36 CoDeveloper_Altera_NiosⅡ_HelloWorld_jp.doc ステップ3 ステップ3:Platform Support Package の定義 コンパイルや HDL 生成、関連するファイルの出力に先だって、ターゲットとなるプラットフォームの選択を行い ます。ターゲットとなるプラットフォームを定義するには、メニュー[Project]→[Option]で Options ダイヤロ グを開き、[Generate]タブを選択します: Platform Support Package プルダウンメニューから、Altera NIOSⅡ(VHDL)を選択します。また、Hardware Build Directory として「hw」、Software Build Directory として「sw」を定義します。また、Hardware Export Directory と Software Export Directory を「Quartus」とします。設定が済んだら、[Apply]→[OK]ボタンを押しダイヤロ グを閉じます。 6 - 36 CoDeveloper_Altera_NiosⅡ_HelloWorld_jp.doc ハードウェアプロセスとなる ハードウェアプロセスとなる HDL を生成する 生成する HDL フォームでのハードウェア、関連するソフトウェアインタフェースやライブラリファイルを生成するには、 メニュー[Project]→[Generate HDL]を選択します。すると、下図のように一連のプロセスが実行されます: プロセスが完了すると、プロジェクトディレクトリ下の「hw」と「sw」ディレクトリの中に、いくつかのファイ ルが生成されます。ファイルの生成までは、マシンのパフォーマンスに依りますが、数分かかります。各ディレ クトリには以下が含まれます: ハードウェアディレクトリ( ハードウェアディレクトリ(hw) hw) • ハードウェアプロセスとハードウェアストリームインタフェースを記述している VHDL ソースファイル (HelloWorld_comp.vhd、HelloWorld_top.vhd、および subsystem.vhd)が生成されています。 • lib サブディレクトリがあり、ディレクトリの中に VHDL ライブラリ要素が含まれます。 • class サブディレクトリがあり、ディレクトリの中には Altera SOPC Builder ツールに必要なファイルが生 成されています。 ソフトウェアディレクトリ( ソフトウェアディレクトリ(sw) sw) • プロジェクトから抽出された、組み込みプロセッサへのコンパイルに必要な C ソースファイル(今回は HelloWorld_sw.c) 。 • ハードウェアイニシャライズファンクションが記述されている C ファイル(co_int.c)が作成されていま す。このファイルも組み込みプロセッサ(NiosⅡ)上で動作します。 • class サブディレクトリがあり、ディレクトリの中には組み込みソフトウェアアプリケーションの一部とし てコンパイルされるソフトウェアライブラリが含まれます。これらのライブラリはハードウェア/ソフト ウェアインタフェースのソフトウェア側にインプリメントされます。 7 - 36 CoDeveloper_Altera_NiosⅡ_HelloWorld_jp.doc Altera SOPC Builder の操作に馴れている場合には、以上のファイルを Altera プロジェクトへマニュアルでコ ピーすることもできます。しかしながら、次のステップでは、CoDeveloper の「ハードウェアとソフトウェアエ クスポート機能」を使用してこれらのファイルを Altera プロジェクトへ半自動的に移します。 ステップ4 ステップ4:CoDeveloper からファイル からファイルを ファイルをエクスポート 先のステップのとおり、 ターゲットプラットフォーム上で動作する完全なハードウェア/ソフトウェアアプリケ ーションの作成に必要な、 いくつかのハードウェアとソフトウェアに関連するファイルを CoDeveloper は生成し ます(ターゲットプラットフォーム:NiosⅡプロセッサを組み込んだ Altera FPGA) 。これらのファイルをマニ ュアルで移動し既にある Altera プロジェクトへインテグレートする事も可能ですが、ここでは CoDeveloper の エクスポート機能を使用してこれらのファイルを Altera ツールへインテグレートします。 Note:以降のステップでは、Altera QuartusⅡと SOPC Builder ソフトウェアが必要です。 先のステップ3にて、ターゲットのハードウェアとソフトウェアのエクスポートディレクトリとして「Quartus」 と設定した事を再度確認します: 8 - 36 CoDeveloper_Altera_NiosⅡ_HelloWorld_jp.doc ここで設定される"Export Directory"は、次に行うように、"Export Generated Hardware"と"Export Generated Software"機能を使用して、CoDeveloper で生成したハードウェアとソフトウェアファイルのコピー先ディレク トリとして定義されています。すなわち、ここで定義されたディレクトリ(ここでは Quartus)が、先に生成さ れた Platform Support Package アーキテクチャライブラリファイルの格納ディレクトリとして定義されること となります。よって、エクスポート作業を行う前に、"Platform Support Package(ここでは Altera NiosⅡ)" や"Export Directory"が正しく選択されていることを必ず確認してください。 ビルドディレクトリ(ここでは"hw"と"sw")からエクスポートディレクトリ(ここでは"Quartus"ディレクトリ) へファイルをエクスポートするには、メニューの[Project]→[Export Generated Hardware(HDL)]と[Project] →[Export Generated Software]をそれぞれ実行します。 Note:次のステップへ進む前に、必ずソフトウェアとハードウェアのエクスポートを実行してください。 これまでの操作により、 必要な全てのファイルが CoDeveloper から Quartus ツール環境へエクスポートされまし た。 9 - 36 CoDeveloper_Altera_NiosⅡ_HelloWorld_jp.doc ステップ5 ステップ5:Quartus のプロジェクトを プロジェクトを作成 ここからは Altera ツールの環境へ移ります。以降では操作内容をステップバイステップで示しますが、より詳 しい情報に関しましては Altera 社の該当マニュアルをご参照ください。 Altera QuartusⅡを起動し、新規プロジェクトを作成します。メニュー[File]→[New Project Wizard]を選択し ます。下記のように新規プロジェクトの作業ディレクトリを設定するダイヤログが表示されますので、先のステ ップで設定したディレクトリ"Quartus"を設定します: ディレクトリ"Quartus"を選択し、[開く]ボタンを押します。 続いて下のように「New Project Wizard」ダイヤログが開くので、project 名欄と top-level design entity 欄 に"HelloWorld"と入力します: 10 - 36 CoDeveloper_Altera_NiosⅡ_HelloWorld_jp.doc [Next]ボタンをクリックします。 次の「Add Files」ページ(2ページ目)では、CoDeveloper により生成された VHDL ファイルを Quartus へイン ポートします。[…]ボタンを押し、以下の順番でファイルを追加していきます: 1. ブロックダイヤグラムファイル:HelloWorld.bdf 2. バスインタフェースファイル: user_logic_HelloWorld_arch_module¥sybsystem.vhd と impulse_lib¥avalon_if.vhd 3. user_logic_HelloWorld_arch_module ディレクトリの中にあるコアロジックファイル: HelloWorld_comp.vhd と HelloWorld_top.vhd 4. impulse_lib ディレクトリの中にある、avalon_if.vhd 以外の全てのファイル ※QuartusⅡのブロックダイヤグラムファイル HelloWorld.bdf は CoDeveloper で作成されたものではありません。 チュートリアル操作を簡便にする為に、Impulse 社の方で作成・用意した QuartusⅡのファイルです。 これらファイルは追加された逆順にリストされます(例えば、impulse_lib impulse_lib ディレクトリの中にあるファイルは 上部にリストされます) 。 [Next]ボタンを押します。 「EDA Tool Settings」ページ(3ページ目)はスキップするので[Next]ボタンを押します。 11 - 36 CoDeveloper_Altera_NiosⅡ_HelloWorld_jp.doc 「Device Family」ページ(4ページ目)では、下図のようにターゲットとなるデバイスを選択します。 ボード上に搭載されているデバイスを選択し、[Next]ボタンを押します。 すると「Select a Target Device」ページ(5ページ目)が開くので、ターゲットとなるデバイスを選択します。 (このチュートリアルでは、Stratix の EP1S10F780C6ES を使用しています) デバイスを選択したら[Next]ボタンを押します。 12 - 36 CoDeveloper_Altera_NiosⅡ_HelloWorld_jp.doc すると「Summary」 (6ページ目)が開きます。サマリの内容を確認し、[Finish]ボタンを押します。 次のステップでは、NiosⅡプロセッサの作成とコンフィグレーション、またサンプルアプリケーション必要な I/O インタフェースの作成方法について示します。 ステップ6 ステップ6:新規プラットフォーム 新規プラットフォームの プラットフォームの作成 前のステップまでの操作により、ウィザードを使用した基本的な Quartus プロジェクトを作り終えました。次の ステップとして、作成しているソフトウェア/ハードウェアアプリケーションに必要な、いくつかの追加情報を 定義します。このステップには、NiosⅡプロセッサの作成や必要とされる I/O エレメントの作成が含まれます。 ここでは NiosⅡや必要な周辺、 また CoDeveloper で作成したハードウェアからなるシステムを作成する為に SOPC Builder を使用します。Quartus のメニュー[Tools]→[SOPC Builder]を選択し、SOPC Builder を起動します: 13 - 36 CoDeveloper_Altera_NiosⅡ_HelloWorld_jp.doc 「Create New System」ダイヤログが開きますので、System Name に「HelloWorldSystem」と入力します。また、 HDL Language では[x]VHDL を選択します: [OK]ボタンを押した後、SOPC Builder ウィンドウが開きます。 Note:System Name として使用する名称には VHDL で使用可能な文字列にする必要があります:最初の文字が数 字ではいけません。またスペースを含むことやアンダースコア以外の特殊文字の使用も禁止されています。 14 - 36 CoDeveloper_Altera_NiosⅡ_HelloWorld_jp.doc ステップ7 ステップ7:新規プラットフォーム 新規プラットフォームの プラットフォームのコンフィグレーション 続いて、SOPC Builder を使った NiosⅡベースのプラットフォームの設定を行います。 まず始めに、SOPC Builder ダイヤログの Target プルダウンメニューで使用するボードを選択します: 続いて、NiosⅡプロセッサを追加します。SOPC Builder ウィンドウの左側にある[System Contents]タブから、 Avalon Module の下にある"Nios NiosⅡ [Add]ボタンを押します。すると、 NiosⅡProcessorProcessor-Altera Corporation"を選択し、 Corporation 下記のような「Altera NiosⅡ-cpu_0」コンフィグレーションウィザードが開きますので、NiosⅡ/s を選択しま す: [Finish]ボタンを押し、NiosⅡCPU をシステムへ追加し、SOPC Builder に戻ります。 15 - 36 CoDeveloper_Altera_NiosⅡ_HelloWorld_jp.doc ここで NiosⅡモジュール名をリネームします。Module Name 欄の cpu_0 の上でマウス右クリックし、[Rename] を選択します。Module Name 欄が変更できるようになるので cpu と入力します: 次に、必要なペリフェラルを NiosⅡシステムへ追加します。 Note:SOPC Builder に関して、詳しくは Altera 社のドキュメントをご参照ください。例えば下記場所には Nios Hardware Development Tutorial があります。 C:¥altera¥kits¥nios2¥tutorials¥Nios2_HW_Tutorial¥tt_nios2_hardware_tutorial.pdf 以下ではこのチュートリアルで必要な周辺を追加していきます。 操作についてのより詳しい情報につきましては、 Altera 社ドキュメントをご参照ください。 16 - 36 CoDeveloper_Altera_NiosⅡ_HelloWorld_jp.doc タイマーを タイマーを追加 以下の手順にて、タイマーsystem system_timer system_timer を追加します。 Other 下の Interval timer を選択し、[Add]ボタンを押します。すると「Avalon Timer-timer_0」ウィザードダ イヤログが開きます。以下のように設定します: Initial Period under Timeout Period:1msec Preset Configurations:Full-featured [Finish]ボタンをクリックします。SOPC Builder に戻ります。 Module Name 欄の timer_0 の上でマウス右クリックし、[Rename]を選択します。Module Name 欄が変更できるよ うになるので system_timer と入力します。 17 - 36 CoDeveloper_Altera_NiosⅡ_HelloWorld_jp.doc フラッシュメモリを フラッシュメモリを追加 以下の手順にて、外部フラッシュ ext_flash を追加します。 Memory の下にある Flash Memory(Common Flash Interface)を選択し、[Add]ボタンを押します。 すると「Flash Memory(Common Flash Interface)」ウィザードダイヤログが開きます。 Presets:プルダウンメニューで"AMD29LV065D120R"が選択されている事を確認します。 他の設定はデフォルトのままにしておきます: [Finish] ボタンをクリックします。SOPC Builder に戻ります。 Module Name 欄の cfi_flash の上でマウス右クリックし、[Rename]を選択します。Module Name 欄が変更できる ようになるので ext_flash と入力します。 18 - 36 CoDeveloper_Altera_NiosⅡ_HelloWorld_jp.doc External RAM インタフェースを インタフェースを追加 以下の手順にて、外部 RAM、ext_ram ext_ram を追加します。 Memory の下にある IDT71V416 SRAM を選択し、[Add]ボタンを押します。 すると「SRAM(two IDT71V016 chips)-sram_0」ウィザードダイヤログが開きます。 [Attributes]タブで、Memory Size として 1024kb が設定されている事を確認します: [Finish] ボタンをクリックします。SOPC Builder に戻ります。 Module Name 欄の sram_0 の上でマウス右クリックし、[Rename]を選択します。 Module Name 欄が変更できるようになるので ext_ram と入力します。 19 - 36 CoDeveloper_Altera_NiosⅡ_HelloWorld_jp.doc JTAG UART を追加 以下の手順にて、jtag_uart jtag_uart を追加します。 NiosⅡ上で動作するソフトウェアデバック時など、ボードとホストマシン間の通信に使用します。 Communication の下の JTAG UART を選択し、[Add]ボタンを押します。 すると「JTAG JTAG UARTUART-jtag_uart_0」ウィザードダイヤログが開きます。 jtag_uart_0 設定の全てをデフォルトのままにしておきます: [Finish]ボタンをクリックします。SOPC Builder に戻ります。 Module Name 欄の jtag_uart_0 の上でマウス右クリックし、[Rename]を選択します。 Module Name 欄が変更できるようになるので jtag_uart と入力します。 20 - 36 CoDeveloper_Altera_NiosⅡ_HelloWorld_jp.doc External RAM Bus( Bus(Avalon TriTri-State Bridge) Bridge)を追加 NiosⅡがボード上の外部メモリと通信できるようにするため、外部メモリに繋がるバスと Avalon バスとの間に ブリッジを追加します。 以下の手順にて、Avalon tri-state ブリッジ、ext_ram_bus ext_ram_bus を追加します。 Bridges の下の Avalon TriTri-State Bridge を選択し、[Add]ボタンを押します。 すると「Avalon Avalon TriTri-State BridgeBridge-tri_state_bridge_0」ウィザードダイヤログが開きます。 tri_state_bridge_0 設定の全てをデフォルトのままにしておきます: [Finish] ボタンをクリックします。SOPC Builder に戻ります。 Module Name 欄の tri_state_bridge_0 の上でマウス右クリックし、[Rename]を選択します。 Module Name 欄が変更できるようになるので ext_ram_bus と入力します。 21 - 36 CoDeveloper_Altera_NiosⅡ_HelloWorld_jp.doc ハードウェアプロセスモジュール"hello" ハードウェアプロセスモジュール"hello"を "hello"を追加 HelloWorld ハードウェアプロセスがインプリメントされている、モジュール HelloWorld_arch を追加します。 [System Contents]タブの中の Avalon Modules 下にある User Logic をダブルクリックします。すると、 HelloWorld_arch module が表示されますので、これを選択し[Add]ボタンを押します: HelloWorld_arch module に user_logic_HelloWorld_arch_module_0 という名前がアサインされます。 22 - 36 CoDeveloper_Altera_NiosⅡ_HelloWorld_jp.doc これまでの操作により、必要なペリフェラルを追加することができました。追加されたモジュールが下図のよう に表示されていることを確認してください: 続いて、[More "cpu" Settings]タブをクリックして、下記のように、 Processor Function 欄の Reset Address の Memory Module を ext_flash へ変更します: 以上で NiosⅡプラットフォーム生成の準備が整いました。 23 - 36 CoDeveloper_Altera_NiosⅡ_HelloWorld_jp.doc ステップ8 ステップ8:システムを システムを生成する 生成する ここまでのステップにより、CoDeveloper が生成したハードウェアを含む NiosⅡプラットフォームの各種設定が 完了しました。このステップでは、SOPC Builder によりシステム生成プロセスの実行を行います。 SOPC Builder の[System Generation]タブをクリックします。 この中で[x]HDL のチェックボックスにチェックが入っていることを確認します。 [Generate]ボタンを押すとシステム生成が開始されます。お使いのマシンのスペックによりますが、完了までは 数分を要します。 システム生成が完了したら[Exit]ボタンを押し SOPC Builder を終了させ、Quartus に戻ります。 24 - 36 CoDeveloper_Altera_NiosⅡ_HelloWorld_jp.doc 次に、ブロックダイヤグラムエディタを使います。ここでは、SOPC Builder により生成されたシステム (HelloWorld ハードウェア、NiosⅡプロセッサ、ペリフェラル)に FPGA のピンを繋げます。 Quartus のプロジェクトエクスプローラウィンドウで[Files]タブをクリックし、Device Design Files フォルダ の中にある HelloWorld.bdf をダブルクリックしてブロックダイヤグラムを開きます: 25 - 36 CoDeveloper_Altera_NiosⅡ_HelloWorld_jp.doc ブロックダヤグラムエディタの描画領域のどこかをダブルクリックします。すると、 「Symbol」ダイヤログが開 か れ ま す 。 下 図 の よ う に 、「 Symbol 」 ダ イ ヤ ロ グ の Libraries : 欄 に あ る Project フ ォ ル ダ を 開 い て HelloWorldSystem を選択し[OK]ボタンを押します: するとマウスカーソルにシンボルが付着しますので、 既に配置してあるピンに上手く繋がる場所でマウスをクリ ックして、HelloWorldSystem シンボルを配置します: 26 - 36 CoDeveloper_Altera_NiosⅡ_HelloWorld_jp.doc ピンアサイン 次に、ダイヤグラムに対しピンアサインを行います。QuartusⅡではピンアサインを GUI より 1 ピンづつ設定す る方法もありますが、ここでは Tcl スクリプトを使用してピンアサインを行います。 ※Tcl スクリプト.tcl ファイルは、チュートリアル操作を簡便にする為に、Impulse 社の方で作成・用意したフ ァイルです。 ※Tcl スクリプトの内容は使用ボードにより異なりますが、既にあるファイルを編集することで使い回す事が可 能です。お使いのボードのピン配置情報は、お使いのボードを使用した Altera ツール内のサンプルデザインの 中にある.pin ファイルの中身をご参照することでも得られます。 メニュー[Tools]→[Tcl Scripts…]を選択すると、下記ダイヤログが表示されます: このチュートリアルでは、stratix の 1s10 ボードを使用しているので、stratix-1s10-pins を選択して[Run]を 押します。 次のステップでは、ビットマップファイルの生成とダウンロードを行います。 27 - 36 CoDeveloper_Altera_NiosⅡ_HelloWorld_jp.doc ステップ9 ステップ9:[Device & Pin Options… Options…]の設定 ここではピンに関するコンパイラのいくつかの設定を行います。 Quartus のメニュー[Assignments]→[Device]を選択します。すると下図のように Device 設定ダイヤログが表示 されます。[Device & Pin Options…]ボタンを押し、 「Device & Pin Options」ダイヤログを開きます: 28 - 36 CoDeveloper_Altera_NiosⅡ_HelloWorld_jp.doc [Unused Pins]タブを選択します。 "Reserve all unused pins"で[x]As inputs, tri-stated を選択します: 29 - 36 CoDeveloper_Altera_NiosⅡ_HelloWorld_jp.doc 続いて、[Dual-Purpose Pins]タブを選択します。 全てのピンの設定を"Use as regular IO"にします: [OK]を2回押し、開いたダイヤログを閉じます。 30 - 36 CoDeveloper_Altera_NiosⅡ_HelloWorld_jp.doc ステップ10 ステップ10: 10:ビットマップファイルを ビットマップファイルを生成する 生成する ここまでに、以下のステップを行ってきました: • CoDeveloper からハードウェアとソフトウェアのファイルを生成 • CoDeveloper で生成したファイルを Quartus と SOPC Builder の環境へ移す • Altera Quartus プロジェクトを作成し、SOPC Builder を使って Nios ベースのプラットフォームを作成 • ブロックダイヤグラムを作成して、ピン配置を行う。 ここでは、ビットマップを生成しアプリケーションをターゲットプラットフォームにダウンロードします。ここ での操作は容易ですが、ファイル生成に時間がかかります。 Quartus のメニュー[Processing]→[Start Compilation]を選択します: この工程において Quartus では、VHDL ソースファイルのアナライズや論理合成、FPGA への配置配線などが行わ れます。終了するとビットマップファイルが生成されます。 31 - 36 CoDeveloper_Altera_NiosⅡ_HelloWorld_jp.doc ビットマップファイルが生成されたら、メニュー[Tools]→[Programmer]を選択します。.cdf のダイヤログが開 きますので、メニュー[File]→[Save As]を選択し.cdf ファイルを HelloWorld.cdf のファイル名で保存します ("Add file to current project option が選択されている事を確認してください") 。 下図のように Program/Configure にチェックを入れます。 またプログラミングハードウェアが正しく選択されて いる事を確認してください(例:ByteBlasterMV ケーブル)。 [Start]ボタンをクリックすると、ターゲットデバイスへ HelloWorld.sof がダウンロードされます。 32 - 36 CoDeveloper_Altera_NiosⅡ_HelloWorld_jp.doc ステップ11 ステップ11: 11:アプリケーションを アプリケーションをプラットフォーム上 プラットフォーム上で動作させる 動作させる これまでのステップにより、Quartus や SOPC Builder を使って、FPGA デバイスはプログラムされました。 ここでは Altera NiosⅡIDE を使用して、プロジェクトのソフトウェア部をコンパイルし、アプリケーションを ボード上で動作させます。 NiosⅡIDE を起動します([スタート]→[Altera]→[NiosⅡDevelopment Kit 1.0])。 HelloWorld ソフトウェアファイルを管理する為に、新規プロジェクトを生成します。 [File]→[New]→[Project]を選択し、下記ウィザードを開きます: Altera NiosⅡ NiosⅡと C/C++ Application を選択し、[Next>]ボタンをクリックします。 33 - 36 CoDeveloper_Altera_NiosⅡ_HelloWorld_jp.doc 続くページにて、プロジェクトのパス、ターゲットハードウェア、プロジェクトテンプレートを、[Browse…] ボタンを押して以下のように選択します。 Name:HelloWorld Name Use Default Location: Location (選択しない) Path:C:¥Impulse¥CoDeveloper¥Examples¥Altera¥NiosII¥HelloWorld¥Quartus¥software¥HelloWorld_arch Path (ステップ4で行った、CoDeveloper から Export されたファイルの格納場所になります) SOPC Builder System: System C:¥Impulse¥CoDeveloper¥Examples¥Altera¥NiosII¥HelloWorld¥Quartus¥HelloWorldSystem.ptf (ステップ8の SOPC Builder で生成された.ptf ファイルになります) CPU:cpu CPU Select Project Template:Blank Project Template 34 - 36 CoDeveloper_Altera_NiosⅡ_HelloWorld_jp.doc [Finish]ボタンを押し、新規プロジェクトを生成します。 下図のように、2つの新規プロジェクト(HelloWorld と HelloWorld_syslib)が、NiosⅡIDE の C/C++プロジェ クトウィンドウ内に表示されます。ステップ4で Export されたソフトウェアファイル( co_init.c と HelloWorld_sw.c)が表示されている事を確認します: HelloWorld プロジェクトの上でマウス右クリックをし、表示されるコンテキストメニューから[Build Project] を選択します。IDE により、CoDeveloper で生成された Impulse C ハードウェアモジュールの為のドライバを含 む、HelloWorld_syslib システムライブラリがビルドされます。また、HelloWorld プロジェクトのアプリケーシ ョンソフトウェアもビルドされます。 ビルドが終了すると、ハードウェアプラットフォーム上でのアプリケーションを動作させる準備が整います。 35 - 36 CoDeveloper_Altera_NiosⅡ_HelloWorld_jp.doc HelloWorld プロジェクトの上でマウス右クリックをし、表示されるコンテキストメニューから [Run As]→[NiosⅡ Hardware]を選択します。 コンソールウィンドウ内に、次のようなメッセージが表示されます。ステップ2で行ったデスクトップシミュレ ーションと同じメッセージが表示されています。 : このように、HDL コードを記述する事なく、ターゲット FPGA デバイス上でハードウェア/ソフトウェア・アプ リケーションを動作させる事ができました。 今回の設計例は非常に小さなものでしたが、複雑な設計の場合でも基本的な操作内容は同じです。 以上で、Altera NiosⅡプラットフォームサポートパッケージ(Platform Support Package)の操作手順チュー トリアルは終了です。 36 - 36
© Copyright 2024 ExpyDoc