Цитата(maior @ Jun 29 2006, 18:26)

Hо ведь есть еще стандартные примитивы памяти (блочной и распределенной),
на базе которых можно сделать универсальные параметризиремые (через generic)
бибиотечные элементы. Я так и делал для виртексов 2 и 4 (один элемент годился для обоих
и позволял строить память почти любой конфигурации!).
Для спартанов - тоже не должно быть проблем.
И не заморачивался ни с coregen, ни с behaviorial, которое по-разному и неустойчиво
интерпретируется разными синтезаторами в разных условиях и для
разных (даже слегка разных!) чипов.
Фактически, вы руками доделали некоторую часть работы. Которую запросто мог за вас сделать Кореген. Более того, вам пришлось разбираться с тонкостями использования тех примитивов - причем обременительными тонкостями, типа зануления старших адресов если используется не вся память и построение дешифраторов, если требуется бОльшая. И зачем?! Когда есть кореген, одним движением пальца делающий все это.
Насчет переносимости, разных синтезаторов и проч. Сдается мне, что проблему сильно преувеличивают.
Не знаю, кто как, но я только один раз кардинально менял окружение. С Леонардо Спектрум для Atmel FPSLIC прыгнул на Spartan2 и XST (ISE). Разумеется, блоки памяти потребовали кардинальной переделки. Которая заключалась всего лишь в генерации оных в Корегене.
Затем перешел на Спартан 3, так ничего и не поменялось. Сгенерировал то же самое в Корегене.
А теперь пожалуйста ответьте, как часто вам, уважаемые коллеги, пришлось переходить (в ходе разработки ОДНОГО изделия) на кардинально другие FPGA и кардинально другие синтезаторы?
Ото ж... А на рихтовку своих исходников с целью сделать их универсальными вы потратите очень много времени с непредсказуемым результатом. (речь идет об аппаратно-специфических вещах, память, DDR регистры и проч.).
Моя идеология проста: делаем на plain VHDL все, что можно. По возможности без атрибутов и прочих бубенцов. Все специфическое включаем в блэк-боксы, их генерируем в целевой среде. Констрейны и прочие весьма зависимые прибамбасы (распиновка, типы выводов и тд) делаем исключительно в целевой среде. И не паримся. При переходе на что-то другое у нас остается везде компилируемый чистый VHDL, блэк-боксы создаем по-новой - тут уж никуда не деться. А констрейны, пинауты и иже с ними в новой среде все равно придется вбивать по-новой. Каламбурчик.
Умею молчать на 37 языках...