HUNAN UNIVERSITY
课程实验报告
题 目: 模型机
学生姓名
学生学号 [1**********]
专业班级 计算机科学与技术(3)班
思考题:
1. 给定一个复合运算式子以及指令码IR[7..5]与八位BUS 总线对应情况。要求写出七条指令新的指令码并写出复合运算执行mif 文件。修改模型机电路调试程序以实现复合运算。
例:已知A=55H,B=8AH,C=F0H;IR[7..5]对应BUS8,BUS1,BUS3;写出(Aplus/B)^(/(/CplusB))的mif 文件,并在模拟机上实现。
答:模拟机电路修改如下: 存储器预设指令重设:
计算结果:(A+/B)^(/(/C+B))=42H
2. Microcomputer.vhd 代码中进程ct1,ct2,ct3,ct4功能划分依据是什么?
ct1:微序列控制器下址跳转。
ct2:实现各种指令,主要集中在实现从存储器或者寄存器释放数据到总线上。
ct3:完成各种指令,从总线上装载数据到相应的存储器或者寄存器中。
ct4:生成下址,判断下址生成方式,根据不太那个的方式生成下址。
3. Microcomputer.vhd 代码中如何定义并初始化RAM ? type ram is array(0 to 37)of std_logic_vector(7 downto 0); --38*8ram
signal ram8:ram:=
(x”20”, x ”1e ”, x ”80”, x ”40”, x ”20”, x ”20”, x ”1d ”, x ”c0”, x ”20”, x ”40”, x ”21”, x ”20”, x ”1f ”, x ”80”, x ”40”, x ”22”, x ”20”, x ”1e ”, x ”c0”, x ”22”, x”80”, x ”e0”, x ”21”, x”40”, x ”23”, x ”60”, x”23”, x ”a0”, x ”00”, x ”55”, x”8a ”, x”f0”,others=>x”00”) –initialize ram4
4. Microcomputer.vhd 代码中bus_reg_t2
将ram8存储器中对应于ar 中地址单元的数据取出来放到bus_reg_t2寄存器中。将r5寄存器中的数据装载到ram8存储器对应于ar 中地址单元中。
5. Microcomputer.vhd ram8(conv_integer(ar))
代
码
中
bus_reg_t2
r5
;
可否修改成bus_reg_t2
ram8(conv_integer(ar))
可以这样修改,但是不修改更能体现CPU 设计的方式。
6. Microcomputer.vhd 代码中bus_reg,bus_reg_t2,bus_reg_t3属于bus_reg同类的Signal ,用途是什么?
Bus_reg:一个时序周期后总线上的数据。 Bus_reg_t2:记录t2时刻总线上的中间数据。 Bus_reg_t3:记录t3时刻总线上的中间数据。
7. Microcomputer.vhd 代码中mpc ,mpc_t2,,mpc_t3,mpc_t4属于mpc 同类的Signal ,用途是什么?
Mpc :一个时序周期后微序列控制器的下址。 Mpc_t2:记录绝对地址寻址方式的下址。 Mpc_t3:记录t3时刻的下址,和Mpc_t2相同。
Mpc_t4:记录t4时刻的下址,和mpc_t3相同,同时如果是映射寻址,则修改下址。
8. Microcomputer.vhd 代码中mpc_t2与bus_reg_2信号赋值
Mpc_t2是5位的,bus_reg_t2是8位。
Mpc_t2是直接赋值,bus_reg_t2是通过其他的信号量赋值。
9. Microcomputer.vhd 代码中ct2进程中mpc_t2
保证在mpc 出错时,能及时停在mpc 当前地址状态,保持前面运行的状态,不会扰乱cpu 前面的运行结果。
T2:bus_reg_t2
实验日志
1刚开始做第一个总线数据传输实验的时候,照着书做一做就可以完成。
2. 做预算期实验时名明白了这个实验还是有一定难度的,但是获益匪浅。刚开始对运算器内部根本不知道是怎样一回事,通过做这个实验,明白了计算机中的运算器是怎样工作的,尤其是知道了不同的运
算需要进行不同的编码。而且需要通过总线才能将数据传到相应的寄存器中,同时寄存器需要装载信号与输出信号控制,这样就不会发生数据在总线上的冲突。
3. 存储器实验明白了怎样实现置数产生地址与计数产生地址,其中实验中最难理解的就是pc->ar,从ar中读数的操作,很多次都将这两者弄混,结果数据发生混乱。
4. 对于运算器实验和存储器实验,因为刚开始像省事,所以都没有实现下载操作,到会来做数据通路的时候就真正后悔了。数据通路时延最难的并不是仿真,只要将运算器和存储器结合起来就好了,但是下载是难点,不仅要考虑到管脚不够的问题,这一个问题花了很长时间相伴方法去解决。下载操作中要很清楚的明白到哪哪一步要进行哪一个操作。操作过程中由于失误,往往要重新开始。
5. 在做完数据通路实验之后,之前对于计算机组成CPU的构成完全没有概念,做完此实验后明白了计组中的数据通路,同时明白了控制信号为什么有那么多,明白了控制信号何时有效。对于计组的学习有很大的帮助。
HUNAN UNIVERSITY
课程实验报告
题 目: 模型机
学生姓名
学生学号 [1**********]
专业班级 计算机科学与技术(3)班
思考题:
1. 给定一个复合运算式子以及指令码IR[7..5]与八位BUS 总线对应情况。要求写出七条指令新的指令码并写出复合运算执行mif 文件。修改模型机电路调试程序以实现复合运算。
例:已知A=55H,B=8AH,C=F0H;IR[7..5]对应BUS8,BUS1,BUS3;写出(Aplus/B)^(/(/CplusB))的mif 文件,并在模拟机上实现。
答:模拟机电路修改如下: 存储器预设指令重设:
计算结果:(A+/B)^(/(/C+B))=42H
2. Microcomputer.vhd 代码中进程ct1,ct2,ct3,ct4功能划分依据是什么?
ct1:微序列控制器下址跳转。
ct2:实现各种指令,主要集中在实现从存储器或者寄存器释放数据到总线上。
ct3:完成各种指令,从总线上装载数据到相应的存储器或者寄存器中。
ct4:生成下址,判断下址生成方式,根据不太那个的方式生成下址。
3. Microcomputer.vhd 代码中如何定义并初始化RAM ? type ram is array(0 to 37)of std_logic_vector(7 downto 0); --38*8ram
signal ram8:ram:=
(x”20”, x ”1e ”, x ”80”, x ”40”, x ”20”, x ”20”, x ”1d ”, x ”c0”, x ”20”, x ”40”, x ”21”, x ”20”, x ”1f ”, x ”80”, x ”40”, x ”22”, x ”20”, x ”1e ”, x ”c0”, x ”22”, x”80”, x ”e0”, x ”21”, x”40”, x ”23”, x ”60”, x”23”, x ”a0”, x ”00”, x ”55”, x”8a ”, x”f0”,others=>x”00”) –initialize ram4
4. Microcomputer.vhd 代码中bus_reg_t2
将ram8存储器中对应于ar 中地址单元的数据取出来放到bus_reg_t2寄存器中。将r5寄存器中的数据装载到ram8存储器对应于ar 中地址单元中。
5. Microcomputer.vhd ram8(conv_integer(ar))
代
码
中
bus_reg_t2
r5
;
可否修改成bus_reg_t2
ram8(conv_integer(ar))
可以这样修改,但是不修改更能体现CPU 设计的方式。
6. Microcomputer.vhd 代码中bus_reg,bus_reg_t2,bus_reg_t3属于bus_reg同类的Signal ,用途是什么?
Bus_reg:一个时序周期后总线上的数据。 Bus_reg_t2:记录t2时刻总线上的中间数据。 Bus_reg_t3:记录t3时刻总线上的中间数据。
7. Microcomputer.vhd 代码中mpc ,mpc_t2,,mpc_t3,mpc_t4属于mpc 同类的Signal ,用途是什么?
Mpc :一个时序周期后微序列控制器的下址。 Mpc_t2:记录绝对地址寻址方式的下址。 Mpc_t3:记录t3时刻的下址,和Mpc_t2相同。
Mpc_t4:记录t4时刻的下址,和mpc_t3相同,同时如果是映射寻址,则修改下址。
8. Microcomputer.vhd 代码中mpc_t2与bus_reg_2信号赋值
Mpc_t2是5位的,bus_reg_t2是8位。
Mpc_t2是直接赋值,bus_reg_t2是通过其他的信号量赋值。
9. Microcomputer.vhd 代码中ct2进程中mpc_t2
保证在mpc 出错时,能及时停在mpc 当前地址状态,保持前面运行的状态,不会扰乱cpu 前面的运行结果。
T2:bus_reg_t2
实验日志
1刚开始做第一个总线数据传输实验的时候,照着书做一做就可以完成。
2. 做预算期实验时名明白了这个实验还是有一定难度的,但是获益匪浅。刚开始对运算器内部根本不知道是怎样一回事,通过做这个实验,明白了计算机中的运算器是怎样工作的,尤其是知道了不同的运
算需要进行不同的编码。而且需要通过总线才能将数据传到相应的寄存器中,同时寄存器需要装载信号与输出信号控制,这样就不会发生数据在总线上的冲突。
3. 存储器实验明白了怎样实现置数产生地址与计数产生地址,其中实验中最难理解的就是pc->ar,从ar中读数的操作,很多次都将这两者弄混,结果数据发生混乱。
4. 对于运算器实验和存储器实验,因为刚开始像省事,所以都没有实现下载操作,到会来做数据通路的时候就真正后悔了。数据通路时延最难的并不是仿真,只要将运算器和存储器结合起来就好了,但是下载是难点,不仅要考虑到管脚不够的问题,这一个问题花了很长时间相伴方法去解决。下载操作中要很清楚的明白到哪哪一步要进行哪一个操作。操作过程中由于失误,往往要重新开始。
5. 在做完数据通路实验之后,之前对于计算机组成CPU的构成完全没有概念,做完此实验后明白了计组中的数据通路,同时明白了控制信号为什么有那么多,明白了控制信号何时有效。对于计组的学习有很大的帮助。