计算机组成原理课程设计 从1加到10,带进位左移三位,计算机组成原理课程设计(全).doc...

成 绩 评 定 表

学生姓名刘建成班级学号1103050115专 业计算机科学与技术课程设计题目多寄存器减法\右移位\输入输出等指令实验计算机设计评

组长签字:

成绩

日期

2013 年6月21 日

课程设计任务书

学 院信息学院专 业计算机科学与技术学生姓名刘建成班级学号 1103050115 课程设计题目多寄存器减法\右移位\输入输出等指令实验计算机设计实践教学要求与任务:

利用EL-JY-II型计算机组成原理实验仪提供的硬件资源,通过设计(包括整机结构设计、指令设计、微程序设计、微指令设计、调试程序设计等)、组装、调试三个步骤完成一台微程序控制的复杂实验计算机的设计。具体要求如下:

掌握实验计算机的整机结构。熟悉实验计算机的组装和调试方法。

设计如下几条机器指令的格式,指令格式可以采用单字长或双字长设计。

算术减法运算指令:SUB rs,rd (功能rs - rd -> rd)

输入输出指令:IN #DATA,rd (功能DATA -> rd)

OUT Ri (功能Ri的值 -> LED输出)

转移指令: JMP ADDR (功能ADDR -> PC)

右移位运算指令:RRC rs,rd(功能rs的值带进位循环右移一位-> rd)

设计微指令的格式, 编写上述每条机器指令所对应的微程序,并上机调试。

4、通过如下程序的编写调试,验收机器指令、微指令、微程序的设计结果。

IN #data,R0

IN #data,R2

SUB R0, R2

RRC R2, R0

OUT R0

JMP 00H

工作计划与进度安排:

第17周:布置课程设计任务,查阅资料,分组设计,实验室组装与调试。

第20周:调试,验收,答辩,编写课程设计报告。指导教师:

2013年 6月21日专业负责人:

2013年 6 月22日学院教学副院长:

2013年6 月22日

目录

1. 实验计算机的设计1

1.1整机逻辑框图设计及整机的逻辑框图1

1.2指令系统的设计3

1.3微操作控制部件的设计5

1.3.1微指令编码的格式设计5

1.3.2微操作控制信号设计6

1.3.3微程序顺序控制方式设计7

1.4编写调试程序15

2. 实验计算机的组装15

3. 实验计算机的调试16

3.1 调试前准备16

3.2调试步骤和调试结果19

3.3心得体会19

4、参考文献20

1. 实验计算机的设计

1.1整机逻辑框图设计及整机的逻辑框图

此模型机是由运算器,控制器,存储器,输入设备,输出设备五大部分组成。

1.运算器又是有299,74LS181完成控制信号功能的算逻部件,暂存器DR1,DR2,及三个通用寄存器R0,R2等组成。

2控制器由程序计数器PC、指令寄存器、地址寄存器、时序电路、控制存储器及相应的译码电路组成。3.存储器RAM是通过CE和W/R两个微命令来完成数据和程序的的存放功能的。4输入设备是由置数开关SW控制完成的。输出设备有两位LED数码管和W/R控制完成的

输入(IN)和输出(OUT)指令采用单字节指令,格式见表1.4I/O操作码表:

7 6 5 43 21 0OP-CODEaddrrd 表1.4I/O操作码表

其中,当OP-CODE=0100且addr=10时,从“数据输入电路”中的开关组输入数据;当OP-CODE=0100且addr=01时,将数据送到“输出显示电路”中的数码管显示。

指令助记符,功能及格式见表1.5:

表1.5指令格式

汇编符号指令的格式功 能CLR rd

MOV rs,rd

ADC rs,rd

SBC rs,rd 0111 00 rd

1000 rs rd

1001 rs  rd

1010 rs rd 0 rd

rs rd

rs+rd+cy rdrs-rd-cy rdINC rd

AND rs,rd

COM rd

RRC rs,rd 1011 rs rd

1100 rs rd

1101 rs rd

1110 rs rd rd+1 rd

rs∧rd rd

rd rd

cy rs

rs rdRLC

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于这个课程设计题目,您需要设计一个能够进行16位补码加减运算的电路,并提供相应的代码。以下是一个基本的思路和代码示例,供您参考: 1. 设计电路框图 首先,您需要设计一个电路框图,以实现16位补码加减运算。该电路需要包括以下模块: - 输入模块:用于接收两个16位的补码数值。 - 符号位比较模块:用于比较两个数值的符号位,以确定加法或减法运算。 - 补码转换模块:用于将输入的数值转换为补码形式。 - 加法/减法模块:用于进行16位的加法或减法运算。 - 进位/借位处理模块:用于处理进位和借位的情况。 - 输出模块:用于输出运算结果。 2. 编写 Verilog 代码 根据上述电路框图,您可以编写相应的 Verilog 代码,以实现16位补码加减运算。以下是一个简单的代码示例,供您参考: ```verilog module add_sub_16bit( input [15:0] a, input [15:0] b, input sub, output reg [15:0] result ); // 补码转换模块 assign a = sub ? ~(a - 1) : a; assign b = sub ? ~(b - 1) : b; // 加法/减法模块 always @(*) begin if (sub) result = a - b; else result = a + b; end // 进位/借位处理模块 always @(result) begin if (sub) begin if (result[15] == 1) result = result - 1; end else begin if (result[15] == 0) result = result + 1; end end endmodule ``` 这段代码实现了一个名为 add_sub_16bit 的模块,该模块包含三个输入端口:a,b 和 sub,以及一个输出端口 result。其中,a 和 b 分别为两个16位的补码数值,sub 为一个用于指定加法或减法运算的标志位(1 表示减法,0 表示加法)。result 为运算结果,也是一个16位的补码数值。 3. 进行仿真和验证 最后,您需要对这个电路进行仿真和验证,以确保它能够正确地执行16位补码加减运算。您可以使用 Verilog 仿真工具,如 ModelSim 或 Icarus Verilog,对这个电路进行仿真,并进行一系列测试,以验证其正确性。 以上是一个基本的思路和代码示例,供您参考。您可以根据具体情况进行修改和优化,以满足您的课程设计要求。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值