Tpeck 0 12 февраля, 2020 Опубликовано 12 февраля, 2020 · Жалоба Доброго времени суток. Столкнулся с необходимость описывать ROM на Verilog, под семейство Xilinx. Для этих целей использую $readmemb/$readmemh. Пока длина шины данных меньше или равна 32, то инициализация идет нормально. Как только больше, в симуляторе Active-HDL version 9.3, Verilog 2001, возникает предупреждение. # PLI: $readmemh Too many digits in memory word in file *.txt at line 61437, position 1. Word size is 40 bits [systf:LDM14] В стандарте на Verilog 2001 ограничений на длину слова нет. В документации на Active-HDL, тоже не нашел. Подскажите пожалуйста, можно ли что-нибудь с этим сделать? Всем спасибо. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RobFPGA 35 12 февраля, 2020 Опубликовано 12 февраля, 2020 · Жалоба Приветствую! Вы бы привели пример того что содержится в строке 61437 вашего текстового файлы, ну и как и куда вы его читаете. Ведь до этой строки все читается вроде как нормально? А мы затем попробуем погадать на этой гуще. Удачи! Rob. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Tpeck 0 12 февраля, 2020 Опубликовано 12 февраля, 2020 · Жалоба 7 minutes ago, RobFPGA said: Вы бы привели пример того что содержится в строке 61437 вашего текстового файлы, ну и как и куда вы его читаете. Ведь до этой строки все читается вроде как нормально? Тоже самое, что и в предыдущих строчках. 40 нулей и единиц :) Вот пример тестового модуля с файлом инициализации прикреплен. Там все легко воспроизводится. Чтобы не гадать не кофейной гуще :) test.txt Test.v Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
nice_vladi 3 12 февраля, 2020 Опубликовано 12 февраля, 2020 · Жалоба 38 minutes ago, Tpeck said: # PLI: $readmemh Too many digits in memory word in file *.txt at line 61437, position 1. Word size is 40 bits [systf:LDM14] Зацепился глаз: readmem_H_ или readmem_B_ ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Tpeck 0 12 февраля, 2020 Опубликовано 12 февраля, 2020 · Жалоба 4 minutes ago, nice_vladi said: Зацепился глаз: readmem_H_ или readmem_B_ ? И так, и так. Я думал, что в Hex меньше чисел, но он считает цифры в бинарном виде %) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RobFPGA 35 12 февраля, 2020 Опубликовано 12 февраля, 2020 · Жалоба Приветствую! 25 minutes ago, Tpeck said: Вот пример тестового модуля с файлом инициализации прикреплен. В примере reg [39 : 0] ram [255:0]; А в файле 011111110100111100000000111110111010111000000101 - ровно 48 бит! Может надо "осетра" в файле урезать до 40 бит, или "руки" развести пошире (reg [47 : 0] ram [255:0];) Удачи! Rob. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Tpeck 0 12 февраля, 2020 Опубликовано 12 февраля, 2020 · Жалоба 2 minutes ago, RobFPGA said: А в фале 011111110100111100000000111110111010111000000101 - ровно 48 бит! Может надо "осетра" в файле урезать до 40 бит, или "руки" развести пошире (reg [47 : 0] ram [255:0];) Спасибо. :) Там целый набор файлов с различной шириной, когда копировал ошибся :( Полез в aldec, а там оказывается параметр множителя шины с верхнего уровня (VHDL) на нижний (Verilog) передавался криво. Сначала он был natural, потом передал на integer - это видимо стало узким местом :( Прописал ручками для одного набора - заработало, начал менять обратно, Aldec упал. После перезапуска Aldec - данная ошибка перестала возникать. Всем спасибо за оперативную помощь. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться