Senin, 25 Oktober 2010

TUGAS FPGA 2 MULTIPLEXER



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;

By Danang saputra with No comments

0 komentar:

Posting Komentar