Altera vs xilinx что выбрать
Перейти к содержимому

Altera vs xilinx что выбрать

Сделай шаг к ПЛИС

Много лет я не решался начать программировать ПЛИС, потому что это сложно, дорого и больно (как мне казалось). Но хорошо, когда есть друзья, которые помогают сделать первый шаг. И теперь я не понимаю одного — ПОЧЕМУ Я ЖДАЛ ТАК ДОЛГО?

Сейчас я помогу сделать первый шаг и тебе!

А зачем оно мне?

Ты устал постоянно читать доки по своему МК или держать кучу информации в голове. Ты все переписал на asm, но скорости все равно не хватает. Ты подключил два внешних устройства к своему МК, подключаешь третье, но у тебя кончились прерывания, перестают работать те модули, что уже работали. Ты берешь другой МК, более мощный из той же линейки, но опять мануалы, регистры флагов, биты… ад. Меняешь платформу: переходишь на другой МК и выкидываешь на помойку свои знания по прежней платформе. Что бы ты не делал — оно дается тяжело. Ты находишь популярную платформу, в которой можно легко из компонентов собирать проект, но выше аппаратных ограничений данного МК все равно не удается прыгнуть… Где-то на краешке сознания иногда проскакивает мысль, что вот на ПЛИС это бы точно заработало быстро и параллельно, что это «именно та задача, которую бы надо решать на плис», но я стар/глуп/занят/etc чтобы суметь/начать такое делать.

Хочешь наконец вздохнуть свободно? Идем дальше!

Радость от разработки на ПЛИС

У меня был тяжелый рабочий день. С одной работы я приехал на вторую работу, потом на дачу, вечером домашние дела, уроки, потом семейный просмотр кино и только в 23 часа я оказался совершенно свободен! Сказать, что я был уставший — ничего не сказать. Но в таком состоянии я сел за ноут с твердой целью: сделать генератор меандра на 440 Гц. Прошло 20 минут и я уже слышал его в наушниках. Я не верил своим ушам! Еще 15 минут мне потребовалось, чтобы сделать ШИМ и менять громкость. К тому времени плата с ПЛИС у меня была всего с неделю и до этого я пролистал всего пару книг по Verilog.

В тот вечер я понял: ВОТ ОНО! Вот та платформа, в которой я быстро и легко могу превращать свои мысли в реально работающее железо!

Почему так?
  • Универсальность знаний — при смене модели МК нужно читать доки. При смене производителя МК нужно читать доки. Нужно постоянно читать доки, постоянно держать в голове кучу информации. При разработке на ПЛИС, если знаешь Verilog или VHDL, то можно не только программировать любой ПЛИС из линейки одного производителя, но и при желании перейти на другого (Altera, Xilinx). Хоть и будут моменты с освоением другой среды разработки, тонких аппаратных моментов, но сама суть подхода проектирования устройств на HDL от этого не изменится.
  • От идеи к железу — при разработке проекта, если тебе не хватает одного мк, то приходится выбирать другой. В принципе можно строить предположения справится или не справится этот МК с проектом. Либо есть какой-то конкретный МК и ты пытаешься туда вместить проект. Чаще всего именно так. Мне это чем-то напоминает подход моего деда, который делает лестницу из того, что есть в сарайке. Хотя можно спроектировать лестницу, купить досок, которые подойдут… От идеи к железу, а не наоборот.
  • Простота применения чужих разработок — можно взять чужой модуль и применить его в своем проекте. По коду сможете понять, как он работает. Даже, если он для xilinx, а вы делаете под altera. Иногда это получается не сарзу, но это проще, чем, например, добавлять двоичные библиотеки к проекту на c++/Qt
  • Независимость блоков. Блоки в HDL, как чистые фунции в ЯП. Зависят только от входных сигналов. Разработанный и отлаженный модуль в будет и дальше работать правильно, как бы не рос проект. Ничто снаружи не повлияет на правильность его работы изнутри. Да и вообще можно забыть, как он работает — это черный ящик. К тому же, блоки работают параллельно.
Проблема выбора

Сильно останавливают вопросы, что выбрать: Altera/Xilinx, Verilog/VHDL, какую отладочную плату взять. Но обо всем по порядку.

Производитель

Я выбрал Altera. Почему? Ну мы вот так с другом решили, хотя название Xilinx мне красивее. НО. Если ты сейчас не можешь выбрать, то я сделаю это за тебя. Тебе нужен Altera! Почему? Я не знаю. Сейчас важнее сделать шаг: сделать выбор. Я выбрал Altera и пока не пожалел.

Язык

Берем Verilogпотомучто… ну ты понял.

Отладочная плата

На выбор отладочной платы ушло больше всего времени. Понятно, что платы отличаются установленной микросхемой ПЛИС. А микросхемы ПЛИС отличаются друг от друга количеством элементов. Но совершенно не понятно, сколько их потребуется для твоих тестовых проектов. Поэтому большую часть времени я потратил на поиск всевозможных проектов на ПЛИС на предмет того, чтобы узнать, сколько они потребляют ресурсов ПЛИС.

В семействе Altera, за разумные деньги мы можем купить платы с CPLD MAX II на 240, 570 и 1270 элементов, либо более старшие микросхемы FPGA, которые Cyclone 1, 2, 3, 4 с количеством до 10000 и более ячеек. Как же выбрать?

Даже на базе 240 ячеек, проект Марсоход делает просто огромное количество проектов. Настоятельно рекомендую ознакомиться, чтобы иметь примерное представление о сложности проектов, которые можно уместить в 240 ячеек. С другой стороны, существуют проекты, которые полностью программируются под аппаратную копию определенного ПК, включая процессор и всю логику вокруг него (NES, Speccy, Orion, ЮТ-88, etc). Для этого уже требуется пять, десять и более тысяч ячеек. Плюс эти платы содержат дополнительные внешние устройства.

Поэтому я бы посоветовать взять что-то среднее между 240 и 10000 ячейками, с предпочтением в сторону увеличения в зависимости от доступных средств. На отладочной плате лишние ячейки это не страшно, а если их не хватит — уже ничего не поделаешь. Потом, когда устройство отлажено, станет ясно, сколько надо ячеек, купить под нужное количество, без лишнего «обвеса», дешевле и оставить в готовом устройстве.

То, чем действительно отличаются MAX от Cyclone’ов, кроме количества ячеек, это:
1) У серии MAX внутри нет PLL. На каждой отладочной плате есть генератор, как правило на 50 МГц. Основной массе проектов этого будет достаточно. Все синхронизации будут происходить путем деления 50 МГц на какое-нибудь значение. Либо, можно взять внешний генератор и подать на отдельный вход ПЛИС. А что, если потребуется частота выше 50 МГц? Мне не удалось с ходу найти генераторы выше 50 МГц. Но тут как раз на помощь и приходит PLL, который встроен в Циклоны. На нем можно умножить частоту, например, до 100 МГц.
2) В серии Cyclone встроены аппаратные блоки умножения. Их количество зависит от конкретной модели — тут как раз можно «всетаки заглянуть в инструкции», чтобы узнать сколько. Если предполагаете делать какой-то ЦОС, то они пригодятся: сэкономят ячейки, увеличат скорость. С другой стороны, если нет умножителей, их можно синтезировать, но у маленькой ПЛИС на это может не хватить ресурсов.

Во всем остальном у меня критерий «влезло/не влезло». Отладка на заведомо бОльшей, чем нужно плате, с последующей заливкой в минимально необходимую для этого.

Сколько нужно денег?

Программатор
Я считаю, что у меня нет времени, чтобы паять программаторы на рассыпухе.

300 рублей. Я свой брал на ебее, выглядит так:

Отладочная плата
Выбор широкий, в зависимости от количества денег.

Начальный уровень 350 — 550 рублей. Это платы на MAX II (240 или 570 ячеек). Могут подойти для начального ознакомления и дальнейшего пристройства в конечные устройства. На плате есть генератор, пара кнопок, пара светодиодов, остальные 80 выводов на свое усмотрение.

Блок питания
Обязательно должен быть, но не всегда идет в комплекте. Потребуется БП на 5 вольт и ток 2А.

Средний уровень от 900 до 1500 рублей. Это платы Cyclone 1, 2, 3, 4 отличающиеся в основном количеством ячеек.
Маркируются примерно так:
EP2C5T144 — Cyclone 2 примерно 5к ячеек
EP4CE6E22C8N — Cyclone 4 примерно 6к ячеек
EP2C8Q208C8N — Cyclone 2 примерно 8к ячеек

Можно заметить, что Cyclone 3 может иметь больше ячеек, чем Cyclone 4.

Вот несколько вариантов:

835 рублей.
ALTERA FPGA CycloneII EP2C5T144 Minimum System Board for Learn good

880 рублей
Altera CycloneII EP2C5T144 FPGA Mini Development Learn Core Board E081

1265 рублей
EP2C8 EP2C8Q208C8N ALTERA Cyclone II FPGA Evaluation Development Core Board

Платы с расширенными возможностями. Это платы, на которых установлены дополнительные модули (UTP, USB, AUDIO), разъемы (SD, VGA), кнопки, переключатели, светодиоды, семисегментные индикаторы и т.д. Либо может идти базовая плата, а к ней могут прилагаться платы расширения отдельно.

Вот основная плата. На ней есть 2 светодиода, 2 кнопки, 4 переключателя, семисегментный интикатор и микросхема оперативной памяти.

Плата расширения. На ней распаяны SD, VGA, а так же контроллеры USB(High Speed USB2.0 Chip: CY7C68013A), AUDIO(Sound Card up to 96kHz/32bit ADC/DAC: WM8731S), UTP(100M Ethernet interface: DM9000A):

Эти платы просто вставляются одна в другую, но у меня она пока лежит в ящике. Для своих поделок у меня макетка, с которой я соединяюсь шлейфом, который идет в комплекте. Еще в комплекте идет блок питания на 5 вольт.

Altera Cyclone NIOS II SOPC FPGA Development Learning Board EP2C8Q208C8N+LCD1602 — 2670 рублей

Terasic Altera FPGA DE0-Nano Cyclone IV Development and Education Board — 4600 рублей

Но в целом, большие и дорогие отладочные платы я бы не рекомендовал сразу покупать. Дорогие покупки должны быть обоснованы, сейчас же пока не ясно что подойдет лучше. Ясно станет, когда начнется практика.

Заказал, ждем

Пока идут платы, можно начать себя морально и технически готовить:
— Установить Quartus II v.11.1
Почитать:
— Книга: А.К. Поляков Языки VHDL и Verilog в проектировании цифровой аппаратуры 2003
— www.kit-e.ru/articles/circuit/2008_3_161.php — Краткий курс HDL
— Уроки на марсоходе по верилогу, архитектура, простые советы по стилю.
— VERILOG как образ жизни
— Хорошие примеры (EN)
— Как начать работать с ПЛИС (Xilinx)

ВСЕ!

Мы ждем от тебя интересных проектов на ПЛИС!

PS. Обращаясь к тебе на «ты», я обращаюсь, как к равному, личности, а не части толпы. Если обращение на «ты» оскорбило, прошу меня извинить.

ВНИМАНИЕ! Verilog и ПЛИС не являются серебряной пулей и волшебным средством решения любых задач, они не могут заменить микроконтроллеры во всех проектах. Для работы с ПЛИС требуется определенный уровень технической подготовки. Вы сами несете ответственность за все решения в вашей жизни. Автор снимает с себя ответственность за возможные финансовые и временные потери, связанные с вашими исследованиями в области ПЛИС и Verilog.

[hardware][fpga] Altera vs Xilinx

Хочется поиграться с верилогом, нарисовать в итоге простенький 16-32битный процессор с поддержкой виртуальной памяти.

А теперь вопрос, что лучше выбрать:

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

Кто что может посоветовать? Сам склоняюсь к альтере, как с ней идёт какой-то софт.

Re: [hardware][fpga] Altera vs Xilinx

А набрать "altera linux" "xilinx linux" в качестве первых запросов религия не позволила, да? 🙂

Кстати, что за религия такая?

Re: [hardware][fpga] Altera vs Xilinx

Это не религия, просто хотелось услышать (и, возможно, поспрашивать) людей, реально работающих с сабжем. Вот =)

Re: [hardware][fpga] Altera vs Xilinx

Если работать под linux, то xilinx — у них бесплатные инструменты. Вот ссылка кратко обо всем 🙂
http://vak.ru/doku.php/proj/xilinx/spartan3e
там в тексте где-то есть линки и на инструментарий для работы под linux, есть и готовый открытый процессор на который linux портирован.

Re: [hardware][fpga] Altera vs Xilinx

Обрати внимание, что на плате digilent-а разведен прошивочный кабель, а это вообще-то около $700 в случае зайлинкса.

Re: [hardware][fpga] Altera vs Xilinx

Бесплатные они весьма ограничены. Лучше все-же ломаные взять.

Re: [hardware][fpga] Altera vs Xilinx

К стати, процессор — это что-то типа своей ОС для программистов 🙂 Все через это проходят, правда в результате я не видел еще ни одного софт-процессора с MMU. Все упрется в то, что шины внутри ПЛИС весьма хреново разводятся и максимальная рабочая частота падает на глазах прямо, а памяти внутренней катастрофически не хватает.

Хотя это возможно, просто не нужно.

И еще. Из личного опыта: можно ничего не покупать. Достаточно моделировать на post plase&route. Это гарантия того, что все в железе заведется 99%.

Re: [hardware][fpga] Altera vs Xilinx

Прошивочный кабель — это что, JTAG? 700$ что-то дофига. А как же wiggler адаптеры? Слишком медленные?

Насчёт MMU — я начну с 16битного процессора, думаю, он должен влезть.

А что плохого с альтерой? У неё вроде бы в два раза больше "логических гейтов", если сравнивать с "логическими ячейками". (Не представляю, в чём основная разница и стоит ли этим меряться)

Насчёт крякнутого софта — я так и сразу и подумал. На нормальный софт под линукс я особо и не рассчитывал.

И последний вопрос — в чём проигрывает альтера (та, что по линке)?

Re: [hardware][fpga] Altera vs Xilinx

Re: [hardware][fpga] Altera vs Xilinx

>Бесплатные они весьма ограничены. Лучше все-же ломаные взять.

Зачем же человеку советовать плохое? Мы же тут же за свободу и чистоту 🙂

С Altera я работал только на Windows и только на AHDL, поэтому мой опыт к открытым инструментам не имеет отношения. И было это в году 2001-м. Софт был честный, так как все происходило в центре обучения технологиям Altera, который был создан на базе моей кафедры, на которой я обучался.

Хотя на Icarus Verilog я гонял собственную модель цифровой части GPS-применика. Но до железа это дело не довел. Это у меня был один дерзкий проектик в свое время, но так как я сам его делал, то никакого там софта прикупить не имел возможности. Вообще, политика xilinx и altera враждебна любителям-одиночкам.

Re: [hardware][fpga] Altera vs Xilinx

Да, насчёт любителей и одиночек ты прав. А что ещё можно сказать о политике altera/xilinx? Кто из них больший засранец? 😉

Re: [hardware][fpga] Altera vs Xilinx

Предпоследний вопрос: в какую плис "влезет" бОльшее число гейтов (сори за "ламерскую" формулировку). Ну, или в какой из плиз микроблейз будет использовать меньший процент ячеек и будет ли разница существенна (в 1.5 раза)?

Русские Блоги

Недавно, смерть крупных компаний, письменных трюков, одна разница между архитектурой FPGA Xilinx и ALTERA, у меня есть только семья FPGA для X домой, простой сводку цена не распыляет все:
Разница между двумя FPGAS, я думаю, есть два аспекта: 1. Основные логические ресурсы; 2. Внутренняя основная архитектура. (Также можно рассматривать как один аспект)

Из простых в использовании это определенно легко использовать, но дешевые
Их характеристики краткосрочные ресурсы Xilinx очень богаты, поэтому, когда это реализуется, скорость успеха проводки высока, особенно когда логика сделана. Быть
Недостаточно краткосрочные ресурсы FPGA ALTERA часто не достаточно, часто принимает Le, чтобы выступить в качестве ресурсов электропроводки (поэтому FPGA ALTERA может быть дешевой причиной, ресурсы меньше, но если вы являетесь мастером, вы также можете играть в его производительность , Очень хорошо.
Кроме того, о блочной оперативной памяти XILINX Double Phort True, ALTERA нет двойного порта RAM, если вы хотите добиться настоящей двойной оперативной памяти, вы можете использовать только две оперативные операции, чтобы вернуться к спине, поэтому ваши ресурсы RAM будут меньше. Половина, Если ваше приложение важно для требования двойного порта RAM, вы не можете использовать ALTERA.

Основные логические ресурсы

Набрав слишком устал, пойдем скачать. Отказ Отказ

Хотя использование является более старым чипом, он также может объяснить проблему, сэкономить время, подумайте больше, не красиво.

2. Внутренняя основная архитектура

С момента внедрения первой FPGA в 1985 году использование FPGA было в истории почти 30 лет. В настоящее время FPGA на основном рынке — это в первую очередь две серии Xilinx и ALTERA, которые описаны ниже, чтобы представить свои соответствующие основные структуры.

FPGA XILINX в основном состоит из следующей структуры устройства: настраиваемый логический блок (CLB), модуль управления часами (CMT), память (RAM / FIFO), модуль обработки цифрового сигнала (DSP) и некоторые выделенные модули. Возьмите Virtex-5 в качестве примера, чтобы кратко представить функциональность каждого модуля.

1.CLB — это основные ресурсы формирования логики дизайна в FPGA, а также основной объект работы в конструкции схемы, а также следующее — это краткое введение в внутреннюю и внешнюю структуру CLB.

Логика FPGA реализована CLB, расположенным на массиве. Каждое устройство CLB подключено к массиву коммутатора и контролируется для реализации логики, как показано ниже.

Каждый CLB содержит две основные структуры (ломтики), каждый из которых содержит четыре столы поиска (LUT), 4 блоки хранения, многоквартирные мультиплексоры широкой функции (Wide_Function Multixblexer) и несут логику, эта базовая структура (среза) называется SmiCel. Кроме того, некоторые основные структуры (ломтики) также включают в себя функции с использованием данных хранения оперативных операций и с использованием 32-битного сдвига регистров, поддерживая эти функции, называемые SLICEM.

2, модуль управления часами (CMT)

Модуль управления часами (CMT) используется для генерации высококачественных часов, в качестве примера серии Virtex-5, включая два цифровых блока управления часами (DCM) и заблокированную фазовую контурную цепь (PLL).

3, память (RAM / FIFO)

Современный FPGA Xilinx имеет внутренние блоки памяти, которые являются Virtex-5 в качестве примера, включая несколько блоков RAMS, 36 КБ на кусок, а размер ОЗУ может быть гибким. ОЗУ в Virtex-5 представляет собой синхронный двойной порт RAM и может быть сконфигурирован как многокачественная память FIFO, которая значительно повышает гибкость дизайна.

4, модуль обработки цифрового сигнала (DSP)

Большинство продуктов FPGA предлагают DSP.

5, другие специальные модули

В дополнение к вышеуказанным модулям существуют некоторые другие выделенные модули в современных продуктах FPGA XILINX, такими как Gigabits Rocket IO, модули конечной точки PCI Express и трехслойные модули Ethernet Mac.

Продукты ALTERA обычно включают в себя следующую структуру блока: логический модуль массива (лаборатория), модуль памяти Trimatrix (RAM), модуль цифрового сигнала (DSP) и модуль фазового кольца (PLL). Структура продуктов ALTERA будет описана как устройство Stertivii в качестве примера.

1, логический модуль массива (лаборатория)

Основная структура модуля логического массива (лаборатория) составляет 8 адаптивных логических модулей (ALM), а также структуры, такие как штаммы портов и логика управления. Логический модуль адаптации (ALM) является основным модулем устройства Stratixii, а его структура показана ниже.

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

2, модуль памяти (RAM)

Устройство Stratixii имеет структуру хранения Trimatrix, которая включает в себя три размера встроенных блоков оперативной памяти. Память Trimatrix включает в себя 512-битные блоки M512, 4КБ М4К блоки и блоки 512 КБ, каждый из которых поддерживает различные функции.

3, модуль цифрового сигнала обработки сигналов (DSP)

Структура блока DSP оптимизируется для достижения различных функций DSP различных максимальных характеристик и минимального использования логического ресурса.

4, заблокированная фазовая петля (PLL)

Устройство Stratixii составляет до 12 фазовых блокировков (PLL) и 48 независимых системных часов, которые можно использовать в качестве центрального диспетчера тактовых часов для удовлетворения требований к системе времени.

Как видно, структура FPGA XILINX и ALTRA является наиболее различной частью или ее частью логической единицы: логический блок Xilinx Basic является настраиваемой логическим модулем (CLB), а altera является лабораторией, но более глубокий, CLB и LAB это также Состоит из LUT, триггера и тому подобное. FPGA из двух компаний имеют свои особенности, которые также определяют свои продукты FPGA.

ПЛИС. Заметки начинающего.

Решил поизучать ПЛИС. Статей, в сообществе и вообще, написано про них уже много. Но все они, как правило, освещают вопрос с одной стороны, конкретный чип, конкретный язык, конкретная среда, конкретная задача. Не всегда удается составить общую картину, чтобы потом уже складывать отдельные части паззла. Возникает множество вопросов общего характера, на каждый из них нагуглить ответ не составляет особых проблем, но в сумме затрачивает много времени. В процессе изучения основ, сделал несколько заметок, вроде конспекта. За достоверность не ручаюсь, но возможно другим желающим изучить ПЛИС мои записи пригодятся. Правда конспект получился скучным, без картинок 🙂

Назначение

Чем же ПЛИС отличается от микроконтроллеров? ПЛИС позволяет реализовать свой собственный контроллер. Если в микроконтроллере все внутренние соединения транзисторов жестко заданы производителем, то в ПЛИС все связи задаются прошивкой. Переконфигурировав внутренние блоки нужным образом, можно получить микросхему, выполняющую на аппаратному уровне нужные нам действия. Можно сконфигурировать так, что получится микроконтроллер. А можно сделать просто таймер, мигающий на выходе светодиодом. Главное чтобы для реализуемой задачи хватило программируемых блоков, число которых может меняться в большом диапазоне, в зависимости от производителя и модели ПЛИС. С точки зрения программиста микроконтроллер — как человек. Может выполнять только одну задачу одновременно. Может переключаться между разными задачами, ставить будильник, чтобы выполнить что-то по расписанию. Зато может производить сложные действия и пользоваться разными инструментами (периферией микроконтроллера). ПЛИС же скорее как стадо муравьёв. Каждый из них примитивен, зато их можно группировать для выполнения задачи. Например, если мы сделаем так, что 10 муравьёв срезают колосок пшеницы и выковыривают из него зёрна за одну минуту, то имея достаточное количество муравьёв (объём ПЛИС), можно легко убрать целое поле пшеницы за ту же минуту 🙂 Или к примеру, помигать светодиодом на микроконтроллере легко. Включил, подождал, выключил, подождал, вернулся в начало. А теперь попробуем добавить второй светодиод, который должен мигать с другой частотой, да ещё не кратной первой. Задача резко усложняется. На ПЛИС же, сделав блок мигания светодиодом, достаточно просто скопировать его, только поменять частоту и ножку со светодиодом. И два этих блока будут работать параллельно, никак друг другу не мешая, не снижая производительности. Таким образом на ПЛИС можно реализовывать устройства, которые сложно сделать на МК.

Архитектура

ПЛИС могут быть построены на основе разных базовых блоков. Поэтому разные ПЛИС не всегда можно сравнить по «объёму». Такими блоками бывают макроячейки и логические блоки. Макроячейки (macrocells) представляет собой небольшую схему из некоторого количества вентилей. Как я понял, схема макроячеек может может отличаться у разных производителей. Логические блоки (logical cells, logical elements, LE) обычно состоят из таблицы поиска на 4 входа и триггера, но бывают и с 6 входами, для увеличения производительности. В зависимости от задачи, необходимое количество макроячеек и логических блоков может меняться, поэтому какой-либо «курс» между ними вывести нельзя, но для очень примерной прикидки Альтера предлагает использовать цифру 1.3 LE на макроячейку. Вообще, блоки довольно эффективны, несколько десятков вполне хватит на задачи малой сложности. На 700 блоках можно реализовать полноценный микроконтроллер, а на 3000 это уже будет микроконтроллер с такими «взрослыми» фичами типа конвейера инструкций, динамическим предсказания ветвлений, кэшем, блоком управления памятью и производительностью в пару сотен DMIPS! Таким готовым виртуальным микроконтроллером является Nios II фирмы Altera. (Вспоминается древний боян, при загрузке компа появляется надпись: CPU not found. Please insert disk with software emulation).

Есть разные типы ПЛИС. Наиболее актуальные из них CPLD и FPGA.
CPLD, собственно и есть ПЛИС (Complex Programmable Logic Device, Программируемая Логическая Интегральная Схема). Содержат встроенную энергонезависимую память, которая хранит прошивку при отключении питания. Строятся традиционно на матрице макроячеек, хотя сейчас всё популярнее основанные на логических блоках. Обычно имеют сравнительно небольшое число элементов (сотни или тысячи). Они дешевле, проще в применении, требуют минимальной обвязки, быстро запускаются. Могут использоваться там, где не требуется сложная логика работы, но не хватает скорости или ног у обычного микроконтроллера. Например, для обработки сигналов, к примеру, как контроллер USB, VGA или PCI-шины.
FPGA (Field-Programmable Gate Array, Программируемая Пользователем Вентильная Матрица, ППВМ) — дальнейшее развитие ПЛИС. Построены на логических блоках с гибкой коммутацией. Могут иметь большое число элементов (десятки и сотни тысяч). Как правило требуют внешнюю энергонезависимую память для хранения прошивки, с которой «загружается» при включении питания. Часто содержат, помимо логики, отдельные блоки, например, для умножения. FPGA дороже, сложнее, зато на них можно реализовать, например, полноценный процессор или сложную обработку сигналов. Можно проверить сложную микросхему, прежде чем начать производить её в кремнии.

Линейки

Наиболее известные производители ПЛИС — Altera и Xilinx.
У Altera наиболее интересными для начинающего линейка CPLD Max и линейка малобюджетных FPGA Cyclone. FPGA среднего уровня Arria и хай-энд Stratix оставим на потом.
Max выпускается в нескольких модификациях.
7000S, 1995 года выпуска, уже не актуальна, разве что интересна 5 вольтовым I/O.
3000A, 2002 года, 300 нм технология, содержат от 32 до 512 макроячеек. Низкая цена для больших партий.
Max II, 2004 года, 180 нм, построена на логических блоках, как FPGA, 240-2210 блоков, до 304 MHz. В TQFP с шагом 0.5 мм от 100 ножек. Есть вариант Max IIZ 2007 года с пониженным потреблением и частотами до 152 MHz.
Max V, 2010 года, 180 нм, 40-2210 блоков, до 152 или 304 MHz, в зависимости от кол-ва блоков.
Cyclone выпускаются в пяти поколениях, I — V. Первое поколение было выпущено ещё в 2002 году, по 130 нм технологии. Последнее, пятое, совсем свежее, 2011 года, 28 нм технология. Соответственно отличаются потреблением и, наверное, быстродействием. Но все пять поколений остаются актуальными по сей день и на сайте отмечены рекомендуемыми для новых разработок.
Xilinx из CPLD предлагает серии XC9500XL и CoolRunner™-II.
XC9500XL построена на макроячейках, 36-288 штук, до 178 MHz или 208 MHz (288 макроячеек). Интересна наличием легкопаяемых моделей со всего 44 ножками и шагом 0.8. Также есть 64- и 100-пиновые с шагом 0.5, вполне приемлемо, как у STM8/32. Ещё есть модели в PLCC корпусах, их можно ставить в специальный кредл.
CoolRunner-II — оптимизированы для низкого потребления, сохраняя производительность и простоту использования. Рассчитаны на питание 1.8 вольт, ввод/вывод от 1.5 до 3.3 В. 180 нм технология, 32-512 макроячеек, 179-323 MHz (меньше ячеек — больше частота). Также встречаются в паяемых корпусах, как и 9500.
Из FPGA Xilinx предлагает серии Spartan-6, Artix-7, Kintex-7, Virtex-6 и 7. Virtex-7 — монстр с 2 миллионами логических блоков и до 1200 пинов.
Spartan-6 — FPGA, 3840-147443 блоков, причем блоки имеют 6 (а не 4, как обычно) входов. Может содержать встроенный контроллер DDR/2/3 памяти, PCI-express шины, гигабитного ethernet, SerialATA и прочие вкусности.
Atmel предлагает серию CPLD ATF15xx, которая позиционируется как замена Xilinx’ам (ATF15xxBE) или Altera 7000 и 3000 (ATF15xxAS/ASL/ASV/ASVL).

Чипы и отладочные платы

Посмотрим, что у нас есть из чипов интересного. Под интересным я подразумеваю доступное в России по приемлемой цене, паяемое ЛУТом и не слишком сложное в плане требуемой обвязки.

EPM240T100С5. Младший представитель Altera’вского семейства Max II. Буквы EPM собственно и означают семейство. 240 — количество логических блоков (LE). Бывают 240/570/1270/2210. После цифр могут затесаться буквы G или Z, означающие малопотребляющие, 1.8 В версии. Если их нет, то это обычный, 2.5-3.3 В версии. T100 означает TQFP-100 корпус, шаг ножек 0.5 мм. Кроме TQFP-100, есть ещё 144 пиновый вариант, для чипов с количеством блоков 570 или 1270. Буква C/I/A означает температурный диапазон, C — самый обычный, 0-85 градусов. А вот последняя цифра весьма важна. Она определяет класс скорости. От 3, самый быстрый, до 8, самый тормозной. Классы 3-5 относятся к обычным версиям, 6-8 — к малопотребляющим. Класс скорости определяет тайминги и частоты счётчиков. Скажем, 16-битный счетчик может работать на 304 MHz на 3 классе и только на 201 MHz на 5. В конце может быть буква N, означающая всего лишь отсутствие свинца.
Что нам может дать этот чип. Питание от 2.5 до 4.6 вольт (максимум, 3.0-3.6 рекомендуемое). До 304 MHz частоты. 8192 бит памяти. 80 пинов I/O, 25 мА максимальный ток, входное напряжение на пин от -0.7 В до VCC+0.7 В, подключаемый пуллап резистор, подключаемый триггер Шмитта на входе. Из обвязки требуются только конденсаторы по питанию и кварц. Прошивается через JTAG. 240 логических блоков хватит для чего-то не очень сложного, вполне достаточно для начала. И, главное, цена. В Терре можно купить по 100 рублей.
Из отладочных плат можно найти много всего на Ebay по поиску «EPM240 CPLD». Цены от 12 долларов за платы без периферии, на которых просто все ножки выведены на штыри. Интересна платка Марсоход от ребят из Таганрога. На ней есть кнопочки и светодиодики, т.е. сразу есть чем помигать. Часть ножек объединена в группы по 10 штук, получаются моторные пины, которые могут управлять нагрузкой до 250 мА. А самое ценное в этой отладке — большое число интересных примеров на сайте. От разнообразных ползающих, кормящих кошку и красящих яйца роботов до VGA и TFT видеокарт.
XC9536XL-VQ44 и XC9572XL-VQ44. Представитель семейства XC9500XL от Xilinx. 36 и 72 в названии — количество макроячеек. VQ44 означает корпус VQFP-44 (это как TQFP-44, только тоньше по высоте) с шагом 0.8 мм. VQ64 и TQ100 уже идут с шагом 0.5 мм. В маркировке, перед обозначением корпуса, идёт обозначение скорости, pin-to-pin delay в наносекундах, 5/7/10. Между буквами и цифрами обозначения корпуса может быть добавлена буква G, это всего лишь бессвинцовость. В конце буква C или I обозначают температурный диапазон. Питание до 4 вольт (3.0 — 3.6 В рекомендуемые). Частота 100-178 MHz, зависит от класса скорости. 34 пина I/O, 20 мА максимальный ток, вход толерантен к 5 вольтам. Из обвязки требуется только питание и тактовый генератор. Прошивается через JTAG. Цена 70-150 рублей.
Отладки также легко найти на Ebay.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *