8位CPU的设计,VHDL语言,综合性实验实验报告.doc
![资源得分’ 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)
《8位CPU的设计,VHDL语言,综合性实验实验报告.doc》由会员分享,可在线阅读,更多相关《8位CPU的设计,VHDL语言,综合性实验实验报告.doc(44页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、综合性实验报告计算机组成原理年级专业班级: 10级软工R3班 小组号: 5 完成日期: 2012-06-06 小组成员、组内分工及各成员成绩学号姓名(组长排第一个)分工工作量比例(组长指定)自评成绩(组长指定)201031000326杨湧通用寄存器34%100201031000325严英鹏ALU相关22%100201031000430郑兆龙存储器22%100201031000327杨宇控制逻辑22%100【分工包括:取指及调试、控制逻辑、执行(ALU相关)、通用寄存器组、存储器等】(一)实验类型:验证性+设计性(二)实验类别:综合性专业基础实验(三)实验学时数:8学时(四)实验目的理解和验证参
2、考代码,并在其基础上,通过适当改造,尝试设计一个简单的CPU,并测试其结果。(五)实验内容设计一个能验证计算机CPU工作原理的实验系统,包括取指部分、指令译码部分、执行部分、通用寄存器组以及存储器,并测试其结果。(六)实验要求 根本目标:缩小到8位的数据通路,也即是4位OP和4位的地址码。(参考代码是16位数据通路,也即8位OP和8位的地址码))学生按照实验要求,在实验平台上实现具有存储与运算功能的计算机系统,并能通过测试,以验证其正确性。具体要求如下:(1)取指及调试(组长兼任)。熟悉指令取指过程,并把16位的部分改为8位。使用DebugController和系统中的调试模块(,)。(2)熟
3、悉电原理图的连接,以通用寄存器组部分为例。实现上,用实验4所用的简单通用寄存器组(4个寄存器+1个2-4译码器+2个4选1多路开关)设计方法,替代参考代码中的通用寄存器组部分。(3)学习和掌握控制逻辑。设计一套指令集(可在原参考代码指令集的基础上做删减,从中选取16条基本的指令),并修改控制器中指令集的译码部分。(4)执行部件,ALU的改造。可在原参考代码的基础上,改变某些运算功能的实现方式,比如加、减、增1、减1等算术运算。实现上,原参考代码采用了最少编码量的“+”、“-”号实现。可以改用通过port map语句调用系统自带的加法器,也可以进一步自己编写加法器,然后用port map语句调用
4、。(5)存储器部分的加入。原参考代码采用的带外部存储器的模式。实现上,可以在实验3的基础上,设计一个适合加到本CPU系统的存储器部分,通过与原参考代码系统连接外带存储器的数据线、控制线和地址线相连接。此部分设计中,存储器的指令置入是一个难点。可以考虑简单点的作为只读模式把指令写死在存储器中(可用于验证指令的执行);或者考虑在reset的那一拍里,实现存储器中待指令的置入。存储器模块单独调试可行后再加到系统上。(七)实验设备TEC-CA组成原理实验箱。(八)实验课承担单位:信息学院(九)总结构图(组长负责组织填写)(十)指令集(组长负责组织填写)(参考实验大纲中的示例,结合各小组自己的设计)指令
5、系统总体说明 (p9-11页)(1) 指令格式分类(按指令字长和操作数不同): 单字单操作数指令7 43 21 0 OPCODE DEST_REG 00 OPCODE OFFSET 包括:DEC,INC,SHL,SHR,JR,JRC,JRNC,JRZ,JRNZ,JRS,JRNS 单字双操作数指令7 43 21 0 OPCODE DEST_REG SOUR_REG 包括:ADD,SUB,AND,CMP,XOR,TEST,OR,MVRR,ADC,SBB,LDRR,STRR 单字无操作数指令7 43 21 0 OPCODE 00 00 包括:CLC,STC 双字单操作数指令7 43 21 0 OPC
6、ODE 00 00 ADR 包括:JMPA 双字双操作数指令7 43 21 0 OPCODE DEST_REG 00 DATA 包括:MVRD(2) 指令的分组及节拍:由于没有中断操作,本机指令的执行步骤可概括如下:读取指令:地址寄存器-指令地址,修改PC内容使其指向下一条将要执行的指令; 读内存,指令寄存器-读出的内容。分析指令执行指令:通用寄存器之间的运算或传送,可1步完成; 读写内存,通常要两步完成。根据指令的执行步骤不同,可以把全部指令分为A、B两组。其中A组指令完成的是通用寄存器之间的数据运算或传送,或其他一些特殊操作,在取指之后可一步完成,包括:ADD、SUB、AND、XOR、OR
7、、INC、DEC、CMP、ADC、JR、JRC、JRNC;B组指令完成的是一次内存读写操作,在取指之后可两步完成,包括:JMPA,LDRR,STRR,MVRD。在编码的时候以指令操作码的最高位来区分 A、B组指令,0为A组指令,1为B组指令。在控制器方面我们选用了组合逻辑控制器方案。使用节拍来标记每条指令的执行步骤。由指令而定,在我们的系统中不同的执行步骤只有5个,故使用3位节拍就足够了。000AR-PC,PC-PC+1001读写内存传送地址AR-地址读内存,IR-读出内容 B组指令 101 111A组指令011寄存器之间的数据运算或传送(3) 指令汇总表:节拍指令编码SciSSTI7I6I5
8、I4I3I2I1I0/WRREC注释000011110100000101AR-PC,PC-PC+1001001100000000110IR-MEM011ADD0000000001000000100DR-DR+SRSUB0001000001000001100DR-DR-SRAND0010000001000010100DR-DR and SRXOR0011000001000100100DR-DR xor SROR0100000001000011100DR-DR or SRINC0101010001010000100DR-DR+1DEC 0110010001010001100DR-DR-1CMP01
9、11000000000001100DR-SRADC1000100001000000100DR-DR+SR+CJR1001001110011000100PC-OFFSET+PCJRC10100011C0011000100PC-OFFSET+PCJRNC10110011/C0011000100PC-OFFSET+PC101JMPA1100011110100000101AR-PC,PC-PC+1MVRD1101011110100000101AR-PC,PC-PC+1LDRR1110001100001000111AR-SRSTRR1111001100010000111AR-DR111JMPA11000
10、01110101000100PC-MEMMVRD1101001101101000100DR-MEMLDRR1110001101101000100DR-MEMSTRR1111001100001000000MEM内存控制器从内存中读取指令-内存控制器把读取到的指令送上数据总线-CPU从数据总线上读到指令的二进制码-CPU执行指令2. 使用DebugController调试1) 将实验台背后的9针插座和PC机的一个串行口用RS232通讯电缆连接,将实验小板上的下载插座和PC机的并行口用下载电缆连接。打开实验台电源。2) 启动DebugController程序。启动程序后,程序自动扫描可用串口。程序会
11、向COM1COM4顺序发送一个测试命令,等待测试命令的会送命令,如果X号串口不可用,则会在提示信息窗口显示“COMx not found or cannot open. Check cable or hardware!”;如果x号串口可用但是测试命令没有送回,则会显示“COMx timed out, current operation aborted You must recondig COM!”;如果x号串口可用而且测试命令得到了会送,会显示“Auto scan linked TEC-CA on COMx Successfully”。3) 打开位汇编代码文件 和打开编译规则文件 。4) 点击
12、Build菜单中的Compile Code或者点击工具栏中的,将伪汇编文件编译为16进制文件。5) 将实验平台的调试模式设置为FPGA-CPU附加外部RAM运行模式(REGSEL=0,CLKSEL=1,FDSEL=1)过着单片机控制FPGA-CPU调试运行模式(REGSEL=1,CLKSEL=0,FDSEL=1)。6) 点击Build菜单中的Upload BIN或者点击工具栏中的,将16进制代码文件上传到存储器(RAM)中。传完之后在Log Window中会有提示信息。7) 在使用Quartus软件将CPU设计经编译、连接和适配后,将它下载到FPGA中,在FPGA中生成一个物理CPU。将实验平
13、台上的调试模式设置为单片机控制FPGA-CPU调试运行模式(REGSEL=1,CLKSEL=0,FDSEL=1),就可以通过DebugController对FPGA-CPU进行调试了。8) 点击Debug菜单中的Begin Debug,或者点击工具栏中的开始调试。9) 可以使用Debug(调试菜单)中的子菜单,也可以使用工具栏的,一次代表Half Cycle,One Cycle,Run To BP,Reset和End Debug。10) 特别之处,设置断点是在Debug Window相应的行上鼠标双击,取消断点也是相应的鼠标双击。由于单片机指令本身只支持单断点,所以程序中也只能设置单个断点。1
14、1) 结束调试。结束调试前如果要查看实验台上存储器的内容,请使用Download RAM(从存储器读二进制文件)命令。点击Debug菜单中的End Debug或者工具栏上的,结束Debug模式。12) 注意:在结束Debug之后,如果想重新进入Debug模式,必须手动选择串口。有改动过的或者新增的.bsf图、vhd文件内容,以及相关电原理图截图、用于说明的表格、用于说明的示意图等。(加注释,特别是在参考材料的源代码基础上改动之处,用蓝色标出)。可以部分参照参考材料的文档写法。特别注意:如果没被抽中去演示,则主要根据分工所对应的这部分设计的撰写的内容评分,因此要尽量详细地介绍你的工作。2. 控制
15、逻辑(0)是否加到最后整组的系统中 如果回答为否,可跳过第(1)和(2)问。是(1)修改后是否编译通过(指加到整个小组的系统里)是(2)修改后是否可运行(指加到整个小组的系统里)是(3)概要描述(2-3句话描述你的工作)主要是选择了16条指令并对其进行修改,并且对controller和timer的代码进行修改。(4)相关的源代码、电原理图和其它说明表格。有改动过的或者新增的.bsf图、vhd文件内容,以及相关电原理图截图、用于说明的表格、用于说明的示意图等。(加注释,特别是在参考材料的源代码基础上改动之处,用蓝色标出)。可以部分参照参考材料的文档写法。特别注意:如果没被抽中去演示,则主要根据分
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- CPU 设计 VHDL 语言 综合性 实验 报告
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内