from math import log2 from random import randint DATANUM = 10000 setNum = 2 offsetBits = 7 tagBits = 21 # setNum = int(input("Set: ")) # offsetBits = int(input("offset bits: ")) # tagBits = int(input("tag bits: ")) print("-machine(in bits) 32") print("-total_cache_size(in KB) 1") print("-num_cache_way 1") print("-block_size(in bytes) 512") print("") for i in range(DATANUM): ans = [] tagTouchBits = 4 for i in range(tagBits-tagTouchBits): ans.append(0) for i in range(tagTouchBits): ans.append(randint(0, 1)) setBits = int(log2(setNum)) for i in range(setBits): ans.append(randint(0, 1)) for i in range(offsetBits): ans.append(randint(0, 1)) # print(ans) charStr = "" index = 0 output = "" for i in ans: charStr += str(i) index += 1 if index == 4: # print(charStr) base2 = int(charStr, 2) # print("base 2:", base2) output += hex(base2)[-1] charStr = "" index = 0 typeNum = randint(0, 1) print("{} 0x{}".format("R" if typeNum else "W", output))