资源描述
课程设计题目
16位简易 CPU设计
姓名
学号
班级
班级
专业
指导教师
李骊
课程设计目的
1. 利用已知的计算机组成原理知识,以及对计算机系统结构的初步学习,设计一个包括指指令系统、运算器、控制器和寄存器组的简易16位cpu 。
2. 熟练掌握vhdl硬件描述语言,对cpu的各个功能模块进行代码编写,并学会将各个功能部分组织连接成一个完成的cpu 体系结构。
3. 学会利用先进的硬件设计工具软件Quartus II 对程序进行仿真和调试。
课程设计环境
Quartus Ⅱ 5.0 软件
课程设计任务和要求
编写源程序并对程序进行仿真。
课程设计工作进度计划
序号
起止日期
工 作 内 容
①
08年5月25日—5月28日
翻阅书籍查找相关的程序
②
5月29日—6月5日
编写程序
③
6月6日—6月10日
调试程序
④
6月11日—6月15日
对程序进行仿真,得出仿真结果
课程设计内容描述:
16位简易 CPU的设计
一、设计目的:
1. 利用已知的计算机组成原理知识,以及对计算机系统结构的初步学习,设计一个包括指指令系统、运算器、控制器和寄存器组的简易16位cpu 。
2. 熟练掌握vhdl硬件描述语言,对cpu的各个功能模块进行代码编写,并学会将各个功能部分组织连接成一个完成的cpu 体系结构。
3. 学会利用先进的硬件设计工具软件Quartus II 对程序进行仿真和调试。
二、设计方案:
设计总体试验cpu 由5部分组成:取指部分insru_etch、指令译码部分decoder_unit、执行部分exe _unit、存储部分memory_unit和通用寄存器组fegfile。运用vhdl硬件描述语言在硬件设计工具软件Quartus II环境下进行设计编写,然后使用程序包exe_cpu_components将各个部分作为设计实体使用。最后将各部分组合连接为顶层文件exe_cpu。
三、指令系统
设计cpu首先要设计指令系统。由于实验cpu采用16位字长,指令系统只有15条指令,所以16位系统比8位简单的多。故本设计采用16位cpu设计方案。
1. 指令系统的格式
ADD DR,SR
指令编码:
0000 DR SR
0000 0111
功能:DR<— DR +SR ,影响C和 Z标志。 PC <— PC+1。
INC DR
指令编码:
0001 DR SR
0000 0111
功能:DR<— DR +1 ,影响C和 Z标志。 PC <— PC+1。
SUB DR,SR
指令编码:
0010 DR SR
0000 0111
功能:DR<— DR - SR ,影响C和 Z标志。 PC <— PC+1。
DEC DR
指令编码:
0011 DR SR
0000 0111
功能:DR<— DR- 1 ,影响C和 Z标志。 PC <— PC+1。
AND DR,SR
指令编码:
0100 DR SR
0000 0011
功能:DR<— DR and SR ,影响Z标志。 PC <— PC+1。
OR DR,SR
指令编码:
0101 DR SR
0000 0011
功能:DR<— DR and SR ,影响Z标志。 PC <— PC+1。
NOT DR
指令编码:
0110 DR SR
0000 0011
功能:DR<— not DR,影响Z标志。 PC <— PC+1。
MOV DR,SR
指令编码:
0111 DR SR
0000 0001
功能:DR<— SR ,不影响C和 Z标志。 PC <— PC+1。
JMP ADR
指令编码:
1000 0000
0000 0000
ADR
功能:PC<—ADR
JNC ADR
指令编码:
1001 0000
ADR — @ — 1
功能:如果C=0,则PC<—ADR;如果C=1,则PC<—PC+1;
JNZ ADR
指令编码:
1010 0000
ADR — @ — 1
功能:如果Z=0,则PC<—ADR;如果Z=1,则PC<—PC+1;
MVRD DR,DATA
指令编码:
1100 0000
0000 0000
DATA
功能:DR<—DATA。PC<—PC+2。
LDR DR,SR
指令编码:
1101 DR SR
0000 0001
功能:DR<—[SR] 。PC<—PC+1。
STR SR,DR
指令编码:
1110 DR SR
0000 0000
功能:[DR]<—SR 。PC<—PC+1。
NOP
指令编码:
1111 0000
0000 0001
功能: PC<—PC+1。
指令系统设计说明:
本设计使用的指令系统基本满功能上的需求,除了PUSH、POP、CALL、和RET等少数指令没有包括外,基本上是齐全的。包括了运算指令、转移指令和储存指令三类,。
编码说明
R15 R14 R13 R12 R11 R10 R9 R8
R7 R6 R5 R4 R3 R2 R1 R0
IR15 为0 时运算指令
IR15、 IR14 为10时为转移指令;
IR15、 IR14 为11时为储存指令;
算数逻辑指令的IR14~IR12 对应运算器ALU的三位运算操作码。
当IR0 =1时,本指令中有对DR的写操作。
当IR1 =1时,本指令影响标志为C。
当IR2=1时,本指令影响标志为Z。
五、各模块设计及功能介绍
1.寄存器模块
在本程序设计中,通用寄存器组内包含4个16位寄存器。这是一个具有1个写入端口、2个读出端口的通用寄存器组。写入端口将指令执行后得到得目的寄存器的值在t3得下降沿写入目的寄存器中。只有具有些目的寄存器功能的指令执行结束时才写目的寄存器。有些指令,如JMP指令等执行结束后不会改变通用寄存器组的值。通用寄存器组的两个读出端口,一个是目的寄存器读出端口,一个是源寄存器读出端口,从这两个端口读出的内容供执行部分exe_unit和存储器部分memory_unit使用。通用寄存器组内还有两个标志位:z_out和c_out,在t3的下降沿根据指令执行的结果改变或者不改变它们的值。这两个标志位的值送执行部分exe_unit使用。
寄存器模块芯片图
寄存器模块
2. 取指令部分
在本程序设计中,取指部分完成4项工作:
⑴产生时钟信号t1、t2和t3,供CPU各部分使用;
⑵在复位信号reset为低时将pc复位为0,在一条指令执行结束之后,根据指令执行的结果在t3的下降沿改变pc的值;
⑶将从存储器读出的指令的第一个字在t2的上升沿送至指令寄存器IR中;
⑷计算pc+1的值pc_inc,为双字指令取第二个指令字做准备
取指令部分
3. 指令译码部分
在本程序设计中,指令译码部分的功能是:根据指令寄存器IR的值产生实验CPU所需要的各种控制信号和其它信号,其信号作用如下:
SR:源寄存器号(编址)。
DR:目的寄存器号(编址)。
op_code: 控制ALU进行8种运算操作的3位编码。
zj_instruct:为1表示本条指令是条“JNZ ADR”指令。
cj_instruct:为1表示本条指令是条“JNC ADR”指令。
lj_instruct:为1表示本条指令是条“JMP ADR”指令。
DRWr:为1表示在t3的下降沿将本条指令的执行结果写入目的寄存器。
Mem_Write:为1表示本条指令有存储器写操作,存储器的地址是源寄存器的内容。
DW_intruct:为1表示本条指令是双字指令。
change_z:为1表示本条指令可能改变Z(结果为0)标志。
change_c:为1表示本条指令可能改变C(进位)标志。
sel_memdata:为1表示本条指令写入目的寄存器的值来自读存储器。
r_sjmp_addr:计算条件转移指令转移地址所需要的16位相对地址。它是由条件转移指令中的8 位相对地址经过符号扩展生成的。
指令译码部分
4. 存储模块
存储模块是cpu与外部存取器的接口部分。向外部的存储器送出16为存储地址总线Mem_addr、16为双向数据总线ob、读写信号wr。当wr 为1时,外部存储器作为读存储器信号处理;当wr信号为0时,外部存储器作为写存储器信号处理。
存储模块
5. 执行部分
执行部分完成下列任务:
(1)8种逻辑运算:加、加1、减、减1、与、或、非和数据传送,将运算结果存放在result中。根据运算结果产生位标志。
(2)产生存储器读写所需要的存储器地址Mem_ADDR.
(3)产生条件转移指令所需要的转移标志。
执行部分的河西传统上属于运算器,是运算器的核心。
执行部分
六、16位简易cpu设计总体框图
七、实验仿真示例
总结:
1设计成果:
(1) 初步实现了简易cpu的各个功能模块。实现了个个模块的连接组合。
(2) 通过实践设计更加深入的了解了计算机组成原理的相关知识。真正的做到了通过实践加深知识的掌握和学习。
(3) 通过设计过程,较熟练的掌握了vhdl硬件描述语言,对cpu的各个功能模块进行代码编写,并学会将各个功能部分组织连接成一个完成的cpu 体系结构。
2、 小结:
此次课程设计我小组同学齐心合力认真完成了自己的设计部分,初步体显了合作的设计方法和思路。大家同时获得了收益,加强了对知识的掌握。但是由于此次设计是《基于开放式cpu设计》教材的,所以有很多地方还欠缺深入理解,并且由于设计指导是基于原教材实验箱进行的所以缺少cpu的存储部分,所以我小组同学决定在下一步设计中自行设计添加相应的ram模块,实现cpu的完善。
在此次的课程设计中我郑重向老师表示感谢,正是由于老师的推荐和指导,我小组同学才能接触到这个cpu设计课题,也正是老师的指导和提供的辅导材料才使得我们的设计可以正常进行,克服突破了其中遇到的技术和知识难点。这种开放式课程设计的模式不仅给我们提供了更广阔的选择模式,还给我们提供了挑战自我的机会。
3、参考文献
《VHDL实用教程》 电子科技大学出版社
《EDA 实用技术》 人民邮电出版社
《开放式实验cpu设计》 清华大学出版社
成绩
评定
项 目
权重
成绩
1、设计过程中学习态度等方面
0.1
2、课程设计质量与答辩
0.5
3、设计报告书写规范程度
0.2
4、平时成绩(含考勤)
0.2
总 成 绩
展开阅读全文