IPコアで"ラクラク"FPGA設計 <Altera編> ―― SOPC Builderを活用した基本I/O&SDRAM制御回路の設計

井倉 将実

3.回路の生成と動作確認

●アドレス配置と割り込み番号の自動割り当て

 プロセッサ・コアにメモリ・コントローラやシリアル・コントローラなどを接続しました.次に,SOPC Builderで構成した機能ブロックにプロセッサから見たアドレス番地と割り込み番号を割り当てます.

 SOPC Builderの右側の画面で,各々の機能ブロックのBase欄に先頭アドレス番地を,IRQ欄に割り込み番号を設定します.

 この操作を手入力で行うと,ミスが発生する可能性があります.そこで,SOPC Builderでは自動的にこれらの値を割り振るコマンドが用意されています.

 SOPC Builderの「System」メニュー内に,以下の二つのコマンドが用意されています.アドレスの設定は「Auto-Assign Base Addresses...」,割り込み番号の設定は「Auto-Assign IRQs...」を選択します.この操作により,自動的に効率的なアドレス配置を決め,割り込み番号を設定してくれます.

 最終的に構成されたNIOS2core回路の構成を図13に示します.


図13 NIOS2core回路の構成(*クリックすると拡大します)


●HDLコードの生成

 SOPC Builderで構成したシステムは,IPコア間の接続をしていただけで,実際に回路ができているわけではありません.そこで,[Generate]ボタンを押してHDLコードを生成します.HDLコードの生成には時間がかかりますが,成功すると,

 Info : System generation was successful.
 Info : No errors or warnings.

と表示されます.もしエラーが表示された場合は,設定に誤りがある可能性があります.モジュールの名称を確認し,いったん削除します.改めて正しく設定したコアを追加して再度[Generate]を行います.

 SOPC Builderで生成されたHDLコードは,ほかのHDLコードと同じように利用できます.

 生成されたコードは,SOPC Builderを起動したときに付けた名前になっています.今回の例では以下の2種類のVerilog HDLコードがプロジェクト・フォルダ内に書き込まれています.

  • NIOScpu.v : Nios IIコア,PIO,JTAG-UARTなどを含む回路のVerilog HDLソース・コード
  • NIOScpu_inst.v:ほかの階層からNIOScpu.vを呼び出すためのモジュール接続のひな型

 ほかのコードから使用する場合には,下位階層にSOPC Builderから生成されたコードを位置づけます.ソース・コードの例をリスト1に示します.今回使用したFPGAボード上のLEDは,ボードの回路構成の仕様上,点灯方式が負論理になっています.つまり,ソフトウェアからは「0xFF」で全消灯,「0x00」で全点灯となります.そこで,PIO出力と,実際のFPGAの出力ピンの間に反転(NOT)記述を挿入しています.

リスト1 SOPC Builderで生成されたコードの呼び出し(*クリックすると拡大します)

組み込みキャッチアップ

お知らせ 一覧を見る

電子書籍の最新刊! FPGAマガジン No.12『ARMコアFPGA×Linux初体験』好評発売中

FPGAマガジン No.11『性能UP! アルゴリズム×手仕上げHDL』好評発売中! PDF版もあります

PICK UP用語

EV(電気自動車)

関連記事

EnOcean

関連記事

Android

関連記事

ニュース 一覧を見る
Tech Villageブログ

渡辺のぼるのロボコン・プロモータ日記

2年ぶりのブログ更新w

2016年10月 9日

Hamana Project

Hamana-8最終打ち上げ報告(その2)

2012年6月26日