Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: FPGA и CPLD
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
Muxamor
Кака разница между FPGA и CPLD? Как я понил на данный момент CPLD используеться чтобы загрузить с флешки FPGA!

А для чего и чем они отличаються?
DSIoffe
Окончательного определения ни для того, ни для другого никто не даст. Здесь уже пробовали.
На практике можно считать, что в FPGA очень много триггеров, но логика не очень могучая. А в CPLD - наоборот, триггеров меньше, но мощная логика.
Кроме того, обычно конфигурационная память у FPGA внешняя, а у CPLD встроенная.
Цитата
Как я понил на данный момент CPLD используеться чтобы загрузить с флешки FPGA!

Неправильно. И то, и другое - программируемая логика, много где используется.
Есть такое хорошее место: http://www.fpga-faq.narod.ru/. Там про ПЛИС самое главное и понятно.
andrew_b
Цитата(Muxamor @ Nov 9 2005, 10:30) *
Кака разница между FPGA и CPLD? Как я понил на данный момент CPLD используеться чтобы загрузить с флешки FPGA!
А для чего и чем они отличаються?

Используйте поиск. http://forum.electronix.ru/index.php?showt...%F1%F2%E5%EC%FB
asen
А вот вопрос сможет ли какойнибуть например счетчик 32 бита работать на частоте 100 МГц и если сможет то на чем его сделать на CPLD или FPGA и каким семействам это подсилу ??? <_<
Black Pahan
Для Altera Cyclone такой счетчик будет щёлкать с максимальной частотой переключения триггеров для каждого из грэйдов т.е. 275МГц для 8 грэйда, 320 для 7, и 405 для 6 соответственно. Т.к. в счетчике фактически кроме триггеров ничего и нет. Всякие там Stratix'ы и т.п. еще быстрее будут.
CPLD MAXII тоже асилят.
Короче для современной программируемой логики не проблема.

НО! это только если в проекте акромя счетчика ничё нету.

В более-менее сложных проектах максимально допустимая частота системного клока может сильно падать.
des00
Цитата(Black Pahan @ Nov 9 2005, 05:22) *
Для Altera Cyclone такой счетчик будет щёлкать с максимальной частотой переключения триггеров для каждого из грэйдов т.е. 275МГц для 8 грэйда, 320 для 7, и 405 для 6 соответственно. Т.к. в счетчике фактически кроме триггеров ничего и нет. Всякие там Stratix'ы и т.п. еще быстрее будут.


хмм сильно сомневаюсь что это не так smile.gif
для 4 бит счетчика еще может быть, но не для 32 бит
ведь не даром есть спец. схемы построения счетчиков высокой разрядности
Muxamor
Цитата(DSIoffe @ Nov 9 2005, 10:45) *
Неправильно. И то, и другое - программируемая логика, много где используется.


Но для загрузки FPGA используеться же CPLD?
andrew_b
Цитата(Muxamor @ Nov 9 2005, 14:43) *
Но для загрузки FPGA используеться же CPLD?

Да нет же. Это разные типы микросхем.
Black Pahan
Цитата
ведь не даром есть спец. схемы построения счетчиков высокой разрядности

В Cyclone такая спец. схема аппаратная в каждом LE. smile.gif
Дело в том, что Сyclone/Stratix построены по Carry-Select architecture.
Посмотрите Figure 2–8 http://altera.com/literature/hb/cyc/cyc_c5v1.pdf сразу поёмете.
В СycloneII/StratixII от этой архитектуры отказались - дорого сильно, LUT вдвое толще становится.
Как результат на 64-bit counter'e:
EP1C6T144I7 - 252MHz. (Сyclone)
EP2C5T144I8 - 151MHz. (СycloneII)
EP2C5T144C7 - 167MHz. (СycloneII)

32-bit counter'e:
EP1C6T144I7 - restricted to 320MHz.
EP2C5T144I8 - 240MHz.
EP2C5T144C7 - 269MHz.

софт - QII 5.0 SP1.04


Так что СycloneII/StratixII и фсякие там Xillinx в пролёте. smile3009.gif



2Muxamor

Тебя же послали в хорошее место smile.gif. http://www.fpga-faq.narod.ru/
Muxamor
НУ хорошо !

При пере воде вот этого :

In order to provide a jumper free design an FPGA is used to implement all functional modes. Easy logical update feasibilities are enabled by exchanging the FPGA configuration file that is stored in the onboard flash memory. This file is downloaded to the FPGA via the CPLD.

Получаеться что FPGA грузиться с флешки через CPLD!
Vjacheslav
Прочитайте какую-нибудь обзорную статью на русском языке, благо их полно: например Стешенко.
Учить, объяснять Вам с уровня школьника вряд ли кто будет, а вот после этого задавайте вопросы по-существу. При этом должно быть понятно что Вы хотите. А теперь по существу...
Программируемую логику делят на 2 вида, в зависимости от того, где хранится конфигурация - попросту межсоединение элементов внутри ее.
1. FPGA - конфигурация во время работы хранится внутри ее в ОЗУ (RAM), поэтому каждый раз при включении необходимо загрузить эту таблицу межсоединений. Стандартно, для этого, фирма разработчик выпускает последовательные ПЗУ (ROM), которые согласованы с ней по сигналам и протоколам, с которой напрямую (без всяких промежуточных элементов) происходит загрузка конфигурации при включении питания. Кроме того есть флэш-ПЗУ и третьих фирм, а также Вы вольны загружать ее откуда хотите и как ходите: из параллельной ПЗУ через контроллер, сделанный на CPLD, из микроконтроллера и т.д. и т.п.
2. CPLD - конфигурация хранится во внутренней, перепрограммируемой ПЗУ и не требует загрузки каждый раз при включении.
А как следствие этого, отличаются объемы логики и шин, которые в них заключены. Хранение конфигурации в ОЗУ не очень удобно, зато можно хранить большую конфигурацию - ОЗУ и большой емкости занимает существенно меньше площади кристалла, чем перепрограммируемое ПЗУ. Поэтому для программируемой логики большого объема выбора нет - хранение конфигурации только в ОЗУ.
3. Есть и промежуточный вариант: MAX II - совмещение FPGA и загрузочного ПЗУ в одном устройстве и в силу того что конфигурация хранится все-таки внутри - фирма называет их CPLD.
И самое главное - так ли уж важно как они называются? - главное в понимании того что внутри и сколько. Деление на FPGA и CPLD весьма условно и на примере MAX II видно что грань стирается.
Muxamor
Цитата(Vjacheslav @ Nov 10 2005, 08:48) *
Вы вольны загружать ее откуда хотите и как ходите: из параллельной ПЗУ через контроллер, сделанный на CPLD, из микроконтроллера и т.д. и т.п.




Вот это я и спрашивал!
Vjacheslav
Из Вашего вопроса это непонятно.
И еще Вы забыли при цитировании слова "а также", которые на мой взгляд здесь существенны! и означают, что это дополнительный, а не основной способ загрузки конфигурации.
Повторюсь еще раз: для загрузки FPGA вовсе не нужны никакие CPLD: стандартный способ - внешнее последовательное ПЗУ. Для каждой FPGA в описании указаны рекомендуемые флэш-ПЗУ, подключаемые напрямую к FPGA!!!!
Nixon
По поводу CPLD и FPGA:
Классическое отличие этих двух типов программируемых asic сводится к различным концепциям внутренней реализации пользовательских логических функций. FPGA основана на том понятии, что любую логическую функцию можно представить в виде таблицы истинности. Т.е. на любое входное воздействие изначально известно и прописано в особой памяти выходное значение функции. Сам же логический процесс при этом совершенно не нужен. Такая особая память назывется LUT ячейкой (Look-up table). CPLD же основана на теореме, что любую логическую функцию можно представить в виде суперпозиции элементарных логических функций (and, or, not, xor и т.д.) и поэтому основной единицей топологии CPLD есть матрица этих самых логических функций, которую при программировании мы определенным образом коммутируем между собой. В данном случае нам не нужно знать все возможные выходные значения пользовательской логической функции в зависимости от входных воздействий, поскольку мы физически реализуем эту самую функцию.
Каждая из этих концепций имеет свои плюсы и минусы и поэтому на современном этапе грань между FPGA и CPLD все больше стирается.
Adlex
Еще одно свойство FPGA с внешней памятью - возможность во время работы переконфигурировать ПЛИС (если это позволяет алгоритм функционирования), что. в некоторых случаях, позволяет применять менее мощный чип.
DSIoffe
Цитата
По поводу CPLD и FPGA:

Спасибо, Nixon! Я впервые вижу такое исчерпывающее объяснение.
CaPpuCcino
Цитата(DSIoffe @ Nov 10 2005, 15:17) *
Цитата
По поводу CPLD и FPGA:

Спасибо, Nixon! Я впервые вижу такое исчерпывающее объяснение.

использование LUT это не необходимый и достаточный признак ФПГА. существуют так же SLC (simple logic cells) и логические модули на основе мультиплексоров - см. Actel - и вообще то что запихано в Лоджик Блок значения-то особого не имеет - там хоть транзисторные пары могут быть.
а фишка по моему заключается в системе межсоединения - у ФПГА они сегментированные, с поддержкой иерархической системы при желании, и система межсоединений распределена по всему устройству (ФПГА) - в ЦПЛД же имеется ПМС (программируемая матрица соединений) суть её заключается в том что каждая ЛЯ в пределе может быть соединена с каждой на прямую - отсюда более сложен и рискован процесс разводки (при этом возможна также иерархическая организация - если на пальцах - то каждая ЛЯ представляет ЦПЛД сама по себе - то есть тоже организована по принципу ПМС).
подтверждением тому может служить рассказ LeonY - Здесь - он рассказывает о проблемах размещения проекта - это связано с ограничением ресурсов ПМС - но зато задержка по ПМС предсказуема - не подстать ФПГА, где сигнал может блуждать от одного переключательного блока до другого пока не найдёт целевой ЛБ - а это задержка на каждой трассе+ на каждом переключательном блоке (поэтому и ввели длинные и короткие линии - т.е иерархия в системе межсоединений)
смежная же архитектура типа Альтеровского FLEX - является смежной именно по признаку орг. межсоединений - там ЛБ организованы по принципу ЦПЛД(ПМС в каждом), а ЛБ между собой соединены по схеме ФПГА (если я чего-то не путаю т.к. с альтерой давно не встречался)

если кто-то что-то понял - очень рад -- если кому кажется что объяснил костноязычно -- готов обсудить скользкие моменты
dxp
Цитата(CaPpuCcino @ Nov 10 2005, 18:10) *
Цитата(DSIoffe @ Nov 10 2005, 15:17) *

Цитата
По поводу CPLD и FPGA:

Спасибо, Nixon! Я впервые вижу такое исчерпывающее объяснение.

а вы в курсе, что использование LUT это не необходимый и достаточный признак ФПГА? существуют так же SLC (simple logic cells) и логические модули на основе мультиплексоров - см. Actel - и вообще то что запихано в Лоджик Блок значения-то особого не имеет - там хоть транзисторные пары могут быть.
а фишка по моему заключается в системе межсоединения - у ФПГА они сегментированные, с поддержкой иерархической системы при желании, и система межсоединений распределена по всему устройству (ФПГА) - в ЦПЛД же имеется ПМС (программируемая матрица соединений) суть её заключается в том что каждая ЛЯ в пределе может быть соединена с каждой на прямую - отсюда более сложен и рискован процесс разводки (при этом возможна также иерархическая организация - если на пальцах - то каждая ЛЯ представляет ЦПЛД сама по себе - то есть тоже организована по принципу ПМС).

Вообще-то, насколько меня учили, FPGA - Field Programmable Gate Array - вентильный массив с возможностью программирования в полевых условиях (вольный перевод), т.е. дивайс, который может быть сконфигурирован "на лету" (это смысл). Именно это и подразумевает название FPGA, ничего более. Как там оно внутри реализовано - дело пятнадцатое. То, что в большинстве применяются LUT'ы, это просто удобная и эффективная реализация.

А CPLD - Complex Programmable Logic Device - сложное программируемое логическое устройство, - сегодня просто традиционно устоявшийся термин. Этот класс появился раньше, чем FPGA, тогда это было круто, это были действительно сложные по сравнению с распространенной тогда рассыпухой устройства. Сегодня это название только вводит некоторую неразбериху - реально почти любая FPGA гораздо круче и сложнее, CPLD среди программируемой логики занимают, наверное, последнее место по сложности. И по функциональности. И по характеристикам. Однако все равно они сложные дивайсы. smile.gif Переименовывать, конечно, теперь уже никто не будет, но путаница остается и начинающих сбивает с толку.
CaPpuCcino
не подскажите, а МС - это устройствo который контролирует микры или контроллер размером с микрометр? к стати реальные микроконтроллеры тоже могут програмироваться на лету и даже в полевых условиях - может их случайно отнесли не к тому классу - мож они тоже в душе ФПГА
к стати различие между FPGA и CPLD действительно можно понять из этих сокращений и истории их создания -- ток вы не на те буквы обратили - поверьте CPLD такое же field programmable как и любое FPGA - смотреть надо было на другие буквы - а именно на GA и PLD.
GA (gate array) - по нашему звучит как БМК - базовый матричный кристалл - как раз и есть родитель ФПГА - а точнее БМК канального типа - логические блоки разъединены вертикальными и рогизонтальными каналами для прокладки трасс массочным методом - содержание при этом ЛБ -какое угодно - такие устройства конечно не запрограмируешь в полевых условиях - ток на производстве. поэтому пустые каналы заменили проложенными трассами, а на их пересечениях (горизонтальной с вертикальной) поставили каммутаторы (переключательные блоки - ПБ), в настоящее время програмируемые на статической памяти - хотя есть и другие варианты - вот они и стали field programmable
PLD(programmable logic device) - это термин объединяющий два класса ПМЛ и ПЛМ програмигуемая матричная логика и программируемая логическая матрица - это в простейшем случае система двух матриц для образования ДНФ или КНФ при этом с ростом числа таких блоков выходы дизъюнктивных и конъюктивных термов стали пускать по вертикальным трассам на другие функциональные блоки, со временем стали добавлять память в ФЯ усложнять внутреннюю структуру, заменили плавкие перемычки EPROM-ом а принцип вертикальных связей и почти полной коммутируемости функциональных ячеек остался - получилось так что на кристалле стало много PLD коммутируемых через ПМС - отсюда к названию добавился Complex
пожалуйста заметьте что в FPGA коммутационный ресурс распределённый (пронизывает весь кристалл) а в CPLD централизованный (сосредоточен в ПМС) - отсюда и вытекает всё что я упомянул в пред. сообщение относительно их характеристик
а на счёт кто там кого круче - я давно предлагал отменить кирпичи, потому как железобетонные плиты их намного кручe
dxp
Цитата(CaPpuCcino @ Nov 10 2005, 21:26) *
не подскажите, а МС - это устройствo который контролирует микры или контроллер размером с микрометр? к стати реальные микроконтроллеры тоже могут програмироваться на лету и даже в полевых условиях - может их случайно отнесли не к тому классу - мож они тоже в душе ФПГА

Я что-то не понял, к чему этот стеб? Микроконтроллер - это НЕ программируемая логика. Что не ясно? Названия не я придумал, не ко мне вопрос.

Цитата(CaPpuCcino @ Nov 10 2005, 21:26) *
к стати различие между FPGA и CPLD действительно можно понять из этих сокращений и истории их создания -- ток вы не на те буквы обратили - поверьте CPLD такое же field programmable как и любое

Для CPLD нужен программатор, для FPGA он не нужен. В этом коренное отличие. Предполагается, что в "поле" программатора нет - программатор есть принадлежность производственного цикла.

Еще раз, не надо меня убеждать, эти термины и их трактовку не я придумал. Мне тоже вначале показалось все это неудачным. Сейчас уже привык, стало все равно. Наличие пусть неудачных терминов лучше отсутствия таковых. Оно помогает людям вносить ясность в подавляющем большинстве случаев - когда коллега говорит FPGA, я четко понимаю, что он имел в виду. И это есть хорошо - неудачный термин, тем не менее, играет весьма полезную роль.

Возможно более адекватным было название SBPLD (SRAM-Based PLD), но "паровоз уже ушел", тут обуждать нечего.

Цитата(CaPpuCcino @ Nov 10 2005, 21:26) *
FPGA - смотреть надо было на другие буквы - а именно на GA и PLD.
GA (gate array) - по нашему звучит как БМК - базовый матричный кристалл - как раз и есть родитель

Gate Array - массив вентилей, т.е. массив логики. Не более того. К БМК это имеет весьма опосредованное отношение, заключающееся в том, что БМК - это тоже массив логики.

Цитата(CaPpuCcino @ Nov 10 2005, 21:26) *
ФПГА - а точнее БМК канального типа - логические блоки разъединены вертикальными и рогизонтальными каналами для прокладки трасс массочным методом - содержание при этом ЛБ -какое
...

Детали внутренней реализации к делу не относятся. В разных FPGA в том числе и межсоединения делаются по-разному. И помимо вертикальных и горизонтальных каналов есть еще и прямые связи... Ладно, как уже сказал, это к делу не относится. Речь шла про классы дивайсов и их названия. Про внутренниости уже все сказали выше, я лишь про названия высказался. Именно то, как сам слышал. Причем в разное время, из разных источников. "За что купил, за то продаю".
DSIoffe
Кайф. Это бы обсуждение - да в энциклопедию.
CaPpuCcino
to dxp
"Я что-то не понял, к чему этот стеб? Микроконтроллер - это НЕ программируемая логика. Что не ясно? Названия не я придумал, не ко мне вопрос."
за стёб, пожалуйста, извините.
по поводу ФПГА и ЦПЛД - я не согласен, с тем как вы объясняете эти термины. мою точку зрения я изложил подробно.
"И помимо вертикальных и горизонтальных каналов есть еще и прямые связи... "
прямые связи не являются частью коммутационной системы.
DSIoffe
Насколько я понял: изначально и FPGA, и CPLD - это некие маркетинговые названия, которые не до конца отражали суть вещей? Потом техника развивалась, стали появляться новые детали реализации, а названия остались?
Может быть, этими словами лучше вообще не пользоваться? А для обозначения явления вообще использовать слова ПЛИС или PLD?
dxp
Цитата(DSIoffe @ Nov 11 2005, 20:05) *
Насколько я понял: изначально и FPGA, и CPLD - это некие маркетинговые названия, которые не до конца отражали суть вещей? Потом техника развивалась, стали появляться новые детали реализации, а названия остались?
Может быть, этими словами лучше вообще не пользоваться? А для обозначения явления вообще использовать слова ПЛИС или PLD?

Но ведь надо же как-то их различать. Я имею в виду SRAM-Based и EEPROM-Based. Которые на LUT-ах и которые на P-Term'ах. Одного безликого ПЛИС (PLD) явно мало. Придумать удачное, адектватное название (термин, имя и т.д.) вообще зачастую очень сложно.
CaPpuCcino
Цитата(DSIoffe @ Nov 11 2005, 18:05) *
Насколько я понял: изначально и FPGA, и CPLD - это некие маркетинговые названия, которые не до конца отражали суть вещей? Потом техника развивалась, стали появляться новые детали реализации, а названия остались?
Может быть, этими словами лучше вообще не пользоваться? А для обозначения явления вообще использовать слова ПЛИС или PLD?

извините за навязчивость - сейчас скажу и удалюсь - по моему убеждению ФПГА от ЦПЛД отличаются подходом в организации системы коммутации
(проверить это можно, посмотрев даташиты от разных производителей и моделей, и найдя у этих устройств объединяющие их черты в архитектуре) cranky.gif
bbg
Гм. И чего спорим??

Field-Programmable - это изначально (1984-й год) SRAM, сейчас - не обязательно.
Complex Logic - это развитие некомплекслоджик PLA и PAL, появление разных там
CLB с продвинутым интерконнектом, неважно же по сути - матрицы, шматрицы,
столбцы, хексматрицы, ужосс. В реале - по-прежнему: FPGA грузим откуда-то,
CPLD имеет на борту EEPROM (ну флэшем ее обзовите, особой разницы не вижу,
хотя знаю).

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

А так, "все это маркетинг"..
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.