|
Сериализация большого количества параллельных данных., Как правильно сделать? |
|
|
|
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.
|
|
|
|
|
 |
Сообщений в этой теме
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 S_Hawk Если есть, допустим, 100 тактов, разбиваем весь вх... Apr 8 2013, 19:21 winipuh А если так.
Использовать блочную память в режиме R... Apr 8 2013, 19:50
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|