mips_tb.v模块,用以调用mips.v模块并实现指令的读入与存储器和寄存器的清零
其余代码均在相应专栏内
module mips_tb();
reg clk;//时钟信号
reg rst;//复位信号
mips U_MIPS(.clk(clk),.rst(rst));//实例化MIPS的主控模块
initial
begin
$readmemh("Test_Signal.txt",U_MIPS.U_IM.imem);//从文本中读取指令,存进指令存储器
$monitor("PC=0x%8X,IMout=0x%8X,Opcode=%6b,funct=%6b,rs=%5b,rt=%5b,rd=%5b,shamt=%5b",U_MIPS.U_PC.PC,U_MIPS.ImOut,U_MIPS.op,U_MIPS.funct,U_MIPS.rs,U_MIPS.rt,U_MIPS.rd,U_MIPS.shamt); //展示各个字段信息
clk = 1 ;//时钟信号有效
rst = 0 ;//清零信号无效
#5 ;
rst = 1 ;//清零信号有效,清零
#20 ;
rst = 0 ;//清零信号无效,开始运行
end
always
#(50) clk = ~clk; //每50时钟间隔翻转时钟信号,用以催动各个部件活动
endmodule