На конференции telesys подсказали идею - описать ПЗУ поведенчески:
Код
type trom is array(0 to 1023) of integer;
constant rom : trom := (0,50,100,...);
data <= conv_std_logic_vector(rom(conv_integer(addr)),15);
Однако я не могу дождаться результата синтеза. Такое ощущение, что система (XFS) просто зависает. Все-таки 16kx14. Сам файл vhd получился 300кБ.
Поковырялся в справке симулятора, обнаружил такую штуку. Можно сделать блок памяти в который можно загрузить содержимое. В этом случае все начинает работать.
Нужно только как-то записать в эту память 16к отсчетов.
Ручками мне как-то не хочется.
Есть альтернатива - загрузить из hex-файла.
Но как сделать такой файл?