[Python] Vivado Block Memory Generator IP not accepting COE file

Discussão em 'Python' iniciado por Stack, Julho 3, 2025.

  1. Stack

    Stack Membro Participativo

    Here is my python script to generate a COE file:

    import numpy as np

    def generate_coe_file(filename, data_list, radix=16):
    with open(filename, 'w') as f:
    f.write(f"memory_initialization_radix = {radix};\n")
    f.write("memory_initialization_vector =\n")
    for i, val in enumerate(data_list):
    if i == len(data_list) - 1:
    f.write(f"{val};\n") # Last value ends with ;
    else:
    f.write(f"{val},\n")

    # Example: Fill with values 0 to 255
    data = list(np.ones(1024))
    data = [hex(int(x)) for x in data]
    generate_coe_file("fft_bram.coe", data)


    I tried switching directories, changing filenames and looking for extra whitespaces/commas/semicolons, All that is generated fine but the Re-Customize IP pop-up window for the Xilinx Vivado Block Memory Generator IP module does not accept the COE file and returns the following Error Message:

    Validation failed for parameter 'Coe File(Coe_File)' with current value 'd:/Vivado_Vitis_Projects/SingleToneFFT/SingleToneFFT.srcs/source_1/bd/design_singletoneFFT/ip/design_singletoneFFT_blk_mem_gen_0_0'. Invalid COE File- Invalid Hex value detected in the COE File: x1


    The Block memory IP module is initialized as a true dual port BRAM in Standalone mode, with 32 bit read and write widths and 1024 read and write depth.

    Can someone guide me on mitigating this error.

    Continue reading...

Compartilhe esta Página