Devreler

8 Bit Bilgisayar Nasıl Kurulur: 18 Adım (Resimlerle)

Günümüz işlemcilerinin dedeleri: 8-bit efsaneler

Günümüz işlemcilerinin dedeleri: 8-bit efsaneler

İçindekiler:

Anonim

8 bitlik bir TTL bilgisayarı oluşturmak göz korkutucu ve karmaşık bir görev gibi geliyor veya en azından temel bir CPU mimarisini anlama yolculuğumda başıma geldi. Bu konuya gelince, tüm işlemlerinin arkasındaki temelleri öğrendiğinizde, bir CPU kullanımı oldukça basittir. Bu proje, kendi bilgisayarını kurmak ve bu süreçle birlikte gelen harika bilgiyi kazanmak isteyen herkese yardımcı olmayı amaçlamaktadır. Denemekten korkma, sadece öğrenebilirsin.
Bu proje elektroniğin temellerini anlatarak başlayacaktır. Bundan sonra, ikili ve boolean mantığının temelleri açıklanacaktır. Son olarak, Malvino’nun metninde açıklandığı gibi, olabildiğince basit bir bilgisayarın çeşitli bölümlerinin (birkaç değişiklikle) işlevine geçeceğiz. Dijital Bilgisayar Elektroniği . Bu, bu Eğitilebilir Öğenin son ürününün, benzersiz bir komut setiyle programlayabileceğiniz bir bilgisayar olacağı anlamına gelir. Bu proje aynı zamanda bilgisayarın tasarım yönlerinin çoğunu size bırakıyor ve kendi bilgisayarınızı kurmanız için bir rehber niteliğinde. Çünkü bu projeye yaklaşmanın birçok yolu var. Boolean mantığını ve ikilik çalışmalarını zaten iyi anlıyorsanız, projenin etine atlamaktan çekinmeyin. Umarım hepiniz böyle bir yapının tadını çıkarır ve çıkarırsınız, kesinlikle yaptığımı biliyorum.
Bu proje için ihtiyacınız olacak:
1.) Bir güç kaynağı
2.) Breadboards + birçok tel
3.) LED çıkış için
4.) Çeşitli mantık IC'leri (daha sonra tartışılacaktır)
5.) Serbest zaman
6.) Hata yapmaktan ve hatalardan ders almak için istekli olma
7.) Çok sabır
İsteğe bağlı (ancak çok kullanışlı):
1.) Osiloskop
2.) Dijital multimetre
3.) EEPROM programcısı
4.) Sonic tornavida
Bunun gibi bir proje için faydalı linkler:
Dijital Bilgisayar Elektroniği:
http://www.amazon.com/Digital-computer-electronics-Albert-Malvino/dp/007039861
TTL Yemek Tarifleri: http://www.amazon.com/TTL-Cookbook-Understanding-Transistor-Transistor-Integrated/dp/B0049UUV38

Gereçler:

Adım 1: Bilgisayar Nedir?

Bu, aslında pek çok insanın doğru cevabı bilmediği bir soru olduğunda cevaplamaya gerek duymayan çok basit bir soru gibi görünebilir. Bilgisayarlar, transistörden mekanik ve teorik olarak çok daha uzun süredir var olmuştur. Bir bilgisayarın asıl tanımı Alan Turing adında çok zeki bir kişi tarafından düşünülmüştü. Turing Makinesi denilen bir makine tanımladı. Bugün kullandığımız her bilgisayar, bunu okuduğunuz bilgisayardan veya cep telefonundan süper bilgisayarlara kadar hepsi en basit seviyede Turing Makinesi olarak sınıflandırılabilir.
Turing Makinesi Nedir? Bir Turing Makinesi 4 parçadan oluşur: bant, kafa, masa ve durum kaydı. Böyle bir makinenin çalışmasını görselleştirmek için önce her yönde sonsuz bir yayılma gösteren bir film şeridi hayal etmeniz gerekir. Şimdi, bu film şeridinin her bir hücresinin tanımlanmış bir simge kümesinden (bir alfabe gibi) yalnızca birini içerebileceğini hayal edin. Bu örnekte, her bir hücrenin yalnızca "0" veya "1" içerebileceğini düşünelim. Bu hücreler sonsuz miktarda yeniden yazılabilir, ancak tekrar değiştirilinceye kadar bilgilerini sınırsız bir şekilde saklayabilir. Turing Machine'in kafa olarak bilinen kısmı, hücrelere semboller yazabilir, ayrıca film şeridi üzerindeki konumunu belirli bir tam sayıdaki (tam sayıdaki) artırabilir veya azaltabilir. Bir sonraki bölüm, kafanın "sağa 4 hücreleri hareket ettir" ve "hücreyi 1'e ayarla" gibi bir talimat setini içeren tablodur. Bir Turing Makinesinin dördüncü ve son kısmı, amacı makinenin mevcut durumunu elinde tutmak olan devlet sicilidir. Durum, talimatın yanı sıra kasetteki mevcut verileri de içerir.
Bir bilgisayarın kullanımı bu kadar basit. Bilgisayarınız çalıştığında, aslında bir turing makinesi olarak çalışıyor. Bilgisayarınızda tutulan verileri belirli bir talimat ve algoritma kümesi ile işler. Bu Eğitilebilir Tabloda açıklanan bilgisayar, bir bilgisayarın çok basit bir modelidir, ancak yine de izleyeceği ve uygulayacağı bir dizi talimatla programlayabileceğiniz biri olarak çalışır.
Kullanışlı bağlantılar:
Turing Makinelerinde Wikipedia:
http://en.wikipedia.org/wiki/Turing_machine

Adım 2: Elektroniğe Giriş

8 bitlik bir bilgisayar inşa etmeden önce, elektriğin ve analog devrenin temel özelliklerini kavramak son derece yararlıdır. Bilgisayarda inşa edeceğiniz parçaların analog bileşenlere ihtiyacı olacak. Elektrik mühendisliğinde bir çarpışma rotası sağlayan, minimum maliyet karşılığında çok sayıda elektronik kendi kendine öğretim kılavuzu bulunmaktadır. Şahsen buldum Elektronik Kendi Kendine Öğretme Rehberi Harry Kybet ve Earl Boysen, analog elektronik dünyasını ele geçirmek için harika bir kitap.
Elektronik Kendi Kendine Öğretme Rehberi : http://www.amazon.com/Electronics-Self-Teaching-Guide-Teaching-Guides/dp/0470289619/
Ortak Bileşenler:
Direnç - Ohm olarak ölçülen akımı sınırlar.
Kapasitör - Yükü depolar, kutupsal veya kutupsuz olabilir (kutup, çalışması için doğru yöne yerleştirilmesi gerektiği anlamına gelir). Uzaklarda ölçülür.
Diyot - Akımın sadece bir yönde akmasına izin verir, yanlış yöne yerleştirildiğinde belirli bir voltajda parçalanır.
Transistör - Bir aracı olarak görev yapan üçüncü bir pim tarafından kontrol edilen bir akım kapısı. Birçok transistör tipi var, ama burada iki tipte gelen BJT (bipolar kavşak transistörü) hakkında konuşacağız: NPN ve PNP.

Akım, voltaj ve direnç bir devrede el ele gider. Üçlü arasındaki ilişki Ohm yasası ile ifade edilebilir: V = IR. Başka bir deyişle, Voltaj, akımı ohm cinsinden direnç ile çarpılan amper cinsinden eşittir. Ohm kanunu, elektronikteki en önemli formüllerden biridir ve başınızın tepesinden haber almaya değer.
Ohm yasasını uygulamak için bir devrenin direncini bilmeniz gerekir. Bir rezistörün değerini bulmak için renk kodunu kullanmanız gerekir. Direnç renk kodu görünür tayfı temel alır ve birçok farklı moda ezberlenebilir. Ezberlemek istemeyenler için, direnciniz için doğru değeri bulmanıza yardımcı olacak birçok araç var. Bir devredeki toplam direnci hesaplamak için iki farklı direnç konfigürasyonu için iki formüle ihtiyacınız vardır: seri ve paralel. Seri olarak bir direnç diğerini takip eder, buna karşın paralel olarak birbirleriyle çalışırlar. Seri olarak formül çok basittir:
Serideki dirençler: R (toplam) = R (1) + R (2) +. . . + R (N)
Yani dirençlerin değerlerini arttırmanız yeterlidir.
Paralel olarak dirençler: R (toplam) = 1 / {1 / R (1) + 1 / R (2) +. . . + 1 / R (N)}
Renk kodundan direnç bulmak için iyi bir araç: http://www.csgnetwork.com/resistcolcalc.html
Dirençlerin bir projede birlikte çalışan iki kişi gibi birlikte çalıştığını düşünüyorsanız, dirençlerin formülünü paralel olarak anlamak daha kolaydır. Aynı formül, size iki kişinin çalışma oranının verildiği kelime problemleri için de kullanılır ve birlikte çalışırsanız projelerinin ne kadar hızlı tamamlanacağını öğrenmeniz gerekir.
Verilen bir direnç değerine sahip belirli bir bileşene ne kadar akım verildiğini bulmak için, direnç ve voltaj değerlerini Ohm kanununa bağlayıp I için çözersiniz.
Bir ışık bir devrededir ve önüne paralel olarak iki 1K (bin ohm) direnç yerleştirilir. 9 voltluk bir güç kaynağı ile ışığa ne kadar akım verilir?
1.) R (toplam) hesaplayın:
R (toplam) = 1 / (1/1000 + 1/1000) = 1 / (2/1000) = 1000/2 = 500 ohm
2.) Ohm yasasını kullanarak akımı hesaplayın:
9 = I * 500
I = 9/500 = 0,018 A = 18 mA (miliamper)
Gerilimi düzenlemek için dirençleri bir devrede de ayarlayabilirsiniz. Buna voltaj bölücü adı verilir ve seri olarak iki direnç içerir. İki rezistörün voltaj çıkışı birleştiğinde. Daha iyi bir fikir için eklediğim resme bakın. Bu düzenlemede, voltaj çıkışı için formül şöyledir:
V (çıkış) = V (kaynak) * R (2) / {R (1) + R (2)}
Kondansatörler bilgisayarınızda saatin yapımı ile faydalı olacaktır. Saat sadece sabit bir hızda açılıp kapanan bir devredir. Tıpkı dirençler gibi, kapasitörler de seri ve paralel konfigürasyonların toplam değerini bulmak için iki formüle sahiptir.
Seri: C (toplam) = 1 / {1 / C (1) + 1 / C (2) +. . . + 1 / C (N)}
Paralel: C (toplam) = C (1) + C (2) +. . . + C (N)

Bir kapasitörün yüklenme hızı, kapasitörün yanı sıra kapasitansından önceki (veya sonra boşalırsanız) devrenin direncine bağlıdır. Bir kapasitörün şarjı, zaman sabitlerinde ölçülür. Bir kapasitörün tamamen şarj edilmesi veya boşaltılması 5 zaman sabiti gerektirir. Bir kapasitörün zaman sabitini saniye cinsinden bulma formülü:
T (sabit) = Direnç * Kapasitans
Diyotlar kullanımda basittir ve bir TTL bilgisayarı inşa ederken kullanışlı olur. Akımın yalnızca bir yönde akmasına izin verirler. Doğru yönde yerleştirildiklerinde ileriye dönük olarak adlandırılanlar bunlar. Ters çevrildiklerinde belirli bir voltajda parçalanırlar. Bir diyot akıma karşı çalışırken, ters çevrilmiştir.
Bir Transistör, akımla çalışan bir valf gibi çalışır. Bir BJT'nin üç pimi vardır: toplayıcı, verici ve taban. Bu adımdaki basitlik adına, akımın toplayıcıdan yayıcıya aktığı bir NPN transistörünü tanımlayacağım. Tabanda uygulanan akım, kolektörden vericiye akımın ne kadar aktığını kontrol eder. Transistörler, bir sinyali yükseltme kabiliyetleri nedeniyle birçok uygulama için idealdir. Bunun nedeni, transistörün tabanında uygulanan akımın, kontrol edilen akımdan önemli ölçüde daha az olabilmesidir. Akımdaki bu kazanç, transistörün veya beta'nın mevcut kazancı olarak adlandırılır. Beta için formül:
Beta = Akım (Toplayıcı) / Akım (Temel)
Bir transistör tamamen açık olduğunda doymuş olduğu söylenir. Bir boolis transistörü, doymuş veya kapalı durumda olan ve hiçbir zaman arasında olmayandır. Bu, çoğunlukla dijital elektroniklerle uğraştığınız transistör türüdür. Transistörler, bilgisayarın çalışması için gereken mantık kapılarını oluşturur. Bunlar daha sonra açıklanacaktır.
Kullanışlı bağlantılar:
http://en.wikipedia.org/wiki/Resistor
http://en.wikipedia.org/wiki/Capacitor
http://en.wikipedia.org/wiki/Diode
http://en.wikipedia.org/wiki/Transistor

Adım 3: İkili Sayılar

Bugün, on numaraya dayanan dünya çapında bir numaralandırma sistemine alışkınız. Demek istediğim, sayı sistemimizde on değerinde bir sayı yoktur ve bu nedenle sayı sistemimiz on tabandır.
Sayı sistemimizi bir kilometre sayacı olarak düşünün. Bir kilometre sayacı, en düşük basamaktan en yüksek basamağa kadar sayılır ve ardından bir sonraki rotoru bir sıra ilerlemeye zorlar. Örneğin:
0 1
0 2
0 3
0 4
0 5
0 6
0 7
0 8
0 9
1 0 <- Bir sonraki rakama taşı
İkili taban ikidir, yani sadece iki sayıya sahiptir ve 2 için sayıya sahip değildir. İkili sadece 0 ve 1 veya "kapalı" ve "açık" sayılarına sahiptir. İkilik sayımı yapmak için kilometre sayacı tekniğini uygulamanız yeterlidir:
0001b - 1
0010b - 2
0011b - 3
0100b - 4
0101b - 5
0110b - 6
0111b - 7
1000b - 8
vb . . .
Sayı sistemimizin onu temel on yapan başka bir faktör var; Rakamlarda daha yüksek hareket ettikçe, sayıların ağırlığı onluk bir güçle artar. Örneğin 1 = 10 ^ 0, 10 = 10 ^ 1, 100 = 10 ^ 2, vb. . . İkili olarak, tabii ki şeyler iki temeldir ve bu nedenle, her ardışık sayı, iki olanın başka bir gücüdür. 1b = 1 = 2 ^ 0, 10b = 2 = 2 ^ 1, 100b = 4 = 2 ^ 2, vb. . .
Ondalık bir sayıyı ikiliye dönüştürmek için, işlemi çok daha kolaylaştıran çift-dabble adı verilen bilinen bir numara vardır:
13'ü ikilik bir sayıya dönüştürmek istediğimizi söyle, 13'ü ikiye bölerek ve kalanı yazarak başlayacağız. Sonra doğrudan üstüne, geri kalan numara olmadan (bu durumda 6) sonuçtaki sayıyı yazıp, kalanını ikiye bölerek bir öncekinin üzerine yazın. Bu işleme 1 veya 0 ulaşana kadar devam edin. Sonunda sonucu almak için yukarıdan aşağıya doğru okudunuz.
1/2 = 0 R1 <Yukarıdan aşağıya okuma. Sonuç 1101 veya 2 ^ 0 + 0 + 2 ^ 2 + 2 ^ 3 = 1 + 0 + 4 + 8 = 13'tür. Buna ikili kelime adı verilir.
3/2 = 1 R1 <
6/2 = 3 R0 <
13/2 = 6 R1 <
Onaltılık ikili ile çok sık kullanılır. Onaltılık taban 16'dır ve 0-9 ve a-f sayılarını içerir. Bir adet onaltılık sayı, bir adet ısırık veya dört bit veriyi tanımlamak için kullanılır. Bir bit tek bir 1 veya 0 ikilidir. Bir uç, bir sonraki bit bir sonraki uçta, 0 ila 15 (0000 ila 1111) arasında sayılabilir. İki ucu birlikte bir bayt veya 8 bit. İlk rakam 2 ^ 0 olduğundan, son rakam 2 ^ 7 ağırlıklıdır. Bu nedenle bir bayt, 0 ila 255 arasında herhangi bir yerde olabilir. Baytı 00101110'u (onlukta 46) onaltılık olarak ifade etmek için, önce iki ucu 0010 ve 1110'a ayırmanız gerekir. birinin E değeri (veya ondalık değerinde 14) değeri vardır. Bu nedenle onaltılık biçimde 00101110 baytı 2E olacaktır.
Kullanışlı bağlantılar:
http://en.wikipedia.org/wiki/Binary_numeral_system
http://en.wikipedia.org/wiki/Hexadecimal

Adım 4: Mantık Kapıları

Bilgisayar, belirli işlevleri yerine getirmek için düzenlenmiş binlerce mantık kapısından oluşur. Mantık geçidi, çıktıları girdilerinin durumuna bağlı olan dijital elektronikteki bir bileşendir. Çoğu mantık geçidi iki girişe ve bir çıkışa sahiptir. Mantık kapılarını dijital elektronikte karar vericiler olarak düşünebilirsiniz. Dijital elektroniklerde kullanılan altı ana mantık kapısı:
AND Gate: Girdileri yüksekse, çıktı yüksek olur.
VEYA Kapısı: Girişlerinden herhangi biri yüksek olduğunda çıktı yüksek.
NOT NOT: Sadece bir giriş var. Girdi düşük olduğunda çıktı yüksektir.
NAND Gate: Tüm girişler yüksek değilse, çıkış yüksektir.
NOR Gate: Girdilerinin hiçbiri yüksek olmadığında çıktı yüksek.
XOR Kapısı: Tek sayıda giriş yüksek olduğunda çıkış yüksektir.

Üç Durumlu Tampon: Üçüncü bir mantık sinyali tarafından kontrol edilen bir tampon.
Şimdi yüksek "1" sinyali ile düşük "0" sinyali arasındaki farktan bahsetmek önemlidir. Yüksek bir sinyal ya pozitif gerilime bağlantı olabilir ya da bir değişken giriş olabilir. Bir kayan giriş, herhangi bir çıkışa bağlı olmayan bir giriştir. Yüzen bir giriş örneği, hiç bağlı olmayan veya aktif olmayan 3 durumlu bir tamponun çıkışına bağlı olan bir örnek olabilir. Bir giriş topraktayken düşük bir sinyal var.
Mantık kapıları, akla gelebilecek hemen hemen her işlevi üretmek için birbirlerine beslenebilir. Örneğin, devreye güç sağlanırken bir bit veriyi bir RS_NOR mandalında depolamak için iki NOR kapısı birbirine beslenebilir.

Adım 5: İkili Sayım (Program Sayacı)

Bir bilgisayarın en önemli parçalarından biri program sayacıdır. Program sayacı, bilgisayara yürütülecek komutun güncel adresini verir. Bununla birlikte, program sayacının çalışması için ikilik olarak sayılması gerekir. Bunu yapmak için JK flip flop kullanılır. Bir flip-flop bir bit depolayan bir mantık kapıları düzenlemesidir (mantık kapıları adımında tarif edilen RS_NOR mandalı gibi). Bir JK flip-flop, saat darbesi girişi yükseldiğinde ve sonra tekrar düşük olduğunda durumunu değiştirir (J ve K girişlerinin de yüksek olması gerekir). Başka bir deyişle, bir JK flip flop bir saat darbesinin düşen kenarına ulaştığında, durumu "0" dan "1" e veya "1" den "0" a değişir.
Bir JK flip flop'un çıkışını bir başkasına bağlar ve bunları basamaklandırırsanız, sonuç bir kilometre sayacı gibi davranan bir ikili sayıcıdır. Bunun sebebi, dizideki ilk JK flip flopunun yükselmesi ve sonra düşük olması nedeniyle dizilimdeki bir sonraki tetikleyiciyi tetiklemesidir. Saatin frekansı (art arda kaç kez açılıp kapandığı) bir JK flip flop'un art arda eklenmesiyle yarı yarıya azalır. Bu yüzden bir JK flip-flop'una ikiye bölünmüş devre adı verilir. Dört JK flip flop için sonuçlanan desen 0000, 0001, 0010, 0011, 0100, vb. Olacaktır. . .
Bununla birlikte, bu Talimatta açıklanan mümkün olduğu kadar basit bilgisayar için, bilgisayarı çalışır hale getirmek için ihtiyacınız olan birkaç fonksiyon daha vardır. Bilgisayarın programını yeniden başlatabilmesi için, tüm çıktılarını sıfırlama veya sıfırlama kabiliyetine ihtiyacı vardır. Program sayacı ayrıca JMP op kodu için bilgisayarın belirli bir talimata atlamasına izin veren bir ikili kelime yükleme yeteneğine de ihtiyaç duyar. Bu amaca ulaşmak için mantık kapıları kullanılır. Neyse ki bizim için ikili sayaçlar, ihtiyacınız olan tüm fonksiyonlara sahip elverişli fişler halinde geliyor.

Adım 6: Kayıtlar

Defterler:

Kayıtlar potansiyel olarak bir bilgisayarın en önemli parçası olabilir. Bir bilgisayarın çalışması sırasında bir kayıt geçici olarak bir değer depolar. Bu Eğitilebilir Tabloda açıklanan 8 bit bilgisayar, ALU'suna bağlı iki yazmacıya, mevcut talimatı saklamak için bir kayıt listesine ve bilgisayarın çıkışı için bir kayıt listesine sahiptir.

Çipe bağlı olarak, bir yazıcının 2 veya 3 kontrol pimi olacaktır. Kullanacağımız kayıtların iki kontrol pimi vardır: çıkış izni ve giriş izni (ikisi de düşükken aktif). Çıkış etkinleştirme pimi toprağa bağlandığında, halihazırda saklanmış olan ikili kelime çıkış işaretlerinin üzerinden gönderilir. Giriş pimi toprağa bağlandığında, giriş pimleri üzerinde mevcut olan ikili kelime kayıt cihazına yüklenir.

Bir bilgisayarda bir yazıcının kullanımına bir örnek, ALU'daki (matematiksel işlemleri gerçekleştiren aritmetik mantık birimi) biriktiricidir. Akümülatör, ALU'nun çıktısını depolayan bilgisayarın karalama defteri gibidir. Akümülatör aynı zamanda ALU için ilk giriştir. B registerı ikinci giriştir. İlave işlemi için, ilk değer aküye yüklenir. Bundan sonra, ilk değere eklenecek olan ikinci değer B registerına yüklenir. Akümülatör ve B sicilinin çıkışları açık sigortalı ve sürekli ALU içine besleniyor. Ekleme için son adım, işlemin çıktısını Akümülatöre aktarmaktır.

Kayıtların tümü, veri yolu adı verilen paylaşılan bir veri hattında çalışır. Veriyolu, herhangi bir CPU'nun mimarisine eşit sayıda bir tel grubudur. Bu, gerçekten de binayı, veri yolu genişliğini göz önünde bulundurarak, CPU mimarisi için belirleyici bir ölçüdür. Dijital 1, pozitif voltaj ve 0 ise topraklama anlamına geldiğinden, tüm kayıtların aynı veriyolunu seçici bir şekilde veri yoluna bağlama ve bağlantıdan ayırma yeteneği vermeden paylaşması mümkün olmaz. Neyse ki, bizim için, 1 ile 0 arasında, şu an için bu işe yarayan mevcut darbeye kararsız üçüncü bir durum var. Üç durumlu ara belleğe girin: kablo gruplarını seçerek bir bara bağlamanıza izin veren bir yonga. Bu üç durumlu arabelleklerden bazılarını kullanarak, iletişim kurmak isteyen tüm bilgisayardaki tüm kayıt ve çiplerin bir veri yolu ile aynı kabloları paylaşmasını sağlayabilirsiniz. Bilgisayarım söz konusu olduğunda, breadboardun alt pimlerini kapsayan 8 telli geniş bir breadboard slotu bandıydı. Bilgisayarın her yerinde bilgisayardan parçaya tüm bilgileri taşıdıkları için veri yolu ile denemeler yapın, hatalı bir veri yolu, çizgiyi aşağıya çeken hatalı veriler anlamına gelebilir.

Adım 7: ALU

Bir bilgisayarın ALU'su (aritmetik mantık birimi) matematiksel işlemleri yapan kısımdır. SAP bilgisayarı için sadece iki işlevi olması gerekir: toplama ve çıkarma. İkili dosyalara ekleme ve çıkarma, ondalık ifadelerle toplama ve çıkarma işlemlerine çok benzer şekilde çalışır, örneğin:
1 <- Taşıma 1 1 <- Taşıma Uçları
05 0101
+05 +0101
10 1010
İkili eklemek için tam toplayıcı denilen şeye ihtiyacımız var. Dolu bir toplayıcı etkili bir şekilde bir bit ikili girişini bir yürütme ve yürütme ile ekler. Tam bir toplayıcının taşınması, toplama işlemi için üçüncü bir girdi gibidir. Birden fazla tam toplayıcıyı birlikte zincirlemek için kullanılırlar. Tam bir toplayıcının gerçekleştirilmesi, toplama işleminde bir çift olduğu zaman meydana gelir. Dolu bir toplayıcının taşınması, birden fazla ikili bit eklemek için taşıyıcıya beslenir. Tam bir toplayıcı oluşturmak için iki XOR kapısına, iki AND kapısına ve bir OR geçidine ihtiyacınız vardır.
İkili sayıyı çıkarmak için, bir sayıyı negatif karşılığına dönüştürmemiz ve çıkardığımız sayıya eklememiz gerekir. Bunu yapmak için 2'nin iltifatı denilen şeyi kullanıyoruz. 2'leri bir ikili kelimenin iltifatını almak için, her biti ters çevirin (her 0'ı 1'e, her 1'i 0'a değiştirin) ve birini ekleyin.
5 = 0101, -5 = 1010+1 = 1011
Kullanılmamış -> 1 1
10 1010
+(-5) +1011
5 0101
Bitlerin ters çevrilmesini kontrol etmek için normalde düşük bir girişi olan XOR geçitlerini kullanırız. Normalde bir düşük giriş olduğunda, çıkış diğer girişe eşdeğerdir. Kontrol girişini yüksek olarak ayarladığınızda diğer girişi tersine çevirirsiniz. Eğer bu inversiyonu, tam ilave edicilerin taşınmasına gönderilen bir bit ile birleştirirsek, bir çıkarma işlemi sonuçlanır.

Adım 8: Belleği ve RAMi Programlayın

Bilgisayarınızın program hafızası yürütülecek talimatları saklayacaktır. Bilgisayarın çalışması sırasında değerleri depolayabilecek RAM olarak da işlev görür. Program hafızası üç ana bölümden oluşur: hafıza, hafıza adres kaydı (MAR) ve çoklayıcı. Bellek, 16 bayt depolama alanlığına sahip bir yongadır. Hangi byte'a okuması veya yazması gerektiğini söyleyen belleğe beslenen dört bitlik bir adres var. MAR, bellekten okunacak veya yazılacak bayt için geçerli adresi saklar. Bilgisayar programlama durumunda olmadığı sürece sürekli olarak bellek yongasına beslenir. Çoklayıcı, iki giriş arasında seçim yapmanızı ve verilen girişi çıkarmanızı sağlar. Bilgisayarımda kullanılan çoklayıcı, iki adet dört bit giriş arasından seçim yapmanıza izin verir (MAR ve manuel giriş). Bilgisayar programlama durumundayken manuel adres hafızaya beslenir ve tanımladığınız adresteki bilgisayar hafızasına bayt programlamanıza olanak tanır.

Adım 9: Talimat Kaydı

Bir bilgisayarın komut kaydı, mevcut talimatın yanı sıra talimatın üzerinde çalışacağı bir adresi saklar. Çok önemli bir amacı olan çok basit bir bileşendir. Bilgisayarın çalışması sırasında, hafızadaki belirli bir adresin içeriği talimat yazmacına aktarılır. Bilgisayarımda en soldaki çıkış bitleri, OP kodu veya gerçekleştirilecek geçerli talimattır. Sağ dört bit veya en düşük dört bit, bilgisayara işlem için hangi adresin kullanılacağını söyler. İlk dört bit, OP kodunu sürekli olarak bilgisayara belirli bir talimat için ne yapacağını söyleyen kontrol matrisine besler. En sağdaki dört bit, bilgisayara geri beslenir, böylece adres MAR veya program sayacına aktarılabilir.

Adım 10: Çıktı Kaydı

Bir bilgisayar veri yolunun çıkışını operatöre besleyecek olsaydı, okuma hiç bir anlam ifade etmezdi. Bu nedenle amacı çıktı için amaçlanan değerleri saklamak olan bir çıktı kaydı vardır. Bilgisayarınızın çıkışı ya ham ikili görüntüleyen basit LED'ler olabilir ya da yedi bölümlü ekranlarda gerçek sayıları okuyan bir ekran olabilir. Her şey bilgisayarınıza ne kadar iş koymak istediğinize bağlı. Bilgisayarım için, bilgisayarımın çıktısı için Arduino ile birleştirilmiş ikilikten ondalık sayıya dönüşüm yapmak için bazı IV-9 Rus Numitron tüpleri kullanıyorum.

Adım 11: Saat

Doğru çalışması için bilgisayardaki her parçanın tamamen senkronize edilmesi gerekir. Bunu yapabilmek için, bilgisayarınızın sabit bir hızda açılıp kapanabilen bir çıkışı olan bir saate veya devreye ihtiyacı vardır. Bunu yapmanın en kolay yolu 555 zamanlayıcı kullanmaktır. 555 zamanlayıcı, bugün hobiler arasında son derece popüler olan bilgisayarın ortaya çıkması döneminde icat edilen son derece popüler bir zamanlayıcıdır. 555 devresini inşa etmek için nasıl çalıştığını bilmeniz gerekir.
Bilgisayarınızın saati ilk başta nispeten yavaş olmalıdır. 1Hz veya saniyede bir döngü, iyi bir başlangıç ​​değeridir. Bu, bilgisayarınızın çalışmasını görüntülemenizi ve hataları kontrol etmenizi sağlar. 555 yongasının iki direnç ve çalışması için bir kapasitöre ihtiyacı var. İki direnç, yüksek ve düşük darbelerin toplam frekans kadar uzunluğunu belirler. Kondansatör, her ikisi için darbe uzunluğunu değiştirir. 555 zamanlayıcı ile herhangi bir deneyiminiz yoksa, onlarla deneme yapmanızı öneririm.
Kullanışlı bağlantılar:
http://en.wikipedia.org/wiki/555_timer_IC

Adım 12: Mimari

Her şeyin bir araya geldiği adım budur. Bilgisayarınızın mimarisini tasarlamanın zamanı geldi. Mimari, bilgisayarınızın kayıtlarının ve farklı bileşenlerinin nasıl organize edildiğidir. Tasarım yönü tamamen size kalmış olsa da, bir hedefi (bilgisayarınızın ne yapmasını istediğiniz) ve çıkması gereken bir modeli aklınızda tutmanıza yardımcı olur. Bilgisayarını benimkinden sonra tasarlamak istiyorsan tamamen sorun değil. 'Da bulunan SAP-1’in mimarisini değiştirdim Dijital Bilgisayar Elektroniği 8 bit bilgisayarım için.
Her zaman akılda tutulması gereken bir tasarım yönü, verilerin bilgisayarınızın çeşitli bileşenleri arasında nasıl aktarıldığıdır. En yaygın yöntem, bilgisayardaki tüm veriler için ortak bir "veri yoluna" sahip olmaktır. Kayıtların girişleri ve çıkışları, ALU, program sayacı ve RAM hepsi bilgisayarın veriyoluna bağlanır. Teller, en az anlamlı bit (1) ile en yüksek anlamlı bit (128) arasında düzenlenmiştir.
Veri yoluna bağlı olan tüm çıkışların, etkin değilken tamamen bağlantısı kesilmelidir, aksi halde birbirleriyle birleşirler ve hatalı çıkışlara yol açarlar. Bunu yapmak için, varsayılan olarak akümülatör, ALU ve bilgisayarın programlanması için fiili giriş olarak çıkan bazı elemanların çıkışını kontrol etmek için Tri-state tamponları kullanıyoruz.

Adım 13: Kontrol Matrisi

Bir bilgisayarın kontrol matrisi, her bir parçanın ne zaman giriş yapıp değerini aldığını söyler. Bir bilgisayarda her işlemin birden fazla durumu vardır. Bu durumlar, halka sayacı adı verilen bir sayaç tipi tarafından tetiklenir. Bir halka sayacı bir anda sadece bir bit yüksekliğe sahiptir ve art arda çıktıları arasında geçiş yapar. Örneğin, bir zil sayacı 4 çıkışa sahipse, ilk önce ilk çıkış aktif olacaktır. Bir sonraki saat darbesinde ikinci çıkışını yüksek (ve ilk düşük) ayarlayacaktır. Bir sonraki saat darbesi bitin bir çıktısını yükseltir ve böyle devam eder. Bu aşamalara T durumları denir. Bu Eğitilebilir bölümdeki bilgisayar, bir komutun çalışması için 6 T durumu kullanır. İlk üç T durumu, mevcut komutun alındığı ve talimat kaydına alındığı getirme döngüsü olarak adlandırılır. Program sayacı da bir artırılır. İkinci üç T durumunun takımı, hangi OP kodunun kontrol matrisine talimat kayıt defterinden beslendiğine bağlıdır. T durumları aşağıdaki gibidir:
T1: Program sayacının içeriği hafıza adres kaydına aktarılır. (Adres Durumu)
T
2: Program sayacı bir artırılır. (Artış Devlet)
T3: Program hafızasındaki adreslenen bayt komut satırına aktarılır. (Hafıza Durumu)
T4: Hangi komutun yürütüleceğine bağlı.
T5: Hangi komutun yürütüleceğine bağlı.
T6: Hangi komutun yürütülmekte olduğuna bağlı.
Bir kontrol matrisi oluşturmanın iki ana yolu vardır: ayrık mantık kullanmak ve ROM'ları kullanmak. ROM yöntemi en kolay ve en verimli olanıdır. Ayrık mantık kullanmak, bilgisayarınız için bir OP kod girişine dayanarak doğru kontrol kelimelerini çıkaran büyük bir mantık şeması tasarlamayı içerir. ROM, salt okunur belleği temsil eder. Yapınızda kullanmak için göz önünde bulundurabileceğiniz birkaç ROM türü vardır. Bilgisayarım için başlangıçta EEPROM'u (elektronik olarak silinebilir programlanabilir ROM) kullandım, ancak EEPROM çipleri yazamadıktan sonra NVRAM'a (uçucu olmayan rasgele erişim belleği) geçtim. Kalıcı depolama için değil, rasgele erişim belleği için olduğu için NVRAM'ı önermiyorum. EEPROM bence en etkili çözüm.
Kontrol matrisinde, her biri en az 32 adresli 8 bit depolama alanına (ve zamanlama ve sayma elemanlarına) sahip üç ROM yongası bulunur. Kontrol matrisinden gönderilen ikili sözcüğe kontrol ROM'u adı verilir ve bilgisayarınızın her bileşeni için tüm kontrol bitlerini içerir. Kontrol bitlerini organize ettiğinizden ve sıralarını bildiğinizden emin olmak istersiniz. Hiçbir işlem yapmamak için, bilgisayarın her bölümünü devre dışı bırakan bir kontrol sözcüğü istersiniz (tabii ki saat hariç). Bu Talimatta açıklanan bilgisayar için kontrol kelimesi 16 bit uzunluğundadır ve kontrol ROM yongasının ikisinde saklanır. Kontrol ROM yongalarının ilk üç adresi, alma döngüsü için kontrol kelimelerini tutar. Çip üzerindeki adreslerin geri kalanı her OP kodu için kontrol kelimelerini üç çift halinde tutar. Üçüncü ROM yongası, her bir OP kodu için kontrol sözcüğü dizisinin başlangıcı için bellek konumunu tutar ve OP kodunun kendisi tarafından adreslenir. Mesela, benim bilgisayarımda, OP 0110 kodunu kontrol ederseniz, JMP komutunun başlangıcının adresi olan ikilik 21 çıktısını alır. OP ROM ile kontrol ROM'ları arasında 0-2'den (ilk üç T durumu) sayılan ve ardından üçüncü T durumunda 8 bitlik bir sayaç var ve OP ROM tarafından verilen adresi yükler ve bu konumdan T1'e kadar sayar. durum sayacı tekrar siler. Kontrol matrisi için halka ve ikili sayıcı, saat darbesinin ters çevrilmesiyle kontrol edilir, böylece yükselen saat darbesi bilgisayarın elemanlarına gittiğinde kontrol kelimeleri bulunur. Tüm süreç sırayla şöyle:
1.) T1 durumu sayacı 0'a sıfırlar, 0'da kayıtlı kontrol sözcüğü gönderilir
2.) Saat yükseliyor ve adres durumu oluyor
3.) Saat azalır ve sırayla kontrol sayacı artışları ve kontrol kelimesi 1 gönderilir
4.) Saat yükselir ve artış döngüsü gerçekleşir
5.) Saat azalır ve kontrol sayacı 2'ye çıkar, kontrol kelimesi 2 gönderilir
6.) Saat yükselir ve hafıza durumu gerçekleşir ve OP kodu komut yazmacına gelir, T3 de aktif olur, bu da bir sonraki düşük saat darbesinde OP kontrol adresinin yükleneceği anlamına gelir
7.) Saat azalır ve sayacı verilen OP kodu için üç kontrol kelimesinden ilki için adres ile birlikte yükler.
8.) T4, T5 ve T6 OP kodunu çalıştırır
9.) T1 sayacı sıfırlar, HLT OP alınana kadar işlem devam eder. HLT komutu saati durdurur.

Adım 14: Mikro programlama

Şimdi, bilgisayarınızın hangi komutları yapmasını istediğinize karar verdiğiniz bölüm. Bilgisayarıma, ihtiyacım olan temel programlama işlevlerini verecek 6 benzersiz işlem verdim. Bilgisayarınıza programlayacağınız komutlar Assembly dili olarak adlandırılır. Montaj, en eski programlama dillerinden biridir ve bugün bilgisayarlarda hala kullanılabilir. Dildeki komutlar, akümülatörün yüklenmesi, eklenmesi, taşınması, çıktısı alınması ve değişkenlerin saklanmasıdır. Her komutun bu 8 bit bilgisayarda kendi 4 bit OP kodu vardır. Bilgisayarım için seçtiğim komutlar:
NOP: İşlem yok. (0000)
LDA: Akümülatörü bu adresteki değerle yükleyin. (0001)
ADD: Belirtilen adresteki değeri, akümülatördeki değere ekleyin. (0010)
SUB: Belirtilen adresteki değeri, akümülatördeki değerden çıkarın. (0011)
STO: Akümülatörün içeriğini belirtilen adreste saklayın. (0100)
OUT: Akümülatörün içeriğini operatörün görebilmesi için çıkış kaydında saklayın. (0101)
JMP: Belirtilen adresteki bellekte belirli bir talimata atlayın. (0110)
HLT: Bilgisayarın çalışmasını durdurur. (0111)
Her bir OP için hangi kontrol kelimelerinin gönderilmesi gerektiğini belirlemek için, her bir T durumunda hangi bitlerin aktif olması gerektiğini bilmeniz gerekir. Bilgisayarım için bitleri aşağıdaki gibi organize ettim (alt çizgi aktif-düşük biti ifade eder):
CE CO J MI RO II İK İ O İ İ İ E İ SU İ A İ R İ HLT X
CE - Sayma Etkinleştir (program sayacının saat girişini etkinleştirir)
CO - Saat çıkışı etkin
J - Atlama etkin
MI - MAR Girişi
RO - Program belleği
II - Talimat kaydı
IO - Öğretim kaydı
OI - Çıkış kaydı
BI - B kaydı
EO - ALU çıkışı etkin
SU - Çıkart
AI - Akü girişi
AO - Akümülatör çıkışı etkin
RI - Program hafızasındaki
HLT - Dur
X - Kullanılmamış
Belirli bir talimat için her T durumu için hangi bitlerin aktif olması gerektiği ve kontrol ROM'unda olması gereken adres:
Getirme:
0: CO, MI - Program sayacı MAR'ye çıkar.
1: CE - Sayaç bir sonraki saat darbesi için etkin
2: RO, II - Adreslenen bayt RAM'den komut yazmacına gönderilir
NOP:
3: X
4: X
5: X
LDA:
6: IO, MI - Talimat yazmacındaki adres MAR’ya aktarılır (en düşük dört bit)
7: RO, AI - Adreslenen bayt bellekten akümülatöre gönderilir
8: X
EKLEMEK:
9: IO, MI - Talimat yazmacındaki adres MAR’ya aktarılır (en düşük dört bit)
10: RO, BI - Adreslenen bayt bellekten akümülatöre gönderilir
11: EO, AI - Akümülatör ve B register toplamı akümülatöre yüklenir
ALT:
12: IO, MI - Talimat yazmacındaki adres MAR’ya aktarılır (en düşük dört bit)
13: RO, BI - Adreslenen bayt bellekten akümülatöre gönderilir
14: AI, SU, EO - Akümülatör ve B register arasındaki fark akümülatöre yüklenir
STO:
15: IO, MI - Talimat yazmacındaki adres MAR’ya aktarılır (en düşük dört bit)
16: AO, RO, RI - Akümülatör programlanan adrese program belleğine çıkar (RO ve RI kullandığım çip üzerine yazmak için aktif olmak zorunda)
17: X
DIŞARI:
18: OI, AO - Akümülatör çıkış yazmacına çıkar.
19: X
20: X
JMP:
21: J, IO - Talimat yazmacı, program sayacını en düşük dört bit ile yükler
22: X
23: X
HLT:
24: HLT - Saate bir durma sinyali gönderilir
25: X
26: X
OP ROM'unuz her hafıza konumunda üçün katlarını içerir. Bu elbette, çünkü her döngü üç yürütme durumu alır. Bu nedenle OP ROM'unuz için adreslenmiş veriler şöyle olacaktır:
0 - 3
1 - 6
2 - 9
3 - 12
4 - 15
5 - 18
6 - 21
7 - 24
Çip seçiminizi programlamak için birçok farklı seçeneğiniz var. Bir EEPROM ve EPROM programcısı satın alabilirsiniz, ancak genellikle kayda değer miktarda paraya mal olurlar. ROM'um için telleri hareket ettirerek ve yazma ve okuma etkinleştirme pinlerini basma düğmeleriyle kontrol ederek çalıştırılan bir breadboard programcısı oluşturdum. Daha sonra süreci basitleştirdim ve NVRAM'im için özel olarak bir Arduino programcısı tasarladım. Bu proje için kullanacağınız neredeyse tüm paralel bellek yongasını programlamak için kolayca değiştirilebildiği için kodu ekleyeceğim.

Adım 15: Parça Satın Alma

8 bitlik bir bilgisayar inşa etmenin en iyi yanı, doğru yerden satın aldığınızda çoğu parçanın bir parçadan bir parçaya mal olması. Parçalarımın% 90'ını Jameco Electronics'ten satın aldım ve hizmetlerinden tamamen memnun kaldım. Gerçekten başka bir yerden satın aldığım parçalar breadboard ve breadboard telleri (ve Numitron tüpleri). Bunlar Amazon gibi sitelerde oldukça ucuz bulunabilir. Sipariş verdiğiniz parçaların doğru parça olduğundan emin olun. Satın aldığınız her bölüm, satın aldığınız ürünün tüm işlevlerini ve sınırlamalarını açıklayan çevrimiçi bir veri sayfasına sahip olmalıdır. Bilgisayarınızın yapımında birçok veri sayfasını kullanacağınız için bunları düzenli tuttuğunuzdan emin olun. Bilgisayarınızda size yardımcı olmak için benim için kullandığım parçaları listeleyeceğim:
4-Bit Sayıcı:
74161 - http://www.jameco.com/webapp/wcs/stores/servlet/ProductDisplay?freeText=74161&langId=-1&storeId=10001&productId=49664&search_type=jamecoall&catalogId==1C1=1d1d1d1d1d1d1d1
4 Bit Kayıt (Her 8 bit kayıt için iki tane kullanırım):
74LS173 - http://www.jameco.com/webapp/wcs/stores/servlet/ProductDisplay?freeText=74LS173&langId=-1&storeId=10001&productId=46922&search_type=jamecoall&plattca1d1991d1991
2-1 Çoklayıcı:
74LS157 - http://www.jameco.com/webapp/wcs/stores/servlet/Product_10001_10001_46771_-1
16x8 RAM (çıktının ters çevrilmesi gerekir):
74189 - http://www.jameco.com/webapp/wcs/stores/servlet/ProductDisplay?freeText=74189&langId=-1&storeId=10001&productId=49883&search_type=jamecoall&catalogId=1C1=1d1d1d1d1d1d1991
Tam Ekleyiciler:
74LS283 - http://www.jameco.com/webapp/wcs/stores/servlet/ProductDisplay?freeText=74LS283&langId=-1&storeId=10001&productId=47423&search_type=all&catalogIpre1d1d1d1d1991d1
Üçlü Devlet Tamponları:
74S244 - http://www.jameco.com/webapp/wcs/stores/servlet/Product_10001_10001_910750_-1

XOR Kapıları:
74LS86 - http://www.jameco.com/webapp/wcs/stores/servlet/Product_10001_10001_295751_-1
VE Gates:
74LS08 - http://www.jameco.com/webapp/wcs/stores/servlet/Product_10001_10001_295401_-1
NOR Kapıları:
74LS02 - http://www.jameco.com/webapp/wcs/stores/servlet/Product_10001_10001_283741_-1
İnvertörler:
74LS04 - http://www.jameco.com/webapp/wcs/stores/servlet/Product_10001_10001_283792_-1
Halka Sayacı:
CD4029 - http://www.jameco.com/webapp/wcs/stores/servlet/ProductDisplay?freeText=4029&langId=-1&storeId=10001&productId=12925&search_type=jamecoall&catalogId=1991321d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1
JK Parmak arası Terlik:
74LS10 - http://www.jameco.com/webapp/wcs/stores/servlet/Product_10001_10001_295427_-1

Adım 16: İnşaat

İşte sabrın gerçekten geldiği yer burası. Gerçek bilgisayar için bir breadboard kullanmayı seçtim, ama aynı zamanda işe yarayacak birçok başka yöntem de var (kablo sarma gibi). İşleri çok daha basit hale getirmek için bilgisayarımın gerçek şemasını gösteren bir blok şema dahil ettim. Ancak parça numaralarını veya pin numaralarını eklemedim. Bunun yaratıcılık için işleri daha basit ve açık yapacağına inanıyorum. 4 bitlik program sayacı çıkışı, MAR girişi ve komut kaydı çıkışı, bilgisayar veriyolunun en az dört önemli bitine bağlanır.
Gösterilen ikinci şema, bilgisayarın işlem sonu için kontrol mantığıdır. Kontroller, geçişlerin bilgisayar için bir giriş olabileceği şekilde tasarlanmıştır. RS_NOR mandalları, geçişi engellemek için açma / kapatma düğmelerinin önüne yerleştirilir. Açma / kapatma düğmelerinde sık sık bir açıktan kapalı duruma sıçrayan ve istediğinizden daha fazla bakliyat sağlayabilen kirli bağlantılar bulunur. Bir geçişin çıkışına flip-flop eklemek, ekstra darbeleri ortadan kaldırır. Manuel saat seçeneğini kullanırken bu çok faydalı olacaktır. Düğmeyi çevirmek ve 8 saat darbesi başlatmak istemezsiniz. Oku / yaz düğmesi aktif giriş baytını adreslenen belleğe yazar. Varsayılan kontrol kelimesi girişini RAM olarak değiştirerek, iki düşük RO ve RI bitini değiştirerek bir yazma döngüsü başlatabilirsiniz. Çalışma / program anahtarı, hafıza adresi çoklayıcıda hangi girişin aktif olduğunu değiştirir. 555'ten sonra JK flip flop, bilgisayar çalıştırıldığında saat darbesinin ortasından başlamayacağı anlamına gelir. Düşük bir HLT sinyali saatin manuel saat veya 555'ten geçmesini durduracaktır. Son olarak, çalıştırma / silme düğmesi bilgisayardaki saydamlar ve sayıcılar gibi tüm saydam pinlere bağlanır.

Adım 17: Programlama

Artık bilgisayar yapıldığı için talimatların yerine getirilmesi için programlanabilir. Bunu yapmak için, önce çalıştırma / program değiştirme anahtarını program konumuna getirerek bilgisayarı program ayarlarına getirmeniz gerekir. Bundan sonra 0'dan başlayan ve 15'e giden adresleri seçip programınız için gereken verileri ekleyin. Örneğin, 5 ile başlamak ve her çıktıya 4 eklemek için program şöyle olacaktır:
Adres - Veriler:
0000 - 00010111 LDA 7: Akümülatörü, 7 (5) numaralı hafıza adresinde kayıtlı değere yükleyin.
0001 - 00101000 ADD 8: Hafıza adresinde 8 (4) kayıtlı değer ekle
0010 - 01010000 ÇIKIŞ: Akümülatörün çıktısını alın
0011 - 01100001 JMP 1: 1. eğitime atla
0100 - X
0101 - X
0110 - X
0111 - 00000101 5
1000 - 00000100 4
1001 - X
1010 - X
1011 - X
1100 - X
1101 - X
1110 - X
1111 - X

Adım 18: Daha Fazlası

Umarım bu Eğitilebilir dersi beğenmişsinizdir ve hepsinden önemlisi, bundan bir şey çıkarmışsınızdır. Tüm bu sıkı çalışmayı size elektronik, bilgisayar ve programlamanın daha iyi anlaşılmasını sağlayacak, inanılmaz derecede değerli bir öğrenme deneyimi düşünebilirsiniz. Sonunda, aynı zamanda tüm sıkı çalışmanız için göstermek için çok güzel bir şey olacak.
İlk 8 bit bilgisayarınızı kurduktan sonra daha ileri gidebilir ve daha fazla işlevsellik ekleyebilirsiniz. Bu bilgisayarda kullanılan ALU operasyonda çok basittir ve gerçek ALU'lar bugün bit kaydırma ve mantıksal karşılaştırmalar gibi sayısız fonksiyona sahiptir. Taşınması gereken bir diğer önemli husus şartlı dallanmadır. Koşullu dallanma, bir talimatın ALU tarafından belirlenen mevcut bayrak durumuna bağlı olduğu anlamına gelir. Bu bayraklar akümülatörün içeriği negatifleştikçe veya sıfıra eşit olduklarında değişir. Bu, bilgisayarınızın uygulaması için çok daha geniş bir olasılık sağlar.
Bu proje hakkında herhangi bir sorunuz varsa, bu Eğitime veya http://8-bitspaghetti.com adresindeki web siteme yorum yapmaktan çekinmeyin. Size bu projede iyi şanslar diliyorum.

Bu Projeyi 3 Kişi Yaptı!

  • JamesP383 başardı!

  • xdola başardı!

  • Realhet başardı!

Bu projeyi yaptın mı? Bizimle paylaşın!

öneriler

  • Eski bir dizüstü bilgisayardan Vintage bir görünüm medya PC

  • Digi-Comp II Çoğaltma

  • Nesnelerin İnterneti Sınıfı

  • Gökkuşağı Yarışması'nın Renkleri

  • Sınıf Bilim Yarışması

  • Fandom Yarışması

173 Tartışmalar

0

AtomicFerryt

1 yıl önce

Anakart için dijital bir diyagram çizebileceğinizi düşünüyor musunuz? Daha önce hiç breadboard kullanmadım ama eski bilgisayarlara çok ilgi duyuyorum.

0

FarsinHamza

1 yıl önce

Gördüğüm güzel derslerden biri …. Sabrınız için teşekkür ederim … :)

0

bob491

1 yıl önce

Bu son derece iyi yazılmış ve ayrıntılı bir öğretilebilir ve çok da havalı. Teşekkür ederim.

0

champ12345

1 yıl önce

biraz karmaşık görünüyor

0

mkpeker

1 yıl önce

güzel yapı. temelleri anlamak için en basit 4 bit ttl cpu'umu (MP-4) kontrol etmek isteyebilirsiniz:

http://www.instructables.com/id/Simplest-4-Bit-TTL-CPU/

0

mkpeker

2 yıl önce

güzel bir proje benimkini kontrol etmek isteyebilirsin;

Sonunda işletim sistemim olan monitör tipi (inline assembler ve disassembler ile) hazır
Lütfen kurun ve bu v1.0b deneyin
gerekli tüm bilgileri Efex sayfalarımda bulabilirsiniz;

http://mkpeker.wixsite.com/efex

lütfen bana yazılımınızı geliştirebileceğimden daha yorumlarınızı gönderin
teşekkür ederim

0

TheMrCode

2 yıl önce

peki kablo yerine led kullanarak yaptınız. Sinyallerin nereye gittiğini görebiliyor musun?

0

GeorgeW134

2 yıl önce

Bir if ifadesini nasıl programlarsınız?

2 cevaplar 0

JuliaS87GeorgeW134

Yanıtla 2 yıl önce

Yeni bir kodlamaya ihtiyacınız yok. İhtiyacınız olan şey, 1 ve 0 olarak doğru ve yanlış olarak temsil eden bir değerdir. Bu değeri akümülatöre yükler ve 1'i çıkarırsınız. Sonra koşullu bir sıçrama yaparsınız. Değer 1 (true) ise, çıkartma taşmaya neden olur ve koşullu atlama gerçekleştirilir. Değer 0 (yanlış) ise, taşma olmaz ve bu nedenle atlama olmaz.

0

calebj20GeorgeW134

Yanıtla 2 yıl önce

Önceki toplamı ALU’dan alan bir kayıt defteri (akümülatör) olduğundan, sonucun negatif, pozitif veya sıfır bir sayı verip vermediğini kontrol edebilir, bunun ardından durumu kontrol edip koşul olup olmadığını kontrol eden yeni bir opcode ekleyebilirsiniz. doğru.
Örneğin

4 - 10 = -6 -> -6 negatif, bu nedenle N biti 1 olarak ayarlanmış dal komutları atlayacaktır.

montaj: BRN RA Bu, A konumunda depolanan yere negatif olarak dallanır

opcode varsayarak ikili 1000: 10001000

Bu işlem opcode'un bit dağılımı

BR: 1000

N: 1 | 0

Z: 1 | 0

P: 1 | 0

0: 0 | 0

Ayrıca, daha çok yönlü hale getirmek isterseniz, B'nin veri yolu değerini ayarlama kabiliyetini eklemeyi deneyebilirsiniz, o zaman son '0' A veya B için sırasıyla 0 veya 1 olabilir.

0

T0BY

2 yıl önce

Crikey, biraz sabrın var!

0

SuperNovaa41

2 yıl önce

Bir sorum var. Listedeki tüm bölümler 2 hariç.
üç durumlu tamponlar ve jk çevirme
Üç durumlu arabelleklerle aynı modelde farklı bir web sitesi vardı.
fakat
bir JK flip flop değişimi yoktu, tam olarak kullanmak zorunda mıyım?
Listelenenle aynı modeli yoksa farklı bir model kullanabilir miyim? ve eğer öyleyse
model kullanmalı mıyım?

0

SuperNovaa41

2 yıl önce

Hey! Bunun daha eski bir yayın olduğunu biliyorum ama bana Tri State Buffers ve JK Flip Flops için güncellenmiş bağlantılar verebilir misiniz? Ürünleri araştırmayı denedim ama hangi modelleri kullanacağımı bilmiyorum. Şimdiden teşekkürler!

0

BartH19

2 yıl önce

Bir LED ya da LCD ekrana yazmak için kullanabileceğim basit bir CPU yapmakla ilgileniyorum. Bu benim için bir proje mi yoksa lütfen daha iyi bir yöne işaret edebilir misiniz?

Ben bu konuda tam bir acemi değilim. Bir tür ahşap bilgisayar yapmaya çalışan bir marangozum!

5 cevaplar 0

FinnW3BartH19

Yanıtla 2 yıl önce

Bir CPU kurmak yerine, sadece tahta bir kasayı olan bir bilgisayar yapmalısınız. Bilgisayarlar biraz pahalı olabilir, ancak onları 300 doların altına alabilirsiniz. Bu siteyi kullanmayı deneyin: pcpartpicker.com

0

BartH19FinnW3

Yanıtla 2 yıl önce

Bunun için teşekkürler. Umarım yeterince ince parçalar vardır. Kelimeler için bir hesap makinesi gibi olmasını istiyorum. Bağlantıyı kontrol edeceğim: D

0

KyleF45BartH19

Yanıtla 2 yıl önce

Tek yapmanız gereken bir hesap makinesi olarak hareket etmekse, Raspberry Pi'ye bakmak isteyebilirsiniz. Çok daha küçük ve daha ucuz olacak, Pi'nin telefonun boyutu gibi.

0

KyleF45KyleF45

Yanıtla 2 yıl önce

Şimdi düşünüyorum da, Pi tam bir masaüstü bilgisayarın yapabileceği her şeyi yapabilir, sadece çok daha küçük. Muhtemelen bunun için kullanabileceğiniz bir tür yazılım vardır.

0

BartH19KyleF45

Yanıtla 2 yıl önce

Cevabınız için teşekkür ederiz: D

Özgün yorumumdan kısa bir süre sonra bu adamı buldum: http: //www.etsy.com/shop/writeotron? Ref = unav_lis …

Birlikte yeni bir tane üzerinde çalışacağız. Bu bir Pi!

0

bharathis

2 yıl önce

Harika biri ve kendime ait biri olmamı teşvik ediyor

Tabii ki "Yaptım" a basarım. İnşa etme sürecindeyim. hee hee onun harika dijital elektronik