前回は、ちょっとFPGAの話題から離れましたが、今回は再びFPGAについて
書こうかなと思います。
前々回の記事では、VerilogHDL文法のあれこれみたいな感じのものを書こう
かなぁなんて書いてましたが、やめやめ!
ガラッと変わってNios2に触れてみようかなと。
Nios2って知ってますか? そうです、FPGAに組み込めるCPUのことです。
FPGAの特徴を生かして周辺回路をいろいろ組み込めば、今流行のマイコンにも
早代わり!
少し昔にちょっとだけ触ったことがあったのですが、久々に触ってみたら・・・
ツール類のバージョンが上がってちょっと戸惑った部分があったりなかったり。
インターネットで検索しても、ほしい情報がなかなか見つからないもんですね。
でも、あーだこーだやってたら何とか動くようになったので、備忘録的な感じで
そのときの手順なんかを残しておこうと思います。
ターゲットボードDE1です。
1.QuartusIIでハードウェア(Nios2+周辺回路)を構築します。
プロジェクトを作成します。
まず、SOPC Builderを立ち上げてNios2システムの構築を行います。
適当な名前をつけます。
PLLを追加します。クロック出力を2系統用意します。
PLLの追加が終わるとSOPC Builder上でこのように表示されます。
各部の名称を自分好みに変更します。
CPUコアの追加です。とりあえずテスト目的ならエコノミーを選択しちゃいます。
エコノミーはフリーらしいです。
ウィザードの設定項目は、全てデフォルトで問題ないでしょう。
後で、メモリー系の設定をします。
JTAG UARTを追加します。これはデバッグを行う場合必須です。
コンフィグROMコントローラを追加。たぶんNIOS2ソフトをイメージ化したときの格納先?
後で、CPUの設定でリセットしたときの実行アドレスに設定します。
実は、このあたりよくわかってませんw
ワークメモリ(RAM)用にSDRAMを追加します。DE1にはSRAMもありますが、なんとなく
SDRAMを選択してみました。 そのうちSRAMも試してみたいと思います。
UART(RS232 シリアル通信ポート)を追加します。いまのところどうやってソフト上で
使うのかわかりません;;
パラレルI/Oを追加します。入力(スイッチ)と出力(LED)
これで、必要最低限の周辺回路の構築が完了です。
アドレスマップの再構築を実行します。ソフトウェア開発するときにアドレス値を意識
することはめったにないようなので、自動で割り振ります。必要に応じてIRQの優先順位なんかも変更します。 今回は特にいじりませんでした。
CPUの設定でやり残していたメモリ系の設定をします。
GenerateをクリックしてNIOS2を作成します。
「successful」と表示されたらExitでSOPC Builderを閉じます。
QuartusIIに戻ったらファイルの新規作成でSchematicFileを選びます。
SOPC Builderで作成したNios2systemがこんな感じで選択できるはずなので、
回路図上に追加します。
ピンを追加して、下図のような感じにします。
Analysis & Elaborationをクリックします。
するとProjectNavigatorに回路図やらSOPC Builderのオブジェクトなどが表示される
ようになります。
つぎにピンアサインを行います。
ピンアサインが完了したら Compile Designをクリックしてsofファイルの生成を行います。
問題なければ下の図のようになるはず。
ここからは、ソフトウェア側の開発になります。
その前に、ツールの設定をします。Windows7の場合必要なようです。
ちょっとはまりました。 互換モードのチェックは重要です。
Nios II 9.1 Software Build Tools for Eclipseを起動して...
DE1ハードウェアにQuartusIIで生成したsofファイルを書き込みます。
DE1ハードウェア上で実行します。
ツール上のコンソール画面に「Hellow from Nios II!」と表示されれば成功!!
長々と書きましたが、無事成功!
ほんとにハードウェア上で実行されたのかわかりづらいですが、成功です。
次は、実際にハードウェア上のリソース(LED)にアクセスしてみたいかな。
お付き合いありがとうございました。
基板設計・FPGA開発は、テクニカにお任せ下さい!!
書こうかなと思います。
前々回の記事では、VerilogHDL文法のあれこれみたいな感じのものを書こう
かなぁなんて書いてましたが、やめやめ!
ガラッと変わってNios2に触れてみようかなと。
Nios2って知ってますか? そうです、FPGAに組み込めるCPUのことです。
FPGAの特徴を生かして周辺回路をいろいろ組み込めば、今流行のマイコンにも
早代わり!
少し昔にちょっとだけ触ったことがあったのですが、久々に触ってみたら・・・
ツール類のバージョンが上がってちょっと戸惑った部分があったりなかったり。
インターネットで検索しても、ほしい情報がなかなか見つからないもんですね。
でも、あーだこーだやってたら何とか動くようになったので、備忘録的な感じで
そのときの手順なんかを残しておこうと思います。
ターゲットボードDE1です。
1.QuartusIIでハードウェア(Nios2+周辺回路)を構築します。
プロジェクトを作成します。
まず、SOPC Builderを立ち上げてNios2システムの構築を行います。
適当な名前をつけます。
PLLを追加します。クロック出力を2系統用意します。
PLLの追加が終わるとSOPC Builder上でこのように表示されます。
各部の名称を自分好みに変更します。
CPUコアの追加です。とりあえずテスト目的ならエコノミーを選択しちゃいます。
エコノミーはフリーらしいです。
ウィザードの設定項目は、全てデフォルトで問題ないでしょう。
後で、メモリー系の設定をします。
JTAG UARTを追加します。これはデバッグを行う場合必須です。
コンフィグROMコントローラを追加。たぶんNIOS2ソフトをイメージ化したときの格納先?
後で、CPUの設定でリセットしたときの実行アドレスに設定します。
実は、このあたりよくわかってませんw
ワークメモリ(RAM)用にSDRAMを追加します。DE1にはSRAMもありますが、なんとなく
SDRAMを選択してみました。 そのうちSRAMも試してみたいと思います。
UART(RS232 シリアル通信ポート)を追加します。いまのところどうやってソフト上で
使うのかわかりません;;
パラレルI/Oを追加します。入力(スイッチ)と出力(LED)
これで、必要最低限の周辺回路の構築が完了です。
アドレスマップの再構築を実行します。ソフトウェア開発するときにアドレス値を意識
することはめったにないようなので、自動で割り振ります。必要に応じてIRQの優先順位なんかも変更します。 今回は特にいじりませんでした。
CPUの設定でやり残していたメモリ系の設定をします。
GenerateをクリックしてNIOS2を作成します。
「successful」と表示されたらExitでSOPC Builderを閉じます。
QuartusIIに戻ったらファイルの新規作成でSchematicFileを選びます。
SOPC Builderで作成したNios2systemがこんな感じで選択できるはずなので、
回路図上に追加します。
ピンを追加して、下図のような感じにします。
Analysis & Elaborationをクリックします。
するとProjectNavigatorに回路図やらSOPC Builderのオブジェクトなどが表示される
ようになります。
つぎにピンアサインを行います。
ピンアサインが完了したら Compile Designをクリックしてsofファイルの生成を行います。
問題なければ下の図のようになるはず。
ここからは、ソフトウェア側の開発になります。
その前に、ツールの設定をします。Windows7の場合必要なようです。
ちょっとはまりました。 互換モードのチェックは重要です。
Nios II 9.1 Software Build Tools for Eclipseを起動して...
DE1ハードウェアにQuartusIIで生成したsofファイルを書き込みます。
DE1ハードウェア上で実行します。
ツール上のコンソール画面に「Hellow from Nios II!」と表示されれば成功!!
長々と書きましたが、無事成功!
ほんとにハードウェア上で実行されたのかわかりづらいですが、成功です。
次は、実際にハードウェア上のリソース(LED)にアクセスしてみたいかな。
お付き合いありがとうございました。
基板設計・FPGA開発は、テクニカにお任せ下さい!!