VHDL ÖRNEKLERİ
Bu makalemde size Vhdl programlama dilinde If, Case, When With ile hazırladığımız örnke kod bloklarını paylaşacağız.Kolay gele..
VHDL ÖRNEKLERİ
- ================================================ =============================
- Dosya adı: mux4_1.vhd (mux = çoklayıcı)
- Yazar: Hedef Ozel Ders
- Oluşturulma: 00.04.10 son değişiklik: 00.04.13
- ================================================ =============================
- Bu gibi fonksiyonu ile 4 giriş çoklayıcı olduğunu:
- Sel Giriş => çıkış yorumlar
- MSB LSB
- 0 0 In0 => çıkış
- 0 1 1 arada => çıkış
- 1 0 in2 => çıkış
- 1 1 in3 => çıkış
-
--------
- IF ve CASE sadece bir süreç içinde kullanılabilir.
- ZAMAN ve İLE sadece bir süreç dışında kullanılabilir.
-
- ZAMAN karşılık IF
- İLE için OLGU correpsonds
- ================================================ =============================
KÜTÜPHANE IEEE;
Ieee.std_logic_1164 KULLANIM TÜM; -. Kullanılan araç bağımlı farklı olabilir.
Ieee.std_logic_unsigned KULLANIM TÜM; -. Kullanılan araç bağımlı farklı olabilir.
ENTITY mux4_1 IS
PORT (s0: STD_LOGIC IN;
s1: STD_LOGIC IN;
In0: STD_LOGIC IN;
in1: STD_LOGIC IN;
in2: STD_LOGIC IN;
in3: STD_LOGIC IN;
çıkışı: OUT STD_LOGIC
);
END mux4_1;
- ================================================ =============================
- ================================================ =============================
Mux4_1 MİMARLIK if_example IS
- ================================================ =============================
BEGIN
mux: SÜRECİ (s0, s1, In0, in1, in2, in3)
BEGIN
(S0 = '0 'VE s1 = '0') THEN
çıkışı <= In0;
ELSIF (s0 = '1 'AND s1 = '0') SONRA
çıkışı <= 1 arada;
ELSIF (s0 = '0 'VE s1 = '1') SONRA
çıkışı <= in2;
ELSIF (s0 = '1 'AND s1 = '1') SONRA
çıkışı <= in3;
BAŞKA - (s0 veya s1 0 veya 1 değil)
çıkışı <= 'X';
IF END;
SÜREÇ mux END;
END if_example;
- ================================================ =============================
- ================================================ =============================
Mux4_1 MİMARLIK case_example IS
- ================================================ =============================
BEGIN
mux: SÜRECİ (s0, s1, In0, in1, in2, in3)
DEĞİŞKEN sel: STD_LOGIC_VECTOR (1 0 DOWNTO);
BEGIN
sel: = s1 ve s0; - birleştirmek s1 ve s0
OLGU sel IS
ZAMAN "00" => çıkışı <= In0;
ZAMAN "01" => çıkışı <= 1 arada;
ZAMAN "10" => çıkışı <= in2;
ZAMAN "11" => çıkışı <= in3;
NE ZAMAN DİĞER => çıkışı <= 'X';
END OLGU;
SÜREÇ mux END;
END case_example;
- ================================================ =============================
- ================================================ =============================
Mux4_1 MİMARLIK with_example IS
SİNYAL sel: STD_LOGIC_VECTOR (1 0 DOWNTO);
- ================================================ =============================
BEGIN
sel <= s1 ve s0; - birleştirmek s1 ve s0
Sel SEÇİMİ İLE
çıkışı <= In0 ZAMAN "00",
in1 ZAMAN "01",
in2 ZAMAN "10",
in3 "11",
'X' ZAMAN DİĞER;
END with_example;
- ================================================ =============================
- ================================================ =============================
Mux4_1 MİMARLIK when_example IS
- ================================================ =============================
BEGIN
<= In0 (s1 ve s0) = "00" ELSE çıktı
(s1 ve s0) = "01" ELSE in1
in2 ZAMAN BAŞKA (s1 ve s0) = "10"
(s1 ve s0) = "11" ELSE in3
'X';
END when_example;