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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Коррелятор, на чем посоветуете?
alexPec
сообщение Aug 16 2013, 08:55
Сообщение #1


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

Группа: Свой
Сообщений: 1 284
Регистрация: 9-04-06
Пользователь №: 15 968



Добрый день всем.

Есть такая задача: с радиоканала поступает цифровой сигнал (100МГц), 1-битный. Нужно его коррелировать с заданным шаблоном (фиксированным). Корреляцию думаю делать простым xor-ом, коррелировать надо 500 бит, которые будут сидеть в большом сдвиговом регистре и с каждым отсчетом пополняться новым битом. Выдавать макс. значение коррелятора за какой-то промежуток времени, например через последовательную шину. Потом процессор сбрасывает макс. значение и снова ждет какое-то время, снова читает макс. значение. Сам коррелятор должен влезть в 5M570Z, например. Но него большой корпус. Надо совсем мизерный, тем более ног наружу то не надо много - посл. шина и вход коррелятора, вход сброса, тактовый вход. Так вот получаются следующие требования:

- порядка 550-600 триггеров
- маленький (очень) корпус
- при отключенном тактовом входе потребление порядка десятков микроампер - критичный параметр
- по возможности стоимость низкая

Вопрос к сообществу: возможно ли такое и на чем? Ориентируюсь на CPLD, но может кто предложит красивое решение? Рядом стоящий процессор слабенький, им такое не провернуть. CPLD предполагается как акселератор функции корреляции.
Go to the top of the page
 
+Quote Post
DASM
сообщение Aug 16 2013, 13:05
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 3 644
Регистрация: 28-05-05
Пользователь №: 5 493



AGLN020 http://www.microsemi.com/products/fpga-soc...#product-tables смотрели ?
Go to the top of the page
 
+Quote Post
Maverick
сообщение Aug 16 2013, 13:30
Сообщение #3


я только учусь...
******

Группа: Модераторы
Сообщений: 3 447
Регистрация: 29-01-07
Из: Украина
Пользователь №: 24 839



Цитата(alexPec @ Aug 16 2013, 11:55) *
Добрый день всем.
Вопрос к сообществу: возможно ли такое и на чем? Ориентируюсь на CPLD, но может кто предложит красивое решение? Рядом стоящий процессор слабенький, им такое не провернуть. CPLD предполагается как акселератор функции корреляции.

посмотрите еще это


--------------------
If it doesn't work in simulation, it won't work on the board.

"Ты живешь в своих поступках, а не в теле. Ты — это твои действия, и нет другого тебя" Антуан де Сент-Экзюпери повесть "Маленький принц"
Go to the top of the page
 
+Quote Post
Timmy
сообщение Aug 16 2013, 13:35
Сообщение #4


Знающий
****

Группа: Участник
Сообщений: 835
Регистрация: 9-08-08
Из: Санкт-Петербург
Пользователь №: 39 515



Цитата(DASM @ Aug 16 2013, 17:05) *

Там чипы нужного объёма не рекомендуются для новых разработок. Можно ещё взглянуть на ICE40, те к тому же самые дешёвые. Идеально, наверное, было бы ICE65(ниже скорость, но меньше жрут в статике) но Латтисы их купили и сняли с производства angry.gif.
Go to the top of the page
 
+Quote Post
DASM
сообщение Aug 16 2013, 13:54
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 3 644
Регистрация: 28-05-05
Пользователь №: 5 493



Цитата(Timmy @ Aug 16 2013, 17:35) *
Там чипы нужного объёма не рекомендуются для новых разработок. Можно ещё взглянуть на ICE40, те к тому же самые дешёвые. Идеально, наверное, было бы ICE65(ниже скорость, но меньше жрут в статике) но Латтисы их купили и сняли с производства angry.gif.

AGLN060 без Z вполне даже рекомедуется - 5х5 мм
Go to the top of the page
 
+Quote Post
alexPec
сообщение Aug 16 2013, 16:59
Сообщение #6


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

Группа: Свой
Сообщений: 1 284
Регистрация: 9-04-06
Пользователь №: 15 968



Всем спасибо огромное!
Действительно помогли!

AGLN060 - да, вкусная штука, но уже дороговата для проекта, на диджикее смотрел-порядка 8-10$
Идеально бы AGLN030Z - так собаки сняли...

LCMXO2-1200ZE-1UWG25ITR50 - камень огонь! На первый взгляд идеально, 2.5x2.5 выводов 19 - супер, цена вроде 4-5$, посмотрю повнимательнее

ICE40LP1K- тоже вроде ничего, стоит еще меньше!

Кто с ними имел дело, сколько можно туда триггеров столкать? Ато LUT у каждого производителя свой... На какой частоте запустить можно сдвиговый регистр на 500 триггеров?

PS В ICE40LP1K еще и ram есть на 64 кбит! Так-так, будем смотреть еще внимательнее... ))
Go to the top of the page
 
+Quote Post
Dr.Alex
сообщение Aug 16 2013, 19:08
Сообщение #7


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

Группа: Свой
Сообщений: 1 386
Регистрация: 5-04-05
Из: моська, RF
Пользователь №: 3 863



В целом выбор iCE40 поддерживаю, сам недавно начал использовать.

Только вот с подсчётом ресурсов вы малость просчитались.
Триггеры посчитали, а кто будет вам складывать количество совпадающих битов? LUTы. Вот их и считайте. Будет МНОГО БОЛЬШЕ, чем триггеров. По прикидкам, никакая цплд не справится, но в iCE40 влезет. За 100 МГц придётся побороться, сразу вы их не получите, гарантирую. Так что напишите прожект и отPARьте, тогда видно будет.

Go to the top of the page
 
+Quote Post
alexPec
сообщение Aug 16 2013, 19:46
Сообщение #8


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

Группа: Свой
Сообщений: 1 284
Регистрация: 9-04-06
Пользователь №: 15 968



Цитата(Dr.Alex @ Aug 16 2013, 23:08) *
В целом выбор iCE40 поддерживаю, сам недавно начал использовать.
Только вот с подсчётом ресурсов вы малость просчитались.
Триггеры посчитали, а кто будет вам складывать количество совпадающих битов? LUTы. Вот их и считайте. Будет МНОГО БОЛЬШЕ, чем триггеров. По прикидкам, никакая цплд не справится, но в iCE40 влезет. За 100 МГц придётся побороться, сразу вы их не получите, гарантирую. Так что напишите прожект и отPARьте, тогда видно будет.


Точно, тут еще подумать, но интуитивно-вроде решаемо, лучше вроде не нашел пока. Порадовало что еще и ПЛЛ есть в 1К - можно не ставить отдельный генератор, с проца вытащить медленный клок. Приятно порадовал Lattice.
Go to the top of the page
 
+Quote Post
Dr.Alex
сообщение Aug 16 2013, 20:08
Сообщение #9


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

Группа: Свой
Сообщений: 1 386
Регистрация: 5-04-05
Из: моська, RF
Пользователь №: 3 863



В 1К оно у вас не влезет, зуб даю. В 4К влезет.
Go to the top of the page
 
+Quote Post
Corner
сообщение Aug 18 2013, 17:32
Сообщение #10


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

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



Цитата(Dr.Alex @ Aug 17 2013, 00:08) *
В 1К оно у вас не влезет, зуб даю. В 4К влезет.

Согласен, нужно 512 регистров, 1024 LE и куча элементов на роутинг этого удовольствия...
Go to the top of the page
 
+Quote Post
alexPec
сообщение Aug 19 2013, 04:25
Сообщение #11


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

Группа: Свой
Сообщений: 1 284
Регистрация: 9-04-06
Пользователь №: 15 968



Цитата(Corner @ Aug 18 2013, 21:32) *
Согласен, нужно 512 регистров, 1024 LE и куча элементов на роутинг этого удовольствия...


А может прикладной аспект как-то использовать, например:

1. На одинаковых значениях шаблона (а шаблон вообще фиксированный, очень, никогда не меняется) разные уровни входных значений в сумме дают 0. Т.е. может как-то можно шаблон-ориентированную схему сразу сделать? Есть идеи?
2. Будет порог корреляции, поэтому имеет смысл считать несовпавшие с шаблоном значения, при том не точно, например разбить входные значения на блоки по 4, Если не совпало из этого блока 2 или 3 или 4 - ну принять среднее - что не совпало 3, т.е. больше половины. Порог коррелятора все равно будет 70-80%
3. Может некоторые части схемы (конвейера по вычислению количества единиц(или нулей)) вообще запустить на 200 МГц? Не потянет оно такое?

Попутно вопрос - что этому ice40 для программирования надо, из icecube(правильно я понял, это софт для них?), какое железо? Сколько примерно стоит?
Софт - выложен на сайте, получил файл лицензии по почте (на сайте формочку заполнил). В таком виде этот софт полнофункциональный? Не начнет у меня ругаться при попытке сгенерить бинарник? Если урезанный - закрома правильным не богаты часом?
Go to the top of the page
 
+Quote Post
yes
сообщение Aug 19 2013, 12:14
Сообщение #12


Гуру
******

Группа: Свой
Сообщений: 2 198
Регистрация: 23-12-04
Пользователь №: 1 640



Цитата(Corner @ Aug 18 2013, 21:32) *
Согласен, нужно 512 регистров, 1024 LE и куча элементов на роутинг этого удовольствия...


ну а модель есть, чтоб синтезировать? это чтоб не ошибиться - я так понимаю, что нужно еще сложить 512 бит и на выходе получить 9 битов сумматор (такое дерево суматоров) это в MACHXO2 ни по скорости ни по размеру не пролезет
Go to the top of the page
 
+Quote Post
alexPec
сообщение Aug 19 2013, 17:55
Сообщение #13


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

Группа: Свой
Сообщений: 1 284
Регистрация: 9-04-06
Пользователь №: 15 968



Цитата(yes @ Aug 19 2013, 16:14) *
ну а модель есть, чтоб синтезировать? это чтоб не ошибиться - я так понимаю, что нужно еще сложить 512 бит и на выходе получить 9 битов сумматор (такое дерево суматоров) это в MACHXO2 ни по скорости ни по размеру не пролезет


Эээ вообще-то имел ввиду ICE40LP1K...
Да, еще такое допущение: за такт вычислять не надо, можно сгородить конвейер хоть на 10 тактов, хоть на 50. Лишь бы конвейер работал на 100 МГц. Понятно что одними триггерами в LUT-ах не обойтись, думаю вот как память использовать (там жеш еще 64кбит памяти есть!), может тут как-то выкроить подсчет единиц(нулей) удастся?
Go to the top of the page
 
+Quote Post
Corner
сообщение Aug 21 2013, 15:35
Сообщение #14


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

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



Цитата(yes @ Aug 19 2013, 16:14) *
ну а модель есть, чтоб синтезировать? это чтоб не ошибиться - я так понимаю, что нужно еще сложить 512 бит и на выходе получить 9 битов сумматор (такое дерево суматоров) это в MACHXO2 ни по скорости ни по размеру не пролезет

1024 LE это и есть сумматор, просто складываются либо прямые биты, либо инвертированные, смотря какая маска коррелятора, инвертор абсорбируется в LE сумматора. Зачем тут XOR загадка в принципе. Или коррелятор будет перестраиваемый в процессе работы?
Вообще ПЛИС Actel или Lattice могут не потянут роутинг сумматора в 512 бит. Я такие вещи меньше чем на Спартан3Е 500к не делал. Это я так понимаю дальномерный код ГЛОНАСС?

Сообщение отредактировал Corner - Aug 21 2013, 15:37
Go to the top of the page
 
+Quote Post
yes
сообщение Aug 21 2013, 16:23
Сообщение #15


Гуру
******

Группа: Свой
Сообщений: 2 198
Регистрация: 23-12-04
Пользователь №: 1 640



Цитата(alexPec @ Aug 19 2013, 21:55) *
Эээ вообще-то имел ввиду ICE40LP1K...
Да, еще такое допущение: за такт вычислять не надо, можно сгородить конвейер хоть на 10 тактов, хоть на 50. Лишь бы конвейер работал на 100 МГц. Понятно что одними триггерами в LUT-ах не обойтись, думаю вот как память использовать (там жеш еще 64кбит памяти есть!), может тут как-то выкроить подсчет единиц(нулей) удастся?


в конвеере каждая стадия ресурсов то добавляет... подсчет 1 вроде как четырехвходовыми LUT-ами делается преобразование 4->2, а потом эти пары нужно просумировать, ни памяти, ни dsp блоки тут не помогут
ну и вопрос - опорная последовательность постоянная (тогда xor-ы можно засунуть в этот же 4->2 преобразователь) или нужно загружать?

Цитата(Corner @ Aug 21 2013, 19:35) *
1024 LE это и есть сумматор, просто складываются либо прямые биты, либо инвертированные, смотря какая маска коррелятора, инвертор абсорбируется в LE сумматора. Зачем тут XOR загадка в принципе. Или коррелятор будет перестраиваемый в процессе работы?
Вообще ПЛИС Actel или Lattice могут не потянут роутинг сумматора в 512 бит. Я такие вещи меньше чем на Спартан3Е 500к не делал. Это я так понимаю дальномерный код ГЛОНАСС?


Lattice XP2 побыстрее 3-го спартана то будет.
если ГЛОНАСС, то для быстрого поиска можно такой коррелятор собрать, но следить за сигналом, то есть позицию считать - такой коррелятор не пойдет
Go to the top of the page
 
+Quote Post

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

 


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


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