これは環境が整備されているかどうかを確認するためのテストです。
1-1.開発環境
1-2.ハードウェアセットアップ
1-3.ソフトウェアセットアップ
1-4.コンフィグレーション
1-5.ファイルコンバージョン
1-6.その他
開発環境PCには、下記をインストール済みである。
DE0-CVを用意する。
FPGA:5CEBA4F23C7N CycloneV(win7 64bit以降にのみ対応)
COnfigROM(EPCS64)
onboard COLCK INPUT 50MHz:pinM9,H13,E10,V15
SW10を"RUN"側、写真だと上側である。
下記はLEDのピン配置。
QUARTUSにデバイスを設定しておく。下記へ移動。
Deviceの設定画面が表示されるので、今回の評価ボードDE0-CVの搭載FPGAを指定する。指定したら”OK"で抜ける。
module LEDbrink( CLK, LED_out ); /**********************/ input CLK ; output LED_out ; wire LED_out ; /**********************/ parameter F33M000_cnt=32'h007270E0 ;//0.15秒ごとの変化 7500000回×1/(50×10^6) = 0.15sec reg [31:0] sec_cnt ;//1秒作成用カウンタ reg sec1_flag ;//0.15秒のフラグ reg toggle_flag ; //0.15秒ごとにトグルするフラグ /**********************/ /*1秒カウンタ部 */ /**********************/ always@(posedge CLK) begin if(sec_cnt == F33M000_cnt) begin //もし3300万回数えたらカウンタをリセットする sec_cnt <= 32'h00000000 ; sec1_flag <= 1'b1; //SEC1_FLAGに1をセットする end else begin sec_cnt <= sec_cnt + 1 ; sec1_flag <= 1'b0 ; end end /**********************/ /*1秒検出部 */ /**********************/ always@(posedge CLK) begin if(sec1_flag == 1'b1 )begin toggle_flag <= !toggle_flag ; end end /**********************/ /*LED出力部 */ /**********************/ assign LED_out = toggle_flag ; /**********************/ endmodule
下記を辿ってコンフィグレーションをする。ピン配はきまっていないが、気にせず実施。
message windowにいろいろ表示されるが、Compilation was successful 0 errorsとでたらwarningがあっても一応完了とする。
・PIn configration
pin assginを決める。、下記を辿る。
下記のように設定する。CLK input,LED_outはoutputである。
もう一度コンフィグレーションをする。
tool->programmarを辿る。
Programmerのウインドウで、HardwareSetup?をクリック。 USB-BLASTER[USB-0]を選択する。
DE0-CVを先にUSBケーブルでつなぎ、電源を入れておく(赤スイッチSW11 オン)必要があります。
Modeは、JTAGを選択。
左端中段にAutoDetect?をクリック。SelectDevice?で、今回は5CEBA4を選択し、"ok"をクリック。
するとウィンドウにデバイスの絵が表示されるようになる。
左端中段にAddFile?のボタンがあるのでクリック。%プロジェクト名%.sofを指定する。今回はLEDbrink.sofである。
sofファイルは、defaultでは、Pjフォルダ下のoutput_filesの中に格納されている。
選択して"Open"をクリック。
Fileが指定されたら、ProgramConfigration?にチェックがはいっていることを確認し、Startを押す。
Progressが100%になったら完了である。
上記までは、JTAG書き込みで、直接FPGAに書き込んでいるが、これは揮発性のため、電源OFF、ONで状態が保存できない。
その代わり高速で書き込みが完了するため、デバッグはこれを使い、最終的にFixしたらROMに書く、というやり方が良いと思われます。
ここからはROMに書く方法を記述します。
まずFile->Convert Program Filesを選択。
下記のように各種設定をして、"Generate"を押す。
するとoutputfiles下に、output_file.pofが生成される。
これがROM書き用のファイルとなる。
再度、tools->Programmerを開いて、今度は、ModeをActiveSerialProgramming?を選択する。
ファイルは生成した、output_file.pofを選択する。
DE0-CVはいったん電源をOFFし、SW10をProgに変えて再度SW11をオンして起動させておく。
この状態で、"start"をクリックすると、プログラムのダウンロードが始まる。
Progressが100%になったら完了。
ここでDE0-CVの電源をいったんOFFとし、SW10をRUNに切り替えて再度SW11赤スイッチ押してオンする。
すると、LED9が0.15sec間隔で点滅することがわかる。