はじめに
Intel社(旧アルテラ)のFPGA用プロセッサ(NiosⅡ)の設計手順をFPGA評価ボードのDE10-lite(Terasic社)を題材に
紹介します.ここではツールの導入とハードウェアとソフトウエアの作成手順を紹介します。
〇手ぶらでOK!IoTプログラミング教室
-- IoT開発キットM5StickC Plus2で作る通信ガジェット
2025年2月28日(金) CQ出版社セミナルーム
1-1.インストール情報
Quartus Primeがインストール済みの場合は"2.新規プロジェクトの作成"へお進みください.
Quartus Primeライト・エディションはintel社FPGAの一部を無償で設計できるFPGA開発ツールです。
インストール手順はintel社の以下の資料(インテル® Quartus® Prime開発ソフトウェア ダウンロード & インスト-ル クイック・スタート・ガイド )を参考にしてください。
http://dl.altera.com/static/quick_start_guide/quick_start_guide_17.0_ja.pdf
1-2.ダウンロードとインストール
intel社の以下サイトからQuartus Primeをダウンロードします。
http://dl.altera.com/?edition=lite
クイック・スタート・ガイドを参考にしてインストールしてくださ。
2-1.New Project Wizardの実行
Quartus Primeを起動してNew Project Wizardを実行します。
2-2.イントロダクション
Nextをクリック
2-3.プロジェクト名指定
作業ディレクトリ、プロジェクト名を指定
Nextをクリック
2-4.プロジェクトタイプの指定
Empty projectがマークしてあるのを確認して
Nextをクリック
2-5.ファイル追加
追加せずに
Nextをクリック
2-6.デバイス指定
デバイスファミリ、package等を指定してデバイスを絞り込み
DE10-liteのデバイスに合わせて10M50DAF484C7Gを指定する。
Nextをクリック
2-7.EDAツールの指定
変更なしで
Nextをクリック
2-8.サーマリ表示
Finishをクリックすると新規プロジェクトが完成する
3-1.Qsysの起動
NiosⅡプロセッサを含む回路はQsys(Platform Designer)で作成します。
Quarts PrimeのメニューからTools->Qsys(Platform Designer)を選択
※QsysはPlatform Designerに名称が変更になりました。
3-2.NiosⅡの追加
起動したQsys(Platform
Designer)のIP catalogで
Prcessors and Peripheralsy->Embedded Processors->NiosⅡProcessor
を選択して"+Add.."をクリックしてNiosⅡを追加する
3-3.NiosⅡの設定
MainタグでNiosⅡ/eにマーク
Finishをクリック
3-4.NiosⅡの接続
Qsys(Platform
Designer)のSystem
Cntentsで
nios2_gen2_0のclkとclk_0のclkの接点をクリックして接続する。
nios2_gen2_0のresetとclk_0のclk_resetの接点を
クリックして接続する。
3-5.On Chip Memoryの追加
起動したQsys(Platform
Designer)のIP
catalogで
Bsic Functions->On Chip Memory->On Chip Memory(RAM or ROM)
を選択して"+Add.."をクリックしてNiosⅡを追加する
3-6.On Chip Memory(RAM or ROM)の設定
Sizeを32768bytesに設定
Finishをクリック
3-7.On Chip Memoryの接続
Qsys(Platform
Designer)のSystem
Cntentsでonchip_memory2_0のclk1とclkとclk_0のclkの接点を
クリックして接続する。
onchip_memory2_0のreset1とclk_0のclk_resetの接点を
クリックして接続する。
onchip_memory2_0のs1とnios2_gen2_0のdata masterの接点をクリックして接続する。
onchip_memory2_0のs1とnios2_gen2_0のinstruction masterの接点をクリックして接続する。
3-8.On Chip Memoryのアドレス設定
Address Mapでonchip_memory2_0.s1のnios2_gen2_0.data_masterの設定の
開始アドレスを0x0001_0000に変更
Address Mapでonchip_memory2_0.s1のnios2_gen2_0.instruction_masterの設定の
開始アドレスを0x0001_0000に変更
3-9.NiosⅡのメモリ設定の変更
System Cntentsでnios2_gen2_0をクックして
parametrsのVectorタグで
Reset vector memoryをonchip_memory2_0.s1に設定
Exception vector memoryをonchip_memory2_0.s1に設定
3-10.System ID Peripheralの追加
起動したQsys(Platform
Designer)のIP
catalogで
Bsic Functions->Simulation Debug and Verification->Debug and Performance->System ID Peripheral
を選択して"+Add.."をクリックしてNiosⅡを追加する
3-11.System ID Peripheralの設定
変更なしで
Finishをクリック
3-12.System ID Peripheralの接続
Qsys(Platform
Designer)のSystem
Cntentsで
sysid_qsys_0のclkとclkとclk_0のclkの接点をクリックして接続する。
sysid_qsys_0のresetとclk_0のclk_resetの接点を
クリックして接続する。
sysid_qsys_0のcontrol_slaveとnios2_gen2_0のdata masterの接点をクリックして接続する。
3-13.JTAG_UARTの追加
起動したQsys(Platform
Designer)のIP
catalogで
Interface Protocols->Serial->JTAG UART
を選択して"+Add.."をクリックしてNiosⅡを追加する
3-14.JTAG_UARTの設定
変更なしで
Finishをクリック
3-15.JTAG_UARTの接続
Qsys(Platform
Designer)のSystem
Cntentsで
jtag_uart_0のclkとclkとclk_0のclkの接点をクリックして接続する。
jtag_uart_0のresetとclk_0のclk_resetの接点を
クリックして接続する。
jtag_uart_0のavalon_jtag_slaveとnios2_gen2_0のdata masterの接点をクリックして接続する。
jtag_uart_0のirqとnios2_gen2_0のirgの接点をクリックして接続する。
3-16.System ID PeripheralとJTAG_UARTのアドレス設定
Address Mapでsysid_qsys_0.control_slaveのnios2_gen2_0.data_masterの設定の
開始アドレスを0x0002_0000に変更
Address Mapでjtag_uart_0.avalon_jtag_slaveのnios2_gen2_0.data_masterの設定の
開始アドレスを0x0002_0100に変更
3-17.Qsys(Platform
Designer)の終了
右下のFnishをクック
3-18.名前を指定して保存
Qsys(Platform
Designer)の終了時にデザインに名前が付けられてない場合は
名前を聞かれる。名前を設定して保存をクリック
この名前はNisⅡを含んだ回路のモジュール名になる。
ここではmax10_nios2eとしました。
3-19.保存の完了
Svae System Completedウィンドに
Svae System Completed successfullyと表示されれば保存完了です。
Closeをクリック
3-20.Generateの指示
GenerateNow?と表示される
"はい"をクリックする
3-21.Generateの設定
変更せずにGenerateをクリック
モジュール設計データの作成が開始する
3-22.Generateの完了
Generate Completedウィンドに
Generate Completed successfullyと表示されればモジュール設計データの作成が完了です。
Finishをクリック
3-23.モジュール設計データのファイル名の表示
作成したモジュール設計データのファイル名が表示されている。
OKをクリック
3-24.max10_nios2eの追加
QuartsⅡのメニューからProject->Add/Remove File in Projectをクリック
3-25.追加ファイル
"..."をクリックすると.追加ファイルの指定ができる
3-26.追加ファイルの指定
max10_nios2e.qsysを選択して開くをクリック
3-27.追加ファイルの確認
max10_nios2e.qsysが追加されているのを確認して
OKをクリック
3-28.トップ回路記述の作成
Quartus PrimeのメニューからFile->Newをクリック
3-29.Fileの種類の指定
DesignFiles->Verilog HDL Fileを選択して
OKをクリック
3-30.トップ回路記述
エディタでトップ回路をVerilog-HDLで記述して保存
トップ回路はQsysで作成した max10_nios2eをインスタンスしてある
module max10_nios2e_sys (
clk,
reset_n);
input clk;
input reset_n;
max10_nios2e u0 (
.clk_clk (clk), // clk.clk
.reset_reset_n (reset_n) // reset.reset_n
);
endmodule
3-31.回路名の設定
回路を指定します。
トップ回路はプロジェクト名と同じでmax10_nios2e_sysを指定、
保存をクリック
3-32.デバイスオプションの設定①
Quartus PrimeのメニューからAssignments->Deviceをクリック
3-33.デバイスオプションの設定②
開いたウィンドでDevice Pin Optionをクリック
3-34.デバイスオプションの設定③
ConfigurationのConfiguration Modeで
Single Compressed Image with Memory Intialization(512Kbits UFM)
を選択してOKをクリック
3-35.コンパイルの実施
Quartus Primeの青三角をクリックすると
コンパイル(論理合成、配線)が実行される
3-36.ピン配置ツールの起動
Quartus PrimeのメニューからAssignments->Pin Plannerをクリック
3-37.ピン配置指定
Pin Plannerで
clkのlocationをPIN_P11、I/OStandardを3.3V LVTTLに指定
reset_nのlocationをPIN_B8、I/OStandardを3.3V LVTTLに指定
指定後にPin Plannerを閉じる
3-38.再コンパイル
Quartus Primeの青三角をクリックすると
ピン配置指定が反映さたコンパイル(論理合成、配線)が実行される
3-39.Programmerの起動
Compile Designに緑いろのチェックが付けば
コンパイル完了
De10-liteをPCのUSBポートに接続する
初回の接続ではドライバがインストールされる。
Quartus PrimeのメニューからTools->Programmerをクリック
3-40.デバイスの検出
Auto Detectをクリックすると10M50DAF484が検出される
Change Fileをクリック
3_41.プログラミングファイルの指定
max10_nos2e_sys.sofを指定して
Openをクリック
3_42.プログラミングファイルの書き込み
Program/Cnfgureにチェックを入れる
Startをクリックすると書き込み開始
100%(Successful)
と表示されると書き込み完了
これでハードウェアの準備は完了
4_1.NiosⅡ software Build Tools for Eclipseの起動
Quartus PrimeのメニューからTools->NiosⅡ software Build...をクリック
4_2.ワークスペースの指定
Quart Primeの作業ディレクトリ/workspaceを指定して
OKをクリック
4_3.新規アプリケーションの作成
EclipseのFile->New->NiosⅡApplication and BSP for Templateをクリック
4_4.アプリケーションの設定
SOPC Information File nameにQuartsⅡの作業ディレクトリ/max10_nios2e.sopcnfoを指定
Project nameにprog_01を設定
Project templateにHelloWorldSmalを設定
Finshをクリック
アプリケーション用のプロジェクトとbspが作成される
4-5.アプリケーション用のプロジェクトの確認
Project Explorerのprog_01のhelloworld_small.cが
Cソースコード、ダブルクリックするとファイルが開く
4_6.アプリケーションのビルド
Project Explorerでprog_01の上でマウス右ボタンを押して
Build Projectをクリック
4_7.ビルドの結果
Consoleに
Build Fnishedと表示されればビルド完了
4_8.prog_01の実行
Project Explorerでprog_01の上でマウス右ボタンを押して
Run As->NiosⅡ Hardwareをクリック
4_9.prog_01の実行結果
NiosⅡ Consoleに
Hello from Nios II!
と表示されれば正常動作です。
赤い四角をクリックすると実行停止
ここまでNiosⅡプロセッサ用プログラムが完成です。
★★★セミナー情報★★★<広告>
〇手ぶらでOK!IoTプログラミング教室
-- IoT開発キットM5StickC Plus2で作る通信ガジェット
2025年2月28日(金) CQ出版社セミナルーム