📄 mem_wb.h
字号:
#ifndef MEM_WB_H
#define MEM_WB_H
#include "STDAFX.h"
SC_MODULE(MEM_WB)
{
sc_in_clk clk;
sc_in<sc_uint<32> > MEM_WB_instr_in;
sc_in<sc_uint<32> > MEM_WB_ALU_result_in;
sc_in<sc_uint<32> > MEM_WB_Memdata_in;
sc_out<bool> MEM_WB_isRegWrite;
sc_out<sc_uint<5> > MEM_WB_Reg_address;
sc_out<sc_uint<32> > MEM_WB_Reg_data;
void entry()
{
bool isregwrite=false;
unsigned int regaddress=0,regdata=0;
unsigned int op=MEM_WB_instr_in.read().range(31,26).to_uint();
if (op==0)
{
isregwrite=true;
regaddress=MEM_WB_instr_in.read().range(15,11).to_uint();
regdata=MEM_WB_ALU_result_in.read();
}
if (op==8 || op==12 || op==13)
{
isregwrite=true;
regaddress=MEM_WB_instr_in.read().range(20,16).to_uint();
regdata=MEM_WB_ALU_result_in.read();
}
if (op==35)
{
isregwrite=true;
regaddress=MEM_WB_instr_in.read().range(20,16).to_uint();
regdata=MEM_WB_Memdata_in.read();
}
if (sc_simulation_time()==50)
{
cout<<"isregwrite"<<isregwrite<<endl;
}
MEM_WB_isRegWrite.write(isregwrite);
MEM_WB_Reg_address.write(regaddress);
MEM_WB_Reg_data.write(regdata);
}
SC_CTOR(MEM_WB)
{
SC_METHOD(entry);
sensitive_pos<<clk;
dont_initialize();
}
};
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -