Перейти к содержанию
    

Трудоёмкость реализации алгоритма на ПЛИС

Смотря что вы хотите от этих людей %) Поясню

миссия сугубо гуманитарная. чуваки хотят научится делать суперкомпьютеры типа BlueGene (а там у него в узлах решётки ПЛИСки стоят). ну меня и отсылают к ним во вспоможение с просветительской миссией. так как эти чуваки нюхом не нюхивали конфигурируемую логику, естественно их будет интересовать какого типа алгоритмы целесообразно решать на ПЛИСах эффективно (но это теоретически можно обобщить) и на сколько это сложнее практически (относительно одноголового проца - а вот это мне быстро не обобщить до количественной оценки)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

На fpgajournal буквально вчера была статья про имплементацию си-алгоритмов: http://www.fpgajournal.com/articles_2008/2...007_mitrion.htm

там в конце статьи ссылки на 2 фирмы, которые делают платы на fpga и пишут к ним си-компиляторы. На сайтах этих фирм в разделе документация есть всякие разные статейки, которые могут оказаться Вам интересны.

http://www.mitrionics.com/ и

http://www.nallatech.com/

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Приветствую!

 

У Xilinx в Xcell когдато были сравнение эфективности реализации различных алгоритмов (поиск цепочек генома, различное кодирование, и ряд других ) для обычных процов и для FPGA спец вычислителей. Естественно FPGA были от 10 - до 100 раз и более быстрее. Там-же был ряд статей (по большей части рекламных) по поводу эфективности переноса алгоритмов писанных на C в FPGA.

с помощью различного умного софта ;-).

 

Успехов. Rob.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

.........

миссия сугубо гуманитарная.

.........

 

 

ИМХО тогда нужно рассказывать правду, без красивостей на множестве примеров из разных областей %)

Кстати эти ребята в россии или за рубежом ? интересные разработки у них, а меня всегда тянет туда где интересно .... %)))

 

 

2 Gate

 

там в конце статьи ссылки на 2 фирмы, которые делают платы на fpga и пишут к ним си-компиляторы. На сайтах этих фирм в разделе документация есть всякие разные статейки, которые могут оказаться Вам интересны.

 

На статьи сейчас времени нет, но вот что бросилось в глаза :

 

The purpose of the Mitrion-C Open Bio Project is to accelerate key bioinformatics applications by porting their performance critical parts to Mitrion-C and running these on the Mitrion Virtual Processor in FPGAs.

 

т.е. я правильно понимаю, сделали конфигурируемый проц класса ниоса, запихали их кучу в одну систему, зашили в фпга и давай интеля рвать ? Т.е. сделали конфигурируемый аналог aspex и ambric.

 

2 RobFPGA

 

Там-же был ряд статей (по большей части рекламных) по поводу эфективности переноса алгоритмов писанных на C в FPGA.

с помощью различного умного софта ;-).

 

Особено меня впечатлил в статьях mp3decoder сделанный с нуля и ускоренный в 100 раз (если мне память не изменяет) за 3 дня %))

 

Интересно показать это скептикам которых дурят верилогами с вхдлями и ниосами с микроблейзами %))

 

ИМХО эра чистого rtl уходит, производители поняли что это тупик. Вот и двигаются в сторону BSV, C2H компиляторов и т.д.

 

PS. похоже что так оно и есть

 

...The key to making it possible to run software in FPGAs is to put a processor in the FPGA....

 

...The Mitrion Virtual Processor utilizes a novel processor architecture that resembles a cluster-on-a-chip....

 

Шикарно.

 

Выражаясь словами некоторых участников форума "ой дурят нашего брата, ой дурят......" %)))

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

чуваки хотят научится делать суперкомпьютеры типа BlueGene

Я стесняюсь спросить, а МК тут тогда причем?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я пытался, и пришел к выводу, что задачи, которые решаются на ПЛИС и на МК не пересекаются. То есть, если задача может быть решена на МК, смысла решать ее на ПЛИС нет.

А разве на ПЛИСину нельзя запрграммировать так, что она станет микроконтроллером? Причём ЛЮБОЙ нужной Вам архитектуры.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

des00 правильно говорит, все зависит от решаемой задачи.

Например, реализовать сложную логику управления (конечный автомат) на МК или процессорах (тобишь на Си или асме) куда сложней, чем на фпга.

А вообще плис+мк/проц идеальная связка. У первых простота реализации алгоритм управления(вычисления), а вторые имеют широкий набор периферии (АЦП, ШИМ, ДМА, инерфейсы и прочее) .

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А разве на ПЛИСину нельзя запрграммировать так, что она станет микроконтроллером? Причём ЛЮБОЙ нужной Вам архитектуры.

Можно, только зачем? FPGA стоит минимум на порядок дороже MK и кушает на порядок больше, и если можно применить готовый MK - то зачем тратить деньги на дорогой кристалл, а потом еще и на отладку реализации MK на нем?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Например, реализовать сложную логику управления (конечный автомат) на МК или процессорах (тобишь на Си или асме) куда сложней, чем на фпга.
Ага.. Безумно сложно:

enum states {state_a,state_b,state_c};
enum events {event_a,event_b,event_c};

states state = state_a;
events event = event_a;
...
switch (state) {
case state_a:
    if (event == event_b) state = state_b;
    else if (event == event_c) state = state_c;
    break;
case state_b:
    if (event == event_c) state = state_c;
    else if (event == event_a) state = state_a;
    break;
case state_c:
    if (event == event_a) state = state_a;
    else if (event == event_b) state = state_b;
    break;
}

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ага.. Безумно сложно:

enum states {state_a,state_b,state_c};
enum events {event_a,event_b,event_c};

states state = state_a;
events event = event_a;
...
switch (state) {
case state_a:
    if (event == event_b) state = state_b;
    else if (event == event_c) state = state_c;
    break;
case state_b:
    if (event == event_c) state = state_c;
    else if (event == event_a) state = state_a;
    break;
case state_c:
    if (event == event_a) state = state_a;
    else if (event == event_b) state = state_b;
    break;
}

Ага. Просто. Только ПЛИСина сделает это за 1 такт, а процессор за 10000 тактов :twak:

Изменено пользователем Николай Иванович Приходько

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Можно, только зачем? FPGA стоит минимум на порядок дороже MK и кушает на порядок больше, и если можно применить готовый MK - то зачем тратить деньги на дорогой кристалл, а потом еще и на отладку реализации MK на нем?

А затем. Что можно сделать проц с любой заданной архитектурой. Кому-то надо чтоб в микроконтроллере было 12 UART-ов, а кому-то 24 штуки I2C подавай.

 

Если чел делал проект MCU на ПЛИС, ту у него есть наработки и готовые программные модули, которые легко можно "подправить" и сделать микроконтроллер с любой заданной архитектурой на одной и той же ПЛИСине.

 

Разве не крута?

 

Разве не крута?

По-моему "кадр", лабАющий на одной и той же ПЛИСине микроконтроллеры произвольной архитектуры, куда более крут, чем чел, юзающий готовые MCU, да к тому же часто даже не разбирающийся тОлком а архитектуре испольуемого MCU

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

кажется нехватает малого(самого главного) - прерывания на event :)

Прижелании, можно добавить немного "специй":

while(1) {
    WaitForSingleObject(hEvent,INFINITE);

    switch (state) {
    ...
    }
}

;)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ага.. Безумно сложно:

blackfin сложную логику!

Например, инициализация памяти, управление фотоприёмной матрицей, да что угодно, где есть жёстко заданная времянка!

Изменено пользователем Mad_max

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

blackfin сложную логику!

Так, а "сложную логику" и для FPGA будет сложно описать. Причем, уровень сложности будет одинаковый и для Си и для VHDL/Verilog и пр.. :laughing:

 

Например, инициализация памяти, управление фотоприёмной матрицей, да что угодно, где есть жёстко заданная времянка!
Только не надо ползать взад-вперед. :rolleyes:

Вначале Вы речь вели о сложности реализации на Си, а теперь напираете на временные ограничения..

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Так, а "сложную логику" и для FPGA будет сложно описать. Причем, уровень сложности будет одинаковый и для Си и для VHDL/Verilog и пр.. :laughing:

Ну а зачем тогда блок диаграммы?

На Vhdl/Verilog писать такое конечно будет не проще чем на Си, тут никто и не спорит.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...