VHDL, Panduan untuk orang baru/Contoh
Penambah separuh
suntingKita ambil contoh mudah, iaitu sebuah penambah separuh (bahasa Inggeris:half adder). Berikut adalah gambarajah sebuah penambah separuh:
Berdasarkan rajah, kita boleh membuat jadual kebenaran seperti berikut:
Masukan | Keluaran | ||
---|---|---|---|
A | B | S | C |
0 | 0 | 0 | 0 |
0 | 1 | 1 | 0 |
1 | 0 | 1 | 0 |
1 | 1 | 0 | 1 |
Daripada jadual kebenaran, dapat dilihat terdapat dua komponen (XATAU dan DAN), dua masukan (A dan B) dan dua keluaran (S dan C). Berikut adalah kod VHDL untuk penambah separuh:
LIBRARY IEEE;
USE IEEE.std_logic_1164.all;
ENTITY penambah_separuh IS
PORT (A, B :IN std_logic;
S, C: OUT std_logic);
END penambah_separuh;
ARCHITECTURE cara_kerja OF penambah_separuh IS
BEGIN
S <= A XOR B;
C <= A AND B;
END cara_kerja;
MUX4kpd1
suntingPemultipleks (disingkatkan MUX) 4 kepada 1, MUX4kpd1 menerima empat baris masukan dan satu baris keluaran. MUX4kpd1 memlilih salah satu daripada masukan yang diterimanya untuk menjadi keluaran.
MUX4kpd1 mempunyai dua masukan tambahan iaitu S1 dan S2 yang berfungsi sebagai pemilih. Keluaran MUX4kpd1 adalah berdasarkan dua masukan tambahan ini.
Jadual kebenaran bagi MUX4kpd1 adalah seperti berikut:
S1 | S2 | Keluaran |
---|---|---|
0 | 0 | |
0 | 1 | |
1 | 0 | |
1 | 1 |
Ciptakan kod VHDL untuk MUX4kpd1
suntingDaripada jadual kebenaran, didapati terdapat enam masukan termasuk S1 dan S2, manakala keluaran ada satu iaitu Ambil X sebagai mewakili empat masukan yang akan dipilih untuk menjadi keluaran dan S mewakili masukan pemilih dan f sebagai keluaran. Berikut adalah kod VHDL bagi MUX4kpd1 dengan menggunakan pembolehubah-pembolehubah yang dinyatakan:
LIBRARY IEEE
USE IEEE.STD_LOGIC_1164.all
ENTITY MUX4kpd1 IS
PORT (
X : IN STD_LOGIC_VECTOR (3 DOWNTO 0);
S : IN STD_LOGIC_VECTOR (1 DOWNTO 0);
f : OUT STD_LOGIC;
);
END MUX4kpd1;
ARCHITECTURE kelakuan OF MUX4kpd1 IS
BEGIN
with S select
f <= (not X(0)) when "00",
(not X(1)) when "00",
(not X(2)) when "10",
(not X(3)) when others;
END kelakuan;