CPU课程设计.doc
- 文档编号:1639474
- 上传时间:2022-10-23
- 格式:DOC
- 页数:21
- 大小:450.53KB
CPU课程设计.doc
《CPU课程设计.doc》由会员分享,可在线阅读,更多相关《CPU课程设计.doc(21页珍藏版)》请在冰豆网上搜索。
课程设计报告
课程片上计算机系统
题目CPU模型机设计
班级
专业
学生
学号
指导教师
2014年7月3日
目录:
1.课程设计的目的及要求………………………………………3
2.处理器的设计思想和设计内容………………………………3
3.设计处理器的结构和实现方法………………………………3
4.模型机的指令系统……………………………………………4
5.处理器的状态跳转操作过程…………………………………4
6.CPU的Verilog代码……………………………………………7
7.模型机在QuartusII环境下的应用…………………………19
8.仿真波形………………………………………………………19
9.课程设计的总结………………………………………………21
一.课程设计的目的及要求:
(一)目的:
1.掌握RISCCPU与内存数据交换的方法。
2.学会指令格式的设计与用汇编语言编写简易程序。
3.能够使用VHDL硬件描述语言在QuartusⅡ软件环境下完成CPU模型机的设计。
(二)要求:
1.以《计算机组成与设计》书中123页的简化模型为基础更改其指令系统,形成设计者的CPU,
2.在QuartusII环境下与主存连接,调试程序,观察指令的执行是否达到设计构想。
二.处理器的设计思想和设计内容:
处理器的字长为16b;包括四种指令格式,格式1、格式2、格式3的指令字长度为8b,格式4的指令字长度为16b;处理器内部的状态机包括七个状态。
(一)关于修改后的CPU:
一共设计25条指令,主要包括空操作指令、中断指令、加法指令、减法指令、加法指令、四种逻辑运算指令、比较、算术移位操作指令、逻辑移位操作指令、加减1指令、加减2指令、数据传输指令、转移类指令、读写指令、特权指令等等。
(二)关于RAM:
地址线设置成8bits,主存空间为4096words。
三.设计处理器的结构和实现方法:
(指令格式)
格式1:
寄存器寻址方式
1514131211109876543210
OP
Rx
Ry
空白
格式2:
寄存器变址寻址方式
OP
Ry
空白
格式3:
立即数寻址方式
1514131211109876543210
OP
I
空白
格式4:
无操作数寻址方式
1514131211109876543210
OP
空白
空白
格式5:
直接寻址方式
1514131211109876543210
OP
Addr
内存(2的12次方)
四.模型机的指令系统
CPU的指令集:
操作码OP
IR(15..12)
指令
格式
指令的助记符
指令的内容
0000
4
Idle
无操作PC=PC+1
0001
3
LoadData
R0ßI立即数操作PC=PC+1
0010
1
MoveRxRy
Rxß(Ry)PC=PC+1
0011
1
AddRxRy
Rxß(Rx)+(Ry)PC=PC+1
0100
1
SubRxRy
Rxß(Rx)-(Ry)PC=PC+1
0101
1
MulRxRy
Rxß(Rx)*(Ry)PC=PC+1
0110
2
IR(11.10)
00ANDRxRy
01ORRxRy
10XORRxRy
11NOTRx
Rxß(Rx)AND(Ry)PC=PC+1
Rxß(Rx)OR(Ry)PC=PC+1
Rxß(Rx)XOR(Ry)PC=PC+1RxßNOT(Rx)PC=PC+1
0111
1
COMRxRy
Rx>RyRx 1000 2 IR(11.10) 00arrRxRy 01arlRxRy 10lgrRxRy 11lglRxRy 算术右移PC=PC+1 算术左移PC=PC+1 逻辑右移PC=PC+1 逻辑左移PC=PC+1 1001 1 IR(11.10) 00Rx+1 01Rx-1 10Rx+2 11Rx-2 PC=PC+1 1010 1 SwapRxRy Aß(Ry)Ryß(Rx)Rxß(A)PC=PC+1 1011 5 JmpAddr PCßAddrPC=PC+1 1100 5 JzAddr If(R0)=0thenPCßAddr elsePC=PC+1 1101 5 ReadAddr R0ß(Addr)PC=PC+1 1110 5 WriteAddr Addrß(R0)PC=PC+1 1111 4 Stop 无操作PC保持不变 五.处理器的状态跳转操作过程: 模型机每一状态下的操作及状态跳转 当前状态 执行操作 次态与读下一条指令的有关的操作 St_0 取指令 IR(15..0)ßM_data_in(15..0) St_1 Write-Readß’0’PC=PC+1 St_1 IFOP=LoadTHEN R0ßIR(11..8)||”000000000000” MARßPC IF(OP=Stop)THEN St_1 ELSE St_2 ENDIF IFOP=MoveTHENRxß(Ry) IFOP=shTHENRxß(Rx) 移位运算 IFOP=AddTHENAß(Ry) IFOP=SubTHENAß(Ry) IFOP=MulTHENAß(Ry) IFOP=LogTHENAß(Ry) AND、OR、NOT、XOR IFOP=MathTHENAß(Ry) +1-1+2-2运算 IFOP=SwapTHENAß(Ry) IFOP=StopTHENNULL IFOP=IdleTHENNULL IFOP=JmpTHENNULL IFOP=JzTHENNULL IFOP=ReadTHENNULL IFOP=WriteTHENNULL St_2 IFOP=LoadOROP=MoveOROP=shOROP=Idle THENNULL St_0 Write-Readß’0’ IFOP=AddTHENRxß(Rx)+A IFOP=SubTHENRxß(Rx)-A IFOP=ANDTHENRxß(Rx)ANDA IFOP=NOTTHENRxß(Rx)NOTA IFOP=XORTHENRxß(Rx)XORA IFOP=NOTTHENRxßnot(Rx) IFOP=mathTHENRxß(Rx)+-1.2 IFOP=SwapTHENRyß(Rx) St_3 Write-Readß’0’ IFOP=JmporJzTHEN NULL IFOP=ReadorWriteTHENMARßIR(11..0) St_3 IFOP=SwapTHENRxß(A) St_0 Write-Readß’0’ IFOP=ReadorWriteorJmporJzTHEN IR(7..0)ßM_data_in St_4 MARßPC Write-Readß’0’ St_4 IFOP=(Read)THENMARßIR(11..0) St_5 Write-Readß’0’ IFOP=(Write)THENMARßIR(11..0) MDRß(R0) IFOP=(Jmp)THENPCßIR(11..0)MARßIR(11..0) IFOP=(Jz)IF(R0)=0THENPCßIR(11..0)MARßIR(11..0) ELSEMARß(PC) IFOP=(Jmp)THENPCßIR(11..0)MARßIR(11..0) IFOP=(Jz)IF(R0)=0THENPCßIR(11..0)MARßIR(11..0) ELSEMARß(PC) St_5 IFOP=(Jmp)orOP=(Jz) St_0MARß(PC) Write-Readß’0’ IFOP=(Read) St_6MARß(PC) Write-Readß’0’ IFOP=(Write) St_6MARß(PC) Write-Readß’1’ St_6 IFOP=(Read)THENR0ßM_data_in St_0 Write-Readß’0’ 六. 21 <0> 六、 CPU的VerilogHDL代码: modulecpu(reset,clock,Write_Read,M_address,M_data_in,M_data_out,overflow); inputreset; inputclock; outputWrite_Read; output[11: 0]M_address; input[7: 0]M_data_in; output[7: 0]M_data_out; outputoverflow; regoverflow; reg[15: 0]IR; reg[7: 0]MDR
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- CPU 课程设计