计算机组成原理课程设计

1.概述

本次课程设计,我们小组设计的是一个采用定长cpu周期、三数据总线结构运算器的嵌入式CISC模型机,该模型机可以实现以下功能:输入包含10个整数(有符号数)的数组M,可以将其按从小到大的顺序输出。

2.整体设计实现

微处理器由运算器和控制器两部分组成,运算器由ALU、通用寄存器状态字寄存器PSW、三态缓冲器和多路选择器组成。控制器由程序计数器PC、指令寄存器IR、指令译码器、操作控制器和时序产生器组成。程序计数器用来给出指令的地址,指令寄存器用来保存正在执行的指令,操作控制器的主要功能,就是根据指令的操作码和时序信号,产生各种具有时间标志的操作控制信号,时序产生器根据时钟脉冲信号源的时钟输入产生节拍脉冲信号。
微处理器简单图示
微处理器在运行程序时,根据程序计数器的值自动地从主存储器中取出一条指令,然后对指令进行分析,即对指令的操作码进行译码或者测试,以识别指令的功能,并根据不同的操作码、状态反馈信息和时序产生器产生的时序信号,生成具有时间标志的操作控制信号,送到相应的执行部件,定时启动所要求的操作,以控制数据在微处理器、主存储器和输入/输出设备之间流动,指挥运算器操作,完成对数据的加工处理。与此同时,它还修改程序计数器的值,给出后继指令在主存储器中的位置,自动地、逐条地取指令、分析指令和执行指令,直到指令序列终止、全部执行完毕为止。

2.1嵌入式CISI模型机系统总体设计

模型机

2.2 嵌入式CISC系统控制器的逻辑结构框图

逻辑结构图
由于微地址寄存器中的触发器异步置“1”端低电平有效,因此与ua5-ua0对应的异步置“1”控制信号SE5~SE0(ua5的异步置“1”端SE5实际未涉及)的逻辑表达式为:

2.3部件的功能表

ALU功能表:

在这里插入图片描述

程序计数器PC:

在这里插入图片描述

时序产生器:

在这里插入图片描述

3.模块实现

3.1汇编语言

   MOV R0,00H          ;从ram的00H位置开始存放数据
   MOV R1,0AH          ;设置循环次数
L1 :IN1 R2            ;从外部输入数据到R2寄存器
   STO R2,(R0)        ;将R2中的数据送到ram中
   INC R0             ;地址自加一
   DEC R1             ;循环次数自减一
   TEST R1            ;测试R1是否为正
   JNS L1              ;正数则跳转

;送数结束
   MOV R3,09H          ;冒泡排序                    
ALOP:  MOV R0,09H    
ALOP1: LAD (R0),R1   
  DEC R0
  LAD (R0),R2
  CMP R1,R2    		;比较的实质是相减
  JNS NEXT    		;若为正则跳转
  INC R0        		;交换两个相邻地址的内容
  STO R2,(R0)
  DEC R0
  STO R1,(R0)
NEXT:TEST R0  		;判断是否为正
JNS ALOP1   
   DEC R3  
   TEST R3  
   JNS ALOP  
   MOV R0,00H    	;输出排序后的数据
   MOV R1,09H
LOP:LAD (R0),R2
   OUT R2
   INC R0
   DEC R1
   TEST R1
   JNS LOP
                     ;结束

流程图:
在这里插入图片描述

3.2 设计指令格式

在这里插入图片描述

3.3 将汇编语言翻译成机器语言

在这里插入图片描述

3.4 微程序流程图

在这里插入图片描述

3.5 微指令列表

在这里插入图片描述

3.6 顶层电路图

在这里插入图片描述
crom
在这里插入图片描述
aa
在这里插入图片描述

4.运行测试与分析

在这里插入图片描述
在这里插入图片描述

从上图我们可以看出,此次用于测试的数据分别为33H,30H,10H,A0H,11H,13H,50H,60H,19H,34H,其中A0H为负数。

在这里插入图片描述
在这里插入图片描述
上面的波形图列举了第一、二次排序的过程,其中R1、R2存的是将要排序的数据,R3存的是排序的次数。这是从高地址往低地址排序,R1中存放的是高地址的数据,R2中存放的是低地址的数据,一旦R1中的数比R2中的数小,则将高地址的数和低地址的数进行交换

在这里插入图片描述

从上图看出,排序的结果为,A0H,10H,11H,13H,19H,30H,33H,34,50H,正确。

5.总结

这次课设我们花费了挺久的时间才完成的,有些地方,比如说汇编语言的设计,还有微指令的设计,都让我们卡了好半天。不过,当看到最终结果出来时,我们还是挺高兴的。

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值