The BAQ/Data Acquisition/Pulse Shape Analysis/FPGA Diary/4日目:サンプル改造
もどる
3日目で使ったサンプルを書き直してFPGA&VHDLについて学ぶ。
Xilinxのページに置いてあった「多重化された 7 セグメント表示使用のデジタル
クロック」を元にスイッチの状態をLEDで表示させるように改造する。
プログラム自体は非常に簡単で、動作を記述する部分は
process (rst, sw)
begin
if rst = '1' then
led <= "11111111" ;
else
led <= sw ;
end if ;
end process ;
だけでよい。
これはリセットボタン = プッシュボタン(0) = BTN3を押したときにLEDにすべて"1"を代入し、
スイッチのどれかの状態が変わった時はスイッチから得られる値をLEDに代入している。
これでスイッチの状態をLEDに反映できる。非常に簡単。(プロジェクトファイル)
動作の様子 |
![](spartan3starter_clocksw.jpg) |
見にくいですが、スイッチの状態をLEDで表示できてます。
今回学んだことは、プログラム中で使っていない変数は最適化で削除されるということ。
Clockは基本的に使っていないのでclk50はSynthesis時に削除されてしまうのだけれど、clock.ucfに「net
clk50 period = 50 MHz」という記述があったせいでTranslate時にエラーになってしまった。(Synthesisは通るけど、Translateは通らない)
Last Update: 2005/3/18
Hidetada Baba
baba @ rarfaxp.riken.jp