Ibragim
Nov 23 2005, 18:04
День добрый.
Есть следующий вопрос - возможно ли реализовать (хватит ли производительности, возможно ли вводить данные в таком формате, не будет ли проект уж совсем заоблачной сложности) на ПЛИС, желательно Altera, алгоритм такого плана:
1. Поток входных данный 64 целочисленных слова за период, частота 3,5 МГц
2. В обработке будут актуальны входные данные на 10 - 20 периодов "назад", то есть их нужно помнить
3. С каждым словом и предыдущими полученными по этому каналу данными (см п.1) нужно совершить 10 - 20 операций типа умножение/деление, и 2-3 операции тригонометрических функций
4. С полученными результатами пункта 3 необходимо произвести еще несколько операций умножения/сложения
5. Результат - слово, его нужно выводить с небольшой частотой, успеем.
Если такое возможно в принципе, буду пытаться осваивать
P.S. Если не сложно, презентуйте пожалуйста элементарную графическую схемку-проект для MAX+plus II сложения двух слов и описание как посмотреть симулирование работы такого девайса.
Alex11
Nov 23 2005, 20:36
Чтобы сказать более-менее точно, недостаточно данных. Как минимум, разрядность слов какая? Но на вскидку, не успеешь. Проблемы будут с делением - оно медленное, и с тригонометрией - там вообще. Если только точность не очень высокая, и можно использовать табулированные значения с линейной аппроксимацией. Про макс - забудь. Это будет что-нибудь не меньше циклона, соответственно - только quartus.
vitus_strom
Nov 24 2005, 09:08
Я что то подобное делал, только скажите уважаемый зачем городить сигнальный процессор, ежели такой уже есть, ну скажем если хотите поиметь геморрой то можете, в принципе реализуемо но цена по сравнению с ДСП будет раз в 5 больше, времени уйдет раз 15-20 больше, ну а геммороя геммороя то будет, вы себе даже не представляете...
Ibragim
Nov 24 2005, 09:43
Приблизительно начинает прорисовываться, спасибо.
Если не влом, проконсультируйте дальше!
2Alex11:
1. "Слово" я подразумевал из терминологии программирования ПК, 16 бит, целочисленное.
2. Да, понятно что будет талблица синусов/косинусов
3. Вспомнил, что есть еще несколько извлечений квадратного корня - это, по идее, вообще очень медленная операция.
4. А сколько стоит этот самый циклон? Quartus - не вопрос, давайте над ним повздыхаем.
2vitus_strom:
Задача вообще стояла реализовать на компьютере (я программистом работаю), но с таким потоком даже комп не справляется, а задача критически важна. Это обработка поступающих с технологического сканера данных, потом они один фиг идут в комп для визуализации и т.п.
То есть смотрите: 64 слова со скоростью 3.5 MHz - это если делить процессорное время на последовательную обработку, аналогично что одно слово поступает со скоростью 224 MHz. Сделать над ним два десятка операций (по несколько тактов минимум) никакого процессора не хватит. Поэтому и копаю в сторону программируемой логики, не сильно представляя, каюсь, что это такое.
А почему может справиться DSP, если комп не может? Он что, может обрабатывать параллельно 64 слова? Вообще, если имели опыт - поделитесь плз. - что с такой задачей делать?
Деление, умножение, тем более тригонометрия жрут сильно много ресурсов ПЛИС. Так же считаю. что это оптимальнее делать на процессоре (сигнальном процессоре).
Другое дело, если есть желание на этом примере нацчиться работать с ПЛИС.
Ibragim
Nov 24 2005, 09:57
Adlex, а то что я писал что обычный компьютер не справляется? Как справится такой процессор? "Чем" их программируют и посоветуйте модель процессора?
Спасибо.
AlexanderX
Nov 24 2005, 10:32
С точки зрения кривой обучения, то задачу следует решать на сигнальном процессоре (лучше даже на нескольких в параллель). С точки зрения экономической эффективности - FPGA будет гораздо лучше, т.к. FPGA имеет гораздо большую вычислительную мощность по сравнению с сигнальным процессором и, возможно, Вам понадобится всего пара-тройка корпусов для всей задачи.
vitus_strom
Nov 24 2005, 10:33
Очень большое заблуждение думать что комп это чемпион, в компе стоит процессор общего назначения который греет воздух и гоняет данные по разным каналам и не всегда самым оптимальным образом, далее процессор ДСП - процессор оптимизированный на вычисления, причем вычисления могут вестись парралельно! плюс современные процессоры имеют еще на борту и достаточно мощную периферию которая занимается пересылкой данных, иногда и предварительной обработкой. и потом кто вам сказал что процессор должен быть один? их может быть и два и три и вы не поверите но даже 17 на одной плате и это не предел... Тип процесоора могу посоветовать что то вроде TMS320C64XX, сейчас доступны с частотой 1ГГц, да и вот еще что: Большинство операций на сигнальнике делается за 1 такт. И по деньгам одна плисина тянет по-меньшей мере 2 сигнальника. А далее выбор за вами...
RobFPGA
Nov 24 2005, 12:33
Приветствую!
Для реализация вычислений в FPGA или DSP - есть свои плюсы и минусы. Для FPGA - плюс - возможность работать с очень большим потоком данных , минус - сложность реализации сложных алгоритмов мат. обработки. Для DSP с точностью наоборот

. В поставленном вопросе например если предположить что входные слова 16 бит то поток данных составит 448 MB/сек. ввести такой поток наприме в тотже TI320c6416 уже проблема а ведь надо еще и посчитать и вывести.
Для FPGA - это не сложно. Построение много процесорной системы порождает проблему разделения входных данных, синхронизации вычислениий , объединения на выходе. Без FPGA не обойтись
Для определения возможности реализации алгоритма в FPGA или в DSP надо прикинуть необходимое быстродейсвие. Также необходимо учесть накладные расходы - потоки данных на ввод и вывод, требуемый объем и скорость доступа к памяти, возможность распаралеливания и допустимость конверизации(и соответствующей задержки в получении результата) операций и. т. д. .
С точки зрения реализации в FPGA алгоритмов деления и триг. функций - особых проблем нет - надо только проанализировать требуемые точности. Это будет влиять на объем требуемых кристаллов и соответствено цену.
А вобще оптимальным с точки срения структуры обработки есть связка (FPGA + MEM) + (DSP + MEM)
Успехов! Rob.
vitus_strom
Nov 24 2005, 13:28
так возмите 6455 и качайте через рапид 1.125 ГГБайт/сек
Igor_S
Nov 24 2005, 16:14
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
Nov 24 2005, 16:29
Ну, спасибо за советы, пока нифига не понятно

. Уж сорри - проблема, скорее всего, во мне
Сразу скажу - обработка только в Real Time: последующая визуализация уже мной написана с использованием мощностей граф. адаптера и летает, а поток будет вводиться часами

.
Конвейер как раз хотелось бы делать - по задержке там оператор все равно незаметит этих милисекунд, а штука полезная.
И все-таки:
чем программируются "сигнальники"?
накатайте плз. схемку для ПЛИС, кому не влом, ну скажем перемножения двух 16-bit значений, и как это отсимулировать. Посмотреть бы для оценки сложности.
Еще раз сэнкс.
У Xilinx'а есть микросхемы с как с отдельными умножителями 18х18 Spartan3, так и с умножителями входящими в состав 48 разрядного аккумулятора Virtex 4. А проект, ИМХО, лучше писать на (VHDL|Verilog) по выбору.
Теория (практики пока никакой):
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 в подобных задачах ?
Берите ep2s180, там точно влезет и успеет

. (шутка)
На данной стадии проводить какую либо оценку быстродействия нецелесообразно. Реально вы не получите тех характеристик, которые приведены в документации(максимум 50-70%).
Необходимо распаралелить потоки обработки (один поток считает отсчет n, второй n-1 и.т.д до необходимого быстродействия).
НО. Пока нет хотя-бы общей, просчитанной структуры анализировать нечего.
ИМХО еще хотелось бы поинтересоваться бюджетом на разработку, сколько вы готовы "отдать" на все это безобразие

а так не вижу сложностей, кроме гемора

, кстати посмотрите на фпга с процессором на борту ? или на уже готовые дев.киты с фпга и процем
Ответ запоздалый, но просто два дня был в командировке.
По DSP - возможный вариант Тайгер Шарк от AD, пограмируется в Визуал ДСП - пакет от AD.
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'.
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.