Bu makalede, mantık kapılarını kullanarak ikili toplama işleminin nasıl yapıldığı, yarım ve tam toplayıcı anlatılmıştır. Yarım ve tam toplayıcı devrelerinin doğruluk tabloları ve tasarımları da gösterilmektedir.
Boolean Mantığı Nasıl Çalışır isimli makalemizde mantıksal kapıların nasıl çalıştığına, Bit ve byte ile ilgili makalemizde ise ikili sayılarda toplama işlemine basitçe değinmiştik.
Tek bitlik toplama (ekleme) işlemi yapmak istediğimizi varsayalım. Bu işlemi yapabilecek bir devre tasarlamaya tüm mantıksal kombinasyonları yazarak başlayalım:
0 + 0 = 0 0 + 1 = 1 1 + 0 = 1 1 + 1 = 10
Görüldüğü gibi çok basit. Bu işlem istenilirse aşağıdaki gibi de gösterilir ki bizim işimizi daha kolaylaştırır.
0 + 0 = 00 0 + 1 = 01 1 + 0 = 01 1 + 1 = 10
Tek sorun 1+1 işlemindeki taşma. Carry bit (taşma biti) önemsemez isek, devrenin çıkışlarına bakıldığında XOR kapısı ile çıkışlar aynı olduğu için devre XOR kapısı ile çözülür.
Yarım Toplayıcı (Half Adder)
CO : Carry-Out => Elde
Bu tabloya baktığımızda, çıkış Q için XOR kapısı ve elde CO için bir AND kapısı ile 1-bitlik toplayıcı devresi yapılır.
İki tane 8 bitlik toplama yapmak istersek işler biraz karışabilir. Toplama yaparken elde biti bir sonraki basamağa ilave edilmelidir. Bunu yapacak devreyi tasarlamak 3 giriş biti kullanmalıyız. Birisi CI: Carry In (Elde girişi) ki bu önceki basamaktan gelecek, A ve B girişleri. Çıkış olarak Q ve CO: Carry Out (Elde). 3 giriş bitli bu devreye tam toplayıcı (full adder) denir. 8 tam toplayıcıyı bir araya getirerek bir byte’lık bir toplama yapabiliriz ve bir bitin diğerine taşma bitini kademelendirebiliriz.
Tam Toplayıcı (Full Adder)
Tabloyu dikkatle incelersek, Q bitinin üst 4 tanesinin A ve B girişlerine göre XOR kapısı, alttaki 4 bitinin ise XNOR kapısı gibi davrandığını görebiliriz. CO’nun üstteki 4 bitinin A ve B’ye göre AND kapısı, alttaki 4 bitin ise OR kapısı gibi davrandığını görebiliriz. Aşağıdaki devre CI’nin de dahil edilmesiyle elde edilen tam toplayıcı devresidir.
Tam toplayıcı devresi için en uygun çözüm bu devre değil fakat tablodan devreye nasıl dönüştürülebileceğine dair bir örnek olması açısından önemli.
Yarım toplayıcıları artarda ekleyerek tam toplayıcı devresi yapmak da mümkün. Bu şekilde daha az mantık kapısı kullanılmış olacaktır.
İki devre de aynı işi yapmakla beraber daha az mantık kapısı kullanan devre tercih edilir.
Devreleri daha kolay çizebilmek için tam toplayıcı bir kutu şeklinde de gösterebiliriz.
Kutu şeklinde çizmek kapılarla çizmekten kolay olduğu gibi, içerisinde olanları her defasında düşünmektense sadece mantığına odaklanmamızı da sağlıyor. CI yani elde girişini ve A ile B girişlerini toplayarak Q çıkışını ve CO yani taşmayı üreten bir kutu çizmiş olduk.
4-bit toplama yapmak istediğimizde 4 adet tam toplayıcıyı birbirlerine aşağıdaki gibi bağlayabiliriz.
Tam toplayıcıda CO’lar diğer basamağı oluşturan tam toplayıcının CI girişine verilmiştir. Böylece eldeli 4 bitlik toplama devresi oluşturulmuştur. Toplama işlemini yaparken ilk önce Elde (CI) biti ile beraber A0 ve B0 toplanır ve Q0 değeri elde edilir. Daha sonra işlemde elde var ise A1 ve B1 toplamına ilave edilir Q1 elde edilir. İşlem bu şekilde devam ederek 4 bitlik toplama işlemi yapılır. (Bazı gösterimlerde Q yerine Sum – toplam anlamında S kullanılabilir.)
Bu zinciri istediğimiz kadar uzatıp örneğin 8, 16 veya 32 bitlik toplayıcılar elde edebiliriz.
4-bitlik bu toplayıcı ripple-carry yani dalgalanma taşıyan toplayıcı olarak adlandırılır. Dalgalanma tabiri elde bitlerinin bir toplayıcıdan diğerine aktarılması bir anlamda dalgalanmasından gelir. Bu uygulama basitlik avantajına sahiptir fakat hız olarak bir dezavantaja sahiptir. Gerçek bir devrede kapıların çıkışları anında değişmez. Çıkış ve elde oluşması biraz zaman alır. Bu zaman nanosaniye boyutundadır fakat yüksek hızlı bilgisayarlar için bu zaman önemlidir. Bir toplayıcının çıkış durumunun değişme zamanını örnek olarak 20 nanosaniye düşünürsek 4 bitlik bir toplayıcıda nihai toplam ancak 80 nanosaniyede elde edilebilir. Zaman problemini çözmek için Carry-lookahead toplayıcıları geliştirilmiştir. Carry-lookahead toplayıcılarını yapmak için daha fazla kapı gereklidir ancak çıkışları çok daha hızlı gereken değeri alabilirler.
Entegre Devre Toplayıcılar
Yarım toplayıcılar ile sadece 1 bit toplama yapılabildiği için pratikte tam toplayıcılar kullanılır. Çünkü tam toplayıcılar ile 1 bitlik sayılar da toplanabilir. Toplanmak istenen bit sayısı artınca devreler karmaşıklaşır ve kullanılacak kapı ve dolayısıyla entegre sayısı artar. Bunun için toplayıcılar entegre devre haline getirilmiştir. 4 bitlik paralel toplayıcı entegreleri 7483, 74283, 54283 ve 4008 dir. Örnek olarak CD4008BMS isimli entegrenin katalog bilgilerine buradan ulaşabilirsiniz.
Entegrenin görünüşü ise bu şekilde:
Bacak bağlantı ise aşağıdaki gibidir.
Bu makalemizde bilgisayarın en fazla yaptığı iş olan toplama işlemi üzerinde durduk. Diğer makalemizde görüşmek üzere…