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

Табличные схемы, выбор ПЛИС

Всем привет.

 

Мне нужно определиться с выбором ПЛИС для реализации задачи в моей предметной области. Требуется реализовать большое количество табличных схем - грубо говоря использовать большое количество BRAM.

Помимо поисков и обзоров ПЛИС в интернете хотелось бы услышать рекомендации бывалых по этому поводу.

Какую ПЛИС лучше выбрать для такой задачи.

Если говорить о том, чем я занимаюсь - это построение процессора, функционирующего в СОК (система в остаточных классах). Там присутствуют модульные сумматоры относительно небольшой разрядности (3-7 бит), реализация которых оказалась наиболее эффективной только на BRAM.

Как другие варианты - использование логики (слишком медленно) или SRAM (отсутствие параллельной работы нескольких блоков (имеются в виду эти сумматоры) одновременно.

 

Заранее благодарен. :smile3046:

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


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

Посмотрите на семейство AT40KAL фирмы Atmel :

http://www.atmel.com/dyn/resources/prod_do...nts/doc2818.pdf

У них макроячейка имеет два комбинаторных выхода. Ну распределенная память есть.

Только вот софт (среда размещения и разводки Figaro IDS) имхо не очень фонтанистый. Но приноровиться можно :)

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


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

Как другие варианты - использование логики (слишком медленно)...

"Медленно" - это сколько?

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


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

Странно это. Если судить по работе с xilinx, обычный сумматор с "медленными" переносами - очень быстрая структура, процентов на 30 более быстрая чем BRAM при Вашей разрядности. Какая нужна системная частота-то?

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


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

Странно это. Если судить по работе с xilinx, обычный сумматор с "медленными" переносами - очень быстрая структура, процентов на 30 более быстрая чем BRAM при Вашей разрядности.  Какая нужна системная частота-то?

 

Хмм не факт, т.к. тактовая частота памяти у V4-12, может достагать 500МГц, (с конвеерным регистром) а вот суматор на 10 бит уже дает частоты не более 450 :(

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


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

2 Frob

Мысль совсем в другую сторону... А если попробовать оптимизировать логическую функцию? Может получится (после оптимизации), что BRAM и не потребуется вовсе.

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


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

Странно это. Если судить по работе с xilinx, обычный сумматор с "медленными" переносами - очень быстрая структура, процентов на 30 более быстрая чем

 

рад что на меня обратили внимание. всем спасибо... и отвечаю сразу всем.

 

у меня VirtexE.

результаты вкратце следующие, возьмем например 64 бита.

(такая разрядность данных, которые необходимо обрабатывать, вычислять свертку, полиномы и т.п. - короче говоря ЦОС - частная задача).

операция сложения ~127 МГц

операция умножения ~51.3 МГц (!!!!!)

и то и другое смешано в процессе вычислений и нужно в конвейерном режиме.

 

вчера только разобрался первый раз в жизни с BRAM и вот что получилось.

В СОК (система остаточных классов) операция сложения числа разрядностью для представления диапазона ~64 бита ~175 МГц.

операция умножения ~175 МГц.

и то и другое ограничено только скоростью памяти и мультиплексор нужен потому что память не очень "удобно" для данной задачи организована.

результат по производительности идеальный. для перевода СОК - ПСС (позиционная система счисления) и обратного перевода используются те же самые сумматоры, работающие параллельно.

 

проблема одна - но большая - блочной памяти слишком мало. не хватит даже для построения 32 разрядного процессора ЦОС (имеется в виду для представления чисел около двоичного диапазона такой разрядности). вот так вот... поэтому я в поисках.

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


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

2 Frob

Мысль совсем в другую сторону... А если попробовать оптимизировать логическую функцию?

извини... мысль и правда совсем в другую сторону :)

я даже не уловил что ты хотел сказать, пояснишь?

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


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

у меня VirtexE.

...

проблема одна - но большая - блочной памяти слишком мало.

Посмотрите Viterx-E EM.

http://www.xilinx.com/xlnx/xweb/xil_public...5&iLanguageID=1

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


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

Может я конечно что-то не понимаю, но Virtex-E имеет на борту мегабит встроенной памяти и стоит порядка 500 вечнозеленых единиц, тогда как Virtex4 LX25 имеет более высокое быстродействие, больше логических ячеек, почти столько же памяти и стоит около 200, доже при единичных колличествах при закупках.

 

Так зачем же платить больше?

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


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

А корпуса?))

А остаточные классы мы недавно проходили, только преобразовывать данные из них и обратно очень весело для проца))

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


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

А корпуса?))

А остаточные классы мы недавно проходили, только преобразовывать данные из них и обратно очень весело для проца))

 

Извините если небольшой оффтопик... хотел раз уж затронули эту тему сделать небольшое сообщение.

Результаты моей работы таковы.

Все модульные операции (умножение, сложение, вычитание) выполняются в СОК за 1 такт и время выполнения (при достаточном количестве блочной памяти на используемой ПЛИС) зависит только от скорости блочной памяти.

Устройство преобразования работает за log2(n) где n - количество разрядов двоичного числа на входе. Скорость работы равна опять же скорости работы блочной памяти. В конвейерном режиме преобразование выполняется за 1 такт опять же с задержкой на указанное выше количество тактов.

 

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

 

Окончательное преобразование для вывода результата в позиционной системе счисления будет ограничено работой умножителя разрядностью входного двоичного числа. Т.е. это операция действительно медленная по сравнению с остальными но требуется только для вывода результатов.

 

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

 

кстати спасибо всем кто ответил по поводу выбора ПЛИС. Это стимулировало поискать меня и сделать для себя обзор того что существует. Выбор я остановил на одной из микросхем VirtexIV.

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


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

А корпуса?))

А остаточные классы мы недавно проходили, только преобразовывать данные из них и обратно очень весело для проца))

 

Извините если небольшой оффтопик... хотел раз уж затронули эту тему сделать небольшое сообщение.

Результаты моей работы таковы.

Все модульные операции (умножение, сложение, вычитание) выполняются в СОК за 1 такт и время выполнения (при достаточном количестве блочной памяти на используемой ПЛИС) зависит только от скорости блочной памяти.

Устройство преобразования работает за log2(n) где n - количество разрядов двоичного числа на входе. Скорость работы равна опять же скорости работы блочной памяти. В конвейерном режиме преобразование выполняется за 1 такт опять же с задержкой на указанное выше количество тактов.

 

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

 

Окончательное преобразование для вывода результата в позиционной системе счисления будет ограничено работой умножителя разрядностью входного двоичного числа. Т.е. это операция действительно медленная по сравнению с остальными но требуется только для вывода результатов.

 

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

 

кстати спасибо всем кто ответил по поводу выбора ПЛИС. Это стимулировало поискать меня и сделать для себя обзор того что существует. Выбор я остановил на одной из микросхем VirtexIV.

хмм ИМХО Virtex4 SX/FX вам самое то, но есть одно но, у них есть DSP слайсы, которые пашуь на максимальной тактухе :))))

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


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

а у FX ядрышко ППК, если молотить из кеша, то до 500 МГц как никак %)

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


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

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

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

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

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

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

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

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

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

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