2004年04月04日

VHDLはじめました その2

「FPGAボードで学ぶ論理回路設計」でVHDLはじめました その2です。

まずは、付属している解説書の通り進めましょう。

最初にのっている、7セグメントLEDに2を表示するところからスタートです。書かれているとおりに実行して動作を確認できました。が、ちょっと最 初の例題としては長すぎる(というより使わないところが多すぎる)ような気がしました。まあ、後で再利用できそうなのでいいのですけど。
などと偉そうなことを書きながら、実は未使用ピンの設定を忘れて慌てたのでした。この設定はデフォルトで As output, driving ground になっていて、この実験ボードではLowを出力するとLEDが点灯するので、ダウンロードすると関係ないLEDが全部点灯して、いきなり壊してしまったか と思ったのでした。

ただ、まあ、CのHello, World!に相当するものは何かな~と考えて、こんなのを作ってみました。SWを押している間だけLEDが点灯します。私はSW1とD4に割り当てたの で、実行してみると、右端のスイッチを押すと左端のLEDが点灯してしまい、ちょっとよろしくないかもしれませんが。

---
library ieee;
use ieee.std_logic_1164.all;

entity test2 is
port (
sw_in : in std_logic;
led_out: out std_logic
);
end test2;

architecture rtl of test2 is
begin
led_out <= sw_in;
end rtl;
---

(このツールの使い方がよくわかっておらず、こういうリストをそれっぽく表示する方法を調べないといけませんね。)

内容としてはこれだけのものですが、portの指定で最後のセミコロンが不要というのは何ともうっとうしいですね。リストのデリミタなので最後は不 要でしょ、ということなのでしょうが、昔のPascalが設計された頃ならともかく、今になってもそこまでコンパイラの都合を押しつけるか?という印象で す。