Перейти к содержанию
    

Отличие кода для Virtex-4 и VirtexE

Использовал изначально VirtexE, потом пришлось сменить кристалл на Virtex4 15lx, код синтезируется нормально, но возникла проблема привязки к кристаллу, подскажите плиз какие отличии привязки в 4 вёртексе от вёртексаЕ. и вообще в принципе какие отличии в коде. (использую ISE, VHDL)

Изменено пользователем Isfet

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

и вообще в принципе какие отличии в коде

Если вы в коде ручками не вставляли такие компоненты как блочная память, DLL и выходные буфера на специальные стандарты (типа двунаправленного LVPECL и еще некоторые), которые в Virtex-4 не поддерживаются, то отличий в коде думаю не должно быть.

А в чем заключается ваша проблема "привязки" к кристаллу?

 

P.S. при синтезе некоторые компоненты старого семейства могут автоматически переводится под новое семейство, но я особо этим не увлекался - не могу сказать точно что переводится, а что нет...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 Gothard

а с каких это пор блочкая память в 4-м виртексе перестала поддерживаться ??

 

2 Isfet

а полностью проблему озвучить?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

а с каких это пор блочкая память в 4-м виртексе перестала поддерживаться ??

Блочная память там поддерживается, но примитивы отличаются. Синтезатор не оптимизирует примитивы RAMB4_Sx_Sx (которые в Virtex-E используются) и оставляет их как blackbox, а потом ngdbuild валится, потому-что не может этот blackbox отрезолвить.

Может это только у меня так :), но когда переводил чужой проект с Virtex-E на Virtex-5 столкнулся с такой проблемой. В результате сделал синтезируемый компонент на замену примитиву и подменял все вхождения на него.

P.S. извиняюсь - сначала не корректно выразился

Изменено пользователем Gothard

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

с кодом разобралдся, а вот с ручной привязкой проблема. В флорплейнере не выводится окно с местоположением всех компонентов, пробовал при автоматическом размещении, та же ерунда, подскажитте из-за чего такое может быть. (в ручной привязке привязывал через Rloc и координаты "X1Y1" ну или со слайсом "X1Y1.S0") На вертексеЕ все работало не думал что возникнут такие проблемы. А еще версия ISE 7.1, но она в принципе поддерживает вертекс4 15 lx, может от нее все беды. подскажите плиз

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

с кодом разобралдся, а вот с ручной привязкой проблема. В флорплейнере не выводится окно с местоположением всех компонентов, пробовал при автоматическом размещении, та же ерунда, подскажитте из-за чего такое может быть. (в ручной привязке привязывал через 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 информации

Изменено пользователем Gothard

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

а вот с ручной привязкой проблема.

Может мой ответ будет несколько не по делу,.. но мне кажется, что необходимо, на всякий случай, прояснить несколько моментов:

1. RLOC не даёт абсолютную "привязку", он задаёт только относительное расположение элементов в наборе (U_SET и т.п.). Может я чего-то пропустил, но я ни разу не видел, чтобы FloorPlanner отображал RLOC. Вот LOC - этот, да, хорошо виден.

2. Необходимо помнить, что в Virtex-E точка R0C0 была сверху слева, а в Virtex-4 точка X0Y0 - снизу слева.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

На вертексеЕ в floorplanner , вкладка placement, было видно как размещены все компоненты относительно друг друга, и с помощью координат и слайсов можно было менять их положение относительно друг-другу, после смены криcталла на virtex4 15 lx и замены "R0C0" и т.д на "X0Y0", floorplanner продалжает запускаться нормально, без всяких ругательств, но окно placement неактивно, открыть его нельзя. rLoc прописывал так:

 

attribute rLoc of имя_компонента : label is "R1C2.S1"

 

также пропысавыл Rloc в каждом компоненте, компоненты состоят из нескольких примитивных.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

rLoc прописывал так:

attribute rLoc of имя_компонента : label is "R1C2.S1"

Так видимо для Virtex-4 надо писать в формате XnYm, а не RmCm?

P.S. или я чего-то не понял: у вас же было написано чуть выше

и замены "R0C0" и т.д на "X0Y0"

 

P.P.S. если не секрет - зачем вам RLOC прописывать? все настолько плохо раскладывается?... просто я сам никогда такого специально не делал - вот любопытствую....

Изменено пользователем Gothard

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

просто я сам никогда такого специально не делал - вот любопытствую....

RLOC используют когда что-то заводят на предельные для кристалла частоты; или когда собирают из примитивов что-то очень извращенное (т.е. сильно запереоптимизированное), т.к. оно выше понимая ISE, то оно (ISE) не может это правильно (с точки зрения разработчика) расположить в CLB. Расплатой же за применение RLOC являются дополнительные затраты при перемещении проекта на новое семейство кристаллов.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

опечатался сорь прописывал так : attribute rLoc of имя_компонента : label is "X1Y2.S1". Так вот меня и интересует как лучше описать . Если функцией лок можно плотно разместить компоненты на кристалле, опишите пожалуйста как. Просто на вертексеЕ у меня проблем с Rloc не было а на Loc он ругался. вот и взял рлок.

Изменено пользователем Isfet

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...