#include "simulator.h" #include #include using CacheSim::Simulator; using std::stringstream; using std::bitset; Simulator::Simulator(int machineBits, short setSize, short waySize, short tagSize){ this->setSize = setSize; this->tagSize = tagSize; this->machineBits = machineBits; for(int i=0; isets.push_back(Set(waySize, tagSize)); } } bool Simulator::read(string address){ vector addrBits = this->addressTranslate(address); for(int i=0; igetIndex(addrBits); // std::cout< Simulator::addressTranslate(string address){ vector ans; ans.reserve(this->tagSize); stringstream ss; ss << std::hex << address; unsigned long long number; ss >> number; bitset<64> bits(number); for(int i=this->machineBits-1; i>=0; i--){ ans.push_back(bits[i]); } return ans; } short Simulator::getIndex(vector addrBits){ short ans = 0 , base = 1; // std::cout<<"hi"<tagSize+log2(this->setSize)-1); i>=this->tagSize; i--){ // std::cout<