Перейти к содержанию
    

Xilinx создание coe file

Кто нибудь может помочь с созданием *.coe файла для инициализации ROM в Vivado, Xilinx?
Из hex, bin или из MatLab. В MatLAb есть функция "coewrite", но то чтор она прождает Vivaldo "не нравится".

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

38 minutes ago, IgorMov said:

Кто нибудь может помочь с созданием *.coe файла для инициализации ROM в Vivado, Xilinx?
Из hex, bin или из MatLab. В MatLAb есть функция "coewrite", но то чтор она прождает Vivaldo "не нравится".

должно быть следующего формата

пример:

; XILINX CORE Generator(tm)Distributed Arithmetic FIR filter coefficient (.COE) File
; Generated by MATLAB(R) 9.3 and DSP System Toolbox 9.5.
; Generated on: 24-Dec-2018 10:51:18
Radix = 16; 
Coefficient_Width = 16; 
CoefData = ffe1,
ffca,
0020,
0053,
0028,
ff94,
ff6c,
0025,
00f9,
0096,
ff18,
fe72,
0001,
0223,
01b2,
fe76,
fc81,
ff4b,
041d,
0433,
fdd1,
f894,
fd07,
07eb,
0ac6,
fd54,
ecb3,
f2b8,
19f2,
4c63,
638c,
4c63,
19f2,
f2b8,
ecb3,
fd54,
0ac6,
07eb,
fd07,
f894,
fdd1,
0433,
041d,
ff4b,
fc81,
fe76,
01b2,
0223,
0001,
fe72,
ff18,
0096,
00f9,
0025,
ff6c,
ff94,
0028,
0053,
0020,
ffca,
ffe1;

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

51 минуту назад, IgorMov сказал:

Кто нибудь может помочь с созданием *.coe файла для инициализации ROM в Vivado, Xilinx?
Из hex, bin или из MatLab. В MatLAb есть функция "coewrite", но то чтор она прождает Vivaldo "не нравится".

Есть ещё утилитка srec_cat и у неё есть ключик:

Цитата

-COE    This option says to use the Xilinx Coefficient File Format (.coe) for output.  (See srec_coe(5) for a description of this file format.)

Попробуйте её.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

MatLab c помощью функции coewrite что-то похожее попрождаеь, но IP Memory Generator ругается на этот формат.
Ему нужен заголовок:
memory_initialization_radix=10;
memory_initialization_vector=
0,
1,
...

Но как то странно в Vivado или в Xilinx нет нормального creator и/или преобразователь bin2coe или hex2coe...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

5 hours ago, IgorMov said:

Кто нибудь может помочь с созданием *.coe файла для инициализации ROM в Vivado, Xilinx?
Из hex, bin или из MatLab. В MatLAb есть функция "coewrite", но то чтор она прождает Vivaldo "не нравится".

Выпишите из матлаба в файл нужные вам заголовки и коэффициенты в нужном формате печатью в файл.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

11 hours ago, _4afc_ said:

Выпишите из матлаба в файл нужные вам заголовки и коэффициенты в нужном формате печатью в файл.

Я так и сделал, но мой вопрос все равно к Xilinx остается:
Но как то странно в Vivado или в Xilinx нет нормального creator и/или преобразователь bin2coe или hex2coe...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 hours ago, IgorMov said:

Я так и сделал, но мой вопрос все равно к Xilinx остается:
Но как то странно в Vivado или в Xilinx нет нормального creator и/или преобразователь bin2coe или hex2coe...

Так если коэффициенты всё равно надо рассчитывать в матлабе, то зачем их выписывать в bin или hex и потом конвертировать?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

21 hours ago, IgorMov said:

Кто нибудь может помочь с созданием *.coe файла для инициализации ROM в Vivado, Xilinx?
Из hex, bin или из MatLab. В MatLAb есть функция "coewrite", но то чтор она прождает Vivaldo "не нравится".

Сначала делал простым копипастом, пото перешел в Симулинк и все что нужно уже генерил из него со всеми инициализациями. Там уже можно и FDATool использовать, и через переменный WorkSpace инициализировать все что нужно и выгружать, или вообще через *.m скрипты. 

Стандартные методы как-то не прижились.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вот такой есть скриптик, можно под себя доделать, поддерживает форматы и для фильтра и для памяти
 

Quote

function success = save_coeff_dec(coeff_vect, filename, type)
try
    outfile = fopen(filename,'w+');
    
    if(outfile >= 0 )
        additional_syntax = struct();
        if (strcmp(type, 'filter'))
            additional_syntax.first_string  = 'RADIX  = 10';
            additional_syntax.second_string = 'COEFDATA =  ';
        else  
            additional_syntax.first_string  = 'MEMORY_INITIALIZATION_RADIX  = 10';
            additional_syntax.second_string = 'MEMORY_INITIALIZATION_VECTOR =  ';
        end
        
        fprintf(outfile, '%s;\n', additional_syntax.first_string);
        fprintf(outfile, '%s\n', additional_syntax.second_string);
        
        for j = 1:1:length(coeff_vect) - 1
            fprintf(outfile, '%d\n', coeff_vect(j));
        end
        
        fprintf(outfile, '%d;\n', coeff_vect(j + 1));
        
        fclose(outfile);
        success = 1;
    else
        success = 0;
    end
catch
    disp('error open and save to file');
end

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 5/31/2022 at 1:25 PM, _4afc_ said:

Так если коэффициенты всё равно надо рассчитывать в матлабе, то зачем их выписывать в bin или hex и потом конвертировать?

coe файл в Xilinx это данные инициализации памяти ROM. У меня это не коэффициенты фильтров, а управляющие биты, которые формируются не в МатЛабе.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вот здесь https://support.xilinx.com/s/article/11744 описано, что 

In ISE 11.1 and later, Memory Editor can be accessed from a script file. Use mem_edit.bat (Windows platforms) or mem_edit (Linux platforms). This script is available in the $XILINX/bin/&ltOS&gt directory. 
The Memory Editor can be used to create COE files in two ways: 

  1. Enter your memory data values directly into the Memory Editor GUI and then select File -> Generate -> COE files(s) to create the COE files. 
  2. Enter your memory data into Excel (use whatever formulas you need there), export to CSV format, and then Import the CSV into Memory Editor (File -> Import -> CSV file). When a CSV file is imported, Memory Editor prompts you to specify the Memory Depth, Word Width, Data and Address Radix, and Start Address. 

After the CSV file has been imported, you should inspect the Memory Content window for accuracy, and then select File -> Generate -> COE files(s) to create the COE files.

Подозреваю, что COE безотносителен к типу IDE вендора

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Как раз три дня назад делал свой COE, на Python пишется скрипт за минуту, формат простой. Если жалуется на decimal, то предлагаю попробовать то же самое вывалить в HEX форме.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 5/30/2022 at 5:17 PM, IgorMov said:

Кто нибудь может помочь с созданием *.coe файла для инициализации ROM в Vivado, Xilinx?
Из hex, bin или из MatLab. В MatLAb есть функция "coewrite", но то чтор она прождает Vivaldo "не нравится".

https://github.com/vortexgpgpu/bin2coe/blob/master/main.cpp

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 5/30/2022 at 5:17 PM, IgorMov said:

Кто нибудь может помочь с созданием *.coe файла для инициализации ROM в Vivado, Xilinx?
Из hex, bin или из MatLab. В MatLAb есть функция "coewrite", но то чтор она прождает Vivaldo "не нравится".

 

coe-File-converter-for-FPGA-programming-master.zip -прикрепленный файл

coe-File-converter-for-FPGA-programming-master.zip

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...