Microsoft Word - SUA008

Similar documents
QuartusII SOPC_Builderで利用できるGPIF-AVALONブリッジとは?

Microsoft Word - RefApp7インストールガイド.doc

リファレンスアプリケーション RefApp7

Microsoft Word - ALT0982_program_epcs_by_niosii_v10.doc

1. ボードの複数台制御 コンフィグ ROM から FPGA が起動できる場合を想定しています FPGA 回路には 特定のレジスタアドレスにプリセットしたデータが必要です 製品出荷時のサンプル FPGA 回路では レジスタ No.3 を 8bit 幅に設定し FPGA 外部の 4bit ディップスイ

QuartusII SOPC_Builderで利用できるGPIF-AVALONブリッジとは?

Nios II Flash Programmer ユーザ・ガイド

QuartusII SOPC_Builderで利用できるGPIF-AVALONブリッジとは?

Nios II 簡易チュートリアル

Nios II SBT Flash Programmer ユーザ・ガイド

Nios II 簡易チュートリアル

Nios II ハードウェア・チュートリアル

1. 新規プロジェクト作成の準備新規プロジェクトのためのフォルダを用意して そこにプロジェクトを作成します [ 新しいフォルダー ] をクリックして希望のフォルダに新しいフォルダを作成します この例では TrST_F401N_BlinkLD2 というフォルダを作成しました TrST_F401N_Bl

! STEP 2. Quartus Prime のダウンロード WEB ブラウザで以下の URL を開きます 2 ページ中段の Quartus Prime 開発ソフトウェア ライト エディ

PCI-Express ハード IP を使用した DMA の実現 for Cyclone V GT FPGA 開発キット(ソフトウェア編)

FPGA 外部のメモリをアバロン・MM・インタフェースへ接続する方法

1. ST-LINK Utility のダウンロード Windows7 PC にインストールする場合について説明します 1.1. STMicroelectronics のサイト STMicroelectronics のサイトを開きます ここに ST-LINK と入力して検索します ( 右側の虫眼鏡を

ST-LINK/V2-1 への Upgrade V /10/07 ST-LINK/V2-1 USB driver のインストールおよび ST-LINK/V2-1 の Upgrade について説明します ST-LINK/V2-1 USB driver をインストールしてから ST-LIN

Studuino ライブラリ環境設定Windows編

RW-5100 導入説明書 Windows7 用 2017 年 7 月 シャープ株式会社

RW-4040 導入説明書 Windows 7 用 2017 年 7 月 シャープ株式会社

Nios® II HAL API を使用したソフトウェア・サンプル集 「Modular Scatter-Gather DMA Core」

第一章 LPC2478 ボードの概要...3 第二章 uclinux の初体験 SD カードのテスト USB メモリのテスト USB Devices のテスト network のテスト...6 第三章 uclinux のコンパイル...

改訂履歴 改訂日付 改訂内容 2014/11/01 初版発行 2017/01/16 Studuino web サイトリニューアルに伴う改訂 2017/04/14 Studuino web サイトリニューアルに伴うアクセス方法の説明変更 2018/01/22 Mac 版インストール手順変更に伴う改訂

Studuinoライブラリ環境設定Mac編

AN1526 RX開発環境の使用方法(CS+、Renesas Flash Programmer)

ModelSim-Altera - RTL シミュレーションの方法

目次 ページ 1. 本マニュアルについて 3 2. 動作環境 4 3. ( 前準備 ) ライブラリの解凍と保存 5 4. モデルのインポート 6 5. インポートしたモデルのインピーダンス計算例 8 6. 補足 単シリーズ 単モデルのインポート お問い合わせ先 21 2

Eclipse&gcc install and tutorial

Raspberry Pi で WEB カメラを使用 会津大学 RT ミドルウェア講習会 2017 The University of Aizu

CoIDE 用 F4D_VCP の説明 V /07/05 USB の VCP( 仮想 COM ポート ) による非同期シリアル通信を行うプログラムです Free の開発ツール CoIDE で作成した STM32F4 Discovery 用のプロジェクトです プログラムの開始番地は 0x

Visual DSP++ install and tutorial

Nios II マイコン活用ガイド Nios II マイコンボード紹介 ステップ 1 AuCE C3 製品紹介 AuCE C3 は ソフトコア プロセッサ Nios II( アルテラ社 ) を搭載可能なマイコンボードです 弊社の基本ソフトウェアをインストールし FPGA 開発者のデザインと Nios

1. USB の VCP( 仮想 COM ポート ) について USB の VCP( 仮想 COM ポート ) は USB を非同期シリアル通信として使用するための USB のドライバです PC には VCP ドライバをインストールする必要があります USB の VCP( 仮想 COM ポート )

Quartus Prime はじめてガイド - デバイス・プログラミングの方法

RTC_STM32F4 の説明 2013/10/20 STM32F4 内蔵 RTC の日付 時刻の設定および読み込みを行うプログラムです UART2( 非同期シリアル通信ポート 2) を使用して RTC の設定および読み込みを行います 無料の開発ツール Atollic TrueSTUDIO for

PowerPoint Presentation

CommCheckerManual_Ver.1.0_.doc

SOPC Builder ペリフェラル 簡易ユーザ・ガイド - PIO (Parallel I/O)

MINI2440マニュアル

Visual DSP++ install and tutorial

Microsoft Word - tool01.doc

Nios II 簡易シミュレーション

Microsoft Word - XOOPS インストールマニュアルv12.doc

Eclipse&gcc install and tutorial

Microsoft PowerPoint - Tutorial_2_upd.ppt

2015/04/01 改定 オムロン DeviceNet ユニット CJ1W-DRM21 に関するコンフィグレーション作業について 1. 概要 DeviceNet ユニット CJ1W-DRM21 を装着したオムロン製 CJ2 シリーズと WAGO-I/0-SYSTEM DeviceNet 対応バスカ

Sharing the Development Database

1. 概念 STM32F4 Discovery 基板は Mini USB を接続して デバッグやプログラムの書き込みができるようになっています 通常は CPU の 0x 番地からプログラムを実行します では なぜわざわざこのプロジェクトの雛形を使用して CPU の 0x

Quartus II クイック・スタートガイド

SDC_SDIO_STM32F4 の説明 2013/09/17 SDIO インターフェースで SD カードをアクセスするプログラムのプロジェクトサンプルです FAT でファイルアクセスするために FatFs( 汎用 FAT ファイルシステム モジュール ) を使用しています VCP(USB 仮想 C

Application Note Application Note No. ESC-APN Document No.: ESC-APN adviceluna Linux デバッグ手順 (MIPS コア編 ) はじめに adviceluna Linux デバッグ手順 ( 以

作業環境カスタマイズ 機能ガイド(応用編)

PRONETA

開発環境構築ガイド

TunesGo (Win 版 ) ガイド Chapter1: 製品のインストール 1-1 製品のダウンロード 1-2 製品のインストール 1-3 製品の登録 Chapter2: データの転送 2-1 ios デバイスを PC に接続する 2-2 デバイスのメディアを itunes に転送 2-3 デ

1. パソコンに接続しているプロテクトキー (HASP) を外します 2.Microsoft Edge などのブラウザから のアドレスのホームページを起動します 3. 最新のプロテク

CR-USB 仕様書 株式会社測商技研 JS カード用データ転送用カードリーダー CR-USB 仕様書 取扱説明書 2012 年 07 月 31 日版 株式会社測商技研 1. 概要 本器は当社製自動観測装置で記録した JS カードデータ

MINI2440マニュアル

FTDI USB-Serial Converter デバイスドライバのインストール(Rev.1.01)

情報リテラシー 第1回

複数の Nios II を構成する際の注意事項

1. A/D 入力について分解能 12bit の A/D コンバータ入力です A/D 入力電圧とディジタル値との対応は理論上 入力電圧 0V : 0 入力電圧 +3V : 4095 です 実際はオフセットと傾きがあり ぴったりこの数値にはなりません 2. A/D 入力に使用する信号 STM32L_A

ServerView RAID Manager VMware vSphere ESXi 6 インストールガイド

目次 1. HLA Fusion 3.0 がインストール可能な環境 HLA Fusion 3.0 のインストール HLA Fusion 3.4 のインストール 初期設定用データベース接続 ( 初めての方のみ ) 既存データベースのUpg

GettingStartedTK2

2. インストールの方法 インストールの手順は まずインストーラーをサイトからダウンロードし イールドブック カリキュレーターと Java Web Start をインストールします 次にイールドブック カリキュレーターを起動してサーバー接続し Java のファイルをダウンロードします 以下の手順に従

無線LAN JRL-710/720シリーズ ファームウェアバージョンアップマニュアル 第2.1版

Studuinoソフトウェアのインストール

Microsoft Word - (171118_v4250)ACS_インストールマニュアル.doc

目次 第 1 章概要....1 第 2 章インストールの前に... 2 第 3 章 Windows OS でのインストール...2 第 4 章 Windows OS でのアプリケーション設定 TP-LINK USB プリンターコントローラーを起動 / 終了するには

Microsoft PowerPoint - Borland C++ Compilerの使用方法(v1.1).ppt [互換モード]

目次 1. はじめに 準備 機器構成 やさしく名刺ファイリング Pro v.14.0 セットアップと動作確認 やさしく名刺ファイリング Pro v.14.0 セットアップ... 5 Windows Windows 8.

著作権および商標 この文書には が所有権を持つ機密事項が含まれます この資料のいかなる部分も許 可無く複製 使用 公開することを固く禁じます 本書は の従業員および許可された 取引先だけに使用が認められています 本書で提供されたデータは正確で信頼性の高いものですが このデータの使用について株式会社

Microsoft PowerPoint - RL78G1E_スタータキットデモ手順_2012_1119修正版.pptx

AN1609 GNUコンパイラ導入ガイド

発環境を準備しよう2 章開Eclipseをインストールしようそれでは Eclipseをセットアップしましょう Eclipseは Eclipse Foundationのサイトからダウンロードできます ダウンロードのページを開くと いく

BricRobo V1.5 インストールマニュアル

アルテラ USB-Blastre ドライバのインストール方法 for Windows OS

Corporate Document

1. 開発ツールの概要 1.1 OSS の開発ツール本書では OSS( オープンソースソフトウェア ) の開発ツールを使用します 一般に OSS は営利企業ではない特定のグループが開発するソフトウェアで ソースコードが公開されており無償で使用できます OSS は誰でも開発に参加できますが 大規模な

Windows2000/XPインストール手順

目 次 1. All-In-One プリンタユーティリティ概要 All-In-One プリンタユーティティについて 対応プリンタ機種 システム要件 セットアップ方法 All-In-One プリンタユーティリテ

TFU-RW811A ドライバインストール手順書

PSIM(Ver10 & Ver11) HASP キートラブルシューティングガイド PSIM (Ver10 & Ver11)HASP キートラブルシューティングガイド Doc A2-057C 1/11 Myway プラス株式会社

インテル(R) Visual Fortran コンパイラ 10.0

Transcription:

無償回路ライブラリを利用した組込システム開発 -USB2.0 と Nios2/e コアを組み合わせた HDL コーディング不要のシステム設計 - 1. 目的 USB2.0 インタフェース組込済みの Smart-USB Plus システム開発ボード向けに 無償で利用できるアルテラ FPGA 向けソフト CPU の Nios2/e( 以下 Nios2) を採用した組込システム開発例としてリファレンス回路を提供します このリファレンス回路を適用して Smart-USB Plus 製品を USB インタフェース付きマイコンボードとして利用できます 2. 必要な開発環境とダウンロードケーブル QuratusII ver11.1sp2 WebEdition : FPGA 回路設計用重要 Nios2 Embedded Design Suite(NIOS II EDS) : ソフトウエア開発用 (Quartus2 と同バージョンを選択してください ) アルテラ専用のダウンロードケーブル (USB Blaster) : ソフトウエアデバッグおよび FPGA コンフィグ ROM 書き込み用 ( デバッグ機能を利用するときに必要です デバッグ機能を利用しない場合は不要です ) ターゲット ボード CX-USBII システム開発ボード (Cyclone3 FPGA 搭載 : この資料で説明するボードです ) CX-CardII システム開発ボード (Cyclone2 FPGA 搭載 ) SX-USBII システム開発ボード (Stratix2 FPGA 搭載 一部のモデルで無償 QuartusII が利用できません ) SX-USBIII システム開発ボード (Stratix3 FPGA 搭載 ) CX-Card システム開発ボード (Cyclone FPGA 搭載 ) System-SXII システム開発ボード (Startix2 FPGA 搭載 無償 QuartusII が利用できません ) サンプル回路 ( 無償ダウンロード ) : Qsys_nios2e_CXUSB2_v11.zip 3. 概要 上記ターゲット ボードで示すアルテラ FPGA を搭載した Smart-USB Plus 製品向けに GPIF-Avalon ブリッジ回路 (*1) を提供しています この回路では QuartusII ツール ( 以下 Q2) 内の Qsys を利用し HDL コーディングを最小限に抑えながら USB 制御回路システムを設計できます Qsys ツールを利用して プロセッサバスの一種である Avalon バス を利用した組込システムをグラフィカルに設計することができます GPIF-Avalon ブリッジ回路 では Avalon バス マスタとして GPIF_Master ライブラリを提供し ユーザが Qsys ツール上で各種ライブラリを配線するだけで機能を実現することができます この Avalon バスに無償 CPU コアの Nios2 を接続し USB を利用した組込システムを構築します 右図に Avalon バスシステムの例を示します (*1) SUA006 GPIF-AVALON ブリッジ回路 < 図 1. GPIF-Master と Nios2e を組み込んだ Avalon バスシステムの例 > Smart-USB Plus 製品に Nios2e を組み込むメリット Qsys ツールで GPIF_Master ライブラリを利用することにより FPGA 設計の手間を省き ホスト PC 側の USB 制御ソフトウエアと簡単に通信することができます さらに Nios2 を組み込むことで CPU 処理したデータを PC に送信したり ホスト PC からの命令により CPU 処 1

理を制御することができます ボードを USB 接続して運用する場合 Nios2 のインストラクションコードは ROM 化する必要が無く USB 経由で FPGA をコンフィグする時に FPGA 内蔵 RAM に直接ダウンロードできます このため FPGA リソースの低減と効率的なボード運用が可能です また 図 1 に示すように 実現する機能が Qsys ツール内のライブラリだけで完結する場合は ハードウエアに詳しくないソフトウエア技術者でも FPGA 回路を構築して組込システムの構成ができます 実際には Qsys ツールでの作業が完了すると 1 つの Avalon バスシステムブロックができあがります このブロックと LED や SW 類との接続を行う FPGA トップ回路の作成 と FPGA ピンアサイン 作業をするだけでマイコンシステムが開発できます FPGA ピンアサイン作業はボード購入時に添付する TCL スクリプトを使うと間違いのないピンアサインができます 図 2 は図 1 で示した Avalon バスシステムのブロックを FPGA トップ回路 ( 黄色背景で示しています ) で呼び出し FPGA のピンアサインを行うイメージです Qsys で作成した回路だけなら FPGA トップ回路では ピンアサインをするだけです この資料で説明するリファレンス回路でも ユーザが手作業をする部分は Qsys で作成するブロックとボード上に搭載した 7 セグメント LED 点灯用回路ブロックだけを配線し FPGA ピンアサインをするだけです < 図 2. FPGA トップ回路のイメージ > USB2.0 FPGA MEM < 図 3. システム構成図 > 外部システム FPGA に Nios2 と GPIF_Master を組込んだ後は PC 上の USB 制御ソフトウエアを利用して FPGA をコンフィグしたり 各種レジスタの設定 メモリ転送ができます Smart-USB Plus 製品の USB は ターゲット側なので ボードから USB を経由してホスト PC に割り込み制御することができません ボードの状態変化をチェックするには ホスト PC からポーリングする必要があります リアルタイム性が必要なシステムなら Nios2 を利用して FPGA 内で処理し 処理結果を PC に送信するなどの使い方ができ システム構成の柔軟性が向上します 4.Nios2 を組み込んだサンプル回路の概要 本資料で説明する FPGA サンプル回路では USB 通信を行う GPIF_Master と Nios2 コア を Avalon バス マスタとし オンボードの SSRAM アクセス LED 点灯制御 汎用 IO 制御ができます 以下 サンプル FPGA プロジェクトを元にして解説します サンプル FPGA 回路 : Qsys_nios2e_CXUSB2.zip 4.1 Qsys によるバス設計 Qsys_nios2e_CXUSB2.zip ファイルを解凍後プロジェクトを設定し Q2 ツールバーの Start Analysis & Synthesis ボタンをクリックして Project Navigator 画面にファイル構成を表示します 2 < 図 4.Q2 のツールバー >

サンプル回路では Qsys におけるシステム名を Avalon と名付けています Project Navigator 画面の Avalon をダブルクリックしても Qsys ツールは起動しません Q2 ツールバーの Tools Qsys を選択し Qsys プロジェクト Avalon を選択してください 図 5 で示す画面が得られます このうち モジュール名の GPIF_Maste_0 と ssram1 はそれぞれ当社提供の無償ライブラリです その他はすべてアルテラ社提供の無償ライブラリです この他に追加したいモジュールがあれば 画面左側の Component Library から追加します このとき Base アドレレスが重複しないように注意してください 重複した場合はエラー表示が発生しますので アドレスが重複したままのシステムができあがることはありません ホスト PC から制御したいレジスタを追加する場合は GPIF_Master のベースアドレス 0x01000000 + 0x00000040 以降を割り当ててください サンプル回路で使用しているライブラリの他には Interval Timer や Vectored Interrupt Controller DMA Controller Avalon-MM Pipeline Bridge などを利用して システム構成ができます ここで Nios2 のソフトウエア格納用メモリとして FPGA の内蔵メモリを使用します モジュール名 onchip_memory2_0 をダブルクリックす ると メモリ構成画面が表示されます サンプル回路では 32bit 幅 32K バイトのシングルポート RAM を構成しています < 図 5.Qsys Avalon バス構成 > 3

Avalon バスシステム GPIF_Master ZBT_SSRAM オンボード SSRAM(16Mbit) Nios2e generic tri-state controller onchip_memory2_0 Dual Port Memory PIO (led) 8bit オンボードの 8bit LED PIO (seg) 16bit オンボードの 4 桁 7 セグ PIO (swin) 8bit オンボードの SW 入力 < 図 6. Avalon バスブロック図 > サンプル回路の Avalon バスシステムは図 6 に示すブロック図の通りです 赤線は Nios2 がバスマスタとなり Nios2 で制御できるモジュールが接続されています 青線は GPIF_Master がバスマスタとなり CX-USB2 ボードに接続するホスト PC から制御できるモジュールが接続されています 緑の線で囲まれている部分が Qsys で作成した Avalon バスシステムです Nios2 と GPIF_Master 両方から制御できる generic tri-state controller には Avalon バスシステムの外側に デュアルポートメモリ (8Kbit) を用意し Avalon バスシステム外の回路とデータの受け渡しができる様な構成になっています サンプル回路の構成に変更がなければ Qsys Generation タブの Generate ボタンをクリックします Generate が正常終了すると PC の作業フォルダ内に Avalon.sopcinfo ファイルが生成されます Nios2 ソフトウエア作成時 このファイルを指定して Nios2 プロジェクト を生成します このため xxx.sopcinfo ファイルが更新された場合 Nios2 ソフトウエア プロジェクトも再ビルドする必要があります 4

4.2 QuartusII で FPGA コンフィグデータを生成 Qsys での作業が完了したら Avalon バスシステムのモジュールをトップ回路で呼び出し Avalon バスシステム以外の回路と 接続したり FPGA のピン定義を行います サンプル回路は VerilogHDL 記述です ピン定義済みなので ピンアサイン作業は不要です Avalon バスシステムのモジュールは Qsys により Avalon.v ファイルとして生成されています この Avalon.v 回路をトップ回路でインスタンシエイトして最終的な FPGA 回路とします インスタンシエイトの際には Qsys 画面の HDL Example タブから簡単にコピーできます このとき Q2 プロジェクトに Qsys で作成した Avalon.qip を追加してください このファイルは Avalon sysnthesis フォルダ内にあります サンプル回路の構成は以下のようになります GPIF_Sopc.v (FPGA トップ回路 ) FPGA 内配線 LED,7SEG コントローラ Avalon.v DPRAM FPGA の IO ピン定義 < 図 7.Q2 でのトップ回路生成 > FPGA のピン アサインについては 作業フォルダ内にある PIN_SET.tcl を利用することで ピンアサインの間違いを防ぐことができます サンプル FPGA 回路で変更がなければこのままコンパイルを行い FPGA コンフィグ ファイルの GPIF_Sopc.rbf を生成します < 図 8.Q2 コンパイルボタン> ここまでの作業で FPGA 回路は完成し Nios2 ソフトウエア作成の準備ができました 5. Nios2 ソフトウエア プロジェクトの生成 5.1 Nios-EDS ツールの起動 ソフトウエア プロジェクトの作成には Nios2-EDS を起動します コマンドラインツールも用意されていますが ここでは GUI 対応のツールを使用します ツールを起動するには二通りあります 一つは Windows のスタートメニューから NiosII 11.1 Software Build Tools for Eclipse を選択して起動します もう一つは図 5 で示した Qsys のツールバー Tools のプルダウンメニューから Nios II Software Build Tools for Eclipse を選択して起動することもできます どちらでも起動時に Workspace Launcher がポップアップし 作業ディレクトリを指定することができます ここでは Q2 の作業ディレクトリを指定します < 図 9. 作業ディレクトリの指定 > 5

5.2 Nios2 アプリケーションの作成 起動した Eclipse Platform( 以下 IDE) のツールバー File から NiosII Board Support Package を選択します このメニューにより FPGA に構築した Avalon バス構成を呼び出し ソフトウエアビルドを実行できるようにします 次に IDE ツールバーの File から NiosII Application を選択して C ソースコードを作成します < 図 10.Eclipse メニュー > 図 10 で示すメニューの中で NiosII Application and BSP from Template を選択すると Hello world などのサンプルコ ードが利用できます 5.3 NiosII Board Support Package(BSP) とアプリケーションの作成 図 10 のメニューから NiosII Board Support Package 選択すると 図 11 で示すメニュー画面が得られます Project name を CXUSB2 とし SOPC Information File name には Qsys で generate して生成したファイル Avalon.sopcinfo を選択して指定します 最後に Finish ボタンをクリックすると BSP を生成します このとき Q2 バージョンと Nios2 ソフト開発ツールのバージョンが一致していないとエラーが発生します < 図 11.BSP 生成メニュー > < 図 12. アプリケーション生成メニュー > 6

次に 図 10 で示すメニューから NiosII Application を選択し ここで Project name は 図 12 のアプリケーション生成メニューを得ます BSP のプロジェクト名と異なる必要があります ここでは LedBlink としました BSP Location 欄には 先ほど生成した CXUSB2 を指定してください ここまでの設定で Finish ボタンをクリックし Nios2 アプリケー ションの作成準備が整いました 5.4 ソースファイルの作成 Eclipse Platform の Project Explorer に表示されている Nios2 アプリケーション プロジェクトの LedBlink を選択し マウスの右ボタンをクリックして New Source File を選択します Source File を指定する欄に LedBlink.c というファイル名を付け Finish ボタンをクリックすると ソースコードを 記述できるエディタが起動して ソースコードの記述ができるようになります 拡張子を忘れずに記述してください < 図 13 LedBlink.c を作成する画面> 7

5.5 ソースコード 以下に示すソースコードは CX-USB2 ボードの 8bit LED を制御します 1bit ずつ左から右へ 右から左へ行ったり来たり する内容です このサンプルコードは Nios2 ver7.2 で提供する hello_led.c を元にしています このサンプルコードに CX-USB2 ボードの汎用タクトスイッチ SW5 を押したときに 点滅動作が停止する様に変更しています このソースコードを先ほど作成した LedBlink.c に記述してソースファイルを作成します ============================================================================================= #include "system.h" #include "io.h" #include "altera_avalon_pio_regs.h" #include "alt_types.h" #define led_stop 0x80 int alt_main (void) { alt_u8 led = 0x2; alt_u8 dir = 0; volatile int i; /* * Infinitely shift a variable with one bit set back and forth, and write * it to the LED PIO. Software loop provides delay element. */ while (! (IORD(SWIN_BASE,0) & led_stop)) { if (led & 0x81) { dir = (dir ^ 0x1); } if (dir) { led = led >> 1; } else { led = led << 1; } IOWR(LED_BASE,0x0, led); /* * The delay element in this design has been written as a while loop * to avoid confusing the software debugger. A tight, one line software * delay loop such as: * for(i=0; i<200000; i++); * can cause problems when it is stepped through using a software debugger. * The while loop below produces the same behavior as the for loop shown * above, but without causing potential debugger problems. */ i = 0; while (i<200000) i++; } } ============================================================================================= 8

5.6 ビルド ソースコード作成が完了したら プロジェクトをビル ドします ビルドするプロジェクトを選択してから ツールバーの Project Build Project を選択し ます ソースコードの内容にエラーがなければ Eclipse Platform 画 面 下 部 の Console タ ブ に LedBlink build complete と表示されます エラ ーがあれば Problems タブにエラー表示が発生しま す この時点で Nios2 が動作するための実行形式ファイル LedBlink.elf が生成されています <図 14 ビルドメニュー> 6 ボード CX-USB2 の運用 Nios2 ソフトは FPGA をコンフィグ後 USB Blaster ケーブル JTAG 経由 を利用してダウンロードするか RefApp7 の メモリ操作機能を利用して FPGA 内のオンチップメモリに USB 経由でダウンロードできます USB Blaster ケーブルを利用 すれば Nios2 のデバッグ機能を利用することができます デバッグ機能を利用しなければ USB Blaster ケーブルを利用す るより RefApp7 から USB 経由でダウンロードする方が高速で便利です 6.1 FPGA のコンフィグ ターゲットボードの CX-USB2 ボードに添付する制御アプリケーション RefApp7.exe を起動し USB コンフィグ タブから Q2 でコンパイルして生成した GPIF_Sopc.rbf を選択して Configure ボタンをクリックし FPGA コンフィグしてくださ い Smart-USB Plus 製品ならすべて共通の作業です コンフィグの正常終了後 FPGA には 図 5 で示す Avalon バスシステムが構築されていますが Nios2 プログラムが無いので Nios2 は動作していません このサンプル回路では 制御アプリの RefApp7.exe から SSRAM のメモリ操作や 7 セグ表示 を行うレジスタ制御などができる状態です 図 15 制御アプリ RefApp7.exe による FPGA の USB コンフィグ 9

Nios2 プログラムのダウンロード 6.2 アルテラ社製のダウンロードケーブル USB Blaster を利用して 図 6 で示した Avalon バスシステムのオンチップメモリ 32KB に LedBlink.elf をダウンロードし Nios2 CPU を実際に動作させます ダウンロードするためには あらかじ め FPGA をコンフィグし Eclipse Platform 側で USB Blaster を認識しなければなりません ターゲットボードの CX-USB2 ボードには JTAG コネクタに USB Blaster ダウ ンロードケーブルを接続し 別の USB ケーブルを CX-USB2 に接続してください 6.2.1 USB Blaster を利用する FPGA コンフィグが完了したら Eclipse Platform のツールバー Run メニュ ー Run を選択するのですが Eclipse Platform に USB Blaster ダウンロー ドケーブルを認識させなければなりません このために Run メニューから Run Configurations を選択して ターゲットボード CX-USB2 にダウ ンロードしたい Nios2 プロジェクトの指定とダウンロードケーブルを認識させま す <図 16 Run メニューのコンフィギュレーション> <図 17 USB Blaster を認識させる準備> 図 18 では Project タブで FPGA にダウンロードしたい Nios2 プロジェクトを指定します <図 18 ダウンロードする Nios2 プロジェクトの設定> 10

<図 19 ダウンロードケーブルの選択> 図 19 で示すメニュー画面では Refresh Connections ボタンをクリックし ボードに接続しているダウンロードケーブル こ こでは USB Blaster を認識します System ID やタイムスタンプを利用していなければ System ID Check 欄にチェ ックを入れて無視してください ここまで完了したら 最後に画面右下の Run ボタンをクリックします これで Nios2 のプログラムコードが FPGA 内のオ ンチップメモリ onchip_memory2_0 モジュール にダウンロードされ Nios2 が動作するので ターゲットボード上の LED が点灯します 6.2.2 RefApp7 のメモリ操作を利用する USB Blaster ケーブルを所有していない場合や JTAG デバッグが完了している場合など RefApp7 リファレンス制御アプリ ケーションの メモリ操作 画面から Nios2 ソフト格納メモリの onchip_memory2_0 モジュールへ直接ダウンロードできま す この場合 P.9 で示したビルド後に得られる elf ファイル LedBlink.elf をバイナリファイル(.bin)に変換してから操作し てください elf ファイルから bin ファイルへの変換は NiosII コマンドシェル*を起動して 以下に示すコマンドを利用します nios2-elf-objcopy -O binary LedBlink.elf nios2soft.bin この例では LedBlink.elf ファイルを FPGA のオンチップメモリに直接書き込める nios2soft.bin ファイルに変換しています * Nios2 コマンドシェルの起動は Eclipsae Platform の Project Explorer 画面に表示するプロジェクトを選択し 右クリ ック後 NiosII NiosII Command Shell を選択してください 11

生成したバイナリファイルは RefApp7 の USB コンフィグ タブで FPGA をコンフィグ後 メモリ操作 タブからオンチ ップメモリにダウンロードできます onchip_memory2_0 モジュー ルのベースアドレスを設定 開始アドレス 転送レングス 書込ファイルを指定後に こ のボタンをクリックしてファ イルをダウンロードします ファイルの転送レングス設定 32K バイト elf ファイルから変換したバ イナリファイル(bin)を指定 <図 20 RefApp7 のメモリ操作タブ> 作成した Nios2 ソフトを FPGA 内の onchip_memory2_0 にダウンロードするには P.4 図 6 Avalon バスブロック図で示し た様に GPIF_Master モジュールと Nios2e モジュールの両方からアクセスできる様に設定してください この機能を利用し ない場合は GPIF_Master モジュールから Nios2 ソフトを格納する onchip_memory2_0 モジュールにアクセスしない様に設定 してください 12

6.3 Nios2 プログラムの ROM 化 Nios2 プログラムの開発が完了したら 一般的にはプログラムコードを ROM 化します この Q2 プロジェクトでは図 15 で 示したように FPGA のコンフィグを USB 経由で行うので ボード上のコンフィグ ROM には書き込みません その代わり FPGA 内蔵メモリの onchip_memory2_0 モジュールに Nios2 プログラムをメモリ初期化ファイルとして設定し FPGA コンフィグ ファイルの GPIF_Sopc.rbf に埋め込みます これにより USB コンフィグ後に LED 点灯が始まります <図 20 オンチップメモリ構成画面> 上図は Qsys で onchip_memory2_0 モジュールをダブルクリックして得られる設定画面です メモリ容量の設定とメモリ の初期設定ファイルを設定します この例では onchip_memory2_0.hex というファイルを指定しています 図.20 で示すファイル名入力欄には拡張子の.hex を削除してください ここで拡張子の.hex まで記入すると Q2 で正しくファイルのパスが設定されません このファイルを Q2 プロジェクトファイル.qpf のあるフォルダに配置し Q2 コンパイルを行います 13 サンプル FPGA プ

ロジェクトでは すでに左図のようにメモリ初期化ファイルを設定していますので onchip_memory2_0.hex を生成した後 Q2 コンパイルを実行してください hex ファイルの生成は 次項を参照してください 6.3.1 HEX ファイルの生成 Nios2 コマンドシェルを起動して HEX ファイルを生成します elf2hex コ マ ン ド を 使 用 し ビ ル ド し て 生 成 し た.elf フ ァ イ ル サ ン プ ル で は LedBlink.elf か ら.hex フ ァ イ ル onchip_memory2_0.hex に変換します elf2hex --base=0x8000 --end=0xffff --width=32 --input=ledblink.elf --output=xxx.hex (注意 はスペースです) この例では xxx.hex に onchip_memory2_0.hex が入ります 6.4 ボード制御 表 1 には USB 制御アプリ RefApp7.exe から制御できるレジスタ一覧を示します このうち Nios2 からも制御できるレジ スタには 印をつけています P.3 図 6 レジスタ No. 4 8 12 bit 幅 モジュール名 Avalon バスブロック図も参照してください 内容 備考 8 led LED 点灯レジスタ 16 seg 7 セグ表示レジスタ 8 swin タクトスイッチ入力レジスタ RefApp7.exe の メモリ操作 タブでは CX-USB2 ボード上の SSRAM と FPGA 内に用意するデュアルポート RAM にアクセ スできます ベースアドレス bit 幅 モジュール名 内容 0x00008000 0x0000FFFF 32 onchip_memory2_0 Nios2 ソフト格納用メモリ RAM 0x00200000 0x003FFFF 32 ZBT_SSRAM_0 FPGA に接続する SSRAM の制御 0x00400000 0x004000FF 32 Generic_tristate_controller_0 FPGA 内に用意したデュアルポート RAM の制御 ZBT_SSRAM への RD/WR は RefApp7 の転送開始アドレスに 0x200000 を設定し 転送レングスには 0x200000 2M バ イト を設定します 同様に デュアルポートへのアクセスには 転送開始アドレス= 0x00400000 転送レングス=0x400 1K バイト を設定してください 14

関連資料 SUA006 GPIF-AVALON ブリッジ回路 Nios2 を利用せず Avalon バスマスタの GPIF_Master ライブラリを利用するアプリケーションノートです Qsys の使い方や GPIF_Master の使用方法については この資料を参照してください 資料製作 お問い合わせ 有限会社プライムシステムズ オフィシャルサイト http://www.prime-sys.co.jp/ 技術サポートサイト http://www.smartusb.info/ E-mail info@prime-sys.co.jp ver1.0 初版 ver2.0 SOPCBuilder から Qsys へ移行 15