multiplexer VHDL

tulisan 2 " Pemrograman Devais FPGA "

oleh : Nyoman Parwa Dinawan

npm : 21108479



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 multipax;

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;

label : accessories external. | Free Wallpapers | Property | Anti Vir | Free Games | car body design | Free Theme

0 komentar to "multiplexer VHDL"

Posting Komentar

About This Blog

GUNADARMA

Cari Blog Ini

About this blog

Pengikut

Tags

  • 1 (1)

Pages

Web hosting for webmasters