|
Сериализация большого количества параллельных данных., Как правильно сделать? |
|
|
|
Mar 28 2013, 11:36
|
Местный
  
Группа: Свой
Сообщений: 310
Регистрация: 28-01-13
Из: Лондон
Пользователь №: 75 384

|
Есть несколько тысяч однобитных сигналов. В каждом цикле любое их количество может быть активным. Надо последовательно перебрать все входы, и при "1" на входе, на выходе надо подать номер входящего сигнала и строб DATARDY. И так пока все активные сигналы не будут переданы. После чего выставляем строб готовности, защелкиваем новое состояние входов и повторяем процесс. Такой себе демультиплексер, только с поддержкой множественных активных сигналов. Ситуация осложняется тем, что в среднем активных сигналов будет меньше 10% от общего количества. Поэтому было бы хорошо сократить число циклов, необходимых для просмотра всех входов. Мои идеи:
- Машиной состояний пройтись в цикле по всем входам. Никакой оптимизации, количество циклов всегда постоянно и не зависит от входов.
- при помощи конструктива for i in 0 to n_inputs loop пройтись только по активным входам. К сожалению, я сомневаюсь что на несколько тысяч входных сигналов цикл сгенерирует хороший дизайн.
- При помощи OR построить что-то типа бинарного дерева поиска, перебирая только активные ветви. Ускорение перебора увеличением сложности. К тому же хорошо будет работать только на сгруппированых сигналах, имея "010101010" на входах никакого ускорения не получится.
- Спросить опытных людей, как бы они решили такую проблему. Цель синтеза Spartan 6.
|
|
|
|
|
 |
Ответов
|
Mar 29 2013, 11:32
|
Гуру
     
Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369

|
Цитата(count_enable @ Mar 29 2013, 15:09)  Не совсем понял, как здесь можно использовать САМ. В САМ записываются биты. Если в САМ не 0, то читается адрес ненулевой строки. Аналогично работают поисковые таблицы в свитчах.
--------------------
www.iosifk.narod.ru
|
|
|
|
Сообщений в этой теме
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 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
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|