Код-шаблон, по которому легко догадаться, что это RAM, уже есть? А хеш-функция для ассоциативного массива? А дальше - пропустить слово через хеш - и вот тебе адрес RAM, затем записать или получить содержимое.
Да, и пользуясь случаем, раз попалась тема с таким удачным названием (её должен был создать я!)
При синтезе проекта map (уже другой map, да) выдаёт такую ошибку после нескольких итераций:
map -intstyle ise -p xc6slx45-csg324-3 -w -logic_opt off -ol
high -t 1 -xt 0 -register_duplication off -r 4 -global_opt off -mt off -ir off
-pr off -lc off -power off -o top_map.ncd top.ngd top.pcf
(…)
ERROR:Place:543 - This design does not fit into the number of slices available
in this device due to the complexity of the design and/or constraints.
Unplaced instances by type:
FF 99 (3.5)
LUT 18 (39.1)
Впервые сталкиваюсь. Перечисленные FFы и LUTы - явно не из тех, для которых я своими руками вписывал ограничения (куски IP-ядер из EDK). Куда копать? Помогут ли какие-нибудь способы оптимизации на этапе Map? Или ещё раньше, на этапе синтеза? Частоту понизить? Или только брать более жирную плисину?
Можно разрешить оптимизаторы, можно вручную поиграться с ограничениями дизайна и с оптимизацией наиболее проблемных мест, можно взять более жирную плисину.
Не знаю, не пользовал, только пару книжек прочитал. В плане выразительности самого языка по сравнению с Common Lisp выглядит очень слабо и неинтересно.
Видеообработка - деинтерлейсинг, масштабирование, буферизация. И Microblaze, чтобы всем этим управлять. Один конвеер для обработки влезал целиком и работал, а нужно их два. Первые сообщения были просто о нехватке ресурсов - пришлось упрощать алгоритмы, т.к. не укладывался по количеству блоков DSP. А error 543 - он поинтереснее: насколько я понимаю, ему не ресурсов не хватает, а он логику в них втиснуть не может так, чтобы в констрейнты уложиться. Буду пробовать с разными видами оптимизации, только он мапит всё часа по три, сильно перебором не побалуешься, хотелось бы понять, какие настройки скорее всего могли бы помочь.