Isfet 0 3 декабря, 2009 Опубликовано 3 декабря, 2009 (изменено) · Жалоба Использовал изначально VirtexE, потом пришлось сменить кристалл на Virtex4 15lx, код синтезируется нормально, но возникла проблема привязки к кристаллу, подскажите плиз какие отличии привязки в 4 вёртексе от вёртексаЕ. и вообще в принципе какие отличии в коде. (использую ISE, VHDL) Изменено 3 декабря, 2009 пользователем Isfet Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Gothard 0 3 декабря, 2009 Опубликовано 3 декабря, 2009 · Жалоба и вообще в принципе какие отличии в коде Если вы в коде ручками не вставляли такие компоненты как блочная память, DLL и выходные буфера на специальные стандарты (типа двунаправленного LVPECL и еще некоторые), которые в Virtex-4 не поддерживаются, то отличий в коде думаю не должно быть. А в чем заключается ваша проблема "привязки" к кристаллу? P.S. при синтезе некоторые компоненты старого семейства могут автоматически переводится под новое семейство, но я особо этим не увлекался - не могу сказать точно что переводится, а что нет... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Kuzmi4 0 3 декабря, 2009 Опубликовано 3 декабря, 2009 · Жалоба 2 Gothard а с каких это пор блочкая память в 4-м виртексе перестала поддерживаться ?? 2 Isfet а полностью проблему озвучить? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Gothard 0 3 декабря, 2009 Опубликовано 3 декабря, 2009 (изменено) · Жалоба а с каких это пор блочкая память в 4-м виртексе перестала поддерживаться ?? Блочная память там поддерживается, но примитивы отличаются. Синтезатор не оптимизирует примитивы RAMB4_Sx_Sx (которые в Virtex-E используются) и оставляет их как blackbox, а потом ngdbuild валится, потому-что не может этот blackbox отрезолвить. Может это только у меня так :), но когда переводил чужой проект с Virtex-E на Virtex-5 столкнулся с такой проблемой. В результате сделал синтезируемый компонент на замену примитиву и подменял все вхождения на него. P.S. извиняюсь - сначала не корректно выразился Изменено 3 декабря, 2009 пользователем Gothard Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Isfet 0 5 декабря, 2009 Опубликовано 5 декабря, 2009 · Жалоба с кодом разобралдся, а вот с ручной привязкой проблема. В флорплейнере не выводится окно с местоположением всех компонентов, пробовал при автоматическом размещении, та же ерунда, подскажитте из-за чего такое может быть. (в ручной привязке привязывал через Rloc и координаты "X1Y1" ну или со слайсом "X1Y1.S0") На вертексеЕ все работало не думал что возникнут такие проблемы. А еще версия ISE 7.1, но она в принципе поддерживает вертекс4 15 lx, может от нее все беды. подскажите плиз Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Gothard 0 7 декабря, 2009 Опубликовано 7 декабря, 2009 (изменено) · Жалоба с кодом разобралдся, а вот с ручной привязкой проблема. В флорплейнере не выводится окно с местоположением всех компонентов, пробовал при автоматическом размещении, та же ерунда, подскажитте из-за чего такое может быть. (в ручной привязке привязывал через Rloc и координаты "X1Y1" ну или со слайсом "X1Y1.S0") На вертексеЕ все работало не думал что возникнут такие проблемы. А еще версия ISE 7.1, но она в принципе поддерживает вертекс4 15 lx, может от нее все беды. подскажите плиз У вас NGDBUILD проходит? Возможно у вас следующая проблема: если у вас в проекте есть "корки" с RLOCами - то дополнительно придется произвести следующие манипуляции, т.к. значения этих параметров отличается для Virtex-4 и Virtex-E Способ 1: В UCF прописать INST "<reference designator корки>*" RLOC="X3Y3"; # Здесь меняется "формат" RLOC на некоторый шаблон, чтоб ngdbuild не ругался INST "<reference designator корки>*" USE_RLOC=FALSE; # Здесь указывается, что RLOC не надо использовать, т.к. после предыдущего шага использование RLOC смысла не имеет P.S. <> в "боевом" файле писать не надо :), а только обозначение корки в проекте (обычно U1, $123 и т.п. или осмысленное слово, если его присваивали на этапе разработки) Можно и так: INST "*" RLOC="X3Y3"; # Здесь меняется "формат" RLOC на некоторый шаблон, чтоб ngdbuild не ругался INST "*" USE_RLOC=FALSE; # Здесь указывается, что RLOC не надо использовать, т.к. предыдущим шагом RLOC был установлен "с потолка" , чтобы не перечислять все корки (если у вас их много), но это "сотрет" информацию RLOC всего ПЛИСА. Способ 2: перегенерить корки под нужное вам семейство ППВМ, если это возможно, или перегенерить под старое семейство, но без RLOC информации Изменено 7 декабря, 2009 пользователем Gothard Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Beby 8 8 декабря, 2009 Опубликовано 8 декабря, 2009 · Жалоба а вот с ручной привязкой проблема. Может мой ответ будет несколько не по делу,.. но мне кажется, что необходимо, на всякий случай, прояснить несколько моментов: 1. RLOC не даёт абсолютную "привязку", он задаёт только относительное расположение элементов в наборе (U_SET и т.п.). Может я чего-то пропустил, но я ни разу не видел, чтобы FloorPlanner отображал RLOC. Вот LOC - этот, да, хорошо виден. 2. Необходимо помнить, что в Virtex-E точка R0C0 была сверху слева, а в Virtex-4 точка X0Y0 - снизу слева. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Isfet 0 8 декабря, 2009 Опубликовано 8 декабря, 2009 · Жалоба На вертексеЕ в floorplanner , вкладка placement, было видно как размещены все компоненты относительно друг друга, и с помощью координат и слайсов можно было менять их положение относительно друг-другу, после смены криcталла на virtex4 15 lx и замены "R0C0" и т.д на "X0Y0", floorplanner продалжает запускаться нормально, без всяких ругательств, но окно placement неактивно, открыть его нельзя. rLoc прописывал так: attribute rLoc of имя_компонента : label is "R1C2.S1" также пропысавыл Rloc в каждом компоненте, компоненты состоят из нескольких примитивных. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Gothard 0 8 декабря, 2009 Опубликовано 8 декабря, 2009 (изменено) · Жалоба rLoc прописывал так: attribute rLoc of имя_компонента : label is "R1C2.S1" Так видимо для Virtex-4 надо писать в формате XnYm, а не RmCm? P.S. или я чего-то не понял: у вас же было написано чуть выше и замены "R0C0" и т.д на "X0Y0" P.P.S. если не секрет - зачем вам RLOC прописывать? все настолько плохо раскладывается?... просто я сам никогда такого специально не делал - вот любопытствую.... Изменено 8 декабря, 2009 пользователем Gothard Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Beby 8 8 декабря, 2009 Опубликовано 8 декабря, 2009 · Жалоба просто я сам никогда такого специально не делал - вот любопытствую.... RLOC используют когда что-то заводят на предельные для кристалла частоты; или когда собирают из примитивов что-то очень извращенное (т.е. сильно запереоптимизированное), т.к. оно выше понимая ISE, то оно (ISE) не может это правильно (с точки зрения разработчика) расположить в CLB. Расплатой же за применение RLOC являются дополнительные затраты при перемещении проекта на новое семейство кристаллов. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Isfet 0 9 декабря, 2009 Опубликовано 9 декабря, 2009 (изменено) · Жалоба опечатался сорь прописывал так : attribute rLoc of имя_компонента : label is "X1Y2.S1". Так вот меня и интересует как лучше описать . Если функцией лок можно плотно разместить компоненты на кристалле, опишите пожалуйста как. Просто на вертексеЕ у меня проблем с Rloc не было а на Loc он ругался. вот и взял рлок. Изменено 9 декабря, 2009 пользователем Isfet Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться