Инициализация BRAM в FPGA может быть выполнена с использованием генератора CORE, но я предпочитаю писать VHDL, чтобы инструмент синтеза отображал BRAM или таблицу поиска (LUT). Обратите внимание: я никогда не использую Core Gen для создания/инициализации ОЗУ.
Я не уверен, как форматируются данные, но вот фрагмент кода VHDL о том, как читать текстовый файл, где каждая строка содержит двоичную строку и создает сигнал с содержимым файла. Вам нужно заранее знать формат файла и его длину.
-- define a type for the lookup table (LUT)
type lut_type is array(0 to 2**12-1) of std_logic_vector(15 downto 0);
impure function init_lut_from_file(lut_file_name : in string)
return lut_type is
FILE lut_file : TEXT open READ_MODE is lut_file_name;
variable lut_line : line;
variable bv_temp : bit_vector(15 downto 0);
variable lut : lut_type;
begin
for i in lut_type'range loop
readline(lut_file, lut_line);
read(lut_line, bv_temp);
lut(i) := to_stdlogicvector(bv_temp);
end loop;
return lut;
end function;
signal lut : lut_type := init_lut_from_file("c:\data.txt");
выше функция нечистым будет считывать c:\data.txt
, содержащие 16-разрядные двоичные строки на каждой строке файла в LUT с 2^12 = 4096 записей.
Затем вы можете написать дополнительный код для чтения & напишите lut
, как обычно.
[ИПК файла Синтаксис] (http://www.xilinx.com/itp/xilinx10/isehelp/cgn_r_coe_file_syntax.htm) и [AR # 11744 ОСНОВНОЙ генератор - подсказки для создания Коу файлов для ядер памяти (блок памяти, дист Память, ПЗУ, ОЗУ и т. Д.)] (Http://www.xilinx.com/support/answers/11744.html). Также см. [Как инициализировать BRAM с файлом COE для Xilinx FPGA] (http://tipsarea.com/2014/05/21/how-to-initialize-bram-with-coe-file-for-xilinx-fpga/) если ваша версия ISE блокирует доступ к редактору памяти из графического интерфейса. Найдено googling * COE Xilinx ISE *. – user1155120
[COEGen v0.01 - Создание файлов .coe из двоичных файлов для Xilinx FPGA block RAM] (https://wornwinter.wordpress.com/2015/02/07/coegen-v0-01-generate-coe-files-from -binary-файлы-для-Xilinx-FPGA-блок-RAM /). Этот поиск по поисковым запросам * бинарный формат COE Xilinx *. – user1155120
[SRecord 1.64] (http://srecord.sourceforge.net/download.html) требует libboost (так же как и COEGen), тот же поисковый запрос googling. – user1155120