Enseño el único curso de arquitectura de computadoras en una universidad de artes liberales. El curso es obligatorio para la informática mayor y menor. No tenemos cursos de ingeniería informática, ingeniería eléctrica, hardware, etc. Mi objetivo principal en el curso es que los estudiantes comprendan hasta el nivel de la puerta 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 computadoraspor Hennessy y Patterson). Mi objetivo secundario es entusiasmarlos con la arquitectura informática y aumentar su entusiasmo por la informática. Prepararlos directamente para la industria no es un objetivo, aunque sí motivarlos a estudiar más arquitectura de computadoras. Los estudiantes generalmente no han tenido ninguna experiencia en construir nada o tomar un curso de laboratorio de nivel universitario. Típicamente, 10-15 estudiantes toman el curso por semestre.
He estado enseñando el curso desde 1998 de una manera similar a como me enseñaron arquitectura de computadora y electrónica digital a fines de la década de 1980 en el MIT: usando chips DIP TTL en placas de prueba. En la primera tarea de laboratorio de hardware, los estudiantes crean 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 flip-flops D, dos ALU LS 181 de 4 bits conectados para actuar como una ALU de 8 bits y un búfer de tres estados). En el primero de estos laboratorios, derivan las señales de control (muy simples) para los dos formatos de instrucciones y construyen el circuito, ingresan instrucciones en los interruptores y leen los resultados de las luces. En el segundo de los laboratorios, agregan un contador de programa (2 LS163s) y una EPROM (quemi pregunta original era sobre, antes de cambiar a cómo debería enseñar arquitectura de introducción). En el laboratorio final, agregan una instrucción de ramificación condicional. Si bien los estudiantes pasan una buena cantidad de tiempo conectando y depurando, creo que es allí donde se lleva a cabo gran parte del aprendizaje, y los estudiantes se van con una verdadera sensación de logro.
Sin embargo, las personas en este foro me han estado diciendo que debería cambiar a FPGA, con los que no he trabajado antes. Soy ingeniero de software, no 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 nuestros entrenadores digitales existentes. Tenemos un solo analizador lógico.
Dados mis objetivos y limitaciones, ¿recomendarían ustedes EE que me apegue a mi enfoque actual de cambiar a uno basado en FPGA? Si es esto último, ¿puede darme alguna sugerencia sobre materiales con los que pueda educarme?
Según lo solicitado, aquí hay un enlace al plan de estudios y las tareas de laboratorio .
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 cada arquitectura informática y lógica digital, y los combiné en un solo semestre. Por supuesto, esa es una declaración sobre el pasado, no el futuro.