Uczę jedynego kursu architektury komputerowej na uniwersytecie sztuk wyzwolonych. Kurs jest wymagany dla kierunków informatycznych głównych i mniejszych. Nie mamy kursów z inżynierii komputerowej, elektrotechniki, innego sprzętu itp. Moim głównym celem w tym kursie jest, aby studenci zrozumieli aż do poziomu bramy, jak działają komputery, które, jak sądzę, najlepiej uczą się w laboratorium sprzętowym i nie tylko poprzez podręcznik ( Organizacja i projektowanie komputerówHennessy i Patterson). Moim drugorzędnym celem jest ekscytowanie ich architekturą komputerową i zwiększenie ich ekscytacji informatyką. Przygotowanie ich bezpośrednio do przemysłu nie jest celem, choć motywuje ich do studiowania większej architektury architektury. Studenci na ogół nie mieli doświadczenia w budowaniu czegokolwiek ani w kursie laboratoryjnym na poziomie uczelni. Zazwyczaj 10-15 studentów bierze udział w semestrze.
Uczę tego kursu od 1998 r. W sposób podobny do tego, jak uczyłem się architektury komputerowej i cyfrowej elektroniki pod koniec lat 80. na MIT: z wykorzystaniem układów DIP TTL na zasilanych płytkach chlebowych. Podczas pierwszego zadania w laboratorium sprzętowym uczniowie budują pełny sumator. Mniej więcej w połowie semestru zaczynają budować prosty komputer z 8-bitowym zestawem instrukcji. Aby zredukować okablowanie, zapewniam im płytkę drukowaną z niektórymi elementami elektronicznymi (dwa przerzutniki D, dwa 4-bitowe ALU LS 181 połączone ze sobą tak, aby działały jak 8-bitowe ALU oraz bufor trójstanowy). W pierwszym z tych laboratoriów uzyskują (bardzo proste) sygnały sterujące dla dwóch formatów instrukcji i budują obwód, wprowadzając instrukcje dotyczące przełączników i odczytując wyniki ze świateł. W drugim z laboratoriów dodają licznik programów (2 LS163) i EPROM (którymoje pierwotne pytanie dotyczyło, zanim zmieniłem sposób, w jaki powinienem uczyć architektury intro). W ostatnim laboratorium dodają instrukcję gałęzi warunkowej. Podczas gdy uczniowie spędzają sporo czasu na okablowaniu i debugowaniu, wydaje mi się, że tam właśnie odbywa się duża część nauki, a uczniowie wyjeżdżają z prawdziwym poczuciem spełnienia.
Ludzie na tym forum mówili mi jednak, że powinienem przejść na układy FPGA, z którymi wcześniej nie pracowałem. Jestem inżynierem oprogramowania, a nie informatykiem i od jakiegoś czasu jestem poza szkołą, ale jestem w stanie się uczyć. Nie byłbym w stanie zdobyć dużo pieniędzy ( może nawet kilku tysięcy dolarów) za zastąpienie naszych obecnych cyfrowych trenerów. Mamy jeden analizator logiki.
Biorąc pod uwagę moje cele i ograniczenia, czy polecilibyście EE, aby trzymałem się mojego obecnego podejścia do przejścia na podejście oparte na układach FPGA? Jeśli to drugie, czy możesz podać mi jakieś wskazówki do materiałów, z których mogę się uczyć?
Zgodnie z życzeniem, tutaj jest link do sylabusa i zadań laboratoryjnych .
Dodatek: Tak, to także kurs logiki cyfrowej. Kiedy dostałem się na studia, studenci musieli wziąć jeden semestr architektury komputerowej i logiki cyfrowej i połączyłem je w jeden semestr. Oczywiście jest to stwierdzenie dotyczące przeszłości, a nie przyszłości.