我在人文学院教授一门也是唯一的计算机体系结构课程。计算机科学专业和辅修课程是必修课。我们没有计算机工程,电气工程和其他硬件课程,等等。我的主要目标是让学生从头到尾地了解计算机的工作方式,我相信他们可以通过硬件实验室和其他方面学习得最好。不只是通过教科书(计算机组织与设计轩尼诗和帕特森的作品)。我的第二个目标是激发他们对计算机体系结构的兴趣并增加他们对计算机科学的兴趣。尽管要激励他们学习更多的计算机体系结构,但直接为工业做准备并不是一个目标。这些学生通常没有任何建造任何东西或参加大学水平的实验室课程的经验。通常,每学期有10-15名学生参加该课程。
自1998年以来,我一直以与1980年代末在麻省理工学院教授计算机体系结构和数字电子学的方式相似的方式教授该课程:在有源面包板上使用DIP TTL芯片。在第一次硬件实验室作业中,学生将构建一个完整的加法器。他们大约在学期的一半,开始用8位指令集构建一台简单的计算机。为了减少布线,我为他们提供了带有某些电子设备的PCB(两个D触发器,两个连接在一起以充当8位ALU的4位LS 181 ALU和一个三态缓冲器)。在这些实验的第一个实验中,他们得出两种指令格式的(非常简单的)控制信号并构建电路,在开关上输入指令并从灯中读取结果。在第二个实验中,他们添加了一个程序计数器(2个LS163)和一个EPROM(我最初的问题是关于,在切换到如何教授入门架构之前)。在最后的实验中,他们添加了条件分支指令。尽管学生花费大量时间进行布线和调试,但我认为这是进行大量学习的地方,并且学生真正拥有成就感。
但是,该论坛上的人们一直在告诉我,我应该切换到以前从未使用过的FPGA。我是软件工程师,而不是计算机工程师,现在已经放学了一段时间,但是我有能力学习。我将无法获得很多钱(也许几千美元)来替换我们现有的数字培训师。我们确实有一个逻辑分析仪。
考虑到我的目标和限制,您是否会建议EEs继续使用当前的基于FPGA的方法?如果是后者,您能给我一些指导自己学习的资料的指针吗?
根据要求,这是课程提纲和实验作业的链接。
另外:是的,它也是一门数字逻辑课程。当我上大学时,要求学生分别学习计算机体系结构和数字逻辑中的每一个学期,然后将它们合并为一个学期。当然,那是关于过去的陈述,而不是关于未来的陈述。