アイスランドクローネ日記帳

音楽のこと、旅行のこと、ふと思ったこと、全く思っていないこと等を書きます。

VHDL触ってみた。

せっかくFPGAの本を読んだので、XilinxのISEをインストールしてVHDLで遊んでみました。


ためしに本に載ってたバイナリカウンタをそのままなぞって書いてシミュレーションしてみたら動きました。
クロックでカウンタが進む様子がおもしろいです。
ですが、肝心のインクリメントの部分が
x <= x+1;
というあまりにもあっけないソースコードなので、なんだかデジタル回路な気がしません。
本に3bit全加算器の回路図が載っていたので、それをVHDLにして8bit版にしてみました。
論理ゲートの集まりで足し算ができる。今さらながら楽しいです。
加算器を作りたかっただけなので、クロックは使っていません。
クロックのないFPGAなんて!


--------------------------------------------------------------------------------------------------
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;

entity TestSum is
Port ( A : in STD_LOGIC_VECTOR (7 downto 0);
B : in STD_LOGIC_VECTOR (7 downto 0);
SUM : out STD_LOGIC_VECTOR (7 downto 0);
CRR : out STD_LOGIC);
end TestSum;

architecture RTL of TestSum is

signal p1 : std_logic_vector(7 downto 0);
signal p2 : std_logic_vector(7 downto 0);
signal p3 : std_logic_vector(7 downto 0);

signal ci : std_logic_vector(7 downto 0);
signal co : std_logic_vector(7 downto 0);

begin

p1 <= A xor B;
p2 <= ci;
p3 <= A and B;

SUM <= p1 xor p2;
co <= (p1 and p2) or p3;

ci(0) <= '0';
ci(7 downto 1) <= co(6 downto 0);
CRR <= co(7);

end RTL;
--------------------------------------------------------------------------------------------------

動いた!!
ISim_TestSum.png

上の2段が入力、3段目が出力です。4段目は次へのキャリーです。
入力の切り替えはシミュレータに手入力です。

コードに7とか6とかマジックナンバーばかりでよくないなと思いながら書きましたが、
よく考えたら基板設計が終わって入ればバス幅なんてそうそう変わらないから案外これでもいいのかもしれない。
ライブラリを作る場合は別だけど。
論理ゲート楽しいです。(2回目)
楽しすぎてHello World並のものをアップしてしまいました。

  1. 2017/03/04(土) 03:09:48|
  2. 無意味な話
  3. | トラックバック:0
  4. | コメント:0
<<ハロー "Hello,World" OSと標準ライブラリのシゴトとしくみ [坂井弘亮(著)] (秀和システム) | ホーム | FPGA入門 (回路図とHDLによるディジタル回路設計) [すすたわり(著)] (秀和システム)>>

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバックURLはこちら
http://myumbrella.blog42.fc2.com/tb.php/354-8a425915
この記事にトラックバックする(FC2ブログユーザー)