続いて、準備した開発環境でFPGAボードが動作するかどうかを確認してみましょう(この手のことに関しては、筆者はハード屋さんなのでお茶の子さいさいです! 単に確かめるだけですし……)。
まずは、FPGAボードで動作させるファイル(動作確認用のファイル)をゲットしましょう。
今回は、連載「触って学ぼう FPGA開発入門」の第4回「単相同期回路で設計する理由」で使用した「T_UPDOWN10-2.v」と「UPDOWN10-2.v」の2つのファイルを再利用します。
続いて、開発環境を起動する「ise」コマンドのために、ホームディレクトリの下にある「.bashrc」の中に環境変数を設定します。
PLATFORM=lin XILINX=/opt/Xilinx/10.1/ISE PATH=${XILINX}/bin/${PLATFORM}:$PATH LMC_HOME=${XILINX}/smartmodel/${PLATFORM}/installed_${PLATFORM} LD_LIBRARY_PATH=${XILINX}/lib/${PLATFORM}:/usr/X11R6/lib:${LMC_HOME}/lib/linux.lib:${LMC_HOME}/lib/amd64.lib
この設定内容をすぐに反映させたい場合は、
# . ~/.bashrc
と入力してください(このコマンドを実行しなくても、新たにシェルを立ち上げれば、設定内容は反映されます)。
今回の解説では、上記2つのファイル「T_UPDOWN10-2.v」「UPDOWN10-2.v」を「/home/tori/UPDOWN10」というディレクトリ以下に配置します。また、今回のFPGAボード用に「UPDOWN10-2.v」をリスト1のように書き換え、ピン固定用のファイル「UPDOWN10.ucf」をリスト2のように準備しておきます。
module UPDOWN(RESET, CLK, DEC, COUNT); input RESET, CLK, DEC; output [3:0] COUNT; parameter SEC1_MAX = 50000000; // 6MHz -> 50MHz reg [25:0] tmp_count; reg [3:0] COUNT_TMP; wire ENABLE; always @(posedge CLK or posedge RESET) begin if (RESET == 1'b1) tmp_count <= 26'h0000000; // else else if (ENABLE == 1'b1) tmp_count <= 26'h0000000; else tmp_count <= tmp_count + 26'h1; end // assign DIVIDE_CLK = tmp_count[22]; assign ENABLE = (tmp_count == (SEC1_MAX - 1))? 1'b1 : 1'b0; //always @(posedge DIVIDE_CLK or negedge RESET) always @(posedge CLK or posedge RESET) begin if (RESET == 1'b1) COUNT_TMP <= 4'h0; else if (ENABLE == 1'b1) // else if (DEC == 1'b1) if (DEC == 1'b0) if (COUNT_TMP == 4'h9) COUNT_TMP <= 4'h0; else COUNT_TMP <= COUNT_TMP + 4'h1; else if (COUNT_TMP == 4'h0) COUNT_TMP <= 4'h9; else COUNT_TMP <= COUNT_TMP - 4'h1; end assign COUNT = COUNT_TMP; endmodule
リスト1 UPDOWN10-2.v(書き換え版) →ダウンロードはこちら |
NET "RESET" LOC = "N17"; NET "CLK" LOC = "C9"; NET "DEC" LOC = "H18"; NET "COUNT<0>" LOC = "F12"; NET "COUNT<1>" LOC = "E12"; NET "COUNT<2>" LOC = "E11"; NET "COUNT<3>" LOC = "F11";
リスト2 ピン固定用のファイル「UPDOWN10.ucf」 →ダウンロードはこちら |
ここまでの準備ができたところで、以下のコマンドを実行し、
# ise &
ISEを起動してください。起動したら以下の手順でFPGA用の設計データを作成します。
ISEのメイン画面のメニューから[File]−[New Project...]を選択すると、「New Project Wizard − Create New Project」ダイアログが表示されます。この画面で、(1)HDLファイルが置いてある1つ上のディレクトリを指定(今回は/home/toriを指定)し、(2)HDLファイルが置いてあるディレクトリと同じプロジェクト名を指定してください(画面4)。
続く「New Project Wizard − Device Properties」画面では、画面5を参考に該当するデバイスを指定してください。
「New Project Wizard − Create New Source」画面では特に何も指定せずに、そのまま[Next]ボタンを押してください。次の「New Project Wizard − Add Existing Sources」画面で、[Add Source]ボタンを押し、先ほど準備したHDLファイルのあるディレクトリを指定して、「UPDOWN10-2.v」と「UPDOWN10.ucf」の2つを選択し、[Open]ボタンを押します(画面6)。
「UPDOWN10-2.v」と「UPDOWN10.ucf」が選択されていることを確認して[Next]ボタンを押すと、最後の画面「New Project Wizard − Project Summary」が表示されますので、内容を確認して[Finish]ボタンを押してください。
すると、画面7が表示されます。ここで「UPDOWN10-2.v」と「UPDOWN10.ucf」の左側に緑色のチェックマークが表示されていれば無事終了です(画面7)。
ISEのメイン画面に戻り、今度は、画面左の[Process]ツリーにある「Generate Programming File」を右クリックして[Run]を実行します(画面8)(注)。これで、FPGA用の設計データの生成は完了です。
Copyright © ITmedia, Inc. All Rights Reserved.