|
|
def build_twiddle_factors_128_dot_vhdl():
|
|
|
|
|
|
with open("twiddle_factors_128.vhd", "w") as text_file:
|
|
|
|
|
|
text_file.write("library IEEE;\n")
|
|
|
text_file.write("use IEEE.numeric_std.all;\n")
|
|
|
text_file.write("use IEEE.std_logic_1164.all;\n\n")
|
|
|
|
|
|
text_file.write("package twiddle_factors_128 is\n\n")
|
|
|
|
|
|
text_file.write("constant Coef_SZ : integer := 16;\n")
|
|
|
text_file.write("constant NB_Coeffs : integer := 128;\n\n")
|
|
|
|
|
|
text_file.write("--============================================================\n")
|
|
|
text_file.write("-- create each initial values for each coefs ============\n")
|
|
|
text_file.write("--!!!!!!!!!!It should be interfaced with a software !!!!!!!!!!\n")
|
|
|
text_file.write("--============================================================\n\n")
|
|
|
|
|
|
for i in range(128):
|
|
|
text_file.write("constant c_{} : std_logic_vector(Coef_SZ-1 downto 0) := std_logic_vector(TO_SIGNED(121,Coef_SZ));\n".format(i))
|
|
|
|
|
|
text_file.write("\n--************************************************--\n\n")
|
|
|
|
|
|
for i in range(128):
|
|
|
text_file.write("constant cps_{} : std_logic_vector(Coef_SZ-1 downto 0) := std_logic_vector(TO_SIGNED(160,Coef_SZ));\n".format(i))
|
|
|
|
|
|
text_file.write("\n--************************************************--\n\n")
|
|
|
|
|
|
for i in range(128):
|
|
|
text_file.write("constant cms_{} : std_logic_vector(Coef_SZ-1 downto 0) := std_logic_vector(TO_SIGNED(82,Coef_SZ));\n".format(i))
|
|
|
|
|
|
text_file.write("\n--************************************************--\n\n")
|
|
|
|
|
|
range_j = 16
|
|
|
range_i = 8
|
|
|
|
|
|
text_file.write("constant twiddleFactors_c : std_logic_vector( (NB_Coeffs * Coef_SZ)-1 downto 0) :=\n")
|
|
|
text_file.write("(")
|
|
|
for j in range(16):
|
|
|
text_file.write("\n")
|
|
|
for i in range(8):
|
|
|
if (i+j*range_i) == (range_j*range_i-1):
|
|
|
text_file.write("c_{} );\n\n".format(i+j*range_i))
|
|
|
else:
|
|
|
text_file.write("c_{} & ".format(i+j*range_i))
|
|
|
|
|
|
text_file.write("constant twiddleFactors_cps : std_logic_vector( (NB_Coeffs * Coef_SZ)-1 downto 0) :=\n")
|
|
|
text_file.write("(")
|
|
|
for j in range(16):
|
|
|
text_file.write("\n")
|
|
|
for i in range(8):
|
|
|
if (i+j*range_i) == (range_j*range_i-1):
|
|
|
text_file.write("cps_{} );\n\n".format(i+j*range_i))
|
|
|
else:
|
|
|
text_file.write("cps_{} & ".format(i+j*range_i))
|
|
|
|
|
|
text_file.write("constant twiddleFactors_cms : std_logic_vector( (NB_Coeffs * Coef_SZ)-1 downto 0) :=\n")
|
|
|
text_file.write("(")
|
|
|
for j in range(16):
|
|
|
text_file.write("\n")
|
|
|
for i in range(8):
|
|
|
if (i+j*range_i) == (range_j*range_i-1):
|
|
|
text_file.write("cms_{} );\n".format(i+j*range_i))
|
|
|
else:
|
|
|
text_file.write("cms_{} & ".format(i+j*range_i))
|
|
|
|
|
|
text_file.write("end;\n\n")
|
|
|
|
|
|
if __name__ == '__main__':
|
|
|
build_twiddle_factors_128_dot_vhdl()
|
|
|
print'file built'
|
|
|
|