实验五 模型机设计与实现

一、实验内容

构造一台模型机并完成调试,掌握整机概念。8位模型机CPU的电路原理图,如图1.1所示。

图 1.1  8位模型机CPU的顶层设计电路原理图

实验任务

指令执行周期的微程序的编码。

指令

功能

指令码

微操作

微命令

微指令码

微地址

LDI Rd,data

data→Rd

0001Rdxx data

(1)PC→MUX→AR,PC+1→PC

(2)RAM→BUS,BUS→Rd

ADD Rd,Rs

(Rd)加(Rs)→Rd

1001RdRs

+,ALU→BUS,BUS→Rd

HALT

停机

1111xxxx

STOP

根据上表列出的3种指令,写出微操作、微命令、微指令编码和微地址。将微指令码写入到控制存储器的初始化文件ROM_5.mif中。

地址

汇编语言

指令格式

16进制

机器码

功能

操作码

地址码

00

LDI R1,31

0001

0100 0011 0001

14 31

31→R1:R1=31

02

LDI R0,55

0001

0000 0101 0101

10 55

55→R0 :R0=55

04

ADD R1,R0

1001

0100

94

(R1)+(R0)→R1:R1=86

05

HALT

1111

0000

F0

停机

对上表的程序指令编码写入到程序存储器的初始化文件RAM_2.mif中,编译、仿真,仿真正确后,锁定引脚,再编译,下载到实验系统中,完成单步硬件调试。在调试过程中,注意观察指令所对应微程序的微指令编码的正确性。

 

二、实验步骤与实验结果

第一步:根据图1.1电路进行设计

图2.1 模型机的逻辑图

第二步:分析数据通路

图2.2 LDI Rd,data的数据通路

图2.3 ADD Rd,Rs的数据通路

第二步:分析微指令。

指令

功能

指令码

微操作

微命令

微指令码

微地址

LDI Rd,data

data→Rd

0001Rdxx data

(1)PC→MUX→AR,PC+1→PC

(2)RAM→BUS,BUS→Rd

PC_B=1,LDAR=1,PCINC=1,RAM_B=1,LDRI=1

M23,M20,M21,M13,M17为1

00B22000H

01H

ADD Rd,Rs

(Rd)加(Rs)→Rd

1001RdRs

+,ALU→BUS,BUS→Rd

M=0,CN=0,S[3..0]为1001时做加法运算。 ALUB=1,LDRI=1

M27-M24=1001,M28=0,M29=0,M17=1,M12=1

09021000H

09H

HALT

停机

1111xxxx

STOP

M18=1

00040000H

0FH

第三步:进行仿真。仿真图如下:

图2.4  模型机的仿真图

六、实验讨论与总结

(1)在微指令地址形成电路中,当CF 或ZF有效时,对其输出uA[5..0]有何影

响?如何实现对程序的控制/转移功能?

问题解答:当P3P2P1P0取值为0100的时候且NuA[0]=0,此时CF有效,此时的为微地址就与CF有关,uA[5..0]=NuA[5..1]和CF组成。同理当P3P2P1P0取值为1000时,

此时ZF有效,此时的为微地址就与ZF有关,uA[5..0]=NuA[5..1]和ZF组成。通过P3P2P1P0的不同取值实现对程序的控制/转移功能。

(2)说明P[3..0]信号分别有效时,对微指令控制电路中输出uA[5..0]有何影响?

问题解答:P[3..0]的不同取值决定了微指令的下地址,P[3..0]全为0时NuA[5..0]作为下地址;P[3..0]为0001时,由SW[2..0]和NuA[5..3]决定,且NuA[2..0]全为0;P[3..0]为0010时,由指令作为下地址,且NuA[3..0]全为0,下地址由NuA[5..4]和IR[7..4]共同决定;当P3P2P1P0取值为0100的时候且NuA[0]=0,此时CF有效,此时的为微地址就与CF有关,uA[5..0]=NuA[5..1]和CF组成。同理当P3P2P1P0取值为1000时,此时ZF有效,此时的为微地址就与ZF有关,uA[5..0]=NuA[5..1]和ZF组成。

(3)当控制信号SWA、SWB、SWC取不同的值时,对微指令控制电路中输出 uA[5..0]有何影响?

问题解答:SWA、SWB、SWC取不同的值时,决定了微指令的下地址的不同。

(4)如何建立存储器初始化文件?如何向LPM_ROM、LPM_RAM中配置初始化数据?

问题解答:建立ROM.mif文件,讲微指令写入进去,注意第一条对应的就是取指令的微指令。

  • 2
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

简单点了

谢谢大佬

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值