在介绍计算机体系结构中使用 FPGA 与 TTL 相比有哪些优势?

电器工程 数字逻辑 FPGA ttl 计算机架构
2022-01-06 19:29:02

我在一所文理学院教授唯一一门计算机架构课程。该课程是计算机科学专业和未成年人的必修课。我们没有计算机工程、电气工程、其他硬件课程等。我在课程中的主要目标是让学生一直了解计算机的工作原理,我相信他们最好通过硬件实验室和不只是通过教科书(计算机组织与设计轩尼诗和帕特森)。我的次要目标是激发他们对计算机体系结构的兴趣,并增加他们对计算机科学的兴趣。让他们直接为工业做好准备并不是目标,尽管激励他们学习更多的计算机体系结构才是目标。学生们通常没有任何建造任何东西或参加大学水平的实验室课程的经验。通常,每学期有 10-15 名学生参加该课程。

自 1998 年以来,我一直以类似于 1980 年代后期在麻省理工学院教授计算机架构和数字电子学的方式教授这门课程:在有源面包板上使用 DIP TTL 芯片。在第一个硬件实验室作业中,学生构建一个全加器。大约在学期进行到一半时,他们开始构建一台带有 8 位指令集的简单计算机。为了减少布线,我为他们提供了带有一些电子设备的 PCB(两个 D 触发器、两个 4 位 LS 181 ALU 连接在一起以充当 8 位 ALU 和一个三态缓冲器)。在第一个实验室中,他们为两种指令格式导出(非常简单的)控制信号并构建电路,在开关上输入指令并从灯中读取结果。在第二个实验室,他们添加了一个程序计数器(2 个 LS163)和一个 EPROM(其中我最初的问题是关于,在它切换到我应该如何教授入门架构之前)。在最后的实验中,他们添加了条件分支指令。虽然学生们花费了大量时间进行接线和调试,但我觉得这是大部分学习发生的地方,学生们带着真正的成就感离开。

不过,这个论坛上的人一直在告诉我,我应该改用我以前从未使用过的 FPGA。我是一名软件工程师,而不是计算机工程师,现在已经离开学校一段时间了,但我有能力学习。我无法获得很多钱(也许几千美元)来更换我们现有的数字培训师。我们确实有一个逻辑分析仪。

鉴于我的目标和限制,你们 EE 是否会建议我坚持我目前的切换到基于 FPGA 的方法?如果是后者,你能给我一些关于教育自己的材料的指点吗?

根据要求,这里是教学大纲和实验室作业的链接

补充:是的,它也是一门数字逻辑课程。当我上大学时,学生们被要求每个学期学习计算机架构和数字逻辑,我将它们合并为一个学期。当然,这是关于过去的陈述,而不是未来的陈述。

4个回答

鉴于课程的目标,我认为 TTL 方法很好,我说这是一个“FPGA 人”。FPGA 是一片逻辑的海洋,你可以用它们做各种有趣的事情,但人类在一个学期内可以做的事情只有这么多。

看看你的教学大纲,你的课程是我在本科时学习的逻辑设计和“机器结构”课程的混合体。(另外,它适用于 CS 专业的学生。我完全支持 CS 专业的学生不得不面对真正的硬件——让他们摆脱编写代码似乎是退后一步。)在这个入门级别,您将了解如何组装指令被分解了,我认为让学生用代码而不是手工做事情并没有真正的好处。做HDL意味着学习HDL,学习如何编写可综合的HDL,学习IDE。这是更多的概念复杂性和重新抽象。另外,您必须处理软件问题。

一般来说,使用 FPGA 的课程的重点是练习创建有用的逻辑——对与外围设备、串行通信、RAM、视频发生器等进行通信很有用。这是很有价值的知识,但它似乎与你的课程范围。计算机体系结构中更高级的课程让学生在 FPGA 中实现复杂的 CPU,但这似乎超出了您的课程范围。

我至少会专门针对 FPGA 进行一次讲座。使用开发板运行一些演示并向他们展示工作流程。既然你在 Mills,也许你可以联系伯克利运行 CS 150 / 152的人,看看他们是怎么做的。

不过,使用 TTL 的一个好处是,对于非常基本的电路,HDL 的细节会掩盖实际电路,大多数学生只是将大部分时间花在编写和学习 HDL 上。我认为 TTL 用于第一部分,然后 FPGA 用于架构部分会更好,因为实际上很难用 TTL 制作可编程系统。

我非常同意光子。使用 FPGA 有很多优点。以下是一些需要考虑的有趣点:

1) 用于非常快速地尝试门设计的简单平台,无需数小时或数天的工作接线。FPGA 非常容易实现可能非常复杂的数字设计。(更多的理论,更少的忙碌)

2) 学生的大部分工作可以在实验室外的模拟中完成。

3)软件环境免费(一般包括模拟器)。

4)周围有很多相对便宜的FPGA平台。学术定价应该会有所帮助。Terasic DE0-Nano这样的完整套件售价 59 美元(而且看起来还不错)。50-60 美元看起来是您要查看的每板范围。

5) FPGA 有很多非常酷的东西。OpenCores这样的网站提供了数百个用于 FPGA 的预构建模块。FPGA4Fun,里面有很多教程和项目。对于纯粹的娱乐,FPGA Arcade致力于使用 FPGA 构建游戏。根据您在 FPGA 板上设置的内容,这可能会带来非常有趣的课程。

6) 一些电路板显然已经为它们准备了数字设计课程:数字设计简介(警告:大量下载)使用稍旧的基于 Xilinx Spartan 3E 的电路板。(虽然基于 ActiveHDL,但我个人更喜欢更标准的 VHDL 或 Verilog)主要的 FPGA 供应商也有大学项目:Xilinx 大学项目Altera 大学项目莱迪思大学项目

7) 工作流程更接近于当今专业设计工作的发生方式。FPGA 开发方面的工作知识是一种立即有市场的技能。

我认为,如今,如果您在门级处理事情,那么您就不是在“计算机体系结构”领域工作,您实际上只是在做基本的数字电子学。而且,你不能在一个学期内教授从门级数字电子学到缓存算法、并行计算架构、SIMD、网络等所有知识。

所以这真的取决于你想教什么。如果您想专注于门级数字电子产品,那么使用门级芯片将为学生提供动手操作的机会,并使他们对这些材料有更深入的了解。但是如果你想教授计算机体系结构,他们可能需要在比 AND 和 OR 门更高的抽象级别上工作。

至少,您可能应该为自己学习 HDL 并实现一个或两个基于 FPGA 的设计,以便您(作为这里的教育专家)可以评估这些技能如何适合您的学生目标。我希望其他答案会为您提供大量低成本和免费材料的指导,让您在短时间内加快 FPGA 设计的速度。(提示:Xilinx 和 Altera 都提供免费的软件设计工具和模拟器,以及大量的应用笔记和其他教学材料)。