计算机硬件课程设计报告(cpu设计)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
计算机硬件课程设计
设计报告
学号: 姓名:成绩:
学号: 姓名:成绩:
东南大学计算机科学与工程系
二0 10 年11 月
一、设计名称:
My CPU的设计
二、本设计的主要特色:
1、熟悉挂总线的逻辑器件的特性和总线传送的逻辑实现方法。
2、掌握半导体静态存储器的存取方法。
三、设计方案:
1. 数据格式——8位二进制定点表示
2. 指令系统——CPU的指令格式尽量简单规整,这样在硬件上更加容易实现。
7条基本指令:输入/输出,数据传送,运算,程序控制。
指令格式:Array
7 6 5 4 3 2 1 0
两种寻址方式:
寄存器寻址Array
7 6 5 4 3 2 1 0
直接地址寻址,由于地址要占用一个字节,所以为双字节指令。
7条机器指令:
IN R目:从开关输入数据到指定的寄存器R目。
OUT R源:从指定的寄存器R源中读取数据送入到输出缓冲寄存器,显示灯亮。
ADD R目,R源:将两个寄存器的数据相加,结果送到R目。
JMP address : 无条件转移指令。
HALT : 停机指令。
LD R目,address : 从内存指定单元中取出数据,送到指定寄存器R 目。
ST address , R 源: 从指定的寄存器R源中取出数据,存入内存指定单元。
Address(内存地址)
3. CPU内部结构
4.数据通路设计
根据指令系统,分析出数据通路中应包括寄存器组、存储器、运算器、多路转换器等,采用单总线结构。
通用寄存器组:
运算器:
存储器:
多路转换器:
输出缓冲器:
5.控制器设计
控制通路负责整个CPU的运行控制,主要由控制单元和多路选择器MUX 完成。在每一个时钟周期的上升沿指令寄存器IR 从内存中读取指令字后,控制单元必须能够根据操作码,为每个功能单元产生相应主控制信号,以及对ALU 提供控制信号。对于不同的指令,同一个功能单元的输入不同,需要多路选择器MUX 来对数据通路中功能单元的输入进行选择。
程序计数器PC:指令寄存器IR:指令译码电路:
脉冲源及起停控制线路:
时序信号产生部件:
Sequence1内部电路:
四、完成的任务
1、补充了译码电路;
2、修改了时序电路,满足教材要求;
3、编写指令的微程序;
指令的微程序
lodpc (1000 0000):C00100 310080
送数(1100 0000):30C000 C00400 010080
取值公操作(0000 0000):30C000 002000
IN (0001 0000):C00200 111080
OUT (0010 0000):110880
LD (0011 0000):30C000 008000 001200 111080 ST (0100 0000):30C000 008000 110C080
ADD (0101 0000):181000 160800 400200 111080 JMP (0110 0000): 30C000 000100 310080
HALT (0111 0000):000040
4、建立RAM.mif中的内容;
RAM中内容简要介绍:
地址指令
E0 IN R0//向R0里放入数据20
E1 LD //从指定存储单元30取出数据03放到R1中E3 OUT //将R1中的数据输出出来
E4 ADD R0,R1//将R0和R1相加结果放入到R0中E5 OUT //把相加结果23输出
E6 JMP //跳转到F0
F0 ST //将R0里的数据存入指定单元20中
F2 LD //将20中的数据取出放入R3中
F4 OUT //将R3中的数据取出
F5 HALT //停机指令
5、测试结果与性能分析。
M1,M2,M3,M4的波形:
整体仿真波形:
五、课程设计总结
实验分工:XX负责波形仿真及电路图的后期修改、RAM程序设计,以及实验报告中RAM程序的介绍和总结。
XX和OO共同负责时序电路的修改、译码电路的设计和指令的微程序。
OO负责实验报告的原理分析和各种贴图。
这次的实验一开始就有很多的困难。实验初期分析电路图就费了很大的功夫,查看各种资料了解各元件的原理和性能。
因为只有理清了电路才能按照电路来写指令的微程序。但是写好了为程序在后期的仿真中还是会出现不少的问题,到时候还要回都修改微程序。
在修改电路图的时候由于对Quartus II软件并不是很熟悉,浪费了很多的时间。例如,sequence1的内部电路修改了以后要用新的sequence1原件代替旧的,都不知道该怎么做。都是自己一点点试出来的。
另外,因为比较依赖书上给的电路图并没有怀疑书上的电路图会有错,所以在仿真出的波形不对是一直是在检查自己指令的微程序有没有出错。仔细看了波形图后发现三个74238寄存器和1to8接的顺序是错的。还有就是要给ram和rom都接时钟。
经过一个月的努力我们完成了mycpu设计的基本要求。虽然比起有些同学的设计我们的功能显得很单薄,但我们也是靠着自己的力量做出来了。在发现和解决问题的过程中,我们考虑问题也变得更加的全面和仔细,还有就是提高了我们的逻辑思维能力,特别是遇到问题