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

 
 
> CDMA-коррелятор, Реализация на ПЛИС
Tausinov
сообщение Oct 19 2013, 08:32
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 135
Регистрация: 19-10-13
Пользователь №: 78 795



Доброго времени суток. По работе возникла следующая проблема. Дали реализованный на TMS алгоритм с целью переноса его на ПЛИС XILINX XC5VSX50T.
Суть в следующем: обрабатываются блоки по 32768 отсчетов; каждый такой блок подвергается некому подобию циклической свертки с ПСП на такое же кол-во отсчетов. Почему подобию? Потому, что выполняется суммирование произведений не всех 32к отсчетов, а каждых 64, затем суммы складываются. Как мне объяснили, это необходимо для борьбы с набегом фазы.
Реализация сдвигового регистра с отводами на такое кол-во отсчетов требует большого объема затрачиваемых ресурсов, поэтому сам циклический сдвиг реализован на блочной памяти. Частоты позволяют повторное использование одних и тех же блоков, поэтому в каждой ячейке памяти хранится одно 512-битное слово. На первой итерации последовательно считываются все 64 таких слова и затем обрабатываются по правилу описанному выше. Кроме того, в специальный регистр заносится предыдущее считанное слово. Т.о. на следующей итерации, которая подразумевает уже циклический сдвиг всей 32к-битной последовательности на 1 бит, выбираются 512-1 бит текущего слова и 1 бит хранящегося в регистре. Для получения нужного блока из 512 бит требуется разместить "крест-накрест". В итоге на эту операцию уходит такое кол-во LUTs, что их просто не хватает.
Если кто-то сталкивался с чем-то подобным или знает, как этого можно избежать, пожалуйста, отпишитесь. Заранее извиняюсь за возможно сбивчивое или неточное описание.

Сообщение отредактировал des00 - Oct 20 2013, 11:44
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Corner
сообщение Oct 23 2013, 17:33
Сообщение #2


Профессионал
*****

Группа: Участник
Сообщений: 1 072
Регистрация: 11-12-12
Пользователь №: 74 815



Для начала нужно два блока памяти: в один по кольцу пишутся данные в другом ROM с константами. Вам придется сделать их 8-ми ассоциативными. И на второе автомат выборки и перемножения с накоплением. Вроде все.
Go to the top of the page
 
+Quote Post
Tausinov
сообщение Oct 24 2013, 08:30
Сообщение #3


Частый гость
**

Группа: Участник
Сообщений: 135
Регистрация: 19-10-13
Пользователь №: 78 795



Цитата(Corner @ Oct 23 2013, 21:33) *
Для начала нужно два блока памяти: в один по кольцу пишутся данные в другом ROM с константами. Вам придется сделать их 8-ми ассоциативными. И на второе автомат выборки и перемножения с накоплением. Вроде все.

Можно чуть подробнее, не очень понятна идея.
Go to the top of the page
 
+Quote Post
ilyge
сообщение Nov 1 2013, 16:21
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 19
Регистрация: 23-06-05
Пользователь №: 6 251



Цитата(Tausinov @ Oct 24 2013, 12:30) *
Можно чуть подробнее, не очень понятна идея.


Corner все правильно советует sm.gif
Через двух портовую память. Поток входных данных пишется циклически через один порт, а через второй порт читаете по нужным адресам и обрабатываете данные. Если в двух словах. По ресурсам займет копейки.

Сообщение отредактировал ilyge - Nov 1 2013, 16:25
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 21st July 2025 - 15:48
Рейтинг@Mail.ru


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