Tamamen breadboard'lar ve temel elektronik bileşenlerle basit bir bilgisayar yapmak mümkün müdür? Örneğin, bu şekilde bilimsel bir hesap makinesi oluşturmak mümkün müdür?
Tamamen breadboard'lar ve temel elektronik bileşenlerle basit bir bilgisayar yapmak mümkün müdür? Örneğin, bu şekilde bilimsel bir hesap makinesi oluşturmak mümkün müdür?
Yanıtlar:
Bir mikroişlemciyi bir breadboard'a yerleştirmenin, breadboard'a bir bilgisayar inşa etme hakkı olduğunu kabul etmeyeceğim. G / Ç (klavye ve ekran gibi) dışında, bir mikro denetleyici tek başına tam bir bilgisayardır. Sadece bir breadboard'a yerleştirmek ve birkaç kabloyu bağlamak önemsizdir ve on dakika içinde yapılabilir.
OP, "Breadboard'lar ve temel elektronik bileşenlerle basit bir bilgisayar yapmak mümkün mü?" Diye sorduğunda, temel elektronik bileşenlerle bunun daha fazla bir şey ifade ettiğini düşünüyorum:
Şimdi bu, temel bileşenlerden yapılmış bir breadboard'daki (iyi, birkaç breadboard) bir bilgisayardır . Açıklaması burada . Bir düzine 74LS00 serisi IC'den oluşur. (Hepimiz transistörlerin yolu geri dönmek istiyorum düşünmek bilmemektedir; orijinal PDP-8 bir büyüklüğündeydi küçük buzdolabı ).
Bilimsel bir hesap makinesine gelince, yukarıda gösterilene benzer genel amaçlı bir bilgisayar yaptıysanız, bilimsel bir hesap makinesi olarak programlanabilir. Yalnızca mantık IC'lerini (bilgisayar yok) kullanarak bilimsel bir hesap makinesi oluşturmak son derece zor olacaktır; bunun gibi hesap makinelerinin tüm imalatçıları (Ti, HP vb.) özel büyük ölçekli IC'ler kullanmıştır . İşte am erken 4-bit hesap makinesi IC kullanan ev yapımı bir hesap makinesi.
Bir bilgisayarı mümkün olduğunca çabuk çalışır hale getirmek istiyorsa, o zaman mikrodenetleyici kullanmanın yol olduğunu kabul edeceğim. Bir bilgisayarın dahili olarak nasıl çalıştığını gerçekten anlamak istiyorsa, temel IC'lerden birini oluşturmak doğru yoldur.
Sadece mümkün değil, aslında yaptım: bkz. Https://www.vttoth.com/CMS/projects/47
Breadboard'lardan birinin arka tarafındaki kablolama şöyle görünüyordu:
Elbette her şey hangi bileşenlerin "temel" olarak nitelendirildiğine bağlıdır. Benim durumumda, temel bileşenler 74 ... serisi TTL yongalarıydı, kabaca yüz tane. Tamamen transistörlerden bir bilgisayar inşa etmek ... bu çok ezici olurdu.
Ayrıca, 4-bit bilgisayarım, esas olarak bellek sınırlamaları nedeniyle (256 4-bit nybbles) bilimsel bir hesap makinesi olarak kullanılacak kadar güçlü değil. Ancak, adres alanını genişletmek çok zor değildir, belki de bir çağrı mekanizması kullanır ve 4096 nybble (12 bit adresler) zaten yeterince 65536 nybble (16 bit adresler) olabilir.
Evet mümkündür, ancak elbette temel bir bileşen olarak düşündüğünüz şeye bağlı olarak, bilimsel bir hesap makinesi bulmak için sadece birkaç breadboard'dan biraz daha fazlasına ihtiyacınız olacaktır: transistöre temel bileşen veya flip-flop , bir EEPROM veya eski bir buzdolabından lehimleyebileceğiniz bir şey.
Burada bazı iyi yanıtlar var, ama sadece insanların sık sık düşünmedikleri bir şeye dikkat çekmek istiyorum. Bilgi işlem cihazlarının geçmişine bakıldığında, ağaç kabuğu ve çivilerden bir bilgisayar inşa etmenin zorluğu CPU veya ALU değildir. Asıl sorun hafıza. Çünkü depolanmış program konseptinin tamamının çalışması için çok miktarda ihtiyacınız var. Birkaç parmak arası terlik ve NAND geçidinden bir CPU yapabilirsiniz; örneğin, belirli kısıtlamalara sahip bir güç elektroniği uygulaması için, bir zamanlar yalnızca 69 flip-flop (4 16-bit yazmaç, 4 bayrak ve FETCH / EXECUTE'u gösteren 1 durum kayıt biti) kullanan bir mikroişlemci tasarladım. Silikonda uygulanır ve üzerinde çalışan yazılımlar yazar. Bu basit ve bir güç transistörünün tahliye kontağının boyutuna sığar. Ancak, yararlı herhangi bir programı saklamak için gereken bellek çok, çok daha büyüktür.
İlk başlarda, bellek tasarımın başlangıç noktasıydı. İstikrarlı röleleri erken telefon santrallerinde olduğu gibi kullanabilirsiniz. Parmak arası terlik yapmak için vakum tüpleri veya transistörler kullanabilirsiniz; ve CPU kayıtları genellikle bu şekilde uygulandı. Ancak program ve veri depolama için kağıt bantlar, manyetik bantlar, dönen diskler veya dönen tamburlar kullanıldı. Çelik tel üzerinde elektronik tarafından sürekli olarak alınan ve yeniden iletilen akustik dalgalar bile. Aklınıza gelebilecek her şey, makul maliyetle makul bir süre için bazı bitleri tutabilir. Apollo orbiter ve ay iniş bilgisayarları ip olarak sarılmış bobin çekirdekli anıları kullandı. Tüm bunlar farklı arayüz ekipmanlarına ihtiyaç duyar ve CPU'nun bu tür anılara erişmek için neye benzemesi gerektiği üzerinde büyük bir etkiye sahiptir. Yarı iletken bellek sadece 1970'lerde ortaya çıktı, nihayet bu tür karmaşıklığı ortadan kaldırıyor. Ama sonra tekrar, modern dinamik RAM'ler de o kadar kolay değil.
Sonra bilgisayar için giriş-çıkış ekipmanı tasarlamak zorunda ek bir harika var. Birkaç ampul, bazı uygulamalar için uygundur, ancak metin giriş / çıkışına veya daha karmaşık bir şeye ihtiyacınız varsa, tekrar daha fazla zorlukla karşılaşırsınız. Delikli kart okuyucular, yazıcılar ve kağıt terminalleri günlerinde büyük bir işti. 1978 tarihli bir VT100 metin modu video terminali, bilimsel hesap makinesi breadboard bilgisayarınızın sahip olduğundan çok daha fazla bellek ve işleme gücüne sahiptir.
Bu mümkündür, ancak karmaşıklık ve boyut, temel elektronik bileşenler olarak adlandırdığınız şeye bağlıdır. Bir ALU ve sıralayıcı mantığı biraz karmaşıktır, ancak yapılabilir. Bellek basittir, ancak temel desen çok sayıda tekrarlanmalıdır (1000 kez düşünün).
Donanımın yanı sıra üzerinde çalışan bir yazılıma da ihtiyacınız olacak. Kaba bir tahmin olarak, orta derecede karmaşık bir CPU (klasik 16 bitlik talimatlar 8 bit veri seviyesi) için, yazılım çabanız donanım çabanızla karşılaştırılabilir olacaktır. (Daha basit bir CPU için daha fazla SW çabasına ihtiyacınız olacaktır.) Peki bu SW'yi makinenize nasıl yükleyeceksiniz?
Böcek avlama (ve çözme) ilginç bir girişim olacaktır. VHDL'de yazmaya başlamanızı ve bunu bir simülatörde çalıştırmanızı tavsiye ederim, bu hata ayıklamak için bir demet cips ve kablodan çok daha kolay olacaktır.
İki öğrencim simülasyon için VHDL ve C koduyla başlayarak ~ 1 yılda bazı temel yazılımlarla (GCC arka uç bağlantı noktası dahil) 16 bit CPU oluşturdu. ALU 74181 yongalar kullandı, bellek statik RAM'di ve PC ile bilgisayarları arasında arayüz oluşturmak için bir atMega kullandılar. Bilgisayar kısmen lehimsiz ekmek kordonlarında, kısmen de PCB'lerde (8 16 bit kayıt) idi. (Bu ikisi ortalama bir öğrenci değildi !)
Evet mümkün. Ama matematiği yapmak için bir mikro denetleyiciye ihtiyacınız var. Bu örnek bir proje. AVR mikrodenetleyici ve 16 × 2 LCD ekran kullanır.