multiplexer merupakan suatu rangkaian yang memiliki banyak input namun hanya memiliki satu output. adapaun rangkaian dari multiplexer itu sendiri :
pada rangkaian di atas terdapat 4 input, 2 selektor, dan 1 output. dalam tulisan ini rangkaian Multiplexer di atas akan diimplementasikan ke dalam kode program VHDL.
1. pertama-tama kita beri nama entity dari multiplexer yaitu " multipax "
entity multipax is -- mendefinisikan entity "multiplexer"
port(
a,b,c,d,s1,s2: in bit; -- terdapat 4 port input, 2 selector, dan 1 output
y:out bit);
end kepletex;
2. lalu definisikan architecture " max_multy " dari entity "multipax"
architecture max_multy of multipax is
begin
proc: process is
begin
if (s1='0' and s2='0') then y <= a;
else if (s1='0' and s2='1') then y <= b;
else if (s1='1' and s2='0') then y <= c;
else if (s1='1' and s2='1') then y <= d;
end if;
end process proc;
end max_multy;
3. Arsitektur berfungsi untuk mendefinisikan bagaimana entity "multipax" bekerja. Namun kode diatas belumlah sempurna, sehingga tidak bisa dijalankan untuk simulasi maupun di sintesis karena belum didefinisikan bit input pada masing-masing portnya. Untuk itu diperlukan penambahan entity "signal" dan arsitektur "signal_arc" yang berfungsi untuk memberikan input pada entity "multipax".
entity signal is
port(
pa,pb,pc,pd,ps1,ps2:out bit);
end signal;
architecture signal_arc of signall is
begin
pro: process is
begin
pa <= '0';
pb <= '1';
pc <='1';
pd <= '0';
ps1 <= '1';
ps2 <= '0';
end process pro;
end signal_arc;
4. Semua kode vhdl diatas digabung menjadi satu menjadi :
library ieee;
use ieee.std_logic_1164.all;
entity multipax is -- mendefinisikan entity "kepletex"
port(
a,b,c,d,s1,s2: in bit; -- terdapat 4 port input, 2 selector, dan 1 output
y:out bit);
end multipax;
architecture max_multy of multipax is
begin
proc: process is
begin
if (s1='0' and s2='0') then y <= a;
else if (s1='0' and s2='1') then y <= b;
else if (s1='1' and s2='0') then y <= c;
else if (s1='1' and s2='1') then y <= d;
end if;
end process proc;
end max_multy;
entity signal is
port(
pa,pb,pc,pd,ps1,ps2:out bit);
end signal;
architecture signal_arc of signal is
begin
pro: process is
begin
pa <= '0';
pb <= '1';
pc <='1';
pd <= '0';
ps1 <= '1';
ps2 <= '0';
end process pro;
end signal_arc;
-- kode dibawah ini merupakan kode yang berfungsi menjalankan entity yang telah didefinisikan diatas
library work;
use work.all;
entity eksekusi is
end eksekusi;
architecture eksekusi_arch of eksekusi is
signal in1,in2,in3,in4,select1,select2,output: bit;
begin
w1: entity signal port map(in1,in2,in3,in4,select1,select2);
w2: entity multipax port map(in1,in2,in3,in4,select1,select2,output);
end eksekusi_arch;
Senin, 25 Oktober 2010
TUGAS FPGA 2 MULTIPLEXER
Added Jan 6, 2010,
0 komentar:
Posting Komentar