Spisu treści:
Wideo: 8-bitowy komputer na płytce do krojenia chleba Przegląd: 3 kroki
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:30
Moim celem w tym projekcie było zbudowanie lepszego zrozumienia architektury komputera, projektowania sprzętu i języków na poziomie asemblera. Będąc Juniorem na uniwersytecie studiującym inżynierię komputerową, niedawno ukończyłem kursy z elektroniki, laboratoria wprowadzające mnie w język asemblera i architekturę sprzętu. Otrzymując wprowadzenie do tych tematów, chciałem lepiej zrozumieć drobniejsze szczegóły wszystkich trzech kursów, a jaki lepszy sposób na naukę niż praca nad projektem?
Moim pierwotnym zamiarem było całkowite złożenie tego 8-bitowego komputera przy użyciu filmów wykładowych dostarczonych na kanale YouTube Bena Eatera, które wykonują fantastyczną robotę, rozkładając proces projektowania na solidną mieszankę materiału, który omówiłem, i aspektów, które jeszcze nie miałem. uczyć się. Biorąc pod uwagę, że miałem już podstawową wiedzę na temat projektowania kombinatorycznego i podstawowej logiki elektroniki, chciałem rzucić sobie wyzwanie, próbując zaprojektować i zbudować części komputera po przeglądzie projektu, ale bez oglądania instrukcji budowania. W całym projekcie moim celem było nauczenie się i polepszenie mojego rozumienia bardziej niż tylko zbudowanie czegoś nowego, więc na każdym etapie projektu czytałem trochę artykułów online i forów na temat architektury komponentów i podstawowych konwencji używanych dla każdego z nich. z nich.
Krok 1: Badania po drodze
Ten projekt sprawił, że przeczytałem o wiele więcej, niż się spodziewałem. Jednym z moich głównych podejść do każdego komponentu było przeczytanie przeglądu z forum internetowego lub artykułu, obejrzenie wykładów z filmów Eatera i próba zaprojektowania własnej części przed budowaniem, testowaniem, a przez większość czasu musiałem ją złomować na bardziej kierowane podejście z kanału Eatera. Przykładem tego było budowanie komponentu ALU w komputerze. Kiedy oglądałem filmy projektowe, czytałem artykuły na temat komponentów chipów, które miały wyższą funkcjonalność i wejścia wyzwalające, które pozwalałyby na wewnętrzne przełączanie typów instrukcji i odwracanie wejść do uzupełnienia dwójek. Jednak przed zakupem tych łatwiejszych układów, sprawdziłem podejście projektowe, o którym mówił Ben Eater w swoich filmach, z mieszaniem sumatorów i bramek logicznych XOR w celu zwiększenia funkcjonalności modułu ALU bez konieczności stosowania droższych układów. To sprawiło, że doceniłem użycie logiki dyskretnej i jej zastosowanie do projektowania komputerów oraz poznałem różne podejścia do budowania komponentów. Łącząc układy niższego poziomu na płytce prototypowej, dowiedziałem się również o kilku kluczowych cechach architektury używanych wewnątrz ALU, co zwiększyło moją wiedzę na temat tego komponentu wykonawczego na PC.
Kolejnym kluczowym elementem, o którym się dowiedziałem, było użycie transceiverów, znanych również jako bufory. Zanim zagłębiłem się w projekt, pomyślałem, że po prostu aktywuję i dezaktywuję różne komponenty za pomocą sygnałów sterujących, ale szybko znalazłem w artykułach, że należy użyć buforów, aby poprawnie funkcjonować w tej architekturze w stylu Von-Neumana. Ponieważ komputer korzysta ze wspólnej magistrali do przesyłania danych między różnymi modułami komputera, synchronizacja cykli była podyktowana zegarem. Jednakże, umożliwiając przechowywanie i ładowanie bez ingerencji w dane dostępne w magistrali, odkryłem, że nadajniki-odbiorniki są niezbędne do działania jako bramki, wymagające sygnału umożliwiającego przepływ danych do magistrali w odpowiednim czasie. umiejętność odczytu nie była tak trudna do zrozumienia, ponieważ przewody zawsze trzymały wartości na magistrali, ale użycie prawidłowej wartości oznaczało umożliwienie rejestrom przechowywania nowej wartości.
Ostatnim wnioskiem z badań prowadzonych w trakcie tego projektu było zrozumienie różnic w specyfikacji między podobnymi chipami. Często znajdowałem chipy z tymi samymi wartościami ID, ale różnymi literami deskryptorów, takimi jak LS i HC. Dowiedziałem się, że chodzi nie tylko o produkcję etykiet, ale także o specyfikacje czasowe i mocy chipów. Na szczęście, ponieważ mój komputer używał komponentów o dość niskim poziomie i wysokiej tolerancji, nie musiałem się martwić o dopasowanie wielu specyfikacji, ale przy projektowaniu na wyższym poziomie dowiedziałem się, że takie rzeczy jak szybkość zegara i pobór mocy są krytyczne dla sukcesu lub awarii elektroniki projekt
Krok 2: Napotkane trudności
Dość szybko do projektu udało mi się zaprojektować proste komponenty, takie jak zegar czasowy do synchronizacji procesów i podstawową architekturę pamięci, ale konieczność zamawiania części wraz z ciężkim semestrem kursu utrudniała przydzielenie czasu zewnętrznego do projektu, ustawiając mnie z powrotem harmonogram realizacji. Po mojej pierwszej dużej komplikacji wynikającej z konieczności oczekiwania tygodnia na dostawę części, udało mi się uniknąć dalszych opóźnień, zamawiając wszystkie części, które myślałem, że będę potrzebować do ukończenia tego projektu, co okazało się przydatne, ponieważ nie miałem już opóźnień do opublikowania tego. Po zapoznaniu się z podstawowymi podejściami do debugowania, zacząłem przeoczyć część asemblera, co oznaczało konieczność powrotu i ponownego obejrzenia filmów, aby wyłapać moje błędy, co zwykle prowadziło do rozebrania większości płyty. To nie miało skrótu. Poznałem wartość sprawdzania postępów w budowie dowolnego urządzenia elektronicznego. Debugując po drodze każdą tablicę, mogłem przejść do łączenia ich z większą pewnością, a debugowanie połączonych tablic stało się znacznie łatwiejsze.
Krok 3: Osiągnięcia i refleksja
Podsumowując, mam aktualnie skompletowany zegar, opcode i licznik programu, jednostkę ALU, rejestry rs rt i rd oraz pamięć RAM. Oprócz konieczności ukończenia magistrali i urządzeń peryferyjnych w celu ukończenia tego projektu, nauczyłem się sporo o architekturze komputerowej, którą mam nadzieję kontynuować na moich zajęciach na ostatnim roku, biorąc udział w kursie architektury komputerowej.
M5 zapewniło mi wszystkie niezbędne narzędzia do pracy nad moim projektem, a komponenty były bardzo dobrze rozmieszczone wzdłuż ścian części, więc bardzo wcześnie wiedziałem, które części wymagają zamówienia i co jest zbędne. Gdyby inny uczeń podjął się tego projektu, z pewnością zauważyłbym, że ten projekt zajmuje dużo czasu, jeśli próbujesz zrozumieć wszystko, co dzieje się na komputerze. NIE JEST TRUDNE, ale wymaga opieki, jeśli chcesz, aby działał pomyślnie. Gorąco polecam przejrzenie listy odtwarzania wideo na kanale YouTube Bena Eatera, aby poznać wszystkie części, których musisz użyć, aby nie spóźnić się na czas, jeśli nie planujesz zaprojektować własnego podejścia. Ponieważ kupiłem większość części, planuję zabrać je ze sobą, aby ukończyć je w swoim własnym czasie, ale fajnie byłoby przekazać to innym uczniom, aby je ukończyć, co oznaczałoby ekspozycję na światło na projekt pozostałych części, ale duży nacisk na język asemblera, nad którym na szczęście pracowałem na innych zajęciach
Zalecana:
Absolutne minimum - Arduino na płytce do krojenia chleba: 5 kroków
Bare Minimum - Arduino na Breadboard: Arduino korzysta z układu ATMega328p. Możemy to uzyskać w formacie SMD (ATMega328p-AU) lub DIP do lutowania otworowego (ATMega328p-PU). Ale sam chip nie może działać. Potrzebuje jeszcze kilku elementów i wszystko razem nazywa się gołym
Obwód czujnika ciemności na płytce do krojenia chleba + detektor światła z LDR: 6 kroków
Obwód czujnika ciemności na płytce do krojenia chleba + detektor światła z LDR: W tym samouczku nauczę cię, jak zrobić proste światło i światło; Obwód detektora ciemności z tranzystorem i wzmacniaczem; a LDR.Obwód ten może być używany do automatycznego włączania świateł lub urządzeń poprzez dodanie przekaźnika na wyjściu Możesz również powtórzyć
Wąż na desce do krojenia chleba: 3 kroki (ze zdjęciami)
Snake on a Breadboard: „Masz jakieś gry na swoim telefonie?” „Niezupełnie”. Wprowadzenie: Prosty w obsłudze, łatwy w programowaniu i uwieczniony w Nokii 6110, Snake stał się ulubionym projektem inżynierów. Został zaimplementowany we wszystkim, od matryc LED, L
Fuzz gitary akustycznej na płytce do krojenia chleba: 3 kroki
Fuzz gitary akustycznej na płytce do krojenia chleba: Ostrzeżenie! Ten projekt został zaprojektowany do użytku z gitarą akustyczną, więc pamiętaj, że może nie pasować do gitary elektrycznej. O projekcie: Ten prosty projekt płyty prototypowej Fuzz składa się z naprawdę prostego, ale efektywnego obwodu. Jest przeznaczony do dodania tak
Samodzielny układ Arduino / ATMega na płytce do krojenia chleba: 8 kroków (ze zdjęciami)
Samodzielny układ Arduino / ATMega na płytce do krojenia chleba: Jeśli jesteś podobny do mnie, po tym, jak dostałem Arduino i wykonałem ostateczne programowanie na moim pierwszym układzie, chciałem go wyciągnąć z mojego Arduino Duemilanove i umieścić go na moim własnym obwodzie. Zwolniłoby to również moje Arduino na przyszłe projekty. Problem