VerilogでPapilio ProのLEDを光らせる
PapilioはVHDLをベースに語られてるが、個人的にはVerilog文法の方が分かりやすい。
世の中に転がってるサンプルは、そんなにシンプルでもないので、 一番シンプルにボードについているLEDを光らせるまでをやった。 あまりまとまった情報がなかったため、なんども心が折れそうになった。
ボードには一個しかユーザ指定可能なLEDがついていない。(LED1)
以下メモ。
1. Xilinx ISE起動
コマンドラインで起動。
$ ise
2.「File」->「New Project...」
Name: led_sample Top-level source type: HDL
-> 「Next>」ボタン押す
Family: Spartan6 Device: XC6SLX9 Package: TQG144 Speed: -2 Synthesis Tool: XST(VHDL/Verilog) Simulator: ISim(VHDL/Verilog) Preferred Language: Verilog
-> 「Next>」ボタン押す
-> 「Finish」ボタン押す
3. 「Project」->「New Source...」
-> Verilog Moduleを選択
File name: led_test
-> 「Next>」ボタン押す
Port Name | Direction |
---|---|
CLK | input |
LED | output |
-> 「Next>」ボタン押す
-> 「Next>」ボタン押す
以下のテンプレートソースができる。(コメント文は削除)
`timescale 1ns / 1ps module led_test( input CLK, output LED1 ); endmodule
4. ソースの修正
以下のように修正。
module led_test( input CLK, output LED1 ); reg LED1; always @(posedge CLK) LED1 <= 1; endmodule
5. 「Project」->「Add Copy of Source...」
Papilio Proボードのポート設定ファイルが必要。拡張子はucf。 下記からダウンロードし、「Project」->「Add Copy of Source...」で追加する。
- 場所: Papilio Pro Generic UCF - Gadget Factory Forum
- ファイル名: BPC3011-Papilio_Pro-general.ucf
6. 「Implement Design」->「Process Properties...」
Implement DesignはMenuになく、左下のプロパティウィンドウにある。 Translate Propertiesの以下をチェックボックをチェックする。
Switch Name | Property Name |
---|---|
-aul | Allow Unmatched LOC Constraints |
-> 「Apply」ボタン押す
7. BPC3011-Papilio_Pro-general.ucf の修正
左上ウィンドウのファイル名をダブルクリックしてISEの中のエディタで以下の2行をコメントアウト。(先頭に"#"を追加することでコメントアウトできる)
#NET TX LOC="P105" | IOSTANDARD=LVTTL | DRIVE=8 | SLEW=FAST | PULLUP; # TX
#NET FLASH_SO LOC="P65" | IOSTANDARD=LVTTL | DRIVE=8 | SLEW=FAST | PULLUP; # FLASH_SO
7. 「Generate Programming File」をダブルクリック
Generate Programming Fileも左下のプロパティウィンドウにある。
完了後、作成したプロジェクトのディレクトリ下に、*.bitファイルができる。 これを Papilio Loaderを使って転送すればOK。
しかし、Virtual PCを古いMac miniで走らせてのUbuntu環境はちと限界だな・・・。
参照URLメモ
以上。