「3入力8出力のデコーダ」のソースを作成したら、ISE WebPACKを使用して「論理合成」「FPGAのピン固定」「配置配線」「FPGAのデータ生成」を行います。
ISE WebPACK(Xilinx ISE 8.2i−Project Navigator)を起動します。最初に「Tip of the Day」というダイアログが表示されるので[OK]ボタンを押します。
次にプロジェクトの新規作成を行います。メニューから[File]−[New Project]を選択すると[New Project Wizard - Create New Project]ダイアログが表示されます。[Project Location]にc:\temp\IT_Mediaを指定し、[Project Name:]にChapter1と入力して[Next]ボタンを押します。
続いて、デバイスを指定します。下記を参考に選択してください。デバイスの指定が完了したら[Next]ボタンを押します。
Property Name | Value |
---|---|
Family | Spartan2 |
Device | XC2S15 |
Package | VQ100 |
Speed | -5 |
新しいソースファイルを作成するダイアログが表示されますが、すでにサンプルソースdec.vを作成済みなので、そのまま[Next]ボタンを押します。
次に既存のソースファイルを指定するダイアログが表示されるので[Add Source]ボタンを押し、dec.vを指定して[Next]ボタンを押します。サマリが表示されたら[Finish]ボタンで完了します。
最後にソースの追加を確認するダイアログが表示されます。ソースが正常に追加されるとdec.vの横に緑のチェックマークが表示されます(注)。[OK]ボタンを押して新規プロジェクトの作成を完了します。
ISE WebPACKの画面に戻ると、dec.vがChapter1というプロジェクトに追加されています。画面左の[Process]ツリーにある「Synthesize - XST」を右クリックして[Run]で「論理合成」を実行します。論理合成が正常に終了すると、緑のチェックマークが表示されます。
次に「FPGAのピン固定」ツール(Xilinx PACE)を起動します。画面左の[Process]ツリーにある「User Constarints」の「+」をクリックして展開します。「Assign Package Pins」を右クリックして[Run]を選択すると、メッセージが表示されるので[Yes]ボタンを押してFPGAのピン固定ツールを起動します。
画面左の[Design Object List - I/O Pins]にある[Loc]という項目を下記のように入力します。
I/O | Name Loc |
---|---|
A | P17 |
B | P16 |
C | P15 |
Y<0> | P68 |
Y<1> | P67 |
Y<2> | P66 |
Y<3> | P65 |
Y<4> | P56 |
Y<5> | P55 |
Y<6> | P54 |
Y<7> | P53 |
設定が完了したら、メニューの[File]−[Save]でピン固定の情報をファイル(DECODER.ucf)に保存します(注)。
ISE WebPACKに戻り、画面左の[Process]ツリーにある「User Constraints」の「+」をクリックして展開します。「Edit Constraints (Text)」を右クリックして[Run]を選択すると、画面にDECODER.ucfの中身が表示されます。
最後に「配置配線」「FPGAのデータ生成」を行います。画面左の[Sources]ツリーから「DECODER(dec.v)」を選択し、同じく画面左の[Process]ツリーにある「Generate Programming File」を右クリックして[Run]を実行します。正常に終了すると、緑のチェックマークが表示されます。
以上で「論理合成」「FPGAのピン固定」「配置配線」「FPGAのデータ生成」の作業は完了です。
作成したFPGA用のデータを早速EDX-002ボードにダウンロードしてみましょう。まず、BitCfg(EDX-002ボードに付属)を起動します。メニューの[File]を選択し、C:\Temp\IT_Media\Chapter1\decoder.bitを指定します。次に[Download]ボタンをクリックします。ダウンロードが正常に完了すると、ダイアログに「status : success」と表示されます。
以上でEDX-002ボードへのダウンロードは完了です。次は、いよいよ動作の確認です。それでは、ボードにあるスイッチを押してみましょう。
ボタンが何も押されていないときは一番左端の赤色LEDが消灯して、すべてのスイッチを押すと右端の赤色LEDが消灯します。いかがでしょうか? わずか20行ほどのプログラムで開発できました。筆者が回路設計を始めた20年前に比べると、簡単に開発が行えるようになったとあらためて実感します。
Copyright © ITmedia, Inc. All Rights Reserved.