Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Дересеализация потока с АЦП на Spartan 6
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
Art55555
Теребуется принять поток данных с АЦП LTC2195. Частота 100 МГц, режим DDR 4 lane.
4 LVDS - линии по 2 фронтам, клок 100.
Приём осуществляю по схеме, указанной в XAPP1064. Вариант первый - с использованием BUFIO2. Всё как по учебнику. Клок защёлкиваем и подстраиваем в 1 блоке (верхний ресунок на 5 странице ксапа), потом данную частоту используем для приёма данных (нижний рисунок). Основные элементы в блоках IODELAY2, ISERDES2, BUFIO2.
Для чистоты эксперимента взял даже исходный код из данного руководства. (Собственный написаный код привёл к тем же ошибкам)

На уровне MAP выдаются ошибки:
Place:1171 и Place:1286.

В UCF задавал только параметны входных ножек и их стандарт. Более никаких настроек не делал.

Встречалась ли у кого такая проблема и как вы её решали?
AJIEKCEu
1. Вы бы хоть ошибки написали.
2. А вы читали, что в ошибках пишут? Пишут там: "The BUFIO instance <blablabla> needs to have all of its IOB loads placed into its same half IO bank".
В связи с этим вопрос - у вас все ноги, которые от BUFIO тактируются находятся в одной половинке банка?
Art55555
Ошибки следующие:
ERROR:Place:1286 - Placer has detected a BUFIO2 component <
adc_in_inst/inst_clkin/bufio2_inst > driving an IODELAY component <
adc_in_inst/inst_datain/loop0[2].iodelay_s > (on pin < IOCLK1 >) which does
not have an associated IOB component. Automatic clock placement of IODELAY
components that do not have an associated IOB component is not supported.
Please LOC the BUFIO2 and the IODELAY to the same half-bank and re-run
placer.

ERROR:Place:1171 - The BUFIO instance <adc_in_inst/inst_clkin/bufio2_inst> needs
to have all of its IOB loads placed into its same half IO bank. However, the
user has locked it to site <BUFIO2_X1Y9>, and locked its IOB load <out1d_n>
to site <PAD426>, which is in a different half IO bank. Please check
user-specified LOCATION constraints and make sure they do not violate this
rule.
AJIEKCEu
Цитата(Art55555 @ Feb 1 2013, 10:29) *
Ошибки следующие:

А на вопрос:
Цитата
В связи с этим вопрос - у вас все ноги, которые от BUFIO тактируются находятся в одной половинке банка?

ответ будет?

И еще, по поводу первой ошибки - такое ощущение, что ему надо вручную задать расположение BUFIO2 в ПЛИС (добавить констрейнт размещения в ucf).
Bad0512
Цитата(Art55555 @ Jan 31 2013, 21:23) *
Теребуется принять поток данных с АЦП LTC2195. Частота 100 МГц, режим DDR 4 lane.
4 LVDS - линии по 2 фронтам, клок 100.
Приём осуществляю по схеме, указанной в XAPP1064. Вариант первый - с использованием BUFIO2. Всё как по учебнику. Клок защёлкиваем и подстраиваем в 1 блоке (верхний ресунок на 5 странице ксапа), потом данную частоту используем для приёма данных (нижний рисунок). Основные элементы в блоках IODELAY2, ISERDES2, BUFIO2.
Для чистоты эксперимента взял даже исходный код из данного руководства. (Собственный написаный код привёл к тем же ошибкам)

На уровне MAP выдаются ошибки:
Place:1171 и Place:1286.

В UCF задавал только параметны входных ножек и их стандарт. Более никаких настроек не делал.

Встречалась ли у кого такая проблема и как вы её решали?

Для такой частоты можно не заморачиваться с IODELAY. Убедитесь что все ваши ноги данных принадлежат одному банку. Если это не так - используйте для каждого банка свой BUFIO2.
Вообще полезно в начале почитать про клоковые ресурсы Спартана6 - тогда многие вопросы сами собой отпадут.

З Ы По собственным ощущениям - ISE весьма капиризен и туп при разводке клоковых ресурсов, поэтому полезно эти клоковые ресурсы лочить самостоятельно чтобы у ISE не было шансов облажаться в разводке.
dmitry-tomsk
Цитата(Art55555 @ Jan 31 2013, 17:23) *
Теребуется принять поток данных с АЦП LTC2195. Частота 100 МГц, режим DDR 4 lane.
4 LVDS - линии по 2 фронтам, клок 100.
Приём осуществляю по схеме, указанной в XAPP1064. Вариант первый - с использованием BUFIO2. Всё как по учебнику. Клок защёлкиваем и подстраиваем в 1 блоке (верхний ресунок на 5 странице ксапа), потом данную частоту используем для приёма данных (нижний рисунок). Основные элементы в блоках IODELAY2, ISERDES2, BUFIO2.
Для чистоты эксперимента взял даже исходный код из данного руководства. (Собственный написаный код привёл к тем же ошибкам)

На уровне MAP выдаются ошибки:
Place:1171 и Place:1286.

В UCF задавал только параметны входных ножек и их стандарт. Более никаких настроек не делал.

Встречалась ли у кого такая проблема и как вы её решали?


Прежде чем пользовать индусские xapp почитайте errata и answer database на iodelay2 spartan-6. Там много сюрпризов, особенно касательно фазового детектора. А в целом spartan-6 неплохо работает и с двумя линиями DDR этого ацп (800 мбит в секунду, рекомендован даташитом как менее энергопотребляемый), запас по фазе очень неплохой. Вот только фазовый детектор придётся не пользовать, а настраивать задержку вручную (ацп для этого имеет test pattern).

Как подключите, поделитесь какой у Вас уровень грамоник получился.
Art55555
Цитата(AJIEKCEu @ Feb 1 2013, 11:05) *
А на вопрос:

ответ будет?

И еще, по поводу первой ошибки - такое ощущение, что ему надо вручную задать расположение BUFIO2 в ПЛИС (добавить констрейнт размещения в ucf).


Ситуация следующая. После множества исканий и проб, решили попробовать построить систему с помощью Select IO Wizard. В принципе, эта штука делает тоже самое (объединяет IODELAY2 и SERDES с необходимыми параметрами такта, десериализации и т.д.). Выдаётся таже ошибка:

ERROR:Place:1171 - The BUFIO instance <x_AD2195/bufio2_inv_inst> needs to have
all of its IOB loads placed into its same half IO bank. However, the user has
locked it to site <BUFIO2_X1Y8>, and locked its IOB load <out1d_p> to site
<PAD425>, which is in a different half IO bank. Please check user-specified
LOCATION constraints and make sure they do not violate this rule.


Задали ограничение :

INST "x_AD2195/bufio2_inv_inst" LOC = BUFIO2_X1Y8;
#INST "x_AD2195/bufio2_inv_inst" LOC = BUFIO2_X0Y22;

Для реализации схемы были использованы (визардом) компоненты BUFIO2. 2 штуки.

Но!
Сейчас я вижу, что лэйны ацп (a,b,c,d) лежат в одном полубанке (IX1Y8), а сигналы DCO (такт) и FRAME (кадр) лежат в другом полубанке (X0Y22).
Соотвественно, ругается и не хочет проходить мэп.
Что посоветуете делать?

Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.