Frob 0 13 октября, 2005 Опубликовано 13 октября, 2005 · Жалоба Всем привет. Мне нужно определиться с выбором ПЛИС для реализации задачи в моей предметной области. Требуется реализовать большое количество табличных схем - грубо говоря использовать большое количество BRAM. Помимо поисков и обзоров ПЛИС в интернете хотелось бы услышать рекомендации бывалых по этому поводу. Какую ПЛИС лучше выбрать для такой задачи. Если говорить о том, чем я занимаюсь - это построение процессора, функционирующего в СОК (система в остаточных классах). Там присутствуют модульные сумматоры относительно небольшой разрядности (3-7 бит), реализация которых оказалась наиболее эффективной только на BRAM. Как другие варианты - использование логики (слишком медленно) или SRAM (отсутствие параллельной работы нескольких блоков (имеются в виду эти сумматоры) одновременно. Заранее благодарен. :smile3046: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
StewartLittle 45 13 октября, 2005 Опубликовано 13 октября, 2005 · Жалоба Посмотрите на семейство AT40KAL фирмы Atmel : http://www.atmel.com/dyn/resources/prod_do...nts/doc2818.pdf У них макроячейка имеет два комбинаторных выхода. Ну распределенная память есть. Только вот софт (среда размещения и разводки Figaro IDS) имхо не очень фонтанистый. Но приноровиться можно :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vetal 0 13 октября, 2005 Опубликовано 13 октября, 2005 · Жалоба Как другие варианты - использование логики (слишком медленно)... "Медленно" - это сколько? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
NeoN 0 13 октября, 2005 Опубликовано 13 октября, 2005 · Жалоба Странно это. Если судить по работе с xilinx, обычный сумматор с "медленными" переносами - очень быстрая структура, процентов на 30 более быстрая чем BRAM при Вашей разрядности. Какая нужна системная частота-то? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 13 октября, 2005 Опубликовано 13 октября, 2005 · Жалоба Странно это. Если судить по работе с xilinx, обычный сумматор с "медленными" переносами - очень быстрая структура, процентов на 30 более быстрая чем BRAM при Вашей разрядности. Какая нужна системная частота-то? <{POST_SNAPBACK}> Хмм не факт, т.к. тактовая частота памяти у V4-12, может достагать 500МГц, (с конвеерным регистром) а вот суматор на 10 бит уже дает частоты не более 450 :( Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
bzx 0 13 октября, 2005 Опубликовано 13 октября, 2005 · Жалоба 2 Frob Мысль совсем в другую сторону... А если попробовать оптимизировать логическую функцию? Может получится (после оптимизации), что BRAM и не потребуется вовсе. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Frob 0 14 октября, 2005 Опубликовано 14 октября, 2005 · Жалоба Странно это. Если судить по работе с xilinx, обычный сумматор с "медленными" переносами - очень быстрая структура, процентов на 30 более быстрая чем <{POST_SNAPBACK}> рад что на меня обратили внимание. всем спасибо... и отвечаю сразу всем. у меня VirtexE. результаты вкратце следующие, возьмем например 64 бита. (такая разрядность данных, которые необходимо обрабатывать, вычислять свертку, полиномы и т.п. - короче говоря ЦОС - частная задача). операция сложения ~127 МГц операция умножения ~51.3 МГц (!!!!!) и то и другое смешано в процессе вычислений и нужно в конвейерном режиме. вчера только разобрался первый раз в жизни с BRAM и вот что получилось. В СОК (система остаточных классов) операция сложения числа разрядностью для представления диапазона ~64 бита ~175 МГц. операция умножения ~175 МГц. и то и другое ограничено только скоростью памяти и мультиплексор нужен потому что память не очень "удобно" для данной задачи организована. результат по производительности идеальный. для перевода СОК - ПСС (позиционная система счисления) и обратного перевода используются те же самые сумматоры, работающие параллельно. проблема одна - но большая - блочной памяти слишком мало. не хватит даже для построения 32 разрядного процессора ЦОС (имеется в виду для представления чисел около двоичного диапазона такой разрядности). вот так вот... поэтому я в поисках. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Frob 0 14 октября, 2005 Опубликовано 14 октября, 2005 · Жалоба -- Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Frob 0 14 октября, 2005 Опубликовано 14 октября, 2005 · Жалоба 2 Frob Мысль совсем в другую сторону... А если попробовать оптимизировать логическую функцию? <{POST_SNAPBACK}> извини... мысль и правда совсем в другую сторону :) я даже не уловил что ты хотел сказать, пояснишь? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andrew_b 17 14 октября, 2005 Опубликовано 14 октября, 2005 · Жалоба у меня VirtexE. ... проблема одна - но большая - блочной памяти слишком мало. Посмотрите Viterx-E EM. http://www.xilinx.com/xlnx/xweb/xil_public...5&iLanguageID=1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
v_mirgorodsky 0 14 октября, 2005 Опубликовано 14 октября, 2005 · Жалоба Может я конечно что-то не понимаю, но Virtex-E имеет на борту мегабит встроенной памяти и стоит порядка 500 вечнозеленых единиц, тогда как Virtex4 LX25 имеет более высокое быстродействие, больше логических ячеек, почти столько же памяти и стоит около 200, доже при единичных колличествах при закупках. Так зачем же платить больше? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
tegumay 4 19 октября, 2005 Опубликовано 19 октября, 2005 · Жалоба А корпуса?)) А остаточные классы мы недавно проходили, только преобразовывать данные из них и обратно очень весело для проца)) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Frob 0 20 октября, 2005 Опубликовано 20 октября, 2005 · Жалоба А корпуса?)) А остаточные классы мы недавно проходили, только преобразовывать данные из них и обратно очень весело для проца)) <{POST_SNAPBACK}> Извините если небольшой оффтопик... хотел раз уж затронули эту тему сделать небольшое сообщение. Результаты моей работы таковы. Все модульные операции (умножение, сложение, вычитание) выполняются в СОК за 1 такт и время выполнения (при достаточном количестве блочной памяти на используемой ПЛИС) зависит только от скорости блочной памяти. Устройство преобразования работает за log2(n) где n - количество разрядов двоичного числа на входе. Скорость работы равна опять же скорости работы блочной памяти. В конвейерном режиме преобразование выполняется за 1 такт опять же с задержкой на указанное выше количество тактов. Преобразование из СОК в ОПСС (обобщенная позиционная система счисления, где числа можно сравнивать и вычислять другие позиционные характеристики) производится за несоклько большее чем прямое преобразование число тактов, опять же со скоростью блочной памяти и за 1 такт в конвейерном режиме. Окончательное преобразование для вывода результата в позиционной системе счисления будет ограничено работой умножителя разрядностью входного двоичного числа. Т.е. это операция действительно медленная по сравнению с остальными но требуется только для вывода результатов. Учитывая что все что работает на блочной памяти (все кроме последнего) работает практически с одинаковой скоростью независимо от разрядности входного числа все не так уж плохо... кстати спасибо всем кто ответил по поводу выбора ПЛИС. Это стимулировало поискать меня и сделать для себя обзор того что существует. Выбор я остановил на одной из микросхем VirtexIV. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 20 октября, 2005 Опубликовано 20 октября, 2005 · Жалоба А корпуса?)) А остаточные классы мы недавно проходили, только преобразовывать данные из них и обратно очень весело для проца)) <{POST_SNAPBACK}> Извините если небольшой оффтопик... хотел раз уж затронули эту тему сделать небольшое сообщение. Результаты моей работы таковы. Все модульные операции (умножение, сложение, вычитание) выполняются в СОК за 1 такт и время выполнения (при достаточном количестве блочной памяти на используемой ПЛИС) зависит только от скорости блочной памяти. Устройство преобразования работает за log2(n) где n - количество разрядов двоичного числа на входе. Скорость работы равна опять же скорости работы блочной памяти. В конвейерном режиме преобразование выполняется за 1 такт опять же с задержкой на указанное выше количество тактов. Преобразование из СОК в ОПСС (обобщенная позиционная система счисления, где числа можно сравнивать и вычислять другие позиционные характеристики) производится за несоклько большее чем прямое преобразование число тактов, опять же со скоростью блочной памяти и за 1 такт в конвейерном режиме. Окончательное преобразование для вывода результата в позиционной системе счисления будет ограничено работой умножителя разрядностью входного двоичного числа. Т.е. это операция действительно медленная по сравнению с остальными но требуется только для вывода результатов. Учитывая что все что работает на блочной памяти (все кроме последнего) работает практически с одинаковой скоростью независимо от разрядности входного числа все не так уж плохо... кстати спасибо всем кто ответил по поводу выбора ПЛИС. Это стимулировало поискать меня и сделать для себя обзор того что существует. Выбор я остановил на одной из микросхем VirtexIV. <{POST_SNAPBACK}> хмм ИМХО Virtex4 SX/FX вам самое то, но есть одно но, у них есть DSP слайсы, которые пашуь на максимальной тактухе :)))) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 20 октября, 2005 Опубликовано 20 октября, 2005 · Жалоба а у FX ядрышко ППК, если молотить из кеша, то до 500 МГц как никак %) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться