54 lines
1.1 KiB
Python
54 lines
1.1 KiB
Python
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)) |