计算机组成原理课程设计vhdl设计cpu.docx
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《计算机组成原理课程设计vhdl设计cpu.docx》由会员分享,可在线阅读,更多相关《计算机组成原理课程设计vhdl设计cpu.docx(17页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、目录1. 课程设计目的32. 开发工具选择33. 方案选择34. 指令系统设计45. 模型机框图设计46. 指令流程图57. 微指令格式微程序掌握器设计68. 微程序微程序掌握器设计79. VHDL 程序代码910. 调试仿真1611. 课程设计回忆总结18参 考 文 献1811. 课程设计目的(1) 、计算机组成原理课程设计的主要任务是让学生通过动脑和动手解决计算机设计中的实 际问题。综合运用所学计算机组成原理学问,在把握部件单元电路试验的根底上,进一步将 其组成系统构造一台根本的模型计算机,把握整机概念,并设计机器指令系统,编写程序, 在所设计的模型计算机上调试运行。(2) 、通过一台模型
2、机的设计过程,明确计算机的掌握原理与掌握过程,稳固和敏捷应用所 学的理论学问,把握计算机组成的一般设计方法,提高学生设计力量和实践操作技能,为从事计算机研制与设计打下根底。2. 开发工具选择使用QUARTUS 5.0 软件编写并调试VHDL 程序,然后做功能仿真。3. 方案选择本次实习的内容为 16 位模型计算机的设计,单总线,承受微程序掌握方式,有四种寻址方式:直接寻址、存放器寻址、存放器间接寻址和变址寻址。微程序掌握方式由微指令译码产生。微程序中一条机器指令往往分成几步执行,将每一步操作所需的假设干为命令以代码编写在一条微指令中,假设干条微指令组成一段微程序,对应一条机器指令。然后依据系统
3、的需要,事先编制各段微程序,将它存入一个专用存放器即掌握存储器中。微程序执行过程:如图 1 所示,为微程序掌握根本框:(1) 从控存中逐条取出“取指令操作”,执行取指令公共操作。(2) 依据指令的操作码,经过微地址形成部件,得到这条指令的入口地址,并送入微地址存放器中。(3) 从控存中逐条的取出对应的微指令并执行。(4) 执行完一条机器指令对应的微程序后又回到取指微程序的入口地址,连续第1 步,以完成取下一条机器指令的公共操作。微命令序列指令代码IR微地址译码器PSW运行状态形成电路微命令字段微指令存放器 IR微地址字段PC微地址寄存器 AR掌握存储器 CM2图 1 微程序掌握根本框4. 指令
4、系统设计操作码 目的操作数寻址方式目的操作数 源操作数寻址方式 源操作数15121110965430模拟机承受了定长的指令格式,每条指令字长为16 位。承受的寻址方式为直接寻址00、存放器寻址01、存放器间接寻址10和变址寻址11,操作码类型及编码方式如下操作码staaddsuband1or1shl编码方式0000000100100011010001015. 模型机框图设计IRMDRACCPCR0MCR1ALUDMAR模拟机数据通路如图 2 所示,模型机承受单总线构造,主要包括运部件ALU,以及程序计数器 PC、累加器 ACC、指令存放器 IR、数据存放器 MDR、地址存放器 MAR 和通用存
5、放器R,RAM 为内存图 2:模型机数据通路(1) 存放器的位数:全部的存放器都均为 16 位A 通用存放器R0,R1该模拟机有 2 个通用存放器,用于供给操作数。B 指令存放器IR为了提高取指令的速度,将指令从内存中读出,经数据总线直接置入IR。 C 数据存放器MDR、地址存放器MAR地址存放器MAR 供给访问主存的地址;数据存放器MDR,把从内存取出的数据暂存于 MDR 中,在用到该数据进展运算时, 再从 MDR 中取出数据进展运算。3D 程序计数器PC用于存放下一条指令的内存地址。(2) 总线宽度:该模拟机只有一条总线,且总线宽度为16 位。(3)ALU 位数及运算功能ALU 可以实现
6、16 位操作数的运算,即ALU 的位数为 16 位。ALU 运算功能为:可以实现简洁的加0001:add、减0010:sub、规律与0011: and1、或0100:or1操作。(4)微命令的设置各标识的含义经过认真分析各信息传送路径,对指令过程根本把握,并为相应的微命令做了一下设置:171615141312111098765-0PC_loadloadMDRload-ALUINCAddrR_ALUALU下bus_IR_MAR_busMDR_ACC_PC_busCSNW_add_sub地址微30292827262524232221201918地ACC_ACC_D_loadC_loadR1_loa
7、dR0_loadloadACCload址addDaddCbus_Dbus_Cbus_R1bus_R0_PC_bus_ACC333231ALUALUALU_and_or_srl6. 指令流程图指令的流程图如图 3 所示,共有 6 条指令,每条指令都要经过取指令、分析指令和执行指令 3 个步骤。在取指令阶段,8 条指令是一样的,首先程序计数器PC 的内容通过总线送入地址存放器 MAR,存储信息,PC+1 传送给 PC,把读出的内容传送给指令存放器IR 。再接下来的操作中,依据不同的指令,执行挨次也不同。4开头PCMARMIR,PC+1PCstaaddsubandorshlPCMARRiCRiMAR
8、RiCRiCAMARPC+1PCPCMARMMDRCRjMDRRjDMMDRCMMDRCPC+1PCRjDMMDRDC or DRjC 左移一位ACCC+RiMARMMDRDCDRjCandDMDRMMDRCD+RjMARMDRMCRjMMDRDC+DMDRMDRM完毕图 3 指令流程图7. 微指令格式微程序掌握器设计控 制 信 号描述load_PC将总线上的数据装载至 PCACC_bus用 ACC 的内容驱动总线load_ACC将总线上的数据载入 ACC微指令格式设计如表:5PC_bus用PC 的内容驱动总线load_IR将总线上的数据装载至 IRload_MAR将总线上的数据装载至 MAR
9、MDR_bus用 MDR 的内容驱动总线load_MDR将总线上的数据装载至 MDRALU_ACC用 ALU 的结果装载 ACCINC_PCPC+1 并将结果存至PC 中Addr_bus用 IR 指令中的地址局部驱动总线CS片选。用 MAR 的内容设置存储器地址R_NW读取,不行写。当 R_NW 无效且CS 有效时,MBR 的内容存储于存储器中ALU_addC在 ALU 中执行 ACC 和 C 的规律加操作ALU_addD在 ALU 中执行 ACC 和 D 的规律加操作ALU_add在 ALU 中执行规律加操作ALU_sub在 ALU 中执行减操作ALU_and在 ALU 中执行与操作ALU_
10、or在 ALU 中执行与操作ALU_shl在 ALU 中执行左移操作R0_bus用存放器 R0 的内容驱动总线load_R0将总线上的数据装载至 R0R1_bus用存放器 R1 的内容驱动总线load_R1将总线上的数据装载至 R1C_bus用暂存器 C 的内容驱动总线load_C将总线上的数据装载至 CD_bus用暂存器 D 的内容驱动总线load_D将总线上的数据装载至 D表 1微指令格式8. 微程序微程序掌握器设计依据微处理器的数据通路和指令系统,可得出微程序的流程图如图 4 所示。微程序的编码承受直接编码方法,每一个掌握信号对应一位,共有28 个掌握信号,依据微指令格式6把相关的掌握信
11、号整合到一起进展编码。PC_busload_MAR0INC_PCCS1R_NWMDR_bus2load_IRop3staPC_bus48 load_MAR INC_PCadd49 R1_busload_MDRsub50 R0_busload_MARand51 R0_busload_MDRor52 R0_busload_MDRshl53 addr_busload_MAR4CS11load_C23CS R_NW30load_C37load_C43CS R_NWR_NW12PC_busload_MAR24MDR_bus31R1_busload_MAR38R1_busload_MAR44MDR_bus
12、5MDR_busload_CINC_PCload_C32CS39load_Dload_ACC6load_MDR load_ACC13CS R_NW25R1_bus load_MDR33R_NWMDR_bus40ALU_ACCALU_or45ALU_ACCALU_shlR1_bus14MDR_bus load_D26load_Dload_D41ACC_bus46ACC_busload_MDR78ALU_AC CACC_bus load_MAR15load_MDR load_ACC R0_bus22CS2728ALU_ACCALU_subACC_bus load_MDR3435ALU_ACCALU
13、_andACC_bus load_MDR42load_MDRload_R147load_R19CSR_NWMDR_bus16 ALU_ACCALU_addC17 ACC_busload_MAR21 ACC_busload_MDR20 ALU_ACC29load_R136CS10load_C load_R018 CS R_NW19 MDR_bus load_D7依据图 4 微程序流程图的下地址图,4 可微程知序共流有程5图4 条微指令,该模拟机微程序的编码如下0= 00000000000000001010001000000000011= 00000000000000000000000011000
14、000102= 00000000000000000101000000000000113= 00000000000000000000000000001111114= 00000000000000000000000011000001015= 00000000100000000001000000000001106= 00000000010000010000100000000001117= 00001000000000000000010000000010008= 00000000000000100010000000000010019= 000000000000000000000000110000101
15、010= 000000001000100000010000000000000011= 000000001000000000000000000000110012= 000000000000000010100010000000110113= 000000000000000000000000110000111014= 000000100000000000010000000000111115= 000000000001000100001000000001000016= 000100000000000000000100000001000117= 00000000000000100010000000000
16、1001018= 000000000000000000000000110001001119= 000000100000000000010000000001010020= 000000000000000000000100001001010121= 000000000000001000001000000001011022= 000000000000000000000000100000000023= 000000000000000000000000110001100024= 000000001000000000010000000001100125= 0000000001000000000010000
17、00001101026= 000000100000000000000000000001101127= 000000000000000000000100000101110028= 000000000000001000001000000001110129= 000000000010000000000000000000000030= 000000001000000000000000000001111131= 000000000100000000100000000010000032= 000000000000000000000000110010000133= 000001000000000000010
18、000000010001034= 100000000000000000000100000010001135= 0000000000000010000010000000100100836= 000000000000000000000000100000000037= 000000001000000000000000000010011038= 000000000100000000001000000010011139= 000000100000000000000000000010100040= 010000000000000000000100000010100141= 0000000000000010
19、00001000000010101042= 000000000010000000000000000000000043= 000000000000000000000000110010110044= 000000001000000000010000000010110145= 001000000000000000000100000010111046= 000000000000001000000000010010111147= 000000000000100000000000000000000048= 000000000000000010100010000000010049= 000000000100
20、000000001000000000101150= 000000000001000000100000000001011151= 000000000001000000001000000001111052= 000000000001000000001000000010010153= 00000000000000000010000100001010119. VHDL 程序代码-头文件LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;PACKAGE cpu_defs ISTYPEopcode IS (sta, add, sub,and1,or1,shl,jmp,nop)
21、;TYPEregcode IS (r0, r1);TYPExzhcode IS (zh,j,jj,bi);CONSTANT word_w: NATURAL :=16; CONSTANT op_w: NATURAL :=4; CONSTANT reg_w: NATURAL :=4; CONSTANT xzh_w: NATURAL :=2;CONSTANT rfillop: STD_LOGIC_VECTOR(op_w-1 downto 0):=(others =”0”); CONSTANT rfillreg: STD_LOGIC_VECTOR(reg_w-1 downto 0):=(others
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 组成 原理 课程设计 vhdl 设计 cpu
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内