from math import *
from matplotlib import pyplot as plt
FILENAME = "1024_sine.coe"
WIDTH = 16
DEPTH = 1024
hex_table = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f']
points = []
out = []
file = open("D:/Vivado2017.4/simulation_examples/LUT_sin/vivado_prj_model_at7/" + FILENAME, "w+")
file.write("memory_initialization_radix=16;\n")
file.write("memory_initialization_vector=")
base = 2**(WIDTH - 1) - 1
for i in range(DEPTH):
var = int(base + sin(i / DEPTH * 2 * pi) * base)
if var >= 2**WIDTH:
var = 2**WIDTH - 1
points.append(var)
var_hex = ""
while (var > 0):
var_hex += hex_table[var & 0xf]
var >>= 4
var_hex += '0' * ((WIDTH - 1) // 4 - len(var_hex) + 1)
out.append(var_hex[::-1])
for i in range(DEPTH):
print(out[DEPTH - i - 1], end=",")
file.write(out[DEPTH - i - 1] + ",")
file.close()
plt.plot(points)
plt.show()
转载请注明原文地址:https://blackberry.8miu.com/read-32047.html