|
|
  |
Выбор ПЛИС в начале разработки |
|
|
|
Apr 27 2011, 18:10
|
Участник

Группа: Участник
Сообщений: 19
Регистрация: 27-11-10
Пользователь №: 61 204

|
Цитата(D-Luxe @ Apr 27 2011, 20:15)  Допустим тебе поставили задачу разработать какое-нибудь устройство с определенными интерфейсами для решения конкретной задачи.
Как выбирать ПЛИС? Даже если выбор стоит между семействами одной компании к примеру Xilinx. ИМХО. смотрим какие интерфейсы нужны и какие семейства ПЛИС могкт им удовлетворить. далее два варианта: 1. если есть ограничения по финансам: пишем RTL, затем синтезим и оцениваем потребность в ресурсах. исходя из этого делаем выбор ПЛИС учитывая, что возможно потребуется что-то дорабатывать и чем меньше загруженность ПЛИС тем лучше времянка. 2. если нет ограничения по финансам, но есть ограничения по времени: берем бааааааальшую ПЛИСину, чтобы влезло все, что нужно, сообщаем об этом разработчику платы. Параллельно с разработкой платы, пишем RTL и по приходу платы засовываем его в ПЛИС. примерно так.
|
|
|
|
|
Apr 28 2011, 14:09
|
Участник

Группа: Свой
Сообщений: 74
Регистрация: 29-11-08
Из: санкт-петербург
Пользователь №: 42 061

|
Главное и единственно важное: примерно прикинуть требуемый объем ресурсов. Если проект, не сильно маленький, то триггеры, наверняка можно не считать. Главное проконтролируйте число умножителей да объем имеющейся памяти. Прикиньте сколько Вам надо, умножьте на "коэффициент запаса"(2, ну или любое другое число на ваш вкус, зависит от того, насколько вы доверяете своим же расчетам=) ). А еще можно использовать pin2pin совместимые ПЛИС, если Ваш коэффициент запаса был великоват - в следующей партии поставите ПЛИС поменьше;-)
|
|
|
|
|
Apr 28 2011, 14:24
|
Профессионал
    
Группа: Свой
Сообщений: 1 088
Регистрация: 20-10-09
Из: Химки
Пользователь №: 53 082

|
Цитата(Иван Панченко @ Apr 28 2011, 18:09)  Если проект, не сильно маленький, то триггеры, наверняка можно не считать. Главное проконтролируйте число умножителей да объем имеющейся памяти. ИМХО, все зависит от конкретного проекта - в некоторых проектах умножители нафиг не нужны (маршрутизаторы скажем) и основное требование - наличие как можно большего кол-ва памяти, в ЦОС наоборот. Иногда требуется наличие высокоскоростных каналов передачи данных. Соответственно, требуется реализовать кусок проекта и просчитать приблизительный объем всех требуемых элементов: объем регистров, памяти, умножителей, наличие каналов lvds и т.д. и т.п. для конкретных ПЛИС. При этом внимательно смотрите на семейства и speed grade. Современные ПЛИС могут работать и на 600МГц, старые не вытянут и 250... Ну и, соответственно, цена будет зависеть не столько от объема, сколько от самомго семейства и "начинки".
Сообщение отредактировал bogaev_roman - Apr 28 2011, 14:25
|
|
|
|
|
Apr 28 2011, 16:25
|
Участник

Группа: Свой
Сообщений: 74
Регистрация: 29-11-08
Из: санкт-петербург
Пользователь №: 42 061

|
Цитата(bogaev_roman @ Apr 28 2011, 18:24)  Иногда требуется наличие высокоскоростных каналов передачи данных. ну это уж мне казалось как-то совсем само-собой разумеющимся, что человек сможет подобрать ПЛИС с подходящими интерфейсами, числом входов, тактовой частотой... после этого у него остается 10 ПЛИСин, и какую из них ему взять... по-моему, вопрос о той части процесса выбора, которая завязана на разработку под FPGA.
|
|
|
|
|
Apr 28 2011, 16:54
|

Lazy
     
Группа: Свой
Сообщений: 2 070
Регистрация: 21-06-04
Из: Ukraine
Пользователь №: 76

|
Цитата(D-Luxe @ Apr 27 2011, 20:15)  Допустим тебе поставили задачу разработать какое-нибудь устройство с определенными интерфейсами для решения конкретной задачи.
Как выбирать ПЛИС? Даже если выбор стоит между семействами одной компании к примеру Xilinx. Можно поступать так... 1) Определяемся с семейством (Spartan-3, S6, V-4, V-6, т.п. ) на основе требований (наличие интерфейсов, умножителей, hard IP, быстродействию) 2) Когда определились с семейством - выбираете корпус, которого хватает по контактам и который покрывает максимум разновидностей по емкости внутри семейства... Например, для S6 - FGG484. В этом случае Вы можете сравнительно безболезненно перейти с "мелкого" на более "крупный" чип. Как-то так...
--------------------
"Everything should be made as simple as possible, but not simpler." - Albert Einstein
|
|
|
|
|
Apr 28 2011, 18:39
|
Знающий
   
Группа: Свой
Сообщений: 972
Регистрация: 12-04-09
Из: Москва
Пользователь №: 47 543

|
Цитата берем бааааааальшую ПЛИСину, чтобы влезло все, что нужно, сообщаем об этом разработчику платы Есть 2 возможных траблы: 1) Требуемый алгоритм так, как он видится, может не влезть и в самую большую плисину (по объему или быстродействию). 2) Самая большая плисина, которая окажется в самом большом корпусе, не пролезет по габаритам или потреблению. Поэтому, на мой взгляд, в общем случае без проработки проекта хотя бы в первом приближении нельзя.
|
|
|
|
|
May 14 2011, 18:20
|
Местный
  
Группа: Свой
Сообщений: 347
Регистрация: 24-02-10
Из: Пенза
Пользователь №: 55 642

|
Цитата(iiv @ May 14 2011, 22:16)  Если не проходит по частоте интерфейсов - то, только правильных кристалл, а если внутренняя логика, то почти всегда ее можно распараллелить и пустить Ваши вычисления на в 2 раза большем числе логических элементов, но с двухкратным понижением частоты. Почему вы так уверены что логику всегда можно распараллелить? Пример: прием из Ethernet пакета, фильтрация по MAC и по IP адресу и передача в другой интерфейс, к примеру Rocket'ы. Как этот проект можно распараллелить?
--------------------
Нелегко оказаться на верном пути, но куда труднее его пройти. (с) Уилл Роджерс
|
|
|
|
|
May 14 2011, 18:52
|
вопрошающий
    
Группа: Свой
Сообщений: 1 726
Регистрация: 24-01-11
Пользователь №: 62 436

|
Цитата(D-Luxe @ May 15 2011, 00:20)  Почему вы так уверены что логику всегда можно распараллелить?
Пример: прием из Ethernet пакета, фильтрация по MAC и по IP адресу и передача в другой интерфейс, к примеру Rocket'ы. Как этот проект можно распараллелить? подсказывает мой двадцатилетний опыт работы на компьютерах с числом ядер и процессоров больше тысячи... В вашем случае - пайплайните пакеты, натравливаете каждый второй клок на два пакета впараллель на то, что у Вас есть, и потом оттаскиваете назад в рокеты с повышением клока. Как я уже писал, главное, чтобы интерфейс тянул ту скорость, которую Вам надо обеспечить. Ровно в 2 раза больше логики, но зато логика может работать в два раза медленнее.
|
|
|
|
|
May 22 2011, 08:27
|
Местный
  
Группа: Свой
Сообщений: 347
Регистрация: 24-02-10
Из: Пенза
Пользователь №: 55 642

|
Пока лазял на форуме кое-что нашел по этой теме, цитирую: Цитата Абсолютно правильно andrew_b попросил уточнить критерии целесообразности. Если требование максимальной скорости работы, то больше чем на 50-60 % загружать не стоит. Если по цене в готовом изделии – то упихивать «до упора» (у меня доходило в Spartan IIE до 98 % при тактовой 50 МГц). Если удобство и скорость отладки – то 30-40 % - остальное – на всякие ChipScope, SignalTap и прочие. Если предусматривать адаптацию под требования заказчика, то 10-15 % оставлять надо.
Как правило, ряды ПЛИС имеют достаточную вариацию ёмкости в одном корпусе, поэтому в прототип закладывают «с запасом», а потом (если серия пойдёт) жирок можно и обрезать. Всё выше сказанное IMHO. Ссылка
--------------------
Нелегко оказаться на верном пути, но куда труднее его пройти. (с) Уилл Роджерс
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|