forwarding.dit

来自「可以自由开发的MIPS仿真器模型(.exe),指令执行动画显示.通过修改grap」· DIT 代码 · 共 36 行

DIT
36
字号
class CForwardingUnit
{
	in EX_RegWrite:1
	in MEM_RegWrite:1
	in ID_ReadRegister1:5
	in ID_ReadRegister2:5
	in EX_WriteRegister:5
	in MEM_WriteRegister:5
	out ForwardA:2
	out ForwardB:2

	script
		function OnChange()
		{
			// EX hazard
			if ( EX_RegWrite.Get() && (EX_WriteRegister.Get()==ID_ReadRegister1.Get()) )
				ForwardA.Set(2);
			else if ( MEM_RegWrite.Get() && (MEM_WriteRegister.Get()==ID_ReadRegister1.Get()) )
				ForwardA.Set(1);
			else
				ForwardA.Set(0);
			
			
			if ( EX_RegWrite.Get() && (EX_WriteRegister.Get()==ID_ReadRegister2.Get()) )
				ForwardB.Set(2);
			else if ( MEM_RegWrite.Get() && (MEM_WriteRegister.Get()==ID_ReadRegister2.Get()) )
				ForwardB.Set(1);
			else
				ForwardB.Set(0);
		}
	end_script

	event ALL OnChange()
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?