VHDL’de Sıralı Atama Sözdizimleri – PROCESS

Sıralı sözdizimleri, VHDL dilinde paralel işlemler için kullanılan sözdizimlerinden farklı olarak kullanılmalıdır. Bu nedenle VHDL dilinde sıralı sözdizimleri mimari içerisinde process sözdizimi kullanılarak tanımlanmaktadır. process için genel tanımlama aşağıda verilmiştir.

..
..
process_etiketi:process(sinyal_adi {, sinyal_adi})
variable tanımlama
begin
      wait söz dizimleri
      basit sinyal atamaları
      variable atama sözdizimleri
      if söz dizimleri
      case söz dizimleri
      loop söz dizimleri
end process process_etiketi;
..
..

process’lerin tasarlandıkları işleri yapabilmeleri için dışarıdan uygulanan bir tetikleme işaretine ihtiyaçları vardır. Bu tetikleme işareti herhangi bir sinyalin değişimi olabileceği gibi, harici bir kaynak tarafından üretilen bir işarette olabilir.

process sözdizimi içerisinde parantezle tanımlanan sinyaller, tasarlanan devrenin hassasiyet listesini oluşturmaktadır. Hassasiyet listesinde bulunan sinyallerde meydana gelen değişimler ile process aktif hale gelmektedir. variable söz dizimi tanımlamaları process içerisinde yapılmaktadır. process dışında kullanılacak variable değeri, signal sinyaline atanarak aktarılır.

Örnek 1: process söz dizimi için process_ornek_1.vhd VHDL kodu aşağıda verilmiştir. Kodda 17. satırda process söz dizimi parantez içerisinde yazılan sinyaller, tasarlanan devrenin hassasiyet listesini oluşturmaktadır. process_ornek_1 varlığının hassasiyet listesini in_giris_1, in_giris_2 ve in_giris_3 oluşturmaktadır. Yani in_giris_1, in_giris_2 ve in_giris_3 giriş portlarından biri değişim gösterdiği zaman process aktif hale gelecektir.

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
 
entity process_ornek_1 is
  Port (
    in_giris_1 : in std_logic;
    in_giris_2 : in std_logic;
    in_giris_3 : in std_logic;
    out_sonuc : out std_logic
  );
end process_ornek_1;
 
architecture Behavioral of process_ornek_1 is
 
begin 

  process_etiketi:process(in_giris_1, in_giris_2, in_giris_3)
  begin

    out_cikis <= (in_giris_1 and in_giris_2) or in_giris_3;   

  end process process_etiketi;
end Behavioral;

Yukarıdaki verilen process_ornek_1 varlığının ait örnek girişlerin ürettiği sonuçlar Tablo 1’de verilmiştir ve Şekil 1’de benzetim çıktısı gösterilmiştir. Tablo 8‑1’de verilen sonuçlarda:

1. adımda hassasiyet listesinde bulunan tüm giriş portlarında değişim meydana geldiğinden process aktif hale gelmektedir. process’in aktif hale gelmesi ile birlikte out_cikis çıkış portuna  (0 and 1) or 1 işleminin sonucu atanmaktadır ve out_cikis çıkış portu değeri ‘1’ olmaktadır.

2. adımda hassasiyet listesinde bulunan tüm giriş portlarında değişim meydana geldiğinden process aktif hale gelmektedir. process’in aktif hale gelmesi ile birlikte out_cikis çıkış portuna  (1 and 0) or 0 işleminin sonucu atanmaktadır ve out_cikis çıkış portu değeri ‘0’ olmaktadır.

3. adımda hassasiyet listesinde bulunan in_giris_2 giriş portunda değişim meydana geldiğinden process aktif hale gelmektedir. process’in aktif hale gelmesi ile birlikte out_cikis çıkış portuna  (1 and 1) or 0 işleminin sonucu atanmaktadır ve out_cikis çıkış portu değeri ‘1’ olmaktadır.

4. adımda hassasiyet listesinde bulunan in_giris_1 giriş portunda değişim meydana geldiğinden process aktif hale gelmektedir. process’in aktif hale gelmesi ile birlikte out_cikis çıkış portuna  (0 and 1) or 0 işleminin sonucu atanmaktadır ve out_cikis çıkış portu değeri ‘0’ olmaktadır.

5. adımda hassasiyet listesinde bulunan tüm giriş portunda değişim meydana geldiğinden process aktif hale gelmektedir. process’in aktif hale gelmesi ile birlikte out_cikis çıkış portuna  (1 and 0) or 1 işleminin sonucu atanmaktadır ve out_cikis çıkış portu değeri ‘1’ olmaktadır.

 in_giris_1in_giris_2in_giris_3out_cikis
10111
21000
31101
40100
51011
Tablo 1 process_ornek_1 varlığının ilgili girişlere ait ürettiği çıkış değerleri

Şekil 1 process_ornek_1 varlığı benzetim çıktısı

Örnek 2: Aşağıda hassasiyet listesinde tek değişkenin bulunduğu process_ornek_2.vhd VHDL kodu verilmiştir.  Kodda 17. satırda process söz dizimi içerisinde parantezle yazılan in_giris_3 sinyali tasarlanan process_ornek_2 varlığının hassasiyet listesini oluşturmaktadır. Yani in_giris_3 sinyalinde değişim meydana geldiği zaman process aktif hale gelecektir.

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
 
entity process_ornek_2 is
  Port (
    in_giris_1 : in std_logic;
    in_giris_2 : in std_logic;
    in_giris_3 : in std_logic;
    out_sonuc : out std_logic
  );
end process_ornek_2;
 
architecture Behavioral of process_ornek_2 is
 
begin
 
  process_etiketi:process(in_giris_3)
  begin
     
     out_sonuc <= (in_giris_1 and in_giris_2) or in_giris_3;   
 
  end process process_etiketi;
end Behavioral;

process_ornek_2 varlığının ait örnek girişlerin ürettiği sonuçlar Tablo 2’de verilmiştir ve Şekil 2’de gösterilmiştir çıktısı verilmiştir.  Tablo 8‑2’de verilen sonuçlarda:

1. adımda process hassasiyet listesinde bulunan in_giris_3 giriş portunda değişim meydana geldiğinden process aktif hale gelmektedir. process’in aktif hale gelmesi ile birlikte out_cikis çıkış portuna  (0 and 1) or 1 işleminin sonucu atanmaktadır ve out_cikis çıkış portu değeri ‘1’ olmaktadır.

2. adımda process hassasiyet listesinde bulunan in_giris_3 giriş portunda değişim meydana geldiğinden process aktif hale gelmektedir. process’in aktif hale gelmesi ile birlikte out_cikis çıkış portuna  (1 and 0) or 0 işleminin sonucu atanmaktadır ve out_cikis çıkış portu değeri ‘0’ olmaktadır.

3. adımda process hassasiyet listesinde bulunan in_giris_3 giriş portunda değişim meydana gelmediğinden process aktif hale gelmemektedir. Bu nedenle out_cikis çıkış portu değeri değişmemiştir.

4. adımda process hassasiyet listesinde bulunan in_giris_3 giriş portunda değişim meydana gelmediğinden process aktif hale gelmemektedir. Bu nedenle out_cikis çıkış portu değeri değişmemiştir.

5. adımda process hassasiyet listesinde bulunan in_giris_3 giriş portunda değişim meydana geldiğinden process aktif hale gelmektedir. process’in aktif hale gelmesi ile birlikte out_cikis çıkış portuna  (1 and 0) or 1 işleminin sonucu atanmaktadır ve out_cikis çıkış portu değeri ‘1’ olmaktadır.

 in_giris_1in_giris_2in_giris_3out_cikis
10111
21000
31100
40100
51011
Tablo 2 process_ornek_2 varlığının ilgili girişlere ait ürettiği çıkış değerleri

Şekil 2 process_ornek_2 varlığı benzetim çıktısı

Bir yanıt yazın

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