連載
» 2016年04月12日 12時00分 UPDATE

MAX 10 FPGAで学ぶFPGA開発入門(9):「MAX 10 NEEK」へソフトコアCPUを組み込む (2/6)

[大原 雄介,MONOist]

 ちなみにMAX 10 NEEKに搭載されている10M50DAF484C6GはLE(Logic Elements)が50K、Block Memoryも1638Kbit(204.75KB)と最大規模のものなので、ついNios II/fを選択したくなるのだが、こちらは有償扱い(一応無償で利用できるOpenCore Plusベースのものが利用できるが、時間制限付き)なので、諦めてNios II/eを選択する(Photo05)。

Photo05:NIOS II/f Photo05:NIOS II/f

 設定画面に戻るとエラーが出ているが(Photo06)、それは気にせずに次は"Interface Protocols" → "Serial" → "JTAG UART"を追加する(Photo07)。その次は、"Basic Functions" → "On Chip Memory" → "On-Chip Memory (RAM or ROM)"でRAMを登録する(Photo08)。

 ここで容量は64KBを選んだが、これはまぁこの位あれば取りあえずいいだろうという事であって、デフォルトの4KBのままでも今回の用途には十分である。むしろ注意点は、"Memory Initialization"の所にある"Initialize memory context"のチェックを外しておく事だ(Photo09)。

photo Photo06:エラーは後でまとめて解消する
photo Photo07:JTAG UARTは特に設定の必要はない

photo Photo08:エラーは更に増えているが気にしてはいけない
photo Photo09:なぜか"Initialize memory context"はデフォルトでチェック「On」になっている

 最後に、10個のLEDの点滅用のParallel I/Oポートの指定である(Photo10)。"Processors and Peripherals" → "Peripherals" → PIO( Parallel I/O )"を指定する形だ。今回はLEDが10個なので、Widthには10を指定する(Photo11)。あと、デバイスの名前を"pio_0"に変更しておく。

 次に、それぞれのIPの結合を行う。Photo12で赤丸をつけてある箇所をクリックして、黒丸(結合状態)にする形だ。例えば一番左側の線はクロックドライバから出力されるクロック信号なので、これをNIOS II、JTAG_UART、On Chip Memory、PIOの各デバイスに供給するための設定がこれである。同様にReset出力、JTAGからNIOS IIへのIRQ、データの送受信など必要な配線をつなぐ形だ。

Photo10:IPの場所にいまいち一貫性がないのが困りモノ Photo10:IPの場所にいまいち一貫性がないのが困りモノ
Photo11:これはまだ10と指定する前。デフォルトは8 Photo11:これはまだ10と指定する前。デフォルトは8

Photo12:Warningは大幅に減った。エラーはこの次に対処 Photo12:Warningは大幅に減った。エラーはこの次に対処

Copyright © ITmedia, Inc. All Rights Reserved.