VHDL Operatörleri – Mantıksal Operatörler

VHDL dilinde tasarım yaparken kullanılabilecek 3 tür operatör mevcuttur. Bunlar sırasıyla:

  • Mantıksal (Booelean) Operatörler
  • Aritmetik Operatörler
  • İlişkisel Operatörler’dir.

Yukarıda verilen liste operatörlerin öncelik sırasına göre sıralanmış olup, aynı tür operatörlerin kendi aralarında bir öncelik sırası yoktur.

Mantıksal Operatörler

VHDL dilinde kullanılan mantıksal operatörler aşağıda listelenmiştir:

  • and: Mantıksal VE işlemi
out_cikis <= in_giris_1 and in_giris_2;

Yukarıda verilen tanımlamada out_cikis değerine in_giris_1 ve in_giris_2 değerlerinin mantıksal VE işleminin sonucu atanmaktadır.

  • or: Mantıksal VEYA işlemi
out_cikis <= in_giris_1 or in_giris_2;

Yukadrıda verilen tanımlamada out_cikis değerine in_giris_1 ve in_giris_2 değerlerinin mantıksal VEYA işleminin sonucu atanmaktadır.

  • nand: Mantıksal VE DEĞİL işlemi
out_cikis <= in_giris_1 nand in_giris_2;

Yukarıda verilen tanımlamada out_cikis değerine in_giris_1 ve in_giris_2 değerlerinin mantıksal VE DEĞİL işleminin sonucu atanmaktadır.

  • nor: Mantıksal VEYA DEĞİL işlemi
out_cikis <= in_giris_1 nor in_giris_2;

Yukarıda verilen tanımlamada out_cikis değerine in_giris_1 ve in_giris_2 değerlerinin mantıksal VEYA DEĞİL işleminin sonucu atanmaktadır.

  • xor: Mantıksal ÖZEL VEYA işlemi
out_cikis <= in_giris_1 xor in_giris_2;

Yukarıda verilen tanımlamada out_cikis değerine in_giris_1 ve in_giris_2 değerlerinin mantıksal ÖZEL VEYA işleminin sonucu atanmaktadır

  • xnor: Mantıksal ÖZEL VEYA DEĞİL işlemi
out_cikis <= in_giris_1 xnor in_giris_2;

Yukarıda verilen tanımlamada out_cikis değerine in_giris_1 ve in_giris_2 değerlerinin lojik ÖZEL VEYA DEĞİL işleminin sonucu atanmaktadır.

Örnek : Mantıksal operatörlerin kullanıldığı mantiksal_operatorler.vhd VHDL kodu aşağıda verilmiştir. Verilen koda ile  tasarlanan devreye ait bilgiler aşağıdaki gibidir:

  • mantiksal_operatorler varlığı in_giris_1 ve in_giris_2 giriş portlarına sahiptir.
  • out_cikis_and çıkış portuna in_giris_1 ve in_giris_2 giriş port değerlerinin and işlemi sonucu atanmaktadır.
  • out_cikis_or çıkış portuna in_giris_1 ve in_giris_2 giriş port değerlerinin or işlemi sonucu atanmaktadır.
  • out_cikis_nand çıkış portuna in_giris_1 ve in_giris_2 giriş port değerlerinin nand işlemi sonucu atanmaktadır.
  • out_cikis_nor çıkış portuna in_giris_1 ve in_giris_2 giriş port değerlerinin nor işlemi sonucu atanmaktadır.
  • out_cikis_xor çıkış portuna in_giris_1 ve in_giris_2 giriş port değerlerinin xor işlemi sonucu atanmaktadır.
  • out_cikis_xnor çıkış portuna in_giris_1 ve in_giris_2 giriş port değerlerinin xnor işlemi sonucu atanmaktadır.

Şekil 1’de mantiksal_operatorler varlığının ilgili çıkışlara ilişkin benzetim çıktısı gösterilmiştir. Verilen benzetim çıktısına göre in_giris_1 giriş portunun ‘0’ ve in_giris_2 giriş portunun ‘1’ değerleri için;

  • out_cikis_and çıkış portu değeri (0 and 1) => 0,
  • out_cikis_or çıkış portu değeri (0 or 1) => 1,
  • out_cikis_nand çıkış portu değeri (0 nand 1) => 1,
  • out_cikis_nor çıkış portu değeri (0 nor 1) => 0,
  • out_cikis_xor çıkış portu değeri (0 xor 1) => 1,
  • out_cikis_xnor çıkış portu değeri (0 xnor 1) => 0 olmaktadır.
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;

entity mantiksal_operatorler is
  Port (
    in_giris_1 : in std_logic;
    in_giris_2 : in std_logic;
    out_cikis_and : out std_logic;
    out_cikis_or : out std_logic;
    out_cikis_nand : out std_logic;
    out_cikis_nor : out std_logic;   
    out_cikis_xor : out std_logic;
    out_cikis_xnor : out std_logic
  );
end mantiksal_operatorler;
 
architecture Behavioral of mantiksal_operatorler is
 
begin
 
  out_cikis_and   <= in_giris_1 and in_giris_2;
  out_cikis_or    <= in_giris_1 or in_giris_2;
  out_cikis_nand  <= in_giris_1 nand in_giris_2;
  out_cikis_nor   <= in_giris_1 nor in_giris_2;   
  out_cikis_xor   <= in_giris_1 xor in_giris_2;
  out_cikis_xnor  <= in_giris_1 xnor in_giris_2;
 
end Behavioral;

Şekil 1 mantiksal_operatorler varlığının ilgili çıkışlara ilişkin benzetim çıktısı

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir