⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 registerfile.h.bak

📁 ppc750 system design simulator using system c
💻 BAK
字号:
/***************************************************************************                          RegisterFile.h  -  Banc de registre                             -------------------    begin                : Thu Apr 5 2001    copyright            : (C) 2001 Universite Paris Sud and CEA    author               : Gilles Mouchard    email                : gilles.mouchard@lri.fr, gilles.mouchard@.cea.fr ***************************************************************************/#ifndef __REGISTERFILE_H__#define __REGISTERFILE_H__#include <systemc.h>#include <common.h>SC_MODULE(RegisterFile){	sc_in<bool> inClock;	/* General Purpose Registers */	UInt32 registers[nRegisters];	UInt32 renames[nRenameBuffers];		/* Floating Point Registers */	UInt64 floatingPointRegisters[nFloatingPointRegisters];	UInt64 floatingPointRenames[nFloatingPointRenameBuffers];		sc_in<bool> inWriteRename[nWriteRenamePorts];	sc_in<Dummy<bool> > inWriteBack[nWriteBackPorts];		sc_in<regnum_t> inReadRegisterNumber[nReadRegisterPorts];	sc_out<UInt32> outReadRegisterData[nReadRegisterPorts];		sc_in<tag_t> inReadRenameNumber[nReadRenamePorts];	sc_out<UInt32> outReadRenameData[nReadRenamePorts];		sc_in<tag_t> inWriteRenameNumber[nWriteRenamePorts];	sc_in<UInt32> inWriteRenameData[nWriteRenamePorts];		sc_in<regnum_t> inWriteBackRegisterNumber[nWriteBackPorts];	sc_in<tag_t> inWriteBackRenameNumber[nWriteBackPorts];		sc_in<bool> inWriteFloatingPointRename[nWriteFloatingPointRenamePorts];	sc_in<Dummy<bool> > inWriteBackFloatingPoint[nWriteBackFloatingPointPorts];		sc_in<regnum_t> inReadFloatingPointRegisterNumber[nReadFloatingPointRegisterPorts];	sc_out<UInt64> outReadFloatingPointRegisterData[nReadFloatingPointRegisterPorts];		sc_in<tag_t> inReadFloatingPointRenameNumber[nReadFloatingPointRenamePorts];	sc_out<UInt64> outReadFloatingPointRenameData[nReadFloatingPointRenamePorts];		sc_in<tag_t> inWriteFloatingPointRenameNumber[nWriteFloatingPointRenamePorts];	sc_in<UInt64> inWriteFloatingPointRenameData[nWriteFloatingPointRenamePorts];		sc_in<regnum_t> inWriteBackFloatingPointRegisterNumber[nWriteBackFloatingPointPorts];	sc_in<tag_t> inWriteBackFloatingPointRenameNumber[nWriteBackFloatingPointPorts];	void ReadRegister();	void ReadFloatingPointRegister();	void ReadRename();	void ReadFloatingPointRename();	void OnFallingEdge();		void WriteRename();	void WriteFloatingPointRename();	void WriteBack();	void WriteBackFloatingPoint();	friend  ostream& operator << (ostream& os, const RegisterFile& rf);		UInt32& operator [] (int regnum)	{		return registers[regnum];	}		SC_CTOR(RegisterFile)	{		int i;				SC_METHOD(ReadRegister);		for(i = 0; i < nReadRegisterPorts; i++)			sensitive << inReadRegisterNumber[i];					SC_METHOD(ReadFloatingPointRegister);		for(i = 0; i < nReadFloatingPointRegisterPorts; i++)			sensitive << inReadFloatingPointRegisterNumber[i];				SC_METHOD(ReadRename);		for(i = 0; i < nReadRenamePorts; i++)			sensitive << inReadRenameNumber[i];					SC_METHOD(ReadFloatingPointRename);		for(i = 0; i < nReadFloatingPointRenamePorts; i++)			sensitive << inReadFloatingPointRenameNumber[i];				SC_METHOD(OnFallingEdge)		sensitive_neg << inClock;				SC_METHOD(WriteBack);		for(i = 0; i < nWriteBackPorts; i++)			sensitive << inWriteBack[i];				SC_METHOD(WriteBackFloatingPoint);		for(i = 0; i < nWriteBackFloatingPointPorts; i++)			sensitive << inWriteBackFloatingPoint[i];				for(i = 0; i < nRegisters; i++)			registers[i] = 0;			for(i = 0; i < nRenameBuffers; i++)			renames[i] = 0;	}};#endif

⌨️ 快捷键说明

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