MIPS单周期CPU实验报告 - 图文(2)

2019-08-31 13:23

计算机组成原理实验

上图为CPU的数据通路和必要的控制线路图,其中Ins.Mem为指令存储器,Data.Mem为数据存储器。访问存储器时,先给出内存地址,然后由读或写信号控制操作。对于寄存器组,先给出寄存器地址,读操作时,输出端就直接输出相应数据;而在写操作时,在 WE使能信号为1,在时钟边沿触发将数据写入寄存器。 4.控制信号:

控制信号的作用

控制信号名 Reset PCWre ALUSrcA ALUSrcB 状态“0” 初始化PC为0 PC不更改,相关指令:halt 状态“1” PC接收新地址 PC更改,相关指令:除指令halt外 来自寄存器堆data1输出,相关指来自移位数sa,同时,进行令:add、sub、addi、or、and、(zero-extend)sa,即 {{27{0}},sa},相ori、beq、bne、bgtz、slt、sw、lw 关指令:sll 来自寄存器堆data2输出,相关指来自sign或zero扩展的立即数,相关令:add、sub、or、and、sll、slt、指令:addi、ori、sw、lw beq、bne、bgtz 来自ALU运算结果的输出,相关指来自数据存储器(Data MEM)的输令:add、addi、sub、ori、or、and、出,相关指令:lw slt、sll 无写寄存器组寄存器,相关指令: beq、bne、bgtz、sw、halt、j 寄存器组写使能,相关指令:add、addi、sub、ori、or、and、slt、sll、lw DBDataSrc RegWre 计算机组成原理实验

InsMemRW /RD /WR RegDst 写指令存储器 读数据存储器,相关指令:lw 写数据存储器,相关指令:sw 写寄存器组寄存器的地址,来自rt字段,相关指令:addi、ori、lw 读指令存储器(Ins. Data) 输出高阻态 无操作 写寄存器组寄存器的地址,来自rd字段,相关指令:add、sub、and、or、slt、sll ExtSel (zero-extend)immediate(0扩展),(sign-extend)immediate(符号扩展) 相关指令:ori ,相关指令:addi、sw、lw、bne、bne、bgtz 00:pc<-pc+4,相关指令:add、addi、sub、or、ori、and、slt、 sll、sw、lw、beq(zero=0)、bne(zero=1)、bgtz(sign=1,或zero=1); 01:pc<-pc+4+(sign-extend)immediate,相关指令:beq(zero=1)、 bne(zero=0)、bgtz(sign=0,zero=0); 10:pc<-{(pc+4)[31..28],addr[27..2],0,0},相关指令:j; 11:未用 ALU 8种运算功能选择(000-111),看功能表 ALU功能表

PCSrc[1..0] ALUOp[2..0] ALUOp[2..0] 000 001 010 011 100 101 Y = A + B Y = A – B Y = B<

Instruction Memory:指令存储器, address,指令存储器地址输入端口

DataIn,指令存储器数据输入端口(指令代码输入端口) DataOut,指令存储器数据输出端口(指令代码输出端口) InsMemRW,指令存储器读写控制信号,为0写,为1读 Data Memory:数据存储器,

address,数据存储器地址输入端口 DataOut,数据存储器数据输出端口

计算机组成原理实验

/RD,数据存储器读控制信号,为0读 /WR,数据存储器写控制信号,为0写 Register File:寄存器组

Read Reg1,rs寄存器地址输入端口 Read Reg2,rt寄存器地址输入端口

Write Reg,将数据写入的寄存器端口,其地址来源rt或rd字段 Write Data,写入寄存器的数据输入端口 Read Data1,rs寄存器数据输出端口 Read Data2,rt寄存器数据输出端口

WE,写使能信号,为1时,在时钟边沿触发写入 RST,寄存器清零信号,为0时寄存器清零 ALU: 算术逻辑单元

result,ALU运算结果

zero,运算结果标志,结果为0,则zero=1;否则zero=0

sign,运算结果标志,结果最高位为0,则sign=0,正数;否则,sign=1,负数

四. 实验器材

电脑一台,Xilinx Vivado 软件一套,Basys3板一块。

五. 实验过程与结果 1.各个指令对应的控制信号

指令 Add Addi Sub Ori And Or Sll Slt Sw Lw Beq Bne PCWre ALUSrcA ALUSrcB DBDataSrc RegWre InsMemRW RD WR RegDst ExtSel 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 X 1 X X 1 1 1 1 1 1 1 1 0 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 0 1 0 1 1 1 1 X 0 X X X 1 X 0 X X X X 1 1 1 1 计算机组成原理实验

Bgtz J Halt 1 1 0

0 X X 0 X X X X X 0 0 0 1 1 1 1 1 1 1 1 1 X X X 1 X X 控制信号 Add Addi Sub Ori And Or Sll Slt Sw Lw Beq Bne Bgtz J Halt ALUOp 000 000 001 011 100 011 010 110 000 000 001 001 101 010 XXX 除异或运算(111)外,ALU所有功能均被使用。 PCSrc 00 01 10 指令 add、addi、sub、or、ori、and、slt、sll、sw、lw、beq(zero=0)、bne(zero=1)、bgtz(sign=1,或zero=1) beq(zero=1)、bne(zero=0)、bgtz(sign=0,zero=0) j 2.主要模块代码及仿真

(1)控制单元(control unit) Verilog代码:

计算机组成原理实验

1. module controlUnit( 2. input [5:0] opcode, 3. input zero, 4. input sign, 5. output reg PCWre, 6. output reg ALUSrcA, 7. output reg ALUSrcB, 8. output reg DBDataSrc, 9. output reg RegWre, 10. output reg InsMemRW, 11. output reg RD, 12. output reg WR, 13. output reg RegDst, 14. output reg ExtSel, 15. output reg [1:0] PCSrc, 16. output reg [2:0] ALUOp 17. );

18. initial begin 19. RD = 1; 20. WR = 1; 21. RegWre = 0; 22. InsMemRW = 0; 23. end

24. always@ (opcode) begin 25. case(opcode)

26. 6'b000000:begin // add 27. PCWre = 1; 28. ALUSrcA = 0; 29. ALUSrcB = 0; 30. DBDataSrc = 0; 31. RegWre = 1; 32. InsMemRW = 1; 33. RD = 1; 34. WR = 1; 35. RegDst = 1; 36. ALUOp = 3'b000; 37. end

38. 6'b000001:begin //addi 39. PCWre = 1; 40. ALUSrcA = 0; 41. ALUSrcB = 1; 42. DBDataSrc = 0; 43. RegWre = 1; 44. InsMemRW = 1;


MIPS单周期CPU实验报告 - 图文(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:北师大版六年级数学下册第三单元教案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: