連載
» 2016年06月14日 14時00分 UPDATE

MAX 10 FPGAで学ぶFPGA開発入門(11):「MAX 10 NEEK」でストップウォッチを開発し、内蔵メモリから起動する (1/10)

アルテラのFPGA「MAX 10」を搭載した開発ボード「MAX 10 NEEK」にはLEDやフラッシュメモリなどの各周辺機器が備えられている。今回はLEDを使ったストップウォッチを開発し、内蔵メモリから起動する。

[大原 雄介,MONOist]

 この連載ではアルテラのFPGA「MAX 10」を題材にしているおり、ここ数回は各種周辺機器も備えたMAX10搭載開発ボード「MAX 10 NEEK」を使って周辺機器へのアクセス方法などを紹介している。

・連載:MAX 10 FPGAで学ぶFPGA開発入門

 前回(「MAX 10 NEEK」に搭載されたDDR3メモリを使う)はDDR3を利用する方法を説明したが、今回は内蔵Flashを使ってみたい。

 もともとMAX 10の場合、内部にFlash Memoryを保持しており、ブート時にはここからConfigurationを読み出して即座に実行できるので、これを利用できるようにしてみたい。もちろん、ソフトコアCPUの「NIOS II」を含めて、である。

下準備

 さてまずは前準備。今回は連載 第9回(「MAX 10 NEEK」へソフトコアCPUを組み込む)で紹介した内容をもとに簡単なストップウォッチをNIOS IIベースで構築してみる。

 第9回ではNOIS IIの組み込みがメインであったので、LEDと7セグメントLEDはを組み込んだだけ(しかも実際には使わなかった)だったが、今回はこれを活用する。ついでにボタン×5(実際はうち4つ)も活用する。ということで、最初はSystem Builderである(Photo01)。プロジェクト名はひねりがなくて恐縮だが「NEEK_LED3」だ。

Photo01 Photo01:DDR3メモリは今回はちょっとおいておく

 ファイルが生成されたら、それをQuartus II(今回も15.0を使った)のプロジェクトディレクトリにコピーしたのち、Quartus IIでそのプロジェクトを開く。次いでQSYSを立ち上げて、プロセッサコアとJTAG UART、オンチップメモリを組み込む手順までは第9回と同様だが、追加で作業を行う。

対象 手順
プロセッサコア "Processors and Peripherals" → "Embedded Processors" → "NIOS II Processor"
JTAG UART "Interface Protocols" → "Serial" → "JTAG UART"
オンチップメモリ "Basic Functions" → "On Chip Memory" → "On-Chip Memory (RAM or ROM)"(メモリは128KBにした)
photo Photo02:出力の場合、特にその他はいじる必要はない。初期値も特に設定しなくても今回は構わない
photo Photo03:この時はEdge CaptureをEnableにして、Edge TypeにRISING(立ち上がり:つまりボタンが押された事を認識)にしたが、最終的に無効にした。このあたりは後述

対象 手順
LEDR(LED×10) "Processors and Peripherals" → "Peripherals" → "PIO(Parallel I/O)"でPIOを追加する。この際Widthを10bit、DirectionはOutputを指定し(Photo02)、追加後に名前を"LEDR"に変更する。
HEX0(7セグメントLED #1) "Processors and Peripherals" → "Peripherals" → "PIO(Parallel I/O)"でPIOを追加する。この際Widthを7bit、DirectionはOutputを指定し、追加後に名前を"HEX0"に変更する。
HEX1(7セグメントLED #2) "Processors and Peripherals" → "Peripherals" → "PIO(Parallel I/O)"でPIOを追加する。この際Widthを7bit、DirectionはOutputを指定し、追加後に名前を"HEX1"に変更する。
KEY(Button×5) "Processors and Peripherals" → "Peripherals" → "PIO(Parallel I/O)"でPIOを追加する。この際Widthを5bit、DirectionはInputを指定(Photo03)、追加後に名前を"KEY"に変更する。

 これらの手順を終えると、最終的にはこんな感じになる(Photo04)。

photo Photo04:これは結線が全部完了し、さらにQSYSの"System" → "Assign Base Address"を実施してアドレスの整合性を取った後の状況である

関連キーワード

アルテラ | FPGA関連 | Eclipse


       1|2|3|4|5|6|7|8|9|10 次のページへ

Copyright© 2017 ITmedia, Inc. All Rights Reserved.