İçindekiler:

Breadboard'da 8-Bit Bilgisayara Genel Bakış: 3 Adım
Breadboard'da 8-Bit Bilgisayara Genel Bakış: 3 Adım

Video: Breadboard'da 8-Bit Bilgisayara Genel Bakış: 3 Adım

Video: Breadboard'da 8-Bit Bilgisayara Genel Bakış: 3 Adım
Video: 8 Bit İşlemci Projesi - B3, Hangi İşlemci Mimarisinde İnşa Ettim? 2024, Temmuz
Anonim
Breadboard'da 8-Bit Bilgisayara Genel Bakış
Breadboard'da 8-Bit Bilgisayara Genel Bakış

Bu projedeki amacım, bilgisayar mimarisi, donanım tasarımı ve montaj düzeyindeki dillerin daha iyi anlaşılmasını sağlamaktı. Üniversitede bilgisayar mühendisliği okuyan bir Junior olarak, yakın zamanda elektronik, beni montaj diliyle tanıştıran laboratuvarlar ve donanım mimarisi üzerine dersleri tamamlamıştım. Bu konulara giriş yaparken, üç kursun tümünde ince ayrıntılar konusundaki anlayışımı artırmak istedim ve öğrenmenin bir proje üzerinde çalışmaktan daha iyi bir yolu var mı?

Asıl amacım, Ben Eater'ın youtube kanalında verilen ders videolarını kullanarak bu 8-Bit bilgisayarı tamamen bir araya getirmekti. öğrenmek. Zaten kombinatorik tasarım ve temel elektronik mantığı hakkında temel bir anlayışa sahip olduğumdan, tasarıma genel bakışlardan sonra, ancak yapım talimatlarını izlemeden bilgisayarın parçalarını tasarlamaya ve oluşturmaya çalışarak kendime meydan okumak istedim. Proje boyunca amacım, yeni bir şey inşa etmekten daha fazlasını öğrenmek ve anlayışımı geliştirmekti, bu nedenle projenin her adımında, bileşen mimarisi ve her biri için kullanılan temel kurallar hakkında çevrimiçi makalelerden ve forumlardan biraz okuma yaptım. onlardan.

Adım 1: Yol Boyunca Araştırma

Yol Boyunca Araştırma
Yol Boyunca Araştırma
Yol Boyunca Araştırma
Yol Boyunca Araştırma

Bu proje gerçekten beklediğimden çok daha fazlasını okumamı sağladı. Her bileşene yönelik ana yaklaşımlarımdan biri, çevrimiçi bir forumdan veya makaleden bir genel bakış okumak, Eater'ın videolarından dersleri izlemek ve oluşturmadan, test etmeden ve çoğu zaman bir süreliğine hurdaya ayırmadan önce kendi bölümümü tasarlamaya çalışmaktı. Eater'ın kanalından daha rehberli bir yaklaşım. Bunun bir örneği, PC'nin ALU bileşenini oluştururken oldu. Tasarım videolarını izlerken, daha yüksek işlevselliğe sahip yonga bileşenleri ve komut türlerini değiştirmeye ve girdileri dahili olarak 2'nin tamamlayıcısına çevirmeye izin verecek girişleri tetikleyen makaleler okudum. Ancak, daha kolay hale getiren bu yongaları satın almadan önce, Ben Eater'in videolarında bahsettiği tasarım yaklaşımını, daha yüksek maliyetli yongalara ihtiyaç duymadan ALU modülündeki işlevselliği artırmak için toplayıcıların ve XOR mantık kapılarının harmanlanmasıyla inceledim. Bu, ayrık mantığın kullanımını ve bilgisayar tasarımına uygulanabilirliğini takdir etmemi ve yapı bileşenleri için farklı yaklaşımlar öğrenmemi sağladı. Daha düşük seviyeli yongaları devre tahtasında birleştirerek, ALU içinde kullanılan bazı temel mimari özellikleri de öğrendim ve bu da PC'deki bu yürütme bileşenine ilişkin anlayışımı artırdı.

Öğrendiğim bir diğer önemli bileşen, arabellek olarak da bilinen alıcı-vericilerin kullanımıydı. Projeye daha derinlemesine girmeden önce, kontrol sinyallerini kullanarak farklı bileşenleri basitçe etkinleştirip devre dışı bırakacağımı düşündüm, ancak makalelerde bu Von-Neuman tarzı mimariyi düzgün bir şekilde işlemek için arabelleklerin kullanılması gerektiğini çabucak buldum. Bilgisayar, PC'deki farklı modüller arasında seyahat etmek için veriler için paylaşılan bir veri yolu kullandığından, döngülerin senkronizasyonu saat tarafından belirlenir. Bununla birlikte, veri yolunda mevcut verilere müdahale etmeden depolama ve yüklerin gerçekleşmesine izin vererek, alıcı-vericilerin geçit görevi görmeleri için hayati olduğunu ve verilerin zamanında veriyoluna akmasına izin vermek için bir etkinleştirme sinyali gerektirdiğini buldum. Kablolar her zaman bus üzerindeki değerleri tutacağından, okuma kabiliyetini anlamak o kadar zor değildi, ancak doğru değeri kullanmak, kayıtların yeni değeri tutmasını sağlamak anlamına geliyordu.

Bu proje boyunca araştırmadan elde edilen son bir paket, benzer olan çipler arasındaki özellik farklılıklarını anlamaktı. Çoğu zaman aynı kimlik değerlerine sahip ancak LS ve HC gibi farklı tanımlayıcı harflere sahip çipler buldum. Öğrendiğim şey, sadece etiket üretmek değil, aynı zamanda çiplerle ilgili zamanlama ve güç spesifikasyonları olduğuydu. Neyse ki bilgisayarım oldukça düşük seviyeli, yüksek toleranslı bileşenler kullandığından, birçok özelliği eşleştirme konusunda endişelenmeme gerek yoktu, ancak daha yüksek seviyeli tasarımda, saat hızı ve güç çekişi gibi şeylerin elektronik sistemin başarısı veya başarısızlığı için kritik olduğunu öğrendim. tasarım

2. Adım: Karşılaşılan Zorluklar

Projede oldukça hızlı bir şekilde, süreçleri senkronize etmek için zamanlama saati ve temel bellek mimarisi gibi basit bileşenleri tasarlayabildim, ancak yoğun bir ders döneminin yanı sıra parça sipariş etme ihtiyacı, projeye dış zaman ayırmayı zorlaştırdı ve beni geri getirdi. tamamlanması için zamanlama. Parçaların gelmesi için bir hafta beklemek zorunda kalmamdan kaynaklanan ilk büyük aksilikten sonra, bu projeyi tamamlamam gerektiğini düşündüğüm tüm parçaları sipariş ederek daha fazla gecikmeden kurtuldum ve bu projeyi yayınlayana kadar gecikmelerle karşılaşmadığım için faydalı oldu.. Hata ayıklamaya yönelik bazı temel yaklaşımları da öğrendikten sonra, bazı derlemeleri gözden kaçırmaya başladım, bu da hatalarımı yakalamak için geri dönüp videoları tekrar izlemem gerektiği anlamına geliyordu, bu da genellikle bir tahtanın çoğunu ayırmaya yol açtı. Bunun kısayolu yoktu. Herhangi bir elektronik cihaz yapmadaki ilerlemenizi kontrol etmenin değerini öğrendim. Yol boyunca her bir panoda hata ayıklayarak, onları daha güvenle birleştirmeye devam edebildim, ardından birleşik panolarda hata ayıklamak çok daha kolay hale geldi.

Adım 3: Başarılar ve Yansıma

Sonuç olarak, şu anda saat, işlem kodu ve program sayacını, ALU birimini, rs rt ve rd kayıtlarını ve RAM'i tamamladım. Bu projeyi tamamlamak için veri yolu ve çevre birimlerini tamamlamam gerektiğinin yanı sıra, son sınıf seçmeli derslerime devam etmeyi umduğum bilgisayar mimarisi dersini alarak bilgisayar mimarisi hakkında önemli miktarda bilgi edindim.

M5, projem üzerinde çalışmam için gerekli tüm araçları sağladı ve bileşenler, parça duvarları boyunca çok iyi bir şekilde yerleştirildi, bu nedenle, sipariş edilmesi gereken ve neyin vazgeçilebilir olduğunu çok erken biliyordum. Bu projeyi başka bir öğrenci üstlenecek olsaydı, bilgisayarda olup biten her şeyi anlamaya çalışıyorsanız, bu projenin çok zaman alacağını kesinlikle not ederim. ZOR DEĞİLDİR, ancak başarılı bir şekilde çalışmasını istiyorsanız özen gerektirir. Kendi yaklaşımınızı tasarlamayı planlamıyorsanız, zamanında geri kalmamak için kullanmanız gereken tüm parçaları kavramak için Ben Eater'ın youtube kanalındaki video oynatma listesine göz atmanızı şiddetle tavsiye ederim. Parçaların çoğunu satın aldığım için, kendi zamanımda tamamlamak için bunu yanıma almayı planlıyorum, ancak başka bir öğrencinin tamamlamasına izin vermek için bunu teslim etmek harika olurdu, bu da kalan parçaların tasarımına ışık maruziyeti anlamına gelir., ancak diğer derslerde şans eseri üzerinde çalıştığım derleme diline büyük bir odaklanma

Önerilen: