今日じゃなくって、昨日だけど、学んだこと。
昨日とはぜんぜん違う話。
ソフトコア・プロセッサ、NIOSをつかいます。
バージョンが9.1なので、SOPCビルダーをつかいます(最近のバージョンはQSys)
■SOPCとQSYS
・Quartus9.1などの場合につかう。
バスのavalonが、マスタースレーブ
・QSYS
12.1から登場、13.0では、こちらしかない?
バスが、マルチマスター
外部とのやり取り:JTAG
■NIOSを利用したプログラムを作る手順
(1)QuartusⅡで、トップモジュールを作成する。
verilogと、ピン配置もやっておく
下位モジュールは、コメントにしておく
(2)SOPC Builderで、NIOSなど、いろいろ取り揃える
・QuartusⅡのTools→SOPC Builderで起動
・いろいろモジュールを組み込む
RAM
NIOS
JTAG
SystemID
入出力(GPIO)
・アドレス設定
SOPC Builder→System→AutoAssignBaseAddresses
・保存して、生成(Generateボタンクリック)
(3)QuartusⅡで、トップモジュールを完成、転送
・(1)でコメントにしておいた、下位モジュールとのつなぎの
部分のコメントをはずして、コンパイル
→あらかじめ、ピン配置をしておくこと
・この時点で、Programmerを使って、FPGAに書き出す
→QuartusⅡの作業はここでおしまい
(4)NIOSⅡSoftware Build Tool for Eclipseで
(C言語)プログラムを作成
File→New→NIOSⅡApplicationTemplate
(2)で作ったscopeinfoを選択
プロジェクト名をいれ、
templateにblankProject(空のプロジェクト)を選択
プロジェクトにbspと付いているものと、いないものができる
Cプログラム作成
bsdが付いて「いない」ほうのフォルダ=プロジェクト名を右クリック
new→SourceFileを選択
ファイル名(なんとか.C)をいれて、Cのソースを書いて保存
BSPエディタを起動
bspフォルダを右クリック
settingでC++をはずしたり(settingタブenableC_Plus_plus)
commonで、enable_reduce_device_driverやenable_small_c_libraryに
チェックを入れたりいろいろして
保存後、一番下にあるGenerateボタンをクリック
public.mkを修正
bspフォルダを右クリック
ALT_LDFLAGSのしたに
LT_CFLAGS += -DSMALL_C_LIB
をつけたしてみたり、しなかったりで、保存です
→この作業をやる前に、上記のBSPエディタをGenerateし、終了しておくこと
そうしないと、public.mkはひらかない。
終了してもひらかなかったらF5キー(リフレッシュ)
プロジェクトのビルド
bsdが付いて「いない」ほうのフォルダ=プロジェクト名を右クリック
Build Project
最後にビルドがコンプリートしたよとでる
転送、実行(FPGAが動いていて、USBブラスターが繋がっていること)
bsdが付いて「いない」ほうのフォルダ=プロジェクト名を右クリック
RunAs→NiosⅡHardwareを実行
画面が出てくるので、Runをクリック
これで、実行できる
昨日とはぜんぜん違う話。
ソフトコア・プロセッサ、NIOSをつかいます。
バージョンが9.1なので、SOPCビルダーをつかいます(最近のバージョンはQSys)
■SOPCとQSYS
・Quartus9.1などの場合につかう。
バスのavalonが、マスタースレーブ
・QSYS
12.1から登場、13.0では、こちらしかない?
バスが、マルチマスター
外部とのやり取り:JTAG
■NIOSを利用したプログラムを作る手順
(1)QuartusⅡで、トップモジュールを作成する。
verilogと、ピン配置もやっておく
下位モジュールは、コメントにしておく
(2)SOPC Builderで、NIOSなど、いろいろ取り揃える
・QuartusⅡのTools→SOPC Builderで起動
・いろいろモジュールを組み込む
RAM
NIOS
JTAG
SystemID
入出力(GPIO)
・アドレス設定
SOPC Builder→System→AutoAssignBaseAddresses
・保存して、生成(Generateボタンクリック)
(3)QuartusⅡで、トップモジュールを完成、転送
・(1)でコメントにしておいた、下位モジュールとのつなぎの
部分のコメントをはずして、コンパイル
→あらかじめ、ピン配置をしておくこと
・この時点で、Programmerを使って、FPGAに書き出す
→QuartusⅡの作業はここでおしまい
(4)NIOSⅡSoftware Build Tool for Eclipseで
(C言語)プログラムを作成
File→New→NIOSⅡApplicationTemplate
(2)で作ったscopeinfoを選択
プロジェクト名をいれ、
templateにblankProject(空のプロジェクト)を選択
プロジェクトにbspと付いているものと、いないものができる
Cプログラム作成
bsdが付いて「いない」ほうのフォルダ=プロジェクト名を右クリック
new→SourceFileを選択
ファイル名(なんとか.C)をいれて、Cのソースを書いて保存
BSPエディタを起動
bspフォルダを右クリック
settingでC++をはずしたり(settingタブenableC_Plus_plus)
commonで、enable_reduce_device_driverやenable_small_c_libraryに
チェックを入れたりいろいろして
保存後、一番下にあるGenerateボタンをクリック
public.mkを修正
bspフォルダを右クリック
ALT_LDFLAGSのしたに
LT_CFLAGS += -DSMALL_C_LIB
をつけたしてみたり、しなかったりで、保存です
→この作業をやる前に、上記のBSPエディタをGenerateし、終了しておくこと
そうしないと、public.mkはひらかない。
終了してもひらかなかったらF5キー(リフレッシュ)
プロジェクトのビルド
bsdが付いて「いない」ほうのフォルダ=プロジェクト名を右クリック
Build Project
最後にビルドがコンプリートしたよとでる
転送、実行(FPGAが動いていて、USBブラスターが繋がっていること)
bsdが付いて「いない」ほうのフォルダ=プロジェクト名を右クリック
RunAs→NiosⅡHardwareを実行
画面が出てくるので、Runをクリック
これで、実行できる