Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Возможно ли в принципе сделать такое с использованием ПЛИС?
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
Ibragim
День добрый.
Есть следующий вопрос - возможно ли реализовать (хватит ли производительности, возможно ли вводить данные в таком формате, не будет ли проект уж совсем заоблачной сложности) на ПЛИС, желательно Altera, алгоритм такого плана:

1. Поток входных данный 64 целочисленных слова за период, частота 3,5 МГц
2. В обработке будут актуальны входные данные на 10 - 20 периодов "назад", то есть их нужно помнить
3. С каждым словом и предыдущими полученными по этому каналу данными (см п.1) нужно совершить 10 - 20 операций типа умножение/деление, и 2-3 операции тригонометрических функций
4. С полученными результатами пункта 3 необходимо произвести еще несколько операций умножения/сложения
5. Результат - слово, его нужно выводить с небольшой частотой, успеем.

Если такое возможно в принципе, буду пытаться осваивать smile.gif

P.S. Если не сложно, презентуйте пожалуйста элементарную графическую схемку-проект для MAX+plus II сложения двух слов и описание как посмотреть симулирование работы такого девайса.
Alex11
Чтобы сказать более-менее точно, недостаточно данных. Как минимум, разрядность слов какая? Но на вскидку, не успеешь. Проблемы будут с делением - оно медленное, и с тригонометрией - там вообще. Если только точность не очень высокая, и можно использовать табулированные значения с линейной аппроксимацией. Про макс - забудь. Это будет что-нибудь не меньше циклона, соответственно - только quartus.
vitus_strom
Я что то подобное делал, только скажите уважаемый зачем городить сигнальный процессор, ежели такой уже есть, ну скажем если хотите поиметь геморрой то можете, в принципе реализуемо но цена по сравнению с ДСП будет раз в 5 больше, времени уйдет раз 15-20 больше, ну а геммороя геммороя то будет, вы себе даже не представляете...
Ibragim
Приблизительно начинает прорисовываться, спасибо.
Если не влом, проконсультируйте дальше!

2Alex11:
1. "Слово" я подразумевал из терминологии программирования ПК, 16 бит, целочисленное.
2. Да, понятно что будет талблица синусов/косинусов
3. Вспомнил, что есть еще несколько извлечений квадратного корня - это, по идее, вообще очень медленная операция.
4. А сколько стоит этот самый циклон? Quartus - не вопрос, давайте над ним повздыхаем. smile.gif

2vitus_strom:
Задача вообще стояла реализовать на компьютере (я программистом работаю), но с таким потоком даже комп не справляется, а задача критически важна. Это обработка поступающих с технологического сканера данных, потом они один фиг идут в комп для визуализации и т.п.
То есть смотрите: 64 слова со скоростью 3.5 MHz - это если делить процессорное время на последовательную обработку, аналогично что одно слово поступает со скоростью 224 MHz. Сделать над ним два десятка операций (по несколько тактов минимум) никакого процессора не хватит. Поэтому и копаю в сторону программируемой логики, не сильно представляя, каюсь, что это такое.
А почему может справиться DSP, если комп не может? Он что, может обрабатывать параллельно 64 слова? Вообще, если имели опыт - поделитесь плз. - что с такой задачей делать?
Adlex
Деление, умножение, тем более тригонометрия жрут сильно много ресурсов ПЛИС. Так же считаю. что это оптимальнее делать на процессоре (сигнальном процессоре).
Другое дело, если есть желание на этом примере нацчиться работать с ПЛИС.
Ibragim
Adlex, а то что я писал что обычный компьютер не справляется? Как справится такой процессор? "Чем" их программируют и посоветуйте модель процессора?
Спасибо.
AlexanderX
С точки зрения кривой обучения, то задачу следует решать на сигнальном процессоре (лучше даже на нескольких в параллель). С точки зрения экономической эффективности - FPGA будет гораздо лучше, т.к. FPGA имеет гораздо большую вычислительную мощность по сравнению с сигнальным процессором и, возможно, Вам понадобится всего пара-тройка корпусов для всей задачи.
vitus_strom
Очень большое заблуждение думать что комп это чемпион, в компе стоит процессор общего назначения который греет воздух и гоняет данные по разным каналам и не всегда самым оптимальным образом, далее процессор ДСП - процессор оптимизированный на вычисления, причем вычисления могут вестись парралельно! плюс современные процессоры имеют еще на борту и достаточно мощную периферию которая занимается пересылкой данных, иногда и предварительной обработкой. и потом кто вам сказал что процессор должен быть один? их может быть и два и три и вы не поверите но даже 17 на одной плате и это не предел... Тип процесоора могу посоветовать что то вроде TMS320C64XX, сейчас доступны с частотой 1ГГц, да и вот еще что: Большинство операций на сигнальнике делается за 1 такт. И по деньгам одна плисина тянет по-меньшей мере 2 сигнальника. А далее выбор за вами...
RobFPGA
Приветствую!

Для реализация вычислений в FPGA или DSP - есть свои плюсы и минусы. Для FPGA - плюс - возможность работать с очень большим потоком данных , минус - сложность реализации сложных алгоритмов мат. обработки. Для DSP с точностью наоборот smile.gif . В поставленном вопросе например если предположить что входные слова 16 бит то поток данных составит 448 MB/сек. ввести такой поток наприме в тотже TI320c6416 уже проблема а ведь надо еще и посчитать и вывести.
Для FPGA - это не сложно. Построение много процесорной системы порождает проблему разделения входных данных, синхронизации вычислениий , объединения на выходе. Без FPGA не обойтись smile.gif

Для определения возможности реализации алгоритма в FPGA или в DSP надо прикинуть необходимое быстродейсвие. Также необходимо учесть накладные расходы - потоки данных на ввод и вывод, требуемый объем и скорость доступа к памяти, возможность распаралеливания и допустимость конверизации(и соответствующей задержки в получении результата) операций и. т. д. .
С точки зрения реализации в FPGA алгоритмов деления и триг. функций - особых проблем нет - надо только проанализировать требуемые точности. Это будет влиять на объем требуемых кристаллов и соответствено цену.

А вобще оптимальным с точки срения структуры обработки есть связка (FPGA + MEM) + (DSP + MEM) smile.gif

Успехов! Rob.
vitus_strom
так возмите 6455 и качайте через рапид 1.125 ГГБайт/сек
Igor_S
A woobshe, zachem delatj obrabotku w Real Time? Wedj, nawernoe, " posledujushaja wizualizacija" - process medlennyj... Bystro zakachiwaete potok w pamjatj, a potom - medlenno chitaete i obrabatywaete na komputere.
Ibragim
Ну, спасибо за советы, пока нифига не понятно smile.gif. Уж сорри - проблема, скорее всего, во мне smile.gif
Сразу скажу - обработка только в Real Time: последующая визуализация уже мной написана с использованием мощностей граф. адаптера и летает, а поток будет вводиться часами smile.gif.
Конвейер как раз хотелось бы делать - по задержке там оператор все равно незаметит этих милисекунд, а штука полезная.

И все-таки:
чем программируются "сигнальники"?
накатайте плз. схемку для ПЛИС, кому не влом, ну скажем перемножения двух 16-bit значений, и как это отсимулировать. Посмотреть бы для оценки сложности.

Еще раз сэнкс.
kas
У Xilinx'а есть микросхемы с как с отдельными умножителями 18х18 Spartan3, так и с умножителями входящими в состав 48 разрядного аккумулятора Virtex 4. А проект, ИМХО, лучше писать на (VHDL|Verilog) по выбору.
Leka
Теория (практики пока никакой):
Cycloneii EP2C8:
18 умножителей 18*18 @ ~200 МГц --> 3,6 G умножений/сек;
чтение одной 2-хпортовой таблички: ~400 М значений/сек, всего м/б несколько табличек (до 36 по 256*16).
Задача:
умножения: 3,5 МГц * 64 * 10..20 умножений = 2,3..4,5 G умножений/сек;
таблицы: 3,5 МГц * 64 * 2..3 = 450..670 M значений/сек.
Справится ли ПЛИС, и какая - зависит от разрядности адреса таблиц,те от требуемой точности.

Кто-нибудь пробовал сравнивать производительность EP2C8 и XC3S400 в подобных задачах ?
vetal
Берите ep2s180, там точно влезет и успеет smile.gif. (шутка)

На данной стадии проводить какую либо оценку быстродействия нецелесообразно. Реально вы не получите тех характеристик, которые приведены в документации(максимум 50-70%).
Необходимо распаралелить потоки обработки (один поток считает отсчет n, второй n-1 и.т.д до необходимого быстродействия).
НО. Пока нет хотя-бы общей, просчитанной структуры анализировать нечего.
des00
ИМХО еще хотелось бы поинтересоваться бюджетом на разработку, сколько вы готовы "отдать" на все это безобразие smile.gif
а так не вижу сложностей, кроме гемора smile.gif , кстати посмотрите на фпга с процессором на борту ? или на уже готовые дев.киты с фпга и процем smile.gif
Adlex
Ответ запоздалый, но просто два дня был в командировке.
По DSP - возможный вариант Тайгер Шарк от AD, пограмируется в Визуал ДСП - пакет от AD.
leevv
Prismotrites' k Virtex2pro i osobenno Virtex4FX s PowerPC processorom na chipe.
V zavisimosti ot razmera chipa moget byt' do 2 PowerPC na kristale.

Sami processory begut realno do 300 - 350 MHz clk.

No prelest' v tom chto mogno gramotno razdelit' obrabotku na fpga i na PPC. Plus V4 imeet neplohoj Axilary Processor Unit Interface. Chto pozvoljaet vam sdelat' custom coprocessor i takim obrazom rashirit' systemu komand PPC specifichnymi dlja vas operacijami, kotorye budut vypolnjatsja na logike FPGA.

Krome togo DSP48 blocks(apparatnye multipliery) v V4 toge neslabyj zver', esly vashu zadachu mogno konveerizirovat'.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.