计算机组系统原理—模型机

工程仅供参考:
pan.baidu.com/s/1-DD4DVfg-WrSyMIk79pSug 码:08t1

一、实验目标

1) 了解课程安排(实验项目设置、计组实验特点、分模块要求、总要求、测试等);
2) 学习FPGA设计开发的实验方法;
3) 了解总线数据的传输原理;了解芯片74374和74244的逻辑功能;理解寄存器之间数据交换的方法;
4) 学习模型机的工作原理,掌握简单模型机的设计方法;

二、实验内容

1、实验概述

依据微体系结构图通过各个子模块整合设计模型机,由模型机主体、时序电路、显示模块组成。

2、实验设备

1)PC一台
2)DDA系列数字系统实验平台
3)Quartus Ⅱ 配套软件。

3、模型机顶层电路图

在这里插入图片描述

说明:其中SX部件为时序电路部件,即时序信号产生器,最基本组成部分包括时钟脉冲源、
环形脉冲发生器、节拍脉冲和读写时序译码逻辑、启停控制逻辑;状态图不再赘述。
特别注意:当DP=1,TJ=0,将QD由1→0→1脉冲,机器处于单步运行状态,因此仿真时照此设计dp、tj、qd信号。
时序分配如下:
在这里插入图片描述
KZQ部件为微程序控制器,包含ROM、微命令存储器、地址译码器等,shujutonglu部件为数据通路,其中含有运算器、RAM等单元,这两个部件不再赘述。
xianshi部件为数码管显示模块,是为了将数据在实验班数码管上显示出来而做的附加电路,其中包括位选器、七段译码器等。
需要用到的信号已经进行引脚分配,正确性待验证。

4、模型机附加电路(数码管显示)

在这里插入图片描述
说明:由三个模块构成,xianclk是根据数码管显示时钟信号进行循环输出来作为选择信号选出要显示数据的数码管和要显示的数据来源,vhdl语言截图如下:
在这里插入图片描述
MUX6_1部件的6个输入信号其实是3个8位宽的信号拆分的,因为数码管每次只能显示一位数字,3个信号分别表示AR地址、总线以及pc的数据;
而YMQ部件是将4位的输入信号译码成数码管的七段信号,0~f都需要译码,以保证正确显示。
MUX6_1的vhdl代码与YMQ的代码如下:
在这里插入图片描述
在这里插入图片描述

5、时序仿真

1)波形仿真验证截图:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
以上波形图仅显示重要的信号;

2)信号分析:
clk以50ns为周期,即一个微命令需要200ns时间来执行(t1~t4);
CLRKONG为清零信号,低电平有效,因此仅在前50ns内置0,其余时间都设为1;
dp、tj信号,为了保证单步执行,将其置为10;
KRD、KWE信号,强读强写信号,低电平有效,因为不需要对内存进行外部的强读写,因此都置为1;
Arout信号,ar地址信号;da信号,微地址信号;d信号:bus上的信号。

3)ram内存数据
由于将总线的高三位与IR7、IR6、IR5相连,因此指令码与书本相同:
在这里插入图片描述
因此,内存中的数据如下:
在这里插入图片描述

可以看出:执行的程序依次为LDA、ADD、STA、OUT、AND、COM、JMP;

4)波形分析及功能说明
在这里插入图片描述
在这里插入图片描述
注:由于篇幅原因,做成表格形式,先是第一列的3个程序后才是第二列。

5) 程序结果
Mif文件在上面,通过对数据的解析,程序应该完成/((55h plus 8Ah)^F0h)的运算,我们可以在波形图中看到结果为2FH,运算正确;

三、模型机二报告

1、如控制器的模拟指令码得IR7IR6IR5对应到数据总线D【7…0】得D4D6D1,译码出7条机器指令得指令码:76543210
LDA:00000010 02H
STA:01000000 40H
OUT:01000010 42H
COM:00010000 10H
JMP:00010010 12H
ADD:01010000 50H
AND:01010010 52H
2、用模型及已有的机器指令编写测试程序,完成运算:
NOT(((NOT(C))加A)and(B加D))其中A=01,B=02,C=03,D=04;
仿真波形:
在这里插入图片描述 在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

mif文件设置如下:
在这里插入图片描述
执行的指令依次为:
LDA(C->R5)
COM(~C->R5)
ADD(~C加A)
STA(~C加A->【18】)
LDA(B->R5)
ADD(B加D->R5)
AND(((NOT(C))加A)and(B加D)->R5)
COM(求得结果)
STA(结果->【19】)
OUT(【19】->bus)
详细的信号以及操作在上面的表格中几乎相同,除了地址和数据不同,由于篇幅原因不再详细描述,下面以第一个LDA程序、STA为例进行简单的描述:
在这里插入图片描述
在这里插入图片描述
其余程序参照二、4、4)中的表格;

按照上述流程将复合运算完成,结果为仿真图形中13.75ns处(OUT指令)的d~result的FBH,验证正确;
注:第一个中间结果((NOT(C))加A)存在18H中,总终结果存在19H中;
尚无实验板,下载操作暂无;

3、MIcrocomputer.Vhd代码中的相关问题
1)进程ct1、ct2、ct3、ct4功能划分依据:
ct1:微序列控制器下址跳转;
ct2:实现各种指令,主要集中在实现从存储器或者寄存器释放数据到总线;
ct3:完成各种指令,从总线上装载数据到相应的存储器或者寄存器中;
ct4:生成下址,判断下址生成方式;
2)如何定义并初始化RAM:
通过signal声明的方式;
在这里插入图片描述
3)bus_reg_t2<=ram8(conv_integer(ar))与ram8(conv_integer(ar))<=r5的含义:
将ram8存储器中对应于ar中地址单元的数据取出来放到bus_reg_t2寄存器中;
将r5寄存器中的数据装载到ram8存储器对应于ar中地址单元中。
4、VHDL语言考虑多个时钟信号的情况:
多个时钟,必须要弄清楚多个时钟之间的关系,然后选择相应的对策;如有的低频时钟是另一个高频时钟的分频、或者是像模型机里的四个时钟信号协作。

三、实验总结

从上个学期简单的CPU实验到这次比较复杂的模型机设计实验,我感到自己对模型机的理解有了质的飞跃,收获颇多。 在做这次实验之前,通过深入的预习,理解了实验原理、明确了实验的目的,按部就班地连线,逐步完成了实验的要求。在实验过程中,我认真进行实验操作和思考实验有关的内容,把自己不太明白的问题通过实验理解清楚,取得了较好的实验结果。通过这次实验懂得了基本模型机设计与实现的基本操作,加深了对书本知识的认识。
不得不说,刚开始看到模型机的顶层电路图的时候真的很头疼,难度不亚于之前刚接触CPU的时候,因为4个时钟信号,再加上微控制器的引入,感觉很复杂,难以下笔。后来在老师们的细心解答与同学们的帮助下,一个部件又一个部件的理解、掌握,最后连好图后开始时序仿真又遇到了不少难题,又对时序信号进行调整,最后终于运行正确了。
这个实验给我留下了深刻的印象,希望在将来的实验中继续坚持。

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值