ex_mem.h

来自「SystemC 实现 MIPS 处理器 源代码」· C头文件 代码 · 共 59 行

H
59
字号
#ifndef EX_MEM_H
#define EX_MEM_H

#include "STDAFX.h"

SC_MODULE(EX_MEM)
{
	sc_in_clk clk;

	sc_in<sc_uint<32> > EX_MEM_instr_in;
	sc_in<sc_uint<32> > EX_MEM_ALU_result_in;
	sc_in<sc_uint<32> > EX_MEM_regdata2_in;

	sc_out<sc_uint<32> > EX_MEM_instr_out;
	sc_out<sc_uint<32> > EX_MEM_ALU_result_out;
	sc_out<bool> EX_MEM_MemRead,EX_MEM_MemWrite;
	sc_out<sc_uint<32> > EX_MEM_regdata2_out;

	void entry()
	{
		EX_MEM_instr_out.write(EX_MEM_instr_in.read());
		EX_MEM_regdata2_out.write(EX_MEM_regdata2_in.read());
		EX_MEM_ALU_result_out.write(EX_MEM_ALU_result_in.read());

		bool memread,memwrite;
		memread=false;
		memwrite=false;

		unsigned op=EX_MEM_instr_in.read().range(31,26).to_uint();
		switch (op)
		{
		case 35:
			memread=true;
			break;
		case 43:
			memwrite=true;
			break;
		}
		EX_MEM_MemRead.write(memread);
		EX_MEM_MemWrite.write(memwrite);


		fout<<"Current Time: ";
		fout<<sc_simulation_time()<<endl;
		fout<<"EX_MEM:"<<endl;
		fout<<"Instr: ";PrintInstr(EX_MEM_instr_in.read(),fout);
		fout<<"-----------------------"<<endl;
	}

	SC_CTOR(EX_MEM)
	{
		SC_METHOD(entry);
		sensitive_pos<<clk;
		dont_initialize();
	}
};


#endif

⌨️ 快捷键说明

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