1、width 和 depth 的设置起始范围
width : 1~4608(固定不变)
depth : 2~1048576(随着width设置的值会改变)
2、当不勾选 byte write enable 时
write width 可在1~4608内随意设置。
write depth 的值也可以随意在2~1048576中进行设置。
a) write width 是 2 整数倍或 write depth 是 2 的整数倍时,
read width 需要为 write width 的倍数,且也不能超过4608。比 write width 小的最多为5个,大的最多为5个。例:
当write width = 16时,read width 可在[1,2,4,8,16,32,64,128,256,512]进行选择。此时比16小的有4个数,比16大的有5个数。
当write width = 64时,read width 可在[2,4,8,16,32,64,128,256,512,1024,2048]进行选择。此时比64小的有5个数,比64大的有5个数。
b)当 write width 和 write depth 都不是2的整数倍时,
read width只能是其自身
read depth 的值不能自己进行设置,其关系式为 write width * write depth = read width * read depth 。
c)当 write width 数值变化时,write depth 的范围也在随之变化
def check_w_depth_available(write_width,write_depth):
n = [0,0]
n[0] = math.ceil(math.log2(write_width))
print("n[0] = ",n[0])
if (write_width <= 128):
n[1] = 0
elif(2048 < write_width <= 4608):
n[1] = 5
else:
n[1] = n[0] - 7
write_depth_max = int(1048576 / (2 **n[1]))
3、当勾选 byte write enable 时,byte size可为 8 和 9 .
write width 可在1~4608内随意设置,但必须为 byte size的整数倍。
write depth 可以不是 byte size 的整数倍。
a)当write depth 不是 byte size 的整数倍时
read width只能是其自身
b)当write depth 是 2 的整数倍时
比 write width 小的最多为2个,大的最多为2个