реклама на сайте
подробности

 
 
> Сериализация большого количества параллельных данных., Как правильно сделать?
count_enable
сообщение Mar 28 2013, 11:36
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 310
Регистрация: 28-01-13
Из: Лондон
Пользователь №: 75 384



Есть несколько тысяч однобитных сигналов. В каждом цикле любое их количество может быть активным. Надо последовательно перебрать все входы, и при "1" на входе, на выходе надо подать номер входящего сигнала и строб DATARDY. И так пока все активные сигналы не будут переданы. После чего выставляем строб готовности, защелкиваем новое состояние входов и повторяем процесс. Такой себе демультиплексер, только с поддержкой множественных активных сигналов.
Ситуация осложняется тем, что в среднем активных сигналов будет меньше 10% от общего количества. Поэтому было бы хорошо сократить число циклов, необходимых для просмотра всех входов.
Мои идеи:

- Машиной состояний пройтись в цикле по всем входам. Никакой оптимизации, количество циклов всегда постоянно и не зависит от входов.

- при помощи конструктива for i in 0 to n_inputs loop пройтись только по активным входам. К сожалению, я сомневаюсь что на несколько тысяч входных сигналов цикл сгенерирует хороший дизайн.

- При помощи OR построить что-то типа бинарного дерева поиска, перебирая только активные ветви. Ускорение перебора увеличением сложности. К тому же хорошо будет работать только на сгруппированых сигналах, имея "010101010" на входах никакого ускорения не получится.

- Спросить опытных людей, как бы они решили такую проблему. Цель синтеза Spartan 6.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- count_enable   Сериализация большого количества параллельных данных.   Mar 28 2013, 11:36
- - decom   Как вариант комбинация первого и второго. Сгруппир...   Mar 28 2013, 11:54
- - iosifk   Цитата(count_enable @ Mar 28 2013, 15:36)...   Mar 28 2013, 13:23
|- - Maverick   может это поможет.... - возможное решение коммутац...   Mar 28 2013, 14:32
- - count_enable   Это не отдельное устройство, а входящий кодер для ...   Mar 28 2013, 14:47
|- - XVR   Цитата(count_enable @ Mar 28 2013, 18:47)...   Mar 29 2013, 07:30
- - kreakozeablik   Входные данные загружаются в регистр. Затем, пока ...   Mar 28 2013, 15:49
|- - count_enable   Цитата(kreakozeablik @ Mar 28 2013, 18:49...   Mar 28 2013, 20:27
|- - iosifk   Цитата(count_enable @ Mar 29 2013, 00:27)...   Mar 29 2013, 07:36
- - count_enable   "Медленный клок" это 1/100 сек, быстрый ...   Mar 29 2013, 11:09
|- - iosifk   Цитата(count_enable @ Mar 29 2013, 15:09)...   Mar 29 2013, 11:32
|- - XVR   Цитата(count_enable @ Mar 29 2013, 15:09)...   Mar 29 2013, 12:04
- - count_enable   Данные поступают синхронно с "медленным клоко...   Mar 29 2013, 12:27
|- - XVR   Цитата(count_enable @ Mar 29 2013, 16:27)...   Mar 31 2013, 14:11
- - S_Hawk   Если есть, допустим, 100 тактов, разбиваем весь вх...   Apr 8 2013, 19:21
- - winipuh   А если так. Использовать блочную память в режиме R...   Apr 8 2013, 19:50


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 09:56
Рейтинг@Mail.ru


Страница сгенерированна за 0.01386 секунд с 7
ELECTRONIX ©2004-2016