如何“搭积木”方式设计一个CPU?——论计算机组成原理实验改革

本文探讨了传统计算机组成原理实验教学的问题,并提出使用Proteus虚拟仿真技术进行实验改革。通过Proteus,学生可以直观、便捷地设计和搭建CPU,包括微程序、硬布线和流水线架构,降低学习门槛,提高学习兴趣。系列博客和配套教材详细介绍了从逻辑电路到CPU设计的全过程。
摘要由CSDN通过智能技术生成

如何“搭积木”方式设计一个CPU?——论计算机组成原理实验改革

传统实验教学面临的挑战

十年前,当我第一次当大学老师的时候,当时《计算机组成原理》实验课用的箱子如下图所示:实验箱面板的背后, ALU、控制器、RAM、ROM等各个CPU部件都是固化好的,学生在实验时只能参照实验指导书的说明,插拔面板上的连线来“组装”CPU,并且通过拨动开关的方式把编写的程序或微程序二进制代码一点一点的输入到实验箱背后的CPU上。这种工作方式可以追溯到上世纪五六十年代计算机刚刚发明的“打孔卡”年代,比我的年龄还大。时至今日,很多学校还在用这种化石级的实验箱。
在这里插入图片描述
上述插线板实验箱的优点是直观,上手快,“零基础”就能操作。但是,缺点也很明显:首先,实验箱的CPU电路已经集成固化在面板背后,学生没有办法改动任何硬件,更不能自主设计CPU架构,只能按照指导书的步骤一步一步的验证,限制了学生主动思考和创新能力的发挥;其次,实验箱面板上连线错综复杂。每次实验过程都要重复进行大量的连线操作。不仅实验箱因为频繁插拔容易损坏,而且学生在实验过程中花费相当精力在枯燥乏味的连线、查错等琐事上,严重降低学生的学习兴趣,影响实验教学效果。
近年来,国内高校一直探索基于可编程逻辑器件FPGA的硬件实验改革,如下图所示。可编程逻辑器件FPGA拥有成熟的开发环境,让学生在实验中直接利用硬件描述语言HDL实现计算机功能组件的描述和连接,可以实现工业级标准的复杂CPU设计,大大提高了计算机组成原理实验的效率和深度。

1. 深入掌握CPU的工作原理,包括ALU、控制器、寄存器、存储器等部件的工作原理; 2. 熟悉和掌握指令系统的设计方法,并设计简单的指令系统; 3. 理解和掌握小型计算机的工作原理,以系统的方法建立起整机概念; 4. 理解和掌握基于VHDL语言和TEC-CA硬件平台设计模型机的方法。 二、设计要求   参考所给的16位实验CPU设计与实现,体会其整体设计思路,并理解该CPU的工作原理。在此基础上,对该16位的实验CPU(称为参考CPU)进行改造,以设计得到一个8位的CPU。总的要求是将原来16位的数据通路,改成8位的数据通路,总的要求如下: 将原来8位的OP码,改成4位的OP码; 将原来8位的地址码(包含2个操作数),改成4位的地址码(包含2个操作数)。   在上述总要求的基础上,对实验CPU的指令系统、ALU、控制器、寄存器、存储器进行相应的改造。具体要求如下: 修改指令格式,将原来指令长为16位的指令格式改成8位的指令长格式; 设计总共16条指令的指令系统。此指令系统可以是参考CPU指令系统的子集,但参考CPU指令系统中A组和B组中的指令至少都要选用2条。此外,常见的算术逻辑运算、跳转等指令要纳入所设计的指令系统; 设计8位的寄存器,每个寄存器有1个输入端口和2个输出端口。寄存器的数量受控于每一个操作数的位数,具体要看指令格式如何设计设计8位的ALU,具体要实现哪些功能与指令系统有关。设计时,不直接修改参考CPU的VHDL代码,而是改用类似之前基础实验设计ALU的方式设计设计8位的控制逻辑部件,具体结合指令功能、硬布线逻辑进行修改; 设计8位的地址寄存器IR、程序计数器PC、地址寄存器AR; 设计8位的存储器读写部件。由于改用了8位的数据通路,不能直接采用DEC-CA平台上的2片16位的存储芯片,需要按照基础实验3的方法设计存储器。此种方法不能通过DebugController下载测试指令,因此测试指令如何置入到存储器中是一个难点。设计时,可以考虑简单点地把指令写死在存储器中(可用于验证指令的执行),然后用只读方式读出来;或者考虑在reset的那一节拍里,实现存储器中待测试指令的置入; (可选项)设计8位的数据寄存器DR; (可选项)不直接设计存储器RAM,而是采用DEC-CA平台上的2片16位的存储芯片.在实现了第9个要求的基础上,实现由Debugcontroller置入待测试指令; (可选项)顶层实体,不是由BDF方式画图实现,而是用类似基础实验4(通用寄存器组)中设计顶层实体的方式,用VHDL语言来实现。 (可选项)自己设想   利用设计好的指令系统,编写汇编代码,以便测试所有设计的指令及指令涉及的相关功能。设计好测试用的汇编代码后,然后利用Quartus II软件附带的DebugController编写汇编编译规则。接着,利用DebugController软件把汇编编译之后的二进制代码置入到所采用的存储器中,并对设计好的8位CPU进行测试。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值