Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Проблемы конфигурации ПЛИС Altera
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
sergunas
Имеются две ПЛИС Altera (Stratix III), соединенных конфигурационной цепочкой (nCEO первой заведён на nCE второй). Параллельная конфигурационная схема (FPP), Altera Megafunction PFL в MAXII.

Первая ПЛИС стабильно успешно конфигурируется, вторая ПЛИС - нет. В процессе конфигурации вторая ПЛИС (ближе к концу) выставляет nSTATUS в низкий уровень.

Смотрю осциллографом. Засинхронизировавшись по отрицательному фронту выходного сигнала nCEO первой ПЛИС, наблюдаю, что этот сигнал падает в низкий уровень после положительного фронта сигнала dclk, причём за два такта до конца конфигруационных данных, относящихся к первой ПЛИС. То есть получается, что во вторую ПЛИС в самом начале записываются два лишних байта ("FF" и "FF")!
Это так и должно быть, или я чего-то не понимаю?
sazh
Цитата(sergunas @ May 5 2010, 13:48) *
Имеются две ПЛИС Altera (Stratix III), соединенных конфигурационной цепочкой (nCEO первой заведён на nCE второй).


Двух плис у меня не было, но может дело в том как Вы из двух проектов один конфигурационный файл для 2 плис создаете.
DmitryR
А вы nCEO и INIT_DONE не перепутали? INIT_DONE как раз за два такта до конца кофигурации уходит.
sergunas
Цитата(DmitryR @ May 5 2010, 16:07) *
А вы nCEO и INIT_DONE не перепутали? INIT_DONE как раз за два такта до конца кофигурации уходит.

да вроде нет, не перепутал
INIT_DONE, если используется, то падает практически в самом начале конфигурации.
nCEO вместе с CONF_DONE переключаются за два такта до конца конфигурации (хотя согласно datasheet CONF_DONE за ОДИН такт должен устанавливаться: "The CONF_DONE pin goes high one byte early in parallel configuration (FPP) modes.")



Цитата(sazh @ May 5 2010, 15:47) *
Двух плис у меня не было, но может дело в том как Вы из двух проектов один конфигурационный файл для 2 плис создаете.

Да вроде нет, делаю pof, включающий в себя два разных sof-файла: сначало идёт sof для первой ПЛИС, затем - для второй.

Более того, скажу, что конфигурация второй ПЛИС также проходит успешно ПРИ УСЛОВИИ, если на линию dclk второй ПЛИС (линии dclk у ПЛИС разные физически, но логика MAXII дублиукет на них один и тот же сигнал) поместить щуп осциллографа. Как это работает ума не приложу...

Щуп Agilent 10073C (10:1 500 MHz passive probe)

Характеристики щупа:
Bandwidth 500 MHz
Risetime (calculated) < 700 ps
Attenuation ratio 10:1
Input resistance 2.2 MΩ
Input capacitance Approx 12 pF
Compensation range 6 - 15 pF
Kuzmi4
2 sergunas
навскидку можно предположить что вы вносите ёмкость шупом, у вас затягивается фронт одно го клока и они согласуются..
Видимо клоки не совсем синхронно выходят с MAXII..
sergunas
Цитата(Kuzmi4 @ May 5 2010, 17:02) *
2 sergunas
навскидку можно предположить что вы вносите ёмкость шупом, у вас затягивается фронт одно го клока и они согласуются..
Видимо клоки не совсем синхронно выходят с MAXII..

да, спасибо, это хоть какая-то версия.
Шина данных у второй ПЛИС тоже своя и тоже дублирует первую. Понятно, что в MAXII всё может быть разведено для 1-й и 2-й ПЛИС с различными задержками, но данные на шине data[7..0] сменяются внути MAXII по отрицательному фронту dclk, поэтому положительный фронт dclk ровно по центру данных. Неужели при частоте dclk 50МГц (т.е. периоде 20нс) может быть сдвиг данных относительно фронта dclk на 10нс?
DmitryR
Если выходные триггеры не попали в лапы может быть что угодно. Но скорее всего конечно съехал dclk.
sergunas
Ещё одна доп. информация (прошу прощения, что сразу все свои особенности конфигурационной схемы не освящаю, потому как не знаешь что в действительности является критичным). Вторая ПЛИС на самом деле это 4 ПЛИС "в параллель" (полностью одинаковой схемы включения). Длина линий dclk и data[7..0] в диапазоне 230-270мм. В даташите читаем:
"The configuration signals may require buffering to ensure signal integrity and prevent clock skew problems. Ensure that the DCLK and DATA lines are buffered for every fourth device."
Может 4 ПЛИС с учетом большой длины линий всё же играют роковую роль, и драйверу (выходу MAXII) не хватает мощности, и необходим внешний буферный повторитель? Как бы во всём этом убедиться?

Цитата(DmitryR @ May 5 2010, 18:08) *
Если выходные триггеры не попали в лапы может быть что угодно. Но скорее всего конечно съехал dclk.

прошу прощения, а что за лапы?
dvladim
Цитата(sergunas @ May 5 2010, 14:48) *
То есть получается, что во вторую ПЛИС в самом начале записываются два лишних байта ("FF" и "FF")!
Это так и должно быть, или я чего-то не понимаю?

Да, это нормально. Прошивки начинаются и оканчиваются единицами. Это обычное заполнение. Их количество не важно.

Цитата(sergunas @ May 5 2010, 16:47) *
Более того, скажу, что конфигурация второй ПЛИС также проходит успешно ПРИ УСЛОВИИ, если на линию dclk второй ПЛИС (линии dclk у ПЛИС разные физически, но логика MAXII дублиукет на них один и тот же сигнал) поместить щуп осциллографа. Как это работает ума не приложу...

Вы вносите емкость и заваливаете фронты. Тут проблема в отражении, особенно учитывая, что у вас вторыми стоят аж 4 схемы. Нужно согласование линии - сопротивление последовательно с выходом или ток выхода уменьшите, ну или просто поставьте 50-100 пФ.
ViKo
100 Ом последовательно на выход MAXII, который выдает такты для "второй" ПЛИС.
И для первой ПЛИС не помешает.
sergunas
Цитата(dvladim @ May 6 2010, 01:45) *
Да, это нормально. Прошивки начинаются и оканчиваются единицами. Это обычное заполнение. Их количество не важно.
Вот за эту информацию большое спасибо, у меня тоже сложилось такое впечатление, иначе трудно объяснить как всё работает. Интересно, что нигде у Альтеры в документации об этом ничего не встречается.

Цитата(dvladim @ May 6 2010, 01:45) *
Вы вносите емкость и заваливаете фронты. Тут проблема в отражении, особенно учитывая, что у вас вторыми стоят аж 4 схемы.
Нужно согласование линии - сопротивление последовательно с выходом или ток выхода уменьшите, ну или просто поставьте 50-100 пФ.
Да, да, я уже смоделировал свою длинную линию dclk в AWR, вижу как всё плохо, кстати очень похоже на картинку осцилографа.
Правильно ли я понимаю, что уменьшение тока драйвера равносильно увеличению последовательного сопротивления на выходе dclk? Сейчас стоит 56 Ом. Имеет смысл увеличить?

Вообще, вопрос такой, как в сложившейся ситуации правильно поступить?
1) любым способом (увеличением посл. сопротивления, умен. вых тока, добавление емкости) завалить фронты dclk и устранить отражения в линии (есть подозрения, что при отражениях могут быть ДВОЙНЫЕ ФРОНТЫ). Насколько это будет надежно по температуре и другим внешним факторам?
2) уменьшать частоту dclk (рассчитывал на 50МГц)?
DmitryR
Чтобы это было надежно, это надо переразвести, потому что если у вас звенит до двойного фронта - это будет работать косо на любой частоте. Я так думаю.
Sergey'F
Может, попробовать включить низкую Current Strength или даже Slow Slew Rate для выходов MAXII, связанных с конфигурацией ПЛИС (dclk, data,...)? Так как времянка при включении второй опции может сильно измениться, можно при необходимости понизить частоту dclk.
dvladim
Цитата(sergunas @ May 6 2010, 17:16) *
Вообще, вопрос такой, как в сложившейся ситуации правильно поступить?
1) любым способом (увеличением посл. сопротивления, умен. вых тока, добавление емкости) завалить фронты dclk и устранить отражения в линии (есть подозрения, что при отражениях могут быть ДВОЙНЫЕ ФРОНТЫ). Насколько это будет надежно по температуре и другим внешним факторам?
2) уменьшать частоту dclk (рассчитывал на 50МГц)?

Вам нужно убрать отражения в линии. Последовательное сопротивление всегда поможет, но может ограничить максимальную частоту. В первую очередь поиграйтесь с Slow Slew Rate и Current Strength. Надежность оценивайте моделированием или осциллографом.
sergunas
Спасибо, за ответы.
Переразводить, конечно, уже поздно, будем заваливать фронты и снижать частоту.
Опцию Slow Slew Rate пробовал включать, сигнала на dclk вообще не увидел, наверное частоту надо снижать.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.