计算机设计与实践实验报告.docx
洛需演/家人季计算机设计与实践实验报告给定指令系统设计一一CPU院系:计算机科学与技术名*学号:班级:目录实验目的4实验环境5设计思想5CPU接口信号定义5指令格式设计6RISC处理器设计格式6微操作的定义9节拍的划分9处理器结构设计框图及功能描述10各模块结构设计框图及功能描述12时钟模块122取指模块133运算模块144访存模块155回写模块166访存控制模块18进度安排20实验各模块的设计及仿真20时钟模块20产生节拍的代码:20仿真波形:24取指模块24代码:24仿真波形:29ALU运算模块30代码:30仿真波形:38访存模块39代码:39仿真波形:43回写模块43代码:43仿真波形:51访存控制模块52代码:52仿真波形:59cpu元件例化61代码:61仿真波形:73UCF文件:76总体测试结果及说明81测试指令序列81设计、调试、下载中遇到问题及解决方案821、设计中遇到的问题及解决方案822、调试中遇到的问题及解决方案833、下载中遇到的问题及解决方案83实验总结83实验目的1. 掌握XilinxISE集成开发环境和ModeSim仿真工具的使用方法2. 掌握VHDL语言3. 掌握FPGA编程方法及硬件调试手段4. 深刻理解处理器结构和计算机系统的整体工作原理实验环境XilinxISE集成开发环境、MOdeSim或ISim仿真工具SD2100数字逻辑设计实验平台设计思想CPU接口信号定义信号名位数方向来源/去向意义RST1I处理器板高电平复位elk1I处理器板系统时钟nMREQ10主存储器存储器片选nrd10主存储器存储器读nwr10主存储器存储器写nbhe10主存储器高位字节访问允许nble10主存储器低位字节访问允许abus160主存储器地址总线dbus16I/O主存储器数据总线timeout40FPGA-二极管节拍显示nirout10FPGA-SOS1指令显示ndbus160FPGA-S3S4数据总线内容显示nabus160FPGA-S5S2地址总线内容显示ncyout10FPGA-AO进位标志位显示nbheout10FPGA-A5高位字节访问允许显示nbleout10FPGA-A4低位字节访问允许显示nmreqout10FPGA-A7存储器片选显示nrdout10FPGA-A6存储器读显示nwrout10FPGA-A3存储器写显示k8IFPGA-KO控制使其显示存放器npcout40FPGA-B4-B7显示PC改变指令格式设计RISC处理器设计格式1)指令系统中指定所有的指令都是二进制指令2)通用存放器的数量为8,需要3位地址与之对应3)访存的形式地址为8位4)定义指令的高5位表示操作码存放器-存放器型指令5353OPADlAD2其他指令类型538OPADlAD2实验中指令设计JMPX(R"X->PC)OOOOOOOOXJZRiX(ifRi=OthenPC+R力/X÷PC)OOOlORiXSUBRi7RjRi-Rj->RiOOlOORiOOOOORjADDRi,RjRi+Rj->RiOOllORiOOOOORjMVIRi,XX->RiOlOOORiXMOVRi,RjRj->RiOlOlORlOOOOORjSTARi,XRi->R/XOllOORiXLDARi7XR“X->RiOHIORiXSET1cy<-l100OOSETOcy<-0100lO微操作的定义指令名称助记符二进制操作码无条件跳转JMP00000条件跳转JZ00010减法操作SUB00100加法操作ADD00110立即数传送MVI01000存放器传送MOV01010存数操作STA01100取数操作LDAOlllO进位置工SETl10000进位置OSETO10010节拍的划分划分4个节拍节拍对应操作TO取指操作Tl运算ALUT2访存操作T3回写操作处理器结构设计框图及功能描述Cpu总体设计图Cuodatepcoutl5:0)mupdatealouout(7:0)RtemnADDRPCoUTlM(15:。)LMIR(15:0)IRin(15:0)addr(15:0)pcnewpcupdateRtempin(7:0)pcnewtopcABus(15:0)mreq访存控制DBus(15:0)WR主存储器功能:设计的CPU是一个简单的RISC处理器,该处理器是在给定的指令集下构建,支持以上的十条指令。主存在一个时钟周期内完成一次存取操作,而且和CPU同步工作。能根据自己设计的指令完成以上的操作。并将其局部显示在SD2100数字逻辑设计实验平台各模块结构设计框图及功能描述时钟模块COunt4CIkF、t(3:0)rstSZAcount4信号接口定义:信号名位数方向来源/去向意义elk1I系统时钟外接系统时钟rst1I系统复位外接系统复位t40产生节拍节拍控制各个模块模块功能描述:时钟模块是一个四节拍的计数器,负责对各个模块输送节拍,以此来控制各个节拍协调工作。CIk产生脉冲,t会循环改变t的值,每次都只有一个1,到达节拍的效果。当复位信号有效,才会都变成02)取指模块GetIRGetIR信号接口定义:信号名位数方向来源/去向意义TO1I时钟模块第一个节拍取指Rst1I系统复位系统复位Pcin16I访存控制回写的PC送给PCRupdate1I回写模块回写模块控制pc更新控制Pcout160回写模块Pc送往同写模块Pcout_m160访存控制Pc送往访存控制Irin16I访存控制访存控制取出的指令送取指模块Rout1O访存控制取指的读信号送完访存控制irout16O运算模块指令输出便其他模块使用模块功能描述:to节拍控制取指模块工作。Rst复位pc,1到初始地址。Rupdate负责PC更新的值送到pc,形成新的地址。取指模块主要功能是送地址给访存控制,取出指令到R3)运算模块aluIRiMI5:0)addn(15:0)Huout(ZO)Rdata(TiO)CupdatecyinMUPdateRupdatep(15:0)BgPOUtO(7:0)Rejout1(7:0)BgJOUt2(7:0)BgPoUt3(7:0)Rejout4(7:0)Rejout5(7:0)Rejout6(7:0)£gjout7(7:0)CyOUtalu信号接口定义:信号名位数方向来源/去向意义Rupdate1I回写模块回写数据控制信号Mupdate1I回写模块Mvi/mov回写控制Cupdate1I回写模块进位回写控制Rdata8I回写模块回写的数据Tl1I时钟模块节拍控制Cyin1I回写模块进位输入Cyout10进位送回写进位输出至回写Irin16I指令输入指令输入aluAluout80送回写/访存控制运算等结果输出pcjmp160跳转指令至PC跳转指令送到取指的pcAddr160形成地址送访存指令形成地址送访存控制RegoutO-Regout780存放器输出显示存放器引出到cpu,显示存放器功能描述:tl节拍控制alu,在alu中执行各条指令。根据IRin指令的操作码,执行指令,结果从aluout,CyoUt,addr送出。回写的时候,Rupdate控制回写数据送入,cupdate控制进位回写,Mupdate控制mov/mvi的回写数据。其中pcjmp是直接跳转的地址送往pc。其中显示存放器,将RegoutO-Regout7引出到cpu4)访存模块MemoryMemory信号接口定义:信号名位数方向来源/去向意义T21I时钟模块节拍控制访存模块Irin16I取指ir输出指令输入,发读写信号Rtempin8I访存控制存储器中取出的数输入Rtempout80回写模块暂存的数送回写Wout10送访存控制发写信号rout10送访存控制发读信号功能描述:t2控制访存模块,主要是取数的时候,取出的数暂存在访存模块,然后通过回写送到对应的存放器5)回写模块WriteBackWriteBack信号接口定义:信号名位数方向来源/去向意义T31I时钟模块节拍控制回写Irin16I取指模块IR输出指令上操作码给出对应控制Pcin16I取指模块Pc值输入Pcjmp16I运算模块JmP跳转地址回写Pcout160送取指模块回写新PC回写Rupdate10送运算模块回写控制回写运算、取数数据控制Mupdate10送运算模块回写控制HI写mov/mvi数据控制Pcupdate10送取指模块回写控制Pc回写控制Cupdate10送运算模块回写控制进位回写控制Rtempin8I访存模块取出的数送回写Aluout8I运算模块运算等结果送回写Cyin1I运算模块进位结果送回写cyout10送运算模块回写进位结果回写至运算模块Rdataout80送运算模块回写数据回写至运算模块功能描述:t3节拍控制回写模块的工作。回写模块主要是将各