Eşzamanlı reset işlemi tetikleme işaretine (saat darbesine) bağlı olarak çalışan bir tasarımdır. Eşzamanlı olmayan reset işleminden farklı olarak reset girişi etkinleştirilse bile çıkışın sıfırlanması için saat darbesinin yükselen kenarı (tasarıma göre düşen kenarı da olabilir) beklenmektedir.
“Eşzamanlı Resetli Yükselen Kenar Tetiklemeli D İki Durumlusu” tasarımına ait doğruluk tablosu Tablo 1’de verilmiştir. Tablo 1’den de görüleceği üzere saat darbesi yükselen kenarı mevcut ve in_rst giriş portu değeri ‘0’ ise in_giris giriş port değeri out_cikis çıkış portuna, in_giris giriş port değerinin değili ise out_cikis’ çıkış portuna atanmaktadır.
Yükselen kenar mevcut olmadığı durumlarda ise çıkış değerleri bir önceki durumlarını korumaktadır. Eğer saat darbesi yükselen kenarı mevcut ve in_rst giriş değeri ‘1‘ ise in_giris giriş portu değeri önemsiz hale gelmektedir. Bu durumda out_cikis çıkış portu değerine ‘0’ ve out_cikis’ çıkış portu değerine ‘1’ atanmaktadır. Saat darbesi yükselen kenarı mevcut olmadığı durumlarda ise in_rst ve in_giris giriş portu değerleri önemsiz hale gelmektedir ve çıkış değerleri bir önceki değerlerini korumaktadır.
in_clk | in_rst | in_giris | out_cikis+ |
Çıkan kenar | 0 | 0 | 0 |
Çıkan kenar | 1 | 1 | |
Çıkan kenar yok | X | out_cikis | |
Çıkan kenar | 1 | 0 | 0 |
Çıkan kenar | 1 | 0 | |
Çıkan kenar yok | X | out_cikis |
Örnek 1: Aşağıda “Eşzamanlı Resetli Yükselen Kenar Tetiklemeli D İki Durumlusu” mantık devresinin gerçekleştirildiği eszam_rstli_d_mandali.vhd VHDL kodu verilmiştir. Tablo 1’den de görülceği üzere eszam_olmayan_rstli_d_mandali varlığımız üç giriş ve iki çıkış portuna sahiptir. Port tanımlamaya ilişkin bildirimler 5-11 satırları arasında yapılmatıdır.
16. satırda r_cikis sinyali tanımlanmaktadır. 20. satırda out_cikis portuna r_cikis sinyali atanırken, 21. satırda ise out_cikis_degil portuna r_cikis sinyalinin değili atanmaktadır. 23. satırda tanımlanan söz dizimi ile process’in in_clk, in_rst ve in_giris değerlerinden meydana gelen değişiklikler ile aktif olacağı belirtilmektedir. 25. satırda tanımlı koşul ifadesi ile koşulun sağlanması yani in_clk giriş sinyalinin yükselen kenarının meydana gelmesi durumunda 26. satırda tanımlı koşul ifadesi ile ile in_rst girişi ‘1’ değerini aldığında in_giris sinyalinin durumu farketmeksiniz r_cikis sinyaline ‘0’ değeri atanmaktadır. Bu durumda out_cikis değeri ‘0’ ve out_cikis_degil değeri ‘1’ olmaktadır. in_rst girişinin diğer durumlarında ise in_giris değeri r_cikis sinyaline atanmaktadır. in_clk giriş sinyalinin yükselen kenarının meydana gelmemesi durumunda ise r_cikis sinyali bir önceki değerini korumaktadır.
library IEEE; use IEEE.STD_LOGIC_1164.all; entity eszam_rstli_d_mandali is port ( in_clk : in std_logic; in_rst : in std_logic; in_giris : in std_logic; out_cikis : out std_logic; out_cikis_degil : out std_logic ); end eszam_rstli_d_mandali; architecture Behavioral of eszam_rstli_d_mandali is signal r_cikis : std_logic := '0'; begin process(in_clk, in_rst, in_giris) begin if in_clk'event and in_clk = '1' then if in_rst = '1' then r_cikis <= '0'; else r_cikis <= in_giris; end if; end if; end process; out_cikis <= r_cikis; out_cikis_degil <= (not r_cikis); end Behavioral;
Aşağıda ise eszam_rstli_d_mandali varlığının benzetim yapılabilmesi için tb_eszam_rstli_d_mandali.vhd sınama kodu (test bench) verilmiştir ve benzetim çıktısı Şekil 1’de gösterilmiştir. Şekil 1’de gösterilen benzetim sonucunda:
1. adım: in_clk giriş portunun yükselen kenarı ile birliktein_rst giriş portu değerinin ‘0’ olmasıyla in_giris giriş portu değeri r_cikis sinyaline atanmaktadır ve r_cikis sinyalinin değeri ‘0’ olmaktadır. r_cikis sinyalinin değerinin ‘0’ olması ile out_cikis çıkış portuna ‘0’, out_cikis_degil çıkış portuna ‘1’ değerleri atanmaktadır. 1. adım içerisinde in_rst ve in_giris giriş portları ‘1’ değerini almalarına rağmen saat darbesi yükselen kenarı meydana gelmediği için r_cikis sinyal değeri değişmemiştir.
2. adım: in_clk giriş portunun yükselen kenarı ile birliktein_rst giriş portu değerinin ‘0’ olmasıyla in_giris giriş portu değeri r_cikis sinyaline atanmıştır ve r_cikis sinyalinin değeri ‘1’ olmaktadır. r_cikis sinyalinin değerinin ‘1’ olması ile out_cikis çıkış portuna ‘1’, out_cikis_degil çıkış portuna ‘0’ değerleri atanmaktadır.
3. adım: in_clk giriş portunun yükselen kenarı ile birliktein_rst giriş portu değerinin ‘1’ olmasıyla r_cikis sinyaline 0′ atanmıştır. r_cikis sinyalinin değerinin ‘0’ olması ile out_cikis çıkış portuna ‘0’, out_cikis_degil çıkış portuna ‘1’ değerleri atanmaktadır.
4. adım: in_clk giriş portunun yükselen kenarı ile birliktein_rst giriş portu değerinin ‘0’ olmasıyla in_giris giriş portu değeri r_cikis sinyaline atanmıştır ve r_cikis sinyalinin değeri ‘0’ olmaktadır. r_cikis sinyalinin değerinin ‘0’ olması ile out_cikis çıkış portuna ‘0’, out_cikis_degil çıkış portuna ‘1’ değerleri atanmaktadır. 4. adım içerisinde in_giris giriş portu ‘1’ değerini almasına rağmen saat darbesi yükselen kenarı meydana gelmediği için r_cikis sinyali değeri değişmemiştir.
5. adım: in_clk giriş portunun yükselen kenarı ile birliktein_rst giriş portu değerinin ‘0’ olmasıyla in_giris giriş portu değeri r_cikis sinyaline atanmıştır ve r_cikis sinyalinin değeri ‘1’ olmaktadır. r_cikis sinyalinin değerinin ‘1’ olması ile out_cikis çıkış portuna ‘1’, out_cikis_degil çıkış portuna ‘0’ değerleri atanmaktadır. 5. adım içerisinde in_rst giriş portu ‘1’ ve in_giris giriş portu ‘0’ değerini almasına rağmen saat darbesi yükselen kenarı meydana gelmediği için r_cikis sinyali değeri değişmemiştir.
6. adım:in_clk giriş portunun yükselen kenarı ile birliktein_rst giriş portu değerinin ‘1’ olmasıyla r_cikis sinyaline 0′ atanmıştır. r_cikis sinyalinin değerinin ‘0’ olması ile out_cikis çıkış portuna ‘0’, out_cikis_degil çıkış portuna ‘1’ değerleri atanmaktadır. 6. adım içerisinde in_rst giriş portu ‘0’ değerini almasına rağmen saat darbesi yükselen kenarı meydana gelmediği için r_cikis sinyali değeri değişmemiştir.

Şekil 1 eszam_rstli_d_mandali varlığı benzetim çıktısı
VHDL’de Eşzamanlı Olmayan Resetli Yükselen Kenar Tetiklemeli D İki Durumlusu yazımızda verilen tb_eszam_olmayan_rstli_d_mandali.vhd sınama kodunda (test bench) aşağıda verilen satır numaralarındaki tanımlamalarda değişiklikler yapılarak eszam_rstli_d_mandali varlığının benzetimi yapılabilmektedir.
component eszam_rstli_d_mandali Port ( in_clk : in std_logic; in_rst : in std_logic; in_giris : in std_logic; out_cikis : out std_logic; out_cikis_degil : out std_logic ); end component;
eszam_olmayan_rstli_d_mandali_map : eszam_olmayan_rstli_d_mandali port map( in_clk => in_clk, in_rst => in_rst, in_giris => in_giris, out_cikis => out_cikis, out_cikis_degil => out_cikis_degil );