Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Xilinx GTP Transciever IP Core
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
count_enable
Только начал работать по-серьезному с плис, первый раз работаю с IP Core generator. Хочу сделать симметричный приемопередатчик на Spartan 6, чтобы передавать данные между двумя FPGA.
Сгенерированный проект выглядит так:


В даташите сказано что генерируется к этому еще и тестбенч. Где же он? В топ-модуле есть дженерики EXAMPLE_USE_CHIPSCOPE и EXAMPLE_SIMULATION, но даже установленные в 1 в ISIMе не дают никакого эффекта. Что я должен увидеть?
Как я понял, s6_gtpwizard_v1_11 и есть главный враппер корки, с сигналами к которым я должен подключать свой дизайн.

Простите за нубские вопросы, но больше спросить некого. Есть куча материала по VHDL/Verilog, но по использованию софта и готовых IP-cores ничего другого кроме Xilinxовых пдфок нету. А они не очень понятны, увы.
avesat
Начните с AURORA
http://www.xilinx.com/products/design_reso...ping/aurora.htm
Там есть и примеры, и тестбенч и хорошая документация. Потом если есть желание можно написать что-то свое.
count_enable
К сожалению протокол уже выбран и не мне его менять. Пока что я не могу даже найти тестбенч для голого GTP Transciever Core, хотя в даташите сказано, что сгенерируется.
akorud
Цитата(count_enable @ Apr 29 2013, 12:50) *
К сожалению протокол уже выбран и не мне его менять. Пока что я не могу даже найти тестбенч для голого GTP Transciever Core, хотя в даташите сказано, что сгенерируется.

Поищите в каталоге с сгенерированным IP Core. В той же Aurora он там лежит, просто лежит sm.gif
count_enable
Cпасибо, тестбенч нашелся в s6_gtpwizard_v_1_11\simulation.
Но проблема в другом. В тестбенче есть простой генератор строк для передатчика и компаратор строк для приемника. И переданные данные не сходятся с принятыми вообще никак. Я и менял порядок битов (большой и маленький эндиан), и так, и сяк - в оригинальном тестбенче не сходятся данные и все.
Передаются верно только K-chars "F7". Если передавать сами нули, приходит "2b2b2b2b" для 32-битного слова. Как это расшифровать? В документации ничего не сказано, написано только о порядке передачи байт.
count_enable
Всем привет, это снова я.
Разобрался с симуляцией (неправильные Commas вставлял), не могу загнать в железо. На плате каждый из трансиверов (xc6SLX150T FG484) подключен к sata-коннектору, плата заведомо рабочая т.к. старый код, использующий трансиверы работает.
Соединил 2 трансивера sata-кабелем. Теоретически свободный канал должен гонять запятые. ФАПЧ лочится, проверил выводя PLLLOCK на светодиод.
Ничего не принимаю (и не знаю передаю ли). Как можно проверить сам выход трансивера? Рабочая частота 2.5 Гбпс, под рукой только осциллоскоп на 300 МГц и лог.анализатор на 500.

Немного смущает, что хотя последовательные данные выведены на TXN_OUT и TXP_OUT, в .ucf, сгенерированным IP coregenom нет констрейнов для них.

Что я делаяю не так?
akorud
Цитата(count_enable @ May 15 2013, 17:04) *
Немного смущает, что хотя последовательные данные выведены на TXN_OUT и TXP_OUT, в .ucf, сгенерированным IP coregenom нет констрейнов для них.

В ucf должен быть LOC на сам трансивер, а пины к нему жестко привязаны и изменить нельзя. Можно запустить PlanAhead и посмотреть какой трансивер в итоге используется.
count_enable
Спасибо, с констрейнами разобрался.

Вылез странный косяк с резетом. В дизайне резет при 1 (active high), a на борде резет при 0 (кнопка замыкает на землю). Добавил инвертер перед топ-модулем и начались косяки.
В симуляции не стартует важный сигнал tile0_tx_resetdone, который генерируется трансивером и идет в 1, когда трансивер готов.
Посмотрите на 2 симуляции:

reset_i - это входящий сигнал.
tile0_gtpreset0_in, tile1_gtpreset0_in - это резеты подключенные к трансиверу (который генерирует резеты для остальных).
В первой симуляции, где резет неинвертирован все работает как часы. После 500 нс tile0_tx_resetdone идет в 1 и начинается нормальная передача.

Во втором случае во-первых делается какая-то фигня сначала (после 1 такта сигналы идут в 0) и даже после захвата ФАПЧ tile0_tx_resetdone остается низким - трансивер не стартовал. Но резеты к трансиверу же одинаковы и там, и там!
Проверил, reset_i больше нигде не подключен - только к инвертеру. После загрузки трансивер не стартует.
Плюнул, загрузил с резетом при 1, держа кнопку прижатой - все равно не помогает.

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