Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Internal Hi-Z Xilinx 6/7 семейства.
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
count_enable
Задача немного напоминает контроллер прерываний или CAN. Есть Х модулей на общей однобитной шине. В любой момент любое число модулей может выставить высокий уровень (доминант) на шину. Мастер-модуль слушает шину и при доминанте начинает опрос модулей. В состоянии покоя линия находится в низком (рецессивном состоянии). Модули шину не слушают.
ЕМНИП, Hi-Z тристейты разрешены только на пинах, а не на внутренних соединениях. Возможно ли сделать такую шину? Подключить Х линий к мастеру или мультиплексер с последовательным опросом не предлагать, интересует именно шина, чтобы был минимум соединений типа "1 к Х".
alexadmin
Цитата(count_enable @ Feb 19 2016, 15:46) *
ЕМНИП, Hi-Z тристейты разрешены только на пинах, а не на внутренних соединениях. Возможно ли сделать такую шину? Подключить Х линий к мастеру или мультиплексер с последовательным опросом не предлагать, интересует именно шина, чтобы был минимум соединений типа "1 к Х".


Можно взять кристалл в котором есть внутренние z-буферы. Только, боюсь, они еще в прошлом веке закончились...
RobFPGA
Приветствую!

Цитата(count_enable @ Feb 19 2016, 14:46) *
ЕМНИП, Hi-Z тристейты разрешены только на пинах, а не на внутренних соединениях. Возможно ли сделать такую шину? Подключить Х линий к мастеру или мультиплексер с последовательным опросом не предлагать, интересует именно шина, чтобы был минимум соединений типа "1 к Х".


Так и делайте - для verilog внутренние dst=oe ? src : 1'bz синтезатор превращает в комбинацию (oe && src) и затем все что на этой шине собирает с помощью OR;

Проверить это в синтезаторе 5 минут.
P.S. да еще использовать для соединения не wire а тип tri0 или tri1 если конечно синтезатор поддерживает;

Успехов! Rob.
count_enable
Вы правы, синтезатор (Xilinx ISE) это синтезирует без замечаний. Но сможет ли внутренний интерконнект реализовать шину где может быть активно 50-100 драйверов "1" одновременно? Какой документ описывает использование внутреннего Hi-Z, можно ли высокоимпендансное состояние отличить от нуля на приёмнике? Мне достаточно просто детектировать "1", но хочу разобраться для себя. Почему тогда учат что Hi-Z внутри чипа крайне нежелательны? С INOUT понятно, но у меня всё однонаправленное.

Добавлено:
Ещё о использовании ИЛИ подумалось. Если у нас будет несколько сот модулей на линии, то такой гигантский OR будет весьма неэкономичен. А дерево из двухпортовых ИЛИ будет иметь отвратительные тайминги. Поэтому привлекает идея именно общей шины. Но похоже, в ПЛИС такое не сделать.
Maverick
Цитата(count_enable @ Feb 19 2016, 15:37) *

Чем Вас стандартные шины не устраивают? Например Avalon Memory-Mapped Interface или WISHBONE и др.
count_enable
Да модули там маленькие, один DSP+BRAM, и обвязка на 3-5 CLB. К ним ставить AXI (я Xilinxист) это из пушки по воробьям. У мастера, который слушает и опрашивает, будет AXI.
RobFPGA
Приветствую!

Цитата(count_enable @ Feb 19 2016, 15:37) *
Добавлено:
...
Но сможет ли внутренний интерконнект реализовать шину где может быть активно 50-100 драйверов
...
Ещё о использовании ИЛИ подумалось. Если у нас будет несколько сот модулей на линии, то такой гигантский OR будет весьма неэкономичен. А дерево из двухпортовых ИЛИ будет иметь отвратительные тайминги. Поэтому привлекает идея именно общей шины. Но похоже, в ПЛИС такое не сделать.

Да хоть 1000. В любом случае шина внутри FPGA превращается... в элегантные шор... в дерево AND и OR.
Для оптимизации синтезатор может (если захочет) реализовать это растение на базе LUT и carry. Ну и никто не мешает поставить пару регистров на входе мастера - синтезатор может (опят же при желании) "забить" их с помощью retiming внутрь дерева krapula.gif .

Успехов! Rob.
Самурай
Цитата(count_enable @ Feb 19 2016, 17:37) *
Вы правы, синтезатор (Xilinx ISE) это синтезирует без замечаний. Но сможет ли внутренний интерконнект реализовать шину где может быть активно 50-100 драйверов "1" одновременно? Какой документ описывает использование внутреннего Hi-Z, можно ли высокоимпендансное состояние отличить от нуля на приёмнике? Мне достаточно просто детектировать "1", но хочу разобраться для себя. Почему тогда учат что Hi-Z внутри чипа крайне нежелательны? С INOUT понятно, но у меня всё однонаправленное.

Добавлено:
Ещё о использовании ИЛИ подумалось. Если у нас будет несколько сот модулей на линии, то такой гигантский OR будет весьма неэкономичен. А дерево из двухпортовых ИЛИ будет иметь отвратительные тайминги. Поэтому привлекает идея именно общей шины. Но похоже, в ПЛИС такое не сделать.



Неужели так сложно осилить даташит на используемое семейство и убедиться, что никакого «внутреннего Hi-Z» давным-давно в ПЛИС-ах не делают? И тем более нет документов на такую ересь. Вот и выше коллеги Вам уже пару раз про это намекнули.

И по поводу экономичности «гигантского двухпортового ИЛИ» с отвратительными таймингами это Вы тоже о чем-то сильно о своем… На все эти ваши 100 драйверов нужно всего 3 слоя логики и 21 6-и входовых LUT-в, думаю в 10нс задержки уложитесь, особенно с правильными констрейнами. А если и это много, тогда либо конвейеризация, либо пересмотр всей концепции консерватории.
count_enable
Цитата(Самурай @ Feb 19 2016, 18:34) *
Неужели так сложно осилить даташит на используемое семейство и убедиться, что никакого «внутреннего Hi-Z» давным-давно в ПЛИС-ах не делают? И тем более нет документов на такую ересь. Вот и выше коллеги Вам уже пару раз про это намекнули.
Так я ведь и не спорю, даже написал "ЕМНИП Hi-Z тристейты разрешены только на пинах, а не на внутренних соединениях". Но ведь делают многоабонентные шины. У меня возникла красивая концепция общего провода, я поинтересовался возможностью реализации. И с задержками в дереве ИЛИ скорее всего вы правы, тем более что у меня всё синхронное.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.