ForumSinsi - 2006 Yılından Beri

ForumSinsi - 2006 Yılından Beri (http://forumsinsi.com/index.php)
-   Matematik / Geometri (http://forumsinsi.com/forumdisplay.php?f=660)
-   -   Eşzamansız Sayaçlar (http://forumsinsi.com/showthread.php?t=58897)

[KAPLAN] 11-08-2008 01:30 AM

Eşzamansız Sayaçlar
 
Eşzamansız Sayaçlar
Bir önceki bölümde, bir tane J-K ikidurumlu kullanarak, bir iki-bit ikili dizisinde 11'den 10'a, 01'e 00'a doğru geri sayan bir devre görmüştük. Sadece geri doğru saymak yerine, ileri doğru da sayabilen bir devre yapmak arzu edildiğinden, tekrar bir "ileri doğru sayı dizisi" incelemek zahmete değerdir ve daha fazla biçim düzenlerine bakmak böyle bir devrenin nasıl kurulacağı hakkında fikir verebilir.
İkili sayma dizilerinin sekizli frekans bölmesi (2 faktörü ile) şeklinde bir biçim düzeni(pattern) takip ettiğini ve "geçiş" modu için ayarlanan J-K ikidurumlu çoklu-titreşimciler bu tür frekans bölme işlemini gerçekleştirme yetenekli olduklarını bildiğimizden, birçok J-K ikidurumlularından bir devre oluşturabilir, dört-bitlerden oluşan çıktı elde edebiliriz. Bizim karşılaşabileceğimiz en temel problem, düzgün ikili dizi üretebilmek için doğru zamanlarda geçiş yapacak ikidurumluları nasıl bağlayacağımızdır. Aşağıdaki ikili sayma dizisini, bir bitin 0 ile 1 arasındaki "geçiş" işlemini yapan biçim düzenlerini dikkat ederek inceleyiniz:
http://akademi.tubisad.org.tr/librar...html/14052.png
Bu dört-bit dizisinde her bir bit, "kendisinden önceki (daha düşük anlamı olan) bit belirli olarak sadece 1'den 0 yönüne geçiş yaptığında", geçiş işlemi yaptığına dikkat ediniz. Küçük oklar dizideki bitlerin geçiş yaptığı noktaları göstermekte, okun uçları da bir önceki "yüksek" (1) durumdan "düşük" duruma olan bit geçişine işaret etmektedir.
http://akademi.tubisad.org.tr/librar...html/14054.png
Dört tane J-K ikidurumluyu başlangıçta , sürekli "geçiş" modunda olmasını sağlayacak şekilde bağlamak için,
saat girişlerinin, her takip eden bitin, "kendisinden önceki bitin 1'den 0'a geçiş yaptığı zaman" geçiş yapacak şekilde nasıl bağlanacağını belirlemeliyiz. Her bir ikidurumlunun Q çıktıları en sonunda bireysel ikili bitleri olarak sunulacaktır, dört-bit sayımı:

http://akademi.tubisad.org.tr/librar...html/04346.png
Eğer ikidurumluları negatif-kenar tetikleyicileri (saat girişlerinin üstündeki yuvarlak semboller) ile birlikte kullanmış olsaydık, basitçe her bir ikidurumlunun saat girişini kendisinden önceki ikidurumlunun Q çıkışına bağlardık, böylece bit 1'den 0'a değiştiği zaman, o sinyalin "düşen-kenarı" (falling edge) sıradaki ikidurumluyu bir sonraki bite geçiş yaptırması için "sinyalleme" yapardı:
http://akademi.tubisad.org.tr/librar...html/04347.png
Bu devre, osilatörden çıkan tekrar eden darbe kaynakları ile "sinyallendiği" (clocked) zaman aşağıdaki çıkış dalga-formlarını üretmektedir.
http://akademi.tubisad.org.tr/librar...html/14055.png
İlk ikidurumlu (Q0 çıkışı olan ) bir pozitif-kenar tetiklenmiş saat girişine sahiptir, böylece saat sinyalinin her bir yükselen kenar ile birlikte geçiş yapar. Bu örnekteki saat sinyalinin nasıl %50'den daha az bir görev döngüsüne sahip olduğuna dikkat ediniz. Dört-bit ikili dizimizde emniyetli, "temiz" bit çıktıları almak için saat sinyalinin nasıl simetrik olmak zorunda olmadığını göstermeyi amaçlayan bu tarzdaki sinyali gösterdim. Bu bölümdeki gösterilen ilk ikidurumlu devrede, saat sinyalinin kendisini çıktı bitlerden biri olarak kullandım. Bu, sayaç tasarımı için kötü bir deneyimdir çünkü her bir ve her adımda aynı miktar zaman içinde duraklayan sayı dizisi elde etmek için %50 görev döngüsü olan kare dalga sinyalini gerektirmektedir ("yüksek" zaman = "düşük" zaman). Her bir çıktı bit'i için bir tane J-K ikidurumlu kullanmak, bizi simetrik saat sinyaline sahip olmaktan kurtarır ve sayı dizisinin artırmak için herhangi bir farklı yüksek/düşük dalgaformunun pratik olarak kullanılmasına izin verir.
Darbe şemasında belirtildiği gibi bütün diğer oklar, her bir takip eden çıktı bit'i bir önceki bit geçişinin "yüksekten" (1) "düşüğe" (0) olacak şekilde geçiş yaptırılır. Bu "yukarı"doğru sayma dizisi için gerekli bir düzenidir.
Pozitif-kenar tetiklenmiş ikidurumlular kullanarak "yukarı" doğru olan dizi üretmenin daha az açık olan bir çözümü de, her bir ikidurumluyu bir önceki ikidurumlunun Q çıktısı yerine Q' çıktısı kullanarak "sinyallemektir". Q' çıktısı bir ikidurumlu üzerinde her zaman Q çıktısının tam zıt durumu olacağı için, (bu tür iki durumluda geçersiz durum yoktur), Q çıktısı üzerindeki yüksekten-düşüğe olan geçişe Q' üzerindeki düşükten-yükseğe geçiş eşlik edecektir. Bir başka deyişle, her seferinde ikidurumlunun Q çıktısı 1'den 0'a geçişler yaparken, aynı ikidurumlunun Q' çıktısı 0'dan 1'e geçiş yapacaktır ve bu şekilde pozitif-ilerleyen saat darbesi sağlanacaktır ve doğru anda geçiş yapmamızı gerektiren bir pozitif-kenar tetiklenmiş ikidurumluyu sağlayacaktır:
http://akademi.tubisad.org.tr/librar...html/04348.png
Her iki sayaç devresinin yeteneklerini arttırabilecek yollardan biri de Q' çıktılarına başka dört tane ikili bit olarak bakmaktır. Eğer böyle bir devrenin darbe şemasını incelersek, Q' çıktıları aşağı-sayan dizi üretirken Q çıktıları da yukarı-sayan diziler ürettiğini görürüz:
http://akademi.tubisad.org.tr/librar...html/04349.png
http://akademi.tubisad.org.tr/librar...html/14056.png
Burada gösterilen bütün sayaç devrelerinde maalesef ortak bir problem vardır: dalgacıklanma etkisi. Bu etki belli tip ikili toplayıcı ve veri dönüştürme devrelerinde görülmektedir ve bunu sebebi ard arda bağlanmış geçitler arasındaki biriktirici yayılımın gecikmesidir. Bir ikidurumlunun Q çıktısı 1'den 0'a geçiş yaptı zaman, bir sonraki ikidurumluya geçiş yapması için komut verir. Eğer bir sonraki ikidurumlu 1'den 0'a bir geçiş yaptıysa, o da kendisinden sonrakiye geçiş yapmasını söyler ve bu şekilde devam eder. Bununla birlikte, geçiş yapmak için verilen komut ile (saat darbesi) gerçek geçiş yanıtı (Q ve Q' çıktıları durum değiştiriyorlar) arasında her zaman bir miktar yayılma gecikmesi bulunur, her sonradan gelen ve geçiş yapacak olan ikidurumlular ilk ikidurumlu geçiş yaptıktan belli bir süre sonra geçiş yapacaklardır. Böylece, bir ikili sayma dizisinde, çoklu bitler geçiş yaptığında, kesinlikle ayın zamanda geçiş yapamayacaklardır:
http://akademi.tubisad.org.tr/librar...html/14057.png
Görüldüğü üzere, ne kadar çok bit verilen bir saat darbesinde geçiş yaparsa, LSB'den MSB'ye o kadar çok gecikme zamanı birikir. Bu şekilde olan bir geçiş noktasında bir saat darbesi meydana geldiğinde (mesela 0111'den 1000'e olan geçişte), çıktı bitleri LSB'den MSB'ye olan dizide "dalgacıklanacaktır", her sıradaki bit geçiş yapar ve bir sonraki bite geçiş yapması için komut verir ve her bir bitin geçiş yapması esnasında da küçük bir yayılma gecikmesi oluşur.
Eğer biz 0111'den 1000'a olan geçişe daha yakından bakarsak, "dalgacıklanma" etkisinin meydana geldiği kısa zaman aralıklarında üretilen yanlış çıktı saymaları olduğunu görürüz:
http://akademi.tubisad.org.tr/librar...html/14058.png
"0111" çıktısından "1000" çıktısına olan temiz geçişler yerine, sayaç devresi çok hızlıca 0111'den 0110'a 0100'a 0000'a 1000'a, ya da 7'den 6'ya 4'e 0'a ve sonra 8'e dalgacıklanır. Bu davranış sayaç devresine dalgacıklanma sayacı ya da eşzamansız sayaç ismini kazandırır.
Birçok uygulamada, dalgacıklanma çok çok hızlı olduğunda tolere edilebilir (gecikmelerin genişliği burada biraz aşırıya kaçmıştır ama etkileri anlamak için yardımcı olmuştur). Eğer bütün yapmak istediğimiz, örneğin, sayaçların çıktıları ile birlikte bir seri ışık-yayan diyotlar (LEDler) sürmek ise, bu kısa dalgacıklanma önemli olmayacaktı. Ancak eğer bu sayacı bir çoklayıcının "seçme" girdilerini sürmek için, bir mikroişlemci (bilgisayar) devresinin içinde hafıza işaretleyicisinin indeksi olarak ya da yanlış çıktıların ciddi hatalara sebep olduğu bazı diğer görevlerde kullanmak kabul edilemez bir durumdur. "Yanlış", dalgacıklı-üretilmiş çıktılara hassas uygulamalar için bu tip sayaç devrelerini kullanmanın bir yolu vardır ve "strobing" (seçici darbe) olarak bilinen bir prensip içermektedir.
Çoğu kod çözücü ve çoklayıcı devreler, en az bir tane "seçili kıl" (enable) denilen giriş ile donatılmıştırlar. Böyle bir devrenin çıktı ya da çıktıları sadece "seçili kıl" girişi aktif yapıldığında aktif olacaklardır. Bu aktifleştirme girişini dalgalanma sayacının çıkışına bağlı devreyi strobe(darbeli tetikleme) etmek için kullanabiliriz, böylece sayaç çıkışlarının dalgalandığı kısa zaman aralığında kapalı olur (ve sayacın çıkışına tepki vermez) ve bütün dalgalanma bittikten sonraki son saat darbesine kadar yeteri kadar zaman geçtikten sonra aktif konumuna gelir. Birçok durumda, darbeli tetikleme sinyali sayaç devresini süren saat darbesi ile aynı olabilir:
http://akademi.tubisad.org.tr/librar...html/04350.png
Aktifliği-düşük "seçili kıl" girişi ile, alıcı devre sadece saat sinyali "düşük" olduğu zaman dört-bit sayaç devresindeki ikili saymayı yanıtlayacaktır. Saat darbesi "yükseğe" gider gitmez, alıcı devre sayaç devresinin çıktısını almayı durdurmaktadır. Sayaç devresi pozitif-kenar tetiklenmiş olduğu için (ilk ikidurumlu saat girişi tarafında belirlenir), bütün sayma hareketleri saat sinyalinin düşükten-yükseğe geçiş üzerinde meydana gelmektedir. Alıcı devre, sayaç devresinin dört çıkış bit'inin üzerinde herhangi bir geçiş olmasında hemen önce etkisiz hale gelecektir. Alıcı devre saat sinyali düşük duruma geçmediği sürece aktif olmaz, bu süre yeni bir sinyalin alıcı devrede etki göstermesi için bütün dalgalanma durduktan sonra yeteri kadar uzun olmalıdır. Buradaki önemli parametre saat sinyalinin "yüksek" zamanıdır: uzunluğu en azından sayaç devresinin en yüksek kabul edilen dalgacıklanma periyodu kadar olmalıdır. Eğer olmazsa, saat sinyali alıcı devreyi, dalgacıklanma hala devam ederken, zamansız olarak etkili hale getirecek
Eşzamansızlığın ya da dalgacıklığın bir başka dezavantajı da sayaç devresinin hızının sınırlı olmasıdır. Bütün geçit devreleri maksimum sinyal frekansı şeklinde sınırlanmışken, eşzamansız sayaç devrelerinin tasarımı, bu problemi yayılma gecikmelerini katkılı olacak şekilde yaparak birleştirmektedir. Böylece, alıcı devrede darbeli tetikleme kullanılsa bile bir eşzamansız sayaç devresi bir dahaki darbeden önce en büyük olası toplam ilerleme gecikmesini sağlayan frekanstan daha yüksek bir frekansa ayarlanamaz.
Bu problemin çözümü dalgacıklanmadan tamamen kaçan bir sayaç devresidir. Böyle bir sayaç devresi "strobing" özelliği tasarlamaya olan ihtiyacını ortadan kaldıracaktır, her türlü dijital devreler sayaç çıktısını girdi olarak kullanırlar, aynı zamanda eşzamansız eşitinden daha çok operasyonel hız sağlar. Bu sayaç devresinin tasarımı bir sonraki bölümün konusudur.
  • ÖZET:
  • Bir "yukarı"sayaç pozitif-köşe tetiklenmiş J-K ikiduyumlunun saat girdilerini bir önceki ikidurumlunun Q' çıktılarına bağlayarak yapılabilir. Negatif-kenar tetiklenmiş ikiduyumluları kullanmanın bir başka yolu da, saat girdilerini bir önceki ikidurumlunun Q çıktılarına bağlamaktır. Her iki durumda da, bütün ikiduyumluların J ve K girdileri Vcc ya da Vdd'ye bağlanır ve her zaman "yüksek" olur.
  • Sayaç devreleri basamaklanmış J-K iki duyumlulardan yapılmıştır. Burada her saat girdisi darbelerini bir önceki ikiduyumlunun çıktısından alır ve sayma dizisinin bazı adımları arasında yanlış çıktı saymaları üretilen daimi bir dalgacıklanma etkisi sergiler. Bu tip sayaç devrelerine eşzamansız devreler ya da dalgacıklanma sayaçları olarak bilinmektedir.
  • Darbeli tetikleme bir eşzamansız sayacın çıktısını alan devrelere uygulanan bir tekniktir ve öyle ki, dalgacıklanma zamanında sırasında üretilen "yanlış" saymalar olumsuz etki etmeyeceklerdir.
  • Esasen, sayacın saat darbesine bağlanan böyle bir devrenin "etkin kıl" girdisi, sadece sayaç çıktıları değişmediğinde etkin hale getirilir ve dalgacıklanmanın oluştuğu değişen sayaç çıktılarının periyotları sırasında da etkin olmayan hale getirilir.


Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.