CPU 控制器虚拟仿真实验

实验方法描述

虚拟仿真设计实现 CPU 控制器实验:对电路板、芯片、电源模块和连线等三维建模,选择芯片放置到电路板上,并对各种信号线进行连接,实现一个 CPU 控制器电路板。在电路板模型上可视化各种控制信号传输过程,加深对 CPU 控制器工作原理的理解。

虚拟仿真试验箱实验:通过在线虚拟仿真系统,拨动仿真软件界面模拟开关输入汇编指令,记录仿真软件三维模型给出的模拟反馈结果即可完成实验;针对记录的二进制控制信号进行分析,判断每个二进制信号控制作用,进一步判断是否实现汇编指令的功能。

远程实境实验:通过在线虚拟仿真系统,拨动仿真软件界面模拟开关。模拟开关信号经过服务器端转发到实验箱网络控制盒(NCTOX),NCTOX 把收到的开关信号转换成实验箱实际控制电平信号,通过 NCTOX 和实验箱的连接线发送到实验箱,从而驱动实验箱进行实际反馈。NCTOX 上连接的高清摄像头拍摄实验箱,将实验箱工作情况通过视频流的形式发送到服务器,服务器再将视频信号转发到仿真软件端,实时显示实验箱工作视频。

其中,虚拟仿真试验箱和远程实境实验,教学过程中按照客观条件二选一即可。虚拟仿真试验箱便利性好,不受时间空间限制;远程实境实验和实际操作试验箱效果相同,真实感更强。

学生交互性操作步骤说明

虚拟仿真设计实现CPU控制器实验步骤:

1.点击左键选中材料库中控制器芯片 MACH,按住左键放置到电路板中对应位置,芯片自动贴合到电路板上。

2.点击左键选中材料库中运算器芯片 AM2901,按住左键放置到电路板中对应位置,芯片自动贴合到电路板上。依次在电路板上生成4片 Am2901 芯片,构成16位运算器。

3.点击左键选中材料库中存储器芯片 AT28C64,按住左键放置到电路板中对应位置,芯片自动贴合到电路板上。再次在电路板上生成 AT28C64 芯片,两片存储器构成16位存储器。

4.点击左键选中材料库中节拍发生器芯片 GAL20V8,按住左键放置到电路板中对应位置,芯片自动贴合到电路板上。

5.点击左键选中控制器芯片 MACH,点击左键选中运算器芯片 AM2901,芯片之间生成对应连线;重复操作,依次将运算器芯片和控制器芯片连接起来;

6.点击左键选中控制器芯片 MACH,点击左键选中存储器芯片 AT28C64,芯片之间生成对应连线;再次操作,连接另一片存储器芯片。

7.点击左键选中控制器芯片 MACH,点击左键选中节拍发生器芯片 GAL20V8,芯片之间生成对应连线;

8.点击左键选中按键 RESET,点击左键选中节拍发生器芯片 GAL20V8,相互之间生成对应连线;点击左键选中按键 START,点击左键选中节拍发生器芯片 GAL20V8,相互之间生成对应连线;

9.依次连接4片运算器芯片 AM2901 之间共享信号连线;连接两片存储器芯片 AT28C64 共享信号连线;

10.模拟加法指令 ADD 运行过程,先点击按键 RESET 使信号复位,再点击按键 START 观察控制与芯片之间的信号流向和数值;再次点击按键 START 并观察信号,三次点击按键 START 执行完成加法指令 ADD。

虚拟仿真试验箱或远程实境分解汇编指令实验步骤:

1.仿真教学机左下方的5个拨动开关置为 11110(工作方式:单步、手动置指令、组合、16 位、联机)。

2.按一下“RESET”按键,实验仿真系统或实验箱复位。

3. 通过16 位的数据开关 SWH、SWL 置入16 位的指令操作码;选择基本指令的A 组指令中的 SHR 指令,置拨动开关 SW=00001011 00010000;(表示指令 SHR R1);

4. 按 RESET 按键;节拍指示灯 T4~T0 显示 01000,(本拍在第1 次复位后才会执行),按照实验数据表格记录对应指示灯状态;

5. 按 START 按键;节拍指示灯 T4~T0 显示 00000;指令指针 PC 内容赋给地址寄存器 AR,PC 执行自加1操作,指向内存中的下一条指令;二进制信号显示 R5 保存到地址寄存器,R5 执行自加1操作。点击填写实验报告按钮,按照报告要求填写实验数据,自动生成实验报告;

6. 按 START 按键;节拍指示灯 T4~T0 显示 00010;将指令编码写入指令寄存器 IRH、IRL,从存储器读取指令到指令寄存器 IR。点击填写实验报告按钮,按照报告要求填写实验数据,自动生成实验报告;

7. 按 START 按键;节拍指示灯 T4~T0 显示 00011;(本拍执行SHR指令,R1←(R1+0)/2的右移操作) 。数据来源选择立即数D和0的组合,运算功能选择加法,运算结果存入寄存器 R1 的时候执行移位操作。点击填写实验报告按钮,按照报告要求填写实验数据,自动生成实验报告;

8.重复上述实验步骤分解其他汇编指令执行过程,必须分解汇编指令包括:加法指令 ADD、存储器读取指令 LOAD、进栈指令 PUSH、子程序调用 CALL。加上述 SHR 指令共计五条指令。