最终目标:设计一个单周期MIPS CPU 在指令周期(即时钟周期)clk上跳沿,执行取指令操作,在clk下跳沿更新PC值。 复位信号rst:=1时,PC清零,即指定MIPS CPU从0号主存开始执行程序。 生成只读的指令存储器时,使用Memory IP核,同上个实验,但是选择single port ROM;
实验代码:
module Inst(
input clk,
input rst,
output reg [31:0]PC,
output [31:0]PC_new,
output [31:0]Inst_code,
output [5:0]opcode,
output [5:0]func,
output [4:0]rs,
output [4:0]rt,
output [4:0]rd,
output [4:0]shamt,
output [15:0]imm,
output [15:0]address
);
initial PC = 32'h00000000;
assign PC_new = PC + 4;
ROM_A ROM1 (
.clka(clk), // input clka
.addra(PC[7:2]), // input [5 : 0] addra
.douta(Inst_code) // output [31