Enseño el único curso de arquitectura de computadoras en una universidad de artes liberales. El curso es obligatorio para los estudiantes de ciencias de la computación, mayores y menores. No tenemos ingeniería informática, ingeniería eléctrica, otros cursos de hardware, etc. Mi objetivo principal en el curso es que los estudiantes comprendan hasta el nivel de acceso cómo funcionan las computadoras, que creo que aprenden mejor a través de un laboratorio de hardware y no solo a través de un libro de texto ( Organización y diseño de computadoras por Hennessy y Patterson). Mi objetivo secundario es entusiasmarlos con la arquitectura de la computadora y aumentar su entusiasmo por la informática. Prepararlas directamente para la industria no es un objetivo, aunque motivarlos para que estudien más arquitectura de computadoras sí lo es. Por lo general, los estudiantes no tienen experiencia en construir nada o tomar un curso de laboratorio de nivel universitario. Típicamente, 10-15 estudiantes toman el curso por semestre.
He enseñado el curso desde 1998 de una manera similar a como me enseñaron arquitectura de computadores y electrónica digital a fines de la década de 1980 en el MIT: uso de chips DIP TTL en tablas de alimentación. En la primera tarea de laboratorio de hardware, los estudiantes construyen un sumador completo. Alrededor de la mitad del semestre, comienzan a construir una computadora simple con un conjunto de instrucciones de 8 bits. Para reducir el cableado, les proporciono una PCB con algunos de los componentes electrónicos (dos biestables D, dos ALU LS 181 de 4 bits conectadas entre sí para que actúen como una ALU de 8 bits y un búfer de tres estados). En el primero de estos laboratorios, obtienen las señales de control (muy simples) para los dos formatos de instrucciones y construyen el circuito, ingresando instrucciones sobre los interruptores y leyendo los resultados de las luces. En el segundo de los laboratorios, agregan un contador de programa (2 LS163s) y una EPROM (que mi pregunta original era acerca de, antes de cambiar a cómo debería enseñar arquitectura intro). En el laboratorio final, agregan una instrucción de rama condicional. Mientras los estudiantes pasan una buena cantidad de tiempo conectando y depurando, siento que es donde se lleva a cabo gran parte del aprendizaje, y los estudiantes se van con un verdadero sentido de logro.
La gente en este foro me ha estado diciendo, sin embargo, que debo cambiar a los FPGA, con los que no he trabajado antes. Soy un ingeniero de software, no un ingeniero informático, y he estado fuera de la escuela por un tiempo, pero soy capaz de aprender. No podría obtener mucho dinero ( quizás unos pocos miles de dólares) para reemplazar a nuestros entrenadores digitales existentes. Tenemos un analizador lógico único.
Teniendo en cuenta mis objetivos y limitaciones, ¿recomendarían las EE que me atengo a mi enfoque actual de cambio a uno basado en FPGA? Si es lo último, ¿puede darme alguna información sobre los materiales con los que educarme?
Tal como se solicitó, aquí está Adición: Sí, también es un curso de lógica digital. Cuando llegué a mi universidad, los estudiantes debían tomar un semestre de arquitectura computacional y lógica digital, y los combiné en un solo semestre. Por supuesto, eso es una afirmación sobre el pasado, no el futuro.