Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Virtex-6 PCIe + разные пины GTX трансиверов
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Системы на ПЛИС - System on a Programmable Chip (SoPC)
syoma
Привет.
Не знаю куда лучше написать - здесь или в PCIe интерфейсы.

Короче такой вопрос - в Virtеx-6 запрограммирована родная корка PCIe x1, которая сидит на определенном GTX трансивере, допустим, с названием A. Все работает. Вопрос в том, можно ли зделать так, чтобы данная корка могла переключаться на GTX трансивер В, так как в определенных вариантах исполнения платы PCIe приходит именно на него? Переключение должно быть на этапе инициализации, в зависимости от параметра, например. Далее в процессе работы ничего больше не меняется до ребута.
В настоящий момент решаем все двумя разными прошивками для варианта A и B с двумя разными констрейн-файлами. Но это все увеличивает и без того немалое время разводки проекта в двое. Было бы неплохо, если бы между GTX трансивером и коркой можно было бы поставить какой-то мультиплексор.

В документации ничего похожего не нашел. Это возможно?
des00
собрать прошивку с двумя трансиверами и мультипликсировать на уровне потоков данных ?
syoma
Цитата(des00 @ Nov 17 2014, 19:35) *
собрать прошивку с двумя трансиверами и мультипликсировать на уровне потоков данных ?


Ну что-то типа такого. Только как это сделать?
des00
Цитата(syoma @ Nov 18 2014, 14:55) *
Ну что-то типа такого. Только как это сделать?

в смысле? Ставите 2 инстанса + логику мультиплексирования ?
syoma
Цитата
+ логику мультиплексирования ?

Вроде как с этим будут проблеммы - даже без логики оно по таймингам еле пролазит. Может есть пример, как это правильно сделать?
Bad0512
Цитата(syoma @ Nov 18 2014, 18:00) *
Вроде как с этим будут проблеммы - даже без логики оно по таймингам еле пролазит. Может есть пример, как это правильно сделать?

Можно во флэшку положить два битстрима по разным адресам и грузить тот, что нужно, выбирая старший адрес на флэшке. Этот выбор можно записать в энергонезависимую память если нужно чтобы
в следующий раз грузилась нужная прошивка, а не прошивка по умолчанию.

З Ы Два инстанса с мультиплексором ИМХО не лучший выбор с точки зрения потребления, тепла и FCC control. Хотя, наверное при желании можно трансиверы отправить в power down mode.
des00
Цитата(syoma @ Nov 18 2014, 20:00) *
Вроде как с этим будут проблеммы - даже без логики оно по таймингам еле пролазит. Может есть пример, как это правильно сделать?

хммм. либо туплю, либо одно из двух. есть 2 корки PCIe, у них есть внешние интерфейсы, для работы с остальной логикой. В чем проблема мультиплексировать интерфейсы?

syoma
В том то и дело, что я не хочу два битстрима иметь. Я хочу один.
Цитата(des00 @ Nov 19 2014, 08:27) *
хммм. либо туплю, либо одно из двух. есть 2 корки PCIe, у них есть внешние интерфейсы, для работы с остальной логикой. В чем проблема мультиплексировать интерфейсы?

Эээ. Тут вот как. PCIe корки то как раз две, и они обе используются - только одна постоянно на одном и том-же GTX трансивере сидит, а вторая должна подключаться к 2-ум разным. Т.е мультиплексировать надо между PCIe коркой и GTX трансивером.
des00
Цитата(syoma @ Nov 19 2014, 13:35) *
Эээ. Тут вот как. PCIe корки то как раз две, и они обе используются - только одна постоянно на одном и том-же GTX трансивере сидит, а вторая должна подключаться к 2-ум разным. Т.е мультиплексировать надо между PCIe коркой и GTX трансивером.

Ну 3 корки поставьте, каждая сидит на своем трансивере.
syoma
Цитата(des00 @ Nov 19 2014, 10:00) *
Ну 3 корки поставьте, каждая сидит на своем трансивере.

Насколько я понимаю Virtex-6 - в нашем кристалле возможно иметь только 2 железные PCIe корки. Если бы было 3 - я бы не спрашивал.
Bad0512
Цитата(syoma @ Nov 19 2014, 15:19) *
Насколько я понимаю Virtex-6 - в нашем кристалле возможно иметь только 2 железные PCIe корки. Если бы было 3 - я бы не спрашивал.

Тут вам немного "рукоделья" корячится. Похоже придётся лезть в сорцы корки (если это возможно) и вставлять мультиплексоры между трансиверами и собственно коркой.
Неприятность в том что даже если всё это получится, то при любом апгрейде корки всё придётся повторить по новой.
RobFPGA
Приветствую!

На сколько я помню при генерации PCIe для Virtex6 генерируется врапер для встроенного контроллера PCIe и отдельно сорцы для GTX приемопередатчиков. Так что порукоблудничасть есть чем. Добавить мультиплексоры с одним регистром на выходе для сохранения времянки в PIPE интерфейс между коркой и GTX труда большого не составит - нужно будет только аккуратно просимулировать творение после этого на предмет сохранения функциональности.

Так что не так уж страшен этот черт.. то есть PCIe sm.gif


Успехов! Rob.
Bad0512
Цитата(RobFPGA @ Nov 19 2014, 18:47) *
Приветствую!

На сколько я помню при генерации PCIe для Virtex6 генерируется врапер для встроенного контроллера PCIe и отдельно сорцы для GTX приемопередатчиков. Так что порукоблудничасть есть чем. Добавить мультиплексоры с одним регистром на выходе для сохранения времянки в PIPE интерфейс между коркой и GTX труда большого не составит - нужно будет только аккуратно просимулировать творение после этого на предмет сохранения функциональности.

Так что не так уж страшен этот черт.. то есть PCIe sm.gif


Успехов! Rob.

Там ещё и с мультиплексированием клоков (либо перекладыванием данных через фифошку в другой домен) будет веселуха...
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.