实验五处理器数据通路实验._第1页
实验五处理器数据通路实验._第2页
实验五处理器数据通路实验._第3页
实验五处理器数据通路实验._第4页
实验五处理器数据通路实验._第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实验五 数据通路的设计和验证一、 实验目的1、 通过数据通路的的设计和验证,掌握CPU数据通路的基本原理和控制信号的顺序。2、 了解QUARTUS II硬件描述语言和原理图混合输入设计的过程。3、 掌握Simplest CPU的数据通路的控制方法,为控制器实验奠定基础。二、 实验原理如图1所示是本次实验所设计的Simplest CPU的数据通路和存储器部分的原理框图,该处理器支持的指令集如表1所示,只有4条指令。该CPU的寄存器如表2所示,数据通路的控制信号如表2所示。表1 SimplestCPU的指令集名称实现的操作功能LD addrAC MEMAR取存储器地址addr的数据到累加器ACST

2、 addrMEMAR AC存累加器AC数据到地址addr的存储器ADD addrAC (AC)+MEMAR累加器AC加上存储器地址addr数据JZ addr若AC为0则PC addr,否则,顺序执行下条指令累加器为0则从地址addr取指令执行该处理器的存储器为64单元,编址063,通过地址总线Addr5.0进行选择;每个单元数据宽度8位,分别通过Dout7.0和Din7.0进行数据的读写,存储器的读、写控制信号分别为MRD和MWR。表2 寄存器介绍寄存器中文名称宽度功能PC程序计数器6位存放CPU要执行的下一条指令的存储器地址AR地址寄存器6位存放存储器的地址,为访问存储器提供地址信息DR数据

3、寄存器8位加法指令中提供第二个数据。IR指令寄存器2位存放取回的指令的2位操作码AC累加器8位CPU的主要寄存器,存放源数据和结果图1 实验使用的数据通路和存储器原理框图表3 数据通路控制信号信号中文名称宽度功能mrd存储器读信号1位mrd=1:存储器在Dout7.0输出数据mwr存储器写信号1位mwr=1:将Din7.0的数据写入存储器PCloadPC写信号1位PCload=1:内部总线数据写入PCPCincPC+1信号1位PCinc=1:PC寄存器的值自增1,即:PC<-(PC)+1PCbusPC读信号1位PCbus=1:PC值输出到内部总线,即:内部总线<-(PC)ARloa

4、dAR写信号1位ARload=1:内部总线数据写入ARARbusAR读信号1位ARbus=1:AR值输出到内部总线,即:内部总线<-(AR)DRloadDR写信号1位DRload=1:内部总线数据写入DRDRbusDR读信号1位DRbus=1:DR值输出到内部总线,即:内部总线<-(DR)IRloadIR写信号1位IRload=1:内部总线数据写入IRACloadAC写信号1位ARload=1:内部总线数据写入ACACbusAC读信号1位ACbus=1:AC值输出到内部总线,即:内部总线<-(AC)ALUselALU功能选择1位ALUsel=0:内部总线数据 -> AC

5、ALUsel=1:(AC)+内部总线数据 -> AC三、 实验内容本实验由多个设计文件构成,并且顶层设计采用原理图输入方式,如图2所示是本次实验的顶层设计原理图。图中的各个模块采用verilog硬件描述语言设计,对应的模块分别是时钟分频器ClockInput、数据通路datapath、存储器mem、显示输出display和与PC机的输入输出调试接口PC_InOut,对应的设计文件分别是ClockInput.v、datapath.v、mem.v、display.v和PC_InOut.v,如表4所示。表4 本实验所用的设计文件模块文件功能顶层模块EXP5.bdf原理图设计的顶层模块时钟分频器

6、ClockInput.v将外部输入的1MHz的时钟信号分频为需要的1Hz时钟信号数据通路datapath.vCPU的数据通路存储器mem.v64字节的存储器的设计显示器display.v显示数据通路输出的数据PC调试输入输出PC_InOut.vPC端发出的控制信号和送到PC的数据通路输出的数据图2 本次实验的顶层设计原理图四、 实验步骤(请参考实验演示文档)1、 打开QUARTUSII软件,新建一个工程。2、 建完工程之后,新建一个原理图文件,并保存为EXP5.bdf。3、 再新建一个Verilog File,打开编辑器。4、 按照实验原理和自己的想法,在编辑窗口编写Verilog代码,请参考

7、实验所提供的实验代码文件。5、 编写完Verilog代码后,保存起来。6、 对自己编写的Verilog代码生成符号文件“Create Symbol File from current file”,对程序的错误进行修改。7、 依次重复过程2、3、4、5依次完成表4所示的5个verilog文件的编写和符号文件生成。8、 切换到原理图文件,按图2所示的原理图选择模块并进行连接,并保存设计。9、 编译设计无误后,数码管与FPGA的管脚连接参照表5进行引脚分配。分配完成后,再进行全编译一次,以使管脚分配生效。表5 端口管脚分配表端口名使用模块信号对应FPGA管脚说 明clk数字信号源J4时钟为1MHzI

8、R1LED指示灯D1A9指令的操作码字段IR0LED指示灯D2B9zeroLED指示灯D3A10结果0的标志位data_out7LED指示灯D5A11从存储器读取出的数据以二进制形式显示在这8个指示灯上data_out6LED指示灯D6B11data_out5LED指示灯D7F7data_out4LED指示灯D8F6data_out3LED指示灯D9E10data_out2LED指示灯D10E8data_out1LED指示灯D11F12data_out0LED指示灯D12E11seg0数码管A段H3以十六进制分别显示PC、AR、DR和AC的值seg1数码管B段H4seg2数码管C段K5seg3

9、数码管D段L5seg4数码管E段K4seg5数码管F段L3seg6数码管G段L4seg7数码管dp段M3sel0位选DEL0G4sel1位选DEL1G3sel2位选DEL2F410、 用下载电缆通过JTAG口将对应的sof文件加载到FPGA中。11、 在PC机打开“SimplestCPU数据通路控制面板”软件,并连接实验箱。图3 实验使用的控制面板软件12、 在连接成功之后,通过操作控制面板上对应的控制信号,观察实验结果是否与自己的数据通路的控制思想一致。五、 实验现象与结果该CPU的取指令和执行指令的过程如图4所示,以控制器从存储器取指令(fetch)为例,取指令过程依次包含3个操作步骤,分

10、别用fetch1、fetch2和fetch3来表示,如表6所示。在PC端的SimplestCPU数据通路控制面板软件界面上,在发出步骤fetch1所示的控制信号后,可以在实验箱和软件界面上观察到指示灯和AR寄存器的值是3DH。这是存放在程序存储器地址0的指令LD 3DH所对应的指令的机器指令编码。表6 取指令的操作顺序和控制信号(说明:表格中绿底色的表示寄存器的写控制,相继的灰底色的表示该过程由软件自动完成,不需要手动操作,PC端的软件该信号对应的按钮按下后延迟弹起,发出对应的控制信号)名称实现的操作和功能操作顺序控制信号fetch1AR PC1PC_bus =12AR_load =13AR_

11、load =04PC_bus =0fetch2IR MEMAR7:6DR MEMAR5mrd =16IR_load =17IR_load =08DR_load =19DR_load =010mrd =0Fetch3PC PC+1AR DR5:011PC_inc =112PC_inc =013DR_bus =114AR_load =115AR_load =016DR_bus =0六、 实验报告1、 该处理器的指令集有4条指令的控制流程如图4所示。请参考表6,写出LD指令、ST指令和JZ指令的操作过程和控制信号的赋值,填入表7表10中。并依据表7表10通过PC端的实验软件进行验证;图4 Simpl

12、estCPU的指令流程图复位AR<-(PC)DR<-MEM(AR)IR<-MEM(AR)7:6PC<-(PC)+1AR<-DR5:0AC<-MEM(AR)MEM(AR)<- AC DR<-MEM(AR)AC<-(AC)+(DR)PC<-(AR)IR=00LD指令IR=01ST指令IR=10ADD指令IR=00JZ指令zero=10zero=00取指令执行指令Fetch1Fetch2Fetch3LD1ST1ADD1ADD2JZ1Reset表7 LD指令控制流程指令指令分解实现的操作和功能顺序控制信号LD addrLD1AC MEMAR1

13、mrd = 12ACload = 13ACload = 04mrd = 0表8 ST指令控制流程指令指令分解实现的操作和功能顺序控制信号ST addrST1MEMAR AC1ACbus = 12mwr = 13mwr = 04ACbus = 0表9 ADD指令控制流程指令指令分解实现的操作和功能顺序控制信号ADD addrADD1DR MEMAR1mrd = 12DRload = 13Drload = 04mrd = 0ADD2AC (AC)+(DR)5DRbus = 16ALUsel = 17ACload = 18Acload = 09ALUsel = 010DRbus = 0表10 JZ指

14、令控制流程指令指令分解实现的操作和功能if(zero=1)顺序控制信号JZ addrJZ1 if(AC=0) PC AR1ARbus=12PCload=13PCload=04ARbus=02、 请依次通过操作控制信号读出存储器地址09这个10个单元的内容。3、 实验原理、设计过程、编译和分析结果、硬件测试结果记录下来。说明:本次实验存储器中存放了等差数列1+2+3+22的数据求和的程序,为方便实验,将该程序列在下面。/计算1+2+.+22=?,存储器的3c,3d,3e单元分别存放-1,22和结果result,3f单元存放结束标志0 RAM8'h00 <= 8'h3d; /

15、LD 3d 循环次数到-> AC RAM8'h01 <= 8'hc9 ; /JZ 09 为0则结束 RAM8'h02 <= 8'hbe; /ADD 3e result+ ? -> AC RAM8'h03 <= 8'h7e; /ST 3e AC -> ram3e RAM8'h04 <= 8'h3d; /LD 3d 循环次数->AC RAM8'h05 <= 8'hbc; /ADD 3c 循环次数-1->AC RAM8'h06 <= 8'h7d; /ST 3d AC -> ram3d保存循环次数 RAM8'h07 <= 8'h3f; /LD 3f 0 -> AC RAM8'h08 <= 8'hc0; /JZ 00 loop RAM8'h09 <= 8'h3f; /LD 3f 3f -> AC,ie,0->AC RAM

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论