计算机设计与实践-MIPS基本指令.doc_第1页
计算机设计与实践-MIPS基本指令.doc_第2页
计算机设计与实践-MIPS基本指令.doc_第3页
计算机设计与实践-MIPS基本指令.doc_第4页
计算机设计与实践-MIPS基本指令.doc_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

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

文档简介

MIPS基本指令和寻址方式:MIPS是典型的RISC处理器,采用32位定长指令字,操作码字段也是固定长度,没有专门的寻址方式字段,由指令格式确定各操作数的寻址方式。MIPS指令格式一般有三种格式: R-型指令格式 I-型指令格式 J-型指令格式OP: 操作码rs: 第一个源操作数寄存器rt: 第二个源操作数寄存器(单目原数据)rd: 结果寄存器shamt:移位指令的位移量func: 指令的具体操作类型 特点:R-型指令是RR型指令,其操作码OP字段是特定的“000000”,具体操作类型由func字段给定。例如:func=“100000”时,表示“加法”运算。Rrd Rrs + Rrt特点:I-型指令是立即数型指令双目运算: Rrt Rrs(OP)SignExt(imm16) Load指令:Addr Rrs + SignExt(imm16) 计算数据地址 (立即数要进行符号扩展)Rrt MAddr 从存储器中取出数据,装入到寄存器中Store指令:Addr Rrs + SignExt(imm16) MAddr Rrt 特点:J-型指令主要是无条件跳转指令,将当前PC的高4位拼上26位立即数,后补两个“0”,作为跳转目标地址。R型指令:定点运算: add / addu, sub / subu, sra, mult/multu, div/divu逻辑运算: and / or / nor, sll / srl比较分支: beq / bne / slt / sltu 跳转指令: jrI型指令: 定点运算: addi / addiu 逻辑运算: andi / ori 比较分支: slti / sltiu 数据传送: lw / sw/ lhu / sh / lbu / sb / lui J型指令: j / jal设计模块划分,教学安排1、 MIPS格式指令系统设计2、 指令存储器设计3、 寄存器堆设计4、 ALU设计基本算术、逻辑单元的设计 32位超前进位加法器的设计 32位桶式移位寄存器的设计5、 取指令部件的设计6、 立即数处理单元设计7、 单周期处理器设计R型指令的数据通路设计I型指令的数据通路设计Load/Store指令的数据通路设计分支指令/转移指令的数据通路设计 综合12条指令的完整数据通路设计8、 ALU控制单元设计9、 主控制单元的设计10、 单周期处理器总体验证11、 异常和中断处理及其电路实现12、 带有异常和中断处理功能的处理器的设计设计示例1:指令存储器设计1、 指令存储器模块定义:指令存储器用于存放CPU运算的程序指令和数据等,采用单端口存储器设计,设计最大为64个存储单元,每个存储单元数据宽度为32bit。下图为指令存储器的模块框图。图1 模块框图表1: 存储器接口信号说明表序号接口信号名称方向(I/O)说明备注1ExtMem_CLKI存储器工作时钟,频率为50Mhz2ExtMem_CSnI存储器片选信号,低有效3ExtMem_Adr 5:0I存储器地址线最大64个单元4ExtMem_WRnI存储器写信号,低有效5ExtMem_RDnI存储器读信号,低有效6ExtMem_Din 31:0I存储器输入数据线7ExtMem_Dout 31:0O存储器输出数据线8Vcc电源9Gnd地线图2 存储器接口读时序框图图3 存储器接口写时序框图图4 存储器接口读写时序框图2、 设计电路源代码Module ExtMem ( input ExtMem_CLK, input ExtMem_CS, input 5:0 ExtMem_Adr, input ExtMem_WR, input ExtMem_RD, input 31:0 ExtMem_Din, output 31:0 ExtMem_Dout );reg 31:0 Memory 0: 63 ;/-存储器写操作always ( posedge ExtMem ) begin if (ExtMem_CS & ExtMem_WR ) MemoryExtMem_Adr= ExtMem_Din; end /-存储器读操作方式1always ( posedge ExtMem ) begin if (ExtMem_CS & ExtMem_RD ) ExtMem_Dout= MemoryExtMem_Adr; end /-存储器读操作方式2always ( * ) begin if (ExtMem_CS & ExtMem_RD ) ExtMem_Dout= MemoryExtMem_Adr; end endmodule问题讨论:/-方式1与方式2的区别?/- altera公司的FPGA芯片,使用其内部存储器IP必须采用方式1设计/- xilinx公司的FPGA芯片,使用其内部存储器IP可以采用方式1或方式2设计3、 指令存储器初始化值设计在仿真环境下,在设计电路中添加如下初始化存储器值电路:initial begin #0 Memory6h0=32h10; Memory1=32h11; Memory2=32h12; Memory63=32h63; end 问题讨论:在硬件设计实现方式下,如何给存储器付初值?4、 设计电路仿真所设计的指令存储器模块电路,采用Active-HDL 8.1ver仿真器工具进行了设计仿真验证,验证结果表明存储器功能以及接口时序完全正确,如下是仿真验证的波形图。附件1是仿真激励源代码。图5 存储器电路读写仿真波形图5、 存在问题及解决方式方法,设计讨论等XXXXXXXXXYYYYZZZZZZZZZZZ附件1:/-/Desc: /-/timescale 10ps/10psmodule ExtMem_testbench ( );/-测试信号定义reg fpga_clk, mem_cs, mem_wr, men_rd;reg 5:0 mem_addr;reg 31:0 mem_din;wire 31:0 mem_dout;/-存储器模块实例化调用 ExtMem mem_inst( .ExtMem_CLK(fpga_clk), .ExtMem_CS(mem_cs), .ExtMem_Adr(mem_addr), .ExtMem_WR(mem_wr), .ExtMem_RD(men_rd), .ExtMem_Din(mem_din), .ExtMem_Dout(mem_dout) );/-always #50 fpga_clk= fpga_clk;initial begin #0 fpga_clk=1h0; mem_cs=1h1; mem_wr=1h1; men_rd=1h1; mem_addr=6h00; mem_din=32h00; end initial begin #510 mem_cs=1h0; mem_wr=1h0; mem_addr=6h01; mem_din=32h01;#100 mem_addr=6h02; mem_din=32h02;#100 mem_cs=1h1; mem_wr=1h1; #100 mem_addr=6h03; mem_din=32h03;#100 mem_cs=1h0; mem_wr=1h0; #100 mem_cs=1h1; mem_wr=1h1; mem_addr=6h04; mem_din=32h04;#200 mem_cs=1h0; men_rd=1h0; mem_addr=6h02; mem_din=3

温馨提示

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

评论

0/150

提交评论