2年ほど触らないままでいたFPGAの評価ボード(terasicのDE0)、ちょっときっかけがあったので使ってみた。サンプルの記述を論理合成してボードに転送し、スイッチとLEDを連動させるまでの手順。

terasIC Altera DE0 Board

DE0のマニュアルなど

以降Windows7(64bit)で作業。

開発用ソフトのダウンロード 最新はQuartus II v12.1 ウェブ・エディションをインストール
ALTERA

※これが約4GBと大きいのでウチなんかだと一晩コース


 「超入門!FPGAスタータ・キット DE0で始めるVerilog HDL」を参照しながら開始。
この本はQuartus II v9.0を例に説明してある。インストールと動作確認は1章、2章。
 論理回路がわかっている人は3〜6章は飛ばしていい。

 DE0をPCに接続する。デバイスがインストールされなかったら、 コントロールパネル>すべてのコントロールパネル項目>システム>デバイスマネージャーからUSB Blusterを探し、再インストール。C:\altera\12.1\quartus\drivers以下を指定。

☆最初のハマリどころ
[File]→[New Project Wizard...]でディレクトリを指定するが、ここがデスクトップだとパーミッションがないと言われ作成できなかった。自分のホームディレクトリだとOKだが、そこにプロジェクト用のファイルが散らばってしまうのでサブディレクトリを指定。

 FPGAデバイスは Family: CycloneIII で Available devices: から EP3C16F484C6を選択。
 他は設定しなくていい。


 プロジェクトウィザードが終了したら[File]→[New]でVerilog HDL Fileを選択。

この本のとおりにするとLesson1.vというファイル名で一旦保存。
次に以下のソースを入力。

module Lesson1( sw, led );
  input [9:0] sw ;
	output [9:0] led ;
 
	assign led=sw;
	
endmodule
 
/*
module Lesson1(
sw0,sw1,sw2,sw3,sw4,sw5,sw6,sw7,sw8,sw9,
led0,led1,led2,led3,led4,led5,led6,led7,led8,led9);
	input sw0,sw1,sw2,sw3,sw4,sw5,sw6,sw7,sw8,sw9;
	output led0,led1,led2,led3,led4,led5,led6,led7,led8,led9;
	
	assign led0=sw0;
	assign led1=sw1;
	assign led2=sw2;
	assign led3=sw3;
	assign led4=sw4;
	assign led5=sw5;
	assign led6=sw6;
	assign led7=sw7;
	assign led8=sw8;
	assign led9=sw9;
	
endmodule
*/

※コメント内は入出力をバラで書いた場合。

保存してから[Processing]→[Start]→[Start Anarysis & Elaboration]を実行。成功したら次はピンアサイン。
ピンアサインは[Assignments]→[Pin Planner]でピンプランナーを開く。
ここで NodeNameに対し以下のLocationを入力する。

NodeName Location
led[9] PIN_B1
led[8] PIN_B2
led[7] PIN_C2
led[6] PIN_C1
led[5] PIN_E1
led[4] PIN_F2
led[3] PIN_H1
led[2] PIN_J3
led[1] PIN_J2
led[0] PIN_J1
sw[9] PIN_D2
sw[8] PIN_E4
sw[7] PIN_E3
sw[6] PIN_H7
sw[5] PIN_J7
sw[4] PIN_G5
sw[3] PIN_G4
sw[2] PIN_H6
se[1] PIN_H5
sw[0] PIN_J6

このピン割当てについてはDE0_User_manualを参照。

[Processing]→[Start Compilation]でビルドする。

☆次のハマりどころ
[Processing]→[Start Compilation]でいきなりビルドするとピンアサインも勝手に割り当てられてしまい、ピンプランナーで付け替えることができない。
[Assignments]→[Remove Assignments]で□Pin,Location & Routing Assignmentsにチェックを入れて[OK]で解除。このあとピンプランナーで入力。

 あとはDE0に転送する。左側のスライドスイッチが[RUN]の位置にあることを確認し、DE0の電源を入れる。
[Tools]→[Programmer]で画面を開き、左上にある[Hardware Setup...]ボタンを押して USB-Blaster [USB-0] をダブルクリック。ここの設定は一回だけでよい。
転送はこの画面を開いて[Start]のボタンを押す。これでFPGAにConfigureが転送される。

 DE0の電源を入れるとデモがスタートするが、これは基板上のConfiguration用ROMからFPGAにデモが書いてあるイメージが転送されるため。上記操作だとDE0基板上のUSB-Bluster経由でPCからFPGAに直接転送される。

スライドスイッチをONにすると対応したLEDが点灯する。(動画)


 ビルド時のWarinigに関しては、今回はclockは使用していないので
332068 No clocks defines in design.
は無視。
332012 Synopsys Design Constraints File fine not found: ... 
は制約ファイルといってディレイのタイミングを調整するのに使うが今回は意識しないのでこれも無視。
(ってSynopsysの技術使ってるんだこれ)

 感想。こんなに気軽に出来るとは思ってなかった。身構え過ぎでした。
大昔、元職場の同僚がアルテラのPentium60/66MHzに似たパッケージの石を486DX100MHzのWindows3.1マシンで一生懸命設計しコンパイルに一晩かかっていたのを思い出しましたが、そんな話ではなかった。こんなに簡単に出来ていいのか、としばらくは興奮状態。

なつたんさん、今頃使いはじめてごめんなさい。これから使い潰します。

超入門!FPGAスタータ・キットDE0で始めるVerilog HDL: すぐ始められる!USB対応・書き込み器不要・大容量FPGA搭載! (トライアルシリーズ)超入門!FPGAスタータ・キットDE0で始めるVerilog HDL: すぐ始められる!USB対応・書き込み器不要・大容量FPGA搭載! (トライアルシリーズ)
芹井 滋喜

CQ出版 2011-07-22
売り上げランキング : 115091

Amazonで詳しく見る
by G-Tools