Полная версия этой страницы:
Шина данных и FPGA
hdl_student
Oct 12 2010, 08:11
Доброго дня.
Есть простой и идиотский вопрос: есть 17-битная шина, подключаемая через краевой двухрядный разъём, которую требуется завести в ПЛИС. На разъёме кросс-платы (в которую вставляется мой модуль) шина разведена не по порядку, а как попало: ADDR0 - контакт a10, ADDR1 - b32, ADDR3 - a18 и т.д.
Что следует предпочесть:
- простоту разводки ПП, заведя линии шины на ноги ПЛИС не по порядку
- подключение шины к ногам ПЛИС по порядку (т.е. ADDR0 - вывод номер 118, ADDR1 - 119, ADDR3 - 121 и т.д.)?
Не повредит ли первый вариант (в теории) "скорости" ПЛИС из-за неоптимального place & route?
Заранее признателен.
Александр77
Oct 12 2010, 08:40
Сам стараюсь упорядочивать. Что касается вопроса, то повредить скорее всего может второй вариант - разводка по порядку. Т.к. при этом назначение производится Вами, а не оптимизатором.
С другой стороны, больше чем уверен, длины проводников "непорядочной" разводки, тоже не выдержаны в едином стиле. Тут уже все зависит от скоростей работы.
yuri_d
Oct 12 2010, 09:51
Лучше развести ПП попроще. В CPLD (например Xilinx) проблем быть не должно, так как там любой вывод подключается к любому макроблоку без дополнительных задержек. В FPGA как правило проблем тоже нет, если не использовать их на максимальной скорости.
yakub_EZ
Oct 12 2010, 10:48
Сдаётся мне, что в "бантом" завязанной семнадцатибитной шине временных неравномерностей по длинам респространения будет больше, чем внутри крохотного кристалла
bogaev_roman
Oct 12 2010, 11:02
На киких частотах данные передаются и какая именно ПЛИС?
Если частоты низкие - то разброс на линиях будет гораздо выше, чем на ногах.
Если Вы используете какой-нить lvds-стандарт (при которых разброс вообще минимален на линиях) на частотах 500МГц или 1000МГц, то разброс будет выше на ногах, хотя все равно на ПЛИС есть разные специальные фишки для минимизации этого разброса при дальнейшей обработке. Все зависит от конкретной ПЛИС.
hdl_student
Oct 12 2010, 11:46
Александр77, yuri_d, yakub_EZ, bogaev_roman:
Большое спасибо за оперативные ответы.
Шина местная: выход с ПЛИС соседнего модуля, 14 разрядов данных, CLK и два одиночных сигнала. Обмен по сигналу CLK в 40МГц. ПЛИС - ACEX EP1K100QI.
bogaev_roman
Oct 12 2010, 11:58
Цитата(hdl_student @ Oct 12 2010, 15:46)

Александр77, yuri_d, yakub_EZ, bogaev_roman:
Большое спасибо за оперативные ответы.
Шина местная: выход с ПЛИС соседнего модуля, 14 разрядов данных, CLK и два одиночных сигнала. Обмен по сигналу CLK в 40МГц. ПЛИС - ACEX EP1K100QI.
Частота низкая, проблем быть не должно. Если есть возможность, то сдвигайте входную синхронизирующую частоту на pll на четверть периода относительно данных - работает железно и стабильно при условии, что все временные ограничения выполнились.
hdl_student
Oct 12 2010, 12:44
bogaev_roman:
Спасибо за подробный ответ.
Появился ещё один вопрос: как нужно оптимизировать (в общем случае) рисунок шины на печати? Можно ли допускать прямые углы? Стоит ли уменьшать количество сгибов? На каких частотах начинает сказываться разная длина линий шины?
На моём модуле будет довольно плотная печать, так что приходиться "прижимать" шину к элементам, на 40МГц, полагаю, сойдёт, а если понадобится увеличить частоту?
yakub_EZ
Oct 12 2010, 13:04
Скорость распространения сигнала в идеале 3 нс/метр (скорость света), для плат или коаксиального кабеля она ниже, т.е. время больше - 4,5 - 6 нс/метр. Получаем, что для получения задержки в 1 нс необходимо 17 сантиметров платы. Для сдвига 40 МГц - ового меандра на 90 градусов по фазе необходимо отставание 12,5 наносекунд, т.е. 2 метра. Т.е. на этих частотах можно пренебречь. А вот для 400 МГц это уже 20 см и тут приходится задумываться о согласовании длин хотя бы до сантиметров
bogaev_roman
Oct 12 2010, 13:27
Цитата(yakub_EZ @ Oct 12 2010, 17:04)

Т.е. на этих частотах можно пренебречь. А вот для 400 МГц это уже 20 см и тут приходится задумываться о согласовании длин хотя бы до сантиметров
Полностью поддерживаю. Вообще есть специальные проги, которые рассчитывают разброс длинн линий и выдают максимальные задержки, выдают минимальные расстояния между проводниками, расчет взаимных помех и т.д.
hdl_student
Oct 13 2010, 06:23
Огромное спасибо за подробные ответы!
Цитата(bogaev_roman @ Oct 12 2010, 17:27)

Вообще есть специальные проги, которые рассчитывают разброс длинн линий и выдают максимальные задержки, выдают минимальные расстояния между проводниками, расчет взаимных помех и т.д.
Стало интересно, что это за проги? Или имеется ввиду HL?
trigger1985
Feb 7 2011, 22:15
Цитата(Джин @ Oct 17 2010, 22:30)

Стало интересно, что это за проги? Или имеется ввиду HL?
Если еще актуально
http://saturnpcb.com/pcb_toolkit.htm
st232bd
Feb 8 2011, 15:32
Думаю в данном случае главное как земля разведена. Если возвратные токи больших зигзагов от проводников не имеют, проблем быть не должно.
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.