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

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

Назначение
Чем же ПЛИС отличается от микроконтроллеров? ПЛИС позволяет реализовать свой собственный контроллер. Если в микроконтроллере все внутренние соединения транзисторов жестко заданы производителем, то в ПЛИС все связи задаются прошивкой. Переконфигурировав внутренние блоки нужным образом, можно получить микросхему, выполняющую на аппаратному уровне нужные нам действия. Можно сконфигурировать так, что получится микроконтроллер. А можно сделать просто таймер, мигающий на выходе светодиодом. Главное чтобы для реализуемой задачи хватило программируемых блоков, число которых может меняться в большом диапазоне, в зависимости от производителя и модели ПЛИС. С точки зрения программиста микроконтроллер — как человек. Может выполнять только одну задачу одновременно. Может переключаться между разными задачами, ставить будильник, чтобы выполнить что-то по расписанию. Зато может производить сложные действия и пользоваться разными инструментами (периферией микроконтроллера). ПЛИС же скорее как стадо муравьёв. Каждый из них примитивен, зато их можно группировать для выполнения задачи. Например, если мы сделаем так, что 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.

Программирование
Программировать ПЛИС можно на языках HDL. Hardware Description Language — язык описания аппаратуры, используются они для создания (синтезирование) микросхем, как тех, что производятся в кремнии готовыми, так и тех виртуальных, что прошиваются в ПЛИС. Помимо синтезирования, эти языки могут использоваться для моделирования. Наиболее популярные языки — Verilog HDL и VHDL (это не одно и то же, как я чуть было не подумал). Verilog HDL похож по синтаксису на С, VHDL — на паскаль. Есть ещё AHDL — проприетарный язык фирмы Altera, он несколько более «низкоуровневый». Помимо использования языков описания железа, системы разработки позволяют «рисовать» схемы в графическом виде. Все эти способы можно комбинировать, используя модульный подход. Написанный код можно прошить в ПЛИС и проверить, а можно воспользоваться симулятором, например ModelSim, можно использовать его в качестве дебаггера Quartus'а и Xilinx ISE при отладке. Подробнее про языки в отличной статье Вводная. ПЛИС в картинках, а также немного о языках VHDL и Verilog. Статьи по VHDL: VHDL с нуля, Простые примеры на VHDL, Практические задания по VHDL и много других статей по тегу VHDL. Статьи по Verilog: Освоение ПЛИС с использованием языка Verilog, тег Verilog.
  • +6
  • 29 декабря 2011, 19:17
  • ACE

Комментарии (68)

RSS свернуть / развернуть
спасибо! приятная статья, тоже хочу разобратся с этими зверюшками :)

я находил также «Краткий курс HDL» журнал «Компоненты и Технологии». Для себя собрал в единый pdf-файл, скачать можно здесь
0
О, гуд, думаю пойдёт в качестве учебника для дальнейшего изучения. Спасибо!
0
Параграф «Назначение» явно лиший. Сравнивать железки с муравьями и людьми — крайности.
Далее. Не любой МК может быть реализован на ПЛИС. Это касается аналоговой части.
По какому критерию вы отнесли MAXII к CPLD?
0
Параграф «Назначение» явно лиший. Сравнивать железки с муравьями и людьми — крайности.
Как скажете.
Далее. Не любой МК может быть реализован на ПЛИС. Это касается аналоговой части.
Я вроде бы и не говорил, что любой…
По какому критерию вы отнесли MAXII к CPLD?
Это не я, это всё Альтера: www.altera.com/devices/cpld/cpld-index.html Впрочем, я думаю им виднее ☺
0
Кстати, Вам не зря задали вопрос про MAX и CPLD. Т.к. последняя серия MAX это по сути FPGA только со встроенной энергонезависимой памятью — питание отключили, прошивка потерялась, питание включили — произошла быстрая загрузка прошивки. Задержка там больше, чем у классических CPLD (совсем другая технология), зато емкость на порядок выше и не надо заботиться о загрузчике и энергонезависимой памяти для хранения прошивки как в случае с FPGA.
0
а сравнивать эл.ток с водой и писать курс обучения азам электротехники на аналогиях с водопроводом — это как, тоже крайности? ;)

имхо, чем нагляднее и понятнее написано, тем лучше.
0
Ненене, все ОК. ИМХО отличная аллегория для объяснения фундаментальных отличий MCU от CPLD.
0
Правильнее сравнивать ПЛИС с ЦСП. Мое мнение.

Считаю нужным также осветить следующий вопросы:
1.Почему ПЛИС работает на меньших частотах, чем процессор?
2.Соединения между LE. Какие ограничения?
0
Если разберусь в этих вопросах — допишу в статью. Или может кто-то тут расскажет.
0
По первому пункту:
Частота работы очень сильно зависит от скорости распространения сигнала. Точнее, скорость-то одна, просто расстояние приходится преодолевать разное. В процессоре это минимально, так как связи между элементами короче, чем в ПЛИС. К примеру… Если у нас частота — 100 МГц, то период 10 нс. Если сигнал идет 11 нс, то он не успеет к следующему тактовому импульсу.
А ещё момент — это то, что вентили ПЛИС связаны друг с другом через управляемые соединения, а это тоже влияет.
Да и вентили сами по себе не такие, как в процессоре.
0
1.Почему ПЛИС работает на меньших частотах, чем процессор?

А какой именно процессор можно уточнить? Вы о ЦСП?
0
посмотрите на схему тактирования ПЛИСа (кстати, кплд или фпга) и проца ;)
и уж слишком разные это герцы
0
А какой смысл их сравнивать с ЦСП? Это не менее разные вещи, чем ПЛИС и ЦП/МК. Да и DSP любители по моему применяют еще реже чем ПЛИС.
0
Сравнивать частоты работы ПЛИС и процессора нет смысла, так как в ПЛИС все процессы происходят параллельно, а выполнение программы процессора — последовательно.
Посмотрите на NoC — это вообще суперкомпьютеры на одном кристалле.
0
Что такое NoC?
0
0
Эту статью я нашел еще до того, как спросил.
0
судя по всему, имеется в виду сеть-на-кристале: способ организации межсоединений систем-на-кристале отличающийся своей упорядоченностью, строгой организацией и структурностью. при таком подходе к интерконнекту существенно возрастает производительность дизайна (выигрыш в таймингах) и в количестве базовых ячеек задействованных в организации межсоединений. у альтеры NoС вполне себе поддерживается кусисом.
0
Ресурсы ПЛИС позволяют поместить в нее не одно, а два+ (иногда и десятки-сотни) вычислительных ядер. Я видел на сайте Альтеры примеры организации взаимодействия 2-х и даже 4-х НИОС ядер через Авалон шину. Чем больше количество вычислительных ядер — эффективность шинного подхода снижается (думаю почему, объяснять не надо) — и тогда и возникают сети-на-криталле: ряд специальных подходов по объединению и организации взаимодействия узлов (обычно с помощью роутеров, слегка напоминает глобальные сети).
0
а если очень коротко и упрощенно — NoC — многопроцессорная система на одном кристалле
0
О Arria и Stratix умолчали, а о Virtex-7 — нет ))))
Из недорогих отладок с FPGA можно посоветовать платы от Terrasic, а именно DE0-Nano. Меня в ней огорчает отсутствие VGA-ЦАП, зато плюсы:
1)Cyclone IV, 22k LE
2)АЦП на 8 каналов
3)Акселерометр, причем вполне ничо так
4)70 с лишним ног ПЛИС выведено на стандартные штыри
5)32 мб оперативы(в сочетании с первым пунктом радует при изучении NIOS II)
6)USB-Blaster на борту
7)I2C EEPROM
8)Бренд, а не безликий китаец
0
Ну как такого монстра было не упомянуть :)
DE0-Nano и правда интересная плата за разумные деньги. Меня смущает только Cyclone IV. Для изучения — интересный вариант. Для использования в промышленном применении — тоже. А для себя, как хобби… разве что встраивать готовым модулем? С другой стороны, я пока слабо представляю, что на такой дуре можно сделать, точнее чем её загрузить хотя бы процентов на 10 :) Не делать же кластер Nios'ов :)
0
ну для изучения самое то.
Она вообще позиционируется для мобильных применения — для роботов, например.
в принципе, DE0 тоже интересно ))) для настольных экспериментов
0
Я тоже думал чем ее загрузить. А потом посмотрел сколько к примеру занимают fp умножители, делители, в банальных альтеровских мега функциях. Вот и выходит что если делать какую либо спец. векторную функцию, то может и не хватит даже 20к макроячеек.
0
CoolRunner-II малопотребляющая модификация 9500й серии.
скорее более массовая и новая — во DLC9 программаторах Xilinx стоят как раз XC2, более удобная — поддерживает работу с уровнями CMOS 1.5/1.8/3.3 и TTL, старшие версии обладают интересными фишками вроде global clock и datagate…

имхо, намного удобнее использовать именно кулранеры для изучения ПЛИС.
0
  • avatar
  • rz2k
  • 30 декабря 2011, 04:40
CoolRunner-II вообще неделал XILINX. Это купленая микруха от PHILIPS.
0
интересно, какого филипса, который NXP или остатки олдового?
0
Да, NXP он и был. Вот линк на документ
0
0
В любом случае ноги у них выходят из филипса. Может быть они доработали следующие версии… У меня просто были именно от филипса микрухи и когда продали линейку вместо них один в один подхлдят кулранеры от xilinx… Остальное всё осталось как было от филипса… И софт и програмеры…
0
Контроллер lcd?
0
ПРомазал, прошу, прощения =_=
0
Спасибо за исправление. Про CoolRunner'ы почитаю, тогда тоже законспектирую.
0
«Стадо муравьев» звучит мощно! Всегда думал что они ходят строем и живут в колониях =) Но главное что понятно получилось. Статьи самого базового уровня, объясняющие «а зачем собственно» тоже нужны. Спасибо за конспект.
0
Строем и в колониях — это уже прошитые под конкретную реализацию, а до этого — стадо :)
0
пожалуйста, уберите эту статью и профильного блока, как сказано в одном фильме «это пиздец».

«назначение» + «архитектура» — см введение любой книжки про ПЛИСы, кстати, там же историю развития. станет понятно и про кплд и про фпга и их соотношение. как бы не хотели производители нормального гибрида, имхо, ни у кого ещё не вышло

«линейки» — продолжение воскрешения гитлера… про альтеру ничего говорить не буду, так как с ней практически не работал, но дальше макса автор явно не разбирался.
а вот зайлинкс могу обсудить, так как работал с хс9500 и спартаном. во-1, в хс9500 как бы три линейки (5В, 3.3В, 2.5В) и все до сих пор продаются, хотя с xv проблемы. во-2, кулранер с хс9500 из общего имеет только тип, у них даже примитивы разные.
далее, спартаны — они как бы ещё более мертвы, чем кплд. прошлым летом зайлинксу стало не хватать двух линеек с отличающимся внутренним устройством, и они прибили спартан, поместив на его место две линейки: младшую артикс и среднюю кинтекс. кроме того есть ещё серия зинк, но её никто особо не видел. а 6-входовые луты в виртексы ввели ещё в 5 поколении.

зайлинкс и альтера напополам делят, наверно, процентов 90 рынка, далее идут актел и латис, а вовсе не атмел

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

Да ладно Вам. Вполне себе статья, для начинающих самое то.

см введение любой книжки про ПЛИСы,

Э-э-э… А что такое «книжка»? Это такая тяжелая штука из дерева? Кажется, я видел их, когда был совсем маленький…
0
Да ладно Вам. Вполне себе статья, для начинающих самое то.
в русском языке одна проблема связанная с историей отечественной электроники: под ПЛИС понимается большой спектр железок. почему-то ЦСП от ОкМЭВМ (так вроде правильно звать МК в отечественной терминологии) отделяют, а вот cpld от fpga нет, хотя плм/пмл от бмк отделяется. в этой статье опять же всё свалено в кучу.
Э-э-э… А что такое «книжка»? Это такая тяжелая штука из дерева? Кажется, я видел их, когда был совсем маленький…
книжка — это источник информации, а, так, в нормальных магазинах предлагают на выбор: бумага или епаб/моби/и т.д.
0
Книжный магазин? Это такой торрент, только IRL? :D
0
таки amazon и куча более мелких
но в общем то:
ничего личного
0
Э-э-э… А что такое «книжка»?
Понятно всё. Чукча не читатель, чукча писатель!
0
Статья полезная!
Я тоже пытался разобраться в ПЛИС. Для любителя вполне достаточно данной информации в качестве начала, а потом уже будут книжки и специализированные сайты. Автор молодец, поделился своими знаниями. Я не один день потратил, для того что бы получить примерно такие же знания.
Остановился в своих изысканиях в связи с тем что EPM240T100С5 в Е-бурге не смог нигде купить.
Желаю автору продолжать двигаться в выбранном направлении и делиться с нами своими конспектами!
+1
Прекрасно понимаю вашу реакцию. Судя по всему, вы профессионально разбираетесь в теме, а тут приходит дилетант и, не разобравшись в теме, начинает нести чушь. Схожая реакция бывает у преподавателей, при ответах студентов на экзамене :) Но прошу понять и меня. Мне эта тема интересна, но всего-лишь как хобби, которое вряд ли станет работой (работа у меня уже давно есть, пока устраивает). Я уже давно не студент, чтобы изучать предмет серьёзно, последовательно, читая книги по теме в библиотеке. И не припёрт производственной необходимостью, чтобы заплатить денег и пойти на какие-нибудь курсы, где расскажут и научат. Оно может так было бы и правильно, но если бы все учились, к примеру, программированию на AVR, по книжкам, то мы бы сейчас не встретились на этом сайте, его просто не было бы. Да, я пытаюсь по быстрому, методом тыка, догадок и чтения «быстрых стартов» разобраться на уровне, достаточном для домашних поделок а-ля марсоход. Думаю я в этом совсем не одинок.

Вам хорошо, вы это давно знаете и многие вещи для вас очевидны. Мне же показалось что информации, вроде «введения любой книжки про ПЛИСы» мало. Чисто обзорной информации. Мне её найти было не так просто, пришлось изучать сайты альтеры и зайлинкса, прочитал что было в русской и английской википедиях. Может быть лучше было бы перепечатать вступление какой-либо книги, но… впрочем это ведь никогда не поздно сделать?

Насчёт профильного блога. Я сознательно назвал статью так, чтобы было понятно, что она от начинающего и для начинающих. Не думаю что это сильно испортит блог.

Про кплд и фпга видимо и правда надо читать историю. Ибо сейчас, везде где я читал, пишут что в кплд просто энергонезависимая память, это главное и практически единственное отличие.

Про «дальше макса автор явно не разбирался». Вы мне льстите, я и до Макса то ещё не дошёл :) Всё что я сделал — изучил сайт альтеры и цены на чипы. Отобрал то, что может представлять интерес для меня, новичка-любителя. Кроме Макса и Циклона ничего интересного не нашёл, что понял — законспектировал.

Про хс9500 на сайте производителя нашёл только про хс9500xl. Ну не считая автомобильной модификации. Про общее с кулраннером был не прав, неправильно перевел фразу из даташита «Xilinx CoolRunner™-II CPLDs deliver the high speed and ease of use associated with the XC9500/XL/XV CPLD fam-ily with the extremely low power versatility of the XPLA3 family in a single CPLD». Исправлю, спасибо за коррекцию.

Про смерть спартана — печальная новость для меня. Ибо опять же подхожу с точки зрения любителя, а, к примеру, поиск на ebay'е по «xilinx fpga» выдаёт отладочные платы именно на Спартане. Всё остальное упомянул так, именно для полноты картины.

Про атмел упомянул только потому, что он всем известен, в отличии от малоизвестной латтис и совсем неизвестной (мне) актел.

Да, именно для дома. Есть пример марсохода. Есть задачи, которые без плис не реализовать (у меня такая задача — 7" tft дисплей). Ну а в целом да, это всё лишь головоломка для мозгов. Но почему бы и нет???
0
Задумка хорошая, но советую использовать более технический подход и переделать статью с функциональными схемами и описанием функциональных узлов, может пригодиться как шпаргалка.
0
простите, но реакция была немножко другой: «ну, блин, ну сколько же можно объединять под словом ПЛИС разные штуки», чуть выше есть развёрнутый ответ по поводу этого, и это проблема русской терминологии.
к сожалению, нормальных квикстартов ни для фпга ни для кплд я не встречал, магии кплд обучали люди после нормальных радиотехникумов (там людей капитально натаскивают на жесткую логику), магии фпга никто не учил, так получилось, что используем ip-ядра, а мелочь нарисовать или написать — не так сложно. просто реально нужно отличать кплд и фпга. по крайней мере у зайлинкс.
опять же про сайт зайлинкса — там вначале указаны ПЛИСЫы «recommended for new designs», а так, они ещё первый виртекс продают.
спартан тоже ещё черти сколько будет продаваться, просто они разбили его на две линейки, которые раньше и так были, просто названия не так сильно отличались, и перевели к виртексовским внутренностям.

по поводу марсохода: по виду их сайта процент выхода проектов за пределы примеров ещё меньше чем у *дуин.

в целом я только за fpga и их описание на hdl языках, так как они хорошо ломают стандартную логику программиста
0
Но тут не понял тогда, вроде все нормально:
ПЛИС- программируемая логическая интегральная схема
CPLD — сложное программируемое логическое устройство
FPGA — программируемый массив логических вентилей
Хотя почему то в некоторой российской литературе ПЛИС называют только FPGA
0
посмотрим на статью, которая в N-ный раз подтверждает, что под ПЛИС понимают в экс-СССР и фпга и кплд.
и в большинстве русскоязычной литературы так же.
0
че ты гонишь? уберите… не нравится — не читай. я, например, плис-ами не интересуюсь, но для расширения кругозора прочитал, узнал новое. Намеренно не стал бы по сайтам рыскать, что б все это найти, а тут все разжевано, на блюдечке.
домашний проект — посмотри на радиокоте — несколько конструкций осциллографов, анализаторов. Не все ж такие матерые, как ты — диодиками помигать с некратными частотами, а потом плату на полку бросить.
0
Отчасти согласен, статья не о чем. Хотя бы функциональные схемы макроячейки и КЛБ забросить надо, а то какой то не серьезный разговор получается, типа сравниваем по ресурсам которые себе не представляем :) Интересно, что значит актуальными являются…
0
функциональные схемы… Посмотрел я на них, никакой информации не извлёк. Всё равно что рассказывать методы адресации человеку, который первый раз услышал про ассемблер. Может потом появится понимание, какая схема макроячейки даёт больше возможностей, лучше для конкретной задачи и т.д. А так…

Вот так всегда, добавишь слова «актуальными являются» — придирутся к ним. Не добавишь — придирутся что не упомянул ASIC или ещё какого зверя :)
0
Ну с таким же успехом такую статью можно в форуме экономистов разместить. Здесь же вроде люди собрались с техническими знаниями. Не понимаю зачем там кучу текста писать, когда можно было бы сравнительные таблицы по семействам вытащить с сайта производителей. Возьмите тогда структурные схемы ячеек и клб, сразу все понятно станет, а то сравнивать по каким то мифическим логическим вентилям уже не серьезно.Кстати в журнале компоненты и технологии за этот год рассмотрена куча отладочных плат, советую посмотреть. А так статья на уровне черновика. Через месяц сами все забудете и эта статья вам ничем не поможет.
0
Возьмите тогда структурные схемы ячеек и клб, сразу все понятно станет
Взял, посмотрел, ничего не понял. Схема то понятна, а что и как с ней делать дальше — нет. Какая из них более эффективна, удобна и т.д. — непонятно.

Вы опять смотрите с позиции человека, который уже в теме. Для вас статья абсолютно ниочём. И это нормально. А для меня, всё что я в статье написал — открытие. Честное слово! Не стоит удивляться, что для кого-то сам факт того, что есть ячейки и есть клб и что их схемы можно сравнить — уже открытие.

Честно говоря никак не пойму недовольство статьей тех, кто разбирается в теме профессионально. Всё равно что вы возьмете букварь и тоже скажете «ниочём, возьмите словарь ожегова, сравните слова и сами всё поймёте».
0
Дело не в том какой уровень, а в структуре изложения материала. От структуры зависит понимание и запоминание материала. Посмотрите первую главу книги «Разработка цифровых устройств на основе ПЛИС Xilinx с применением языка VHDL» вот там на структурах нормально рассказано.
0
Вот за книжки большое спасибо, буду читать.
0
тогда смотри книжки от издательства «Горячая линия-Телеком» там в середине 2000х вышло достаточно книжек про ПЛИСы. у меня они в бумажном варианте.
0
Ну еще в этой книге чуть подробнее «Разработка систем цифровой обработки сигналов на базе ПЛИС»
0
Как вводная статья очень полезна, спасибо автору.
0
возможно для уровня сообщества эта статья годная, но для уровня инженера — туфта полнейшая…
это как курс Семенова Михаила — вроде тоже написан с первого взгляда хорошо, а начинаешь вчитываться — тоже дерьмо.
Автор, прочитай пожалуйста книгу Клайва Максфилда «Проектирование на ПЛИС...» и тогда ты не будешь говорить, что ПЛИС это CPLD и FPGA и еще другие, очень детские ошибки…
0
Книгу поищу и почитаю, спасибо за рекомендацию.
Насчёт терминологии. en1gma уже писал, «под ПЛИС понимают в экс-СССР и фпга и кплд». Взять к примеру википедию. Так что если и ошибка, то не моя, а общераспространенная.
0
Интересно, а Максфилд это истинна во всех инстанциях? Тем более перевод, фиг его знает какими понятиями оперировал переводчик. А если не перевод то там никаких определений типа ПЛИС и не будет.
0
И CPLD и FPGA является Программируемой! Логической! Интегральной! Схемой! Разве хоть одно слово не является применительным и к тому и другому?!
И зря вы так на автора, просто попытался обьяснить доступным языком вводную часть.
+1
Ты для начала почитай, а потом бузи!
0
Ну читал, ничего особенного в книге не нашел. Сразу обо всем и ни о чем. Все так советуют эту книгу почитать, как и Хоровица книгу, хотя книга туфта.
0
Толсто.
0
У меня животрепсчущий вопрос по FPGA. Куда там складывать прошивку и как этот склад прошивки (микруху) подключать к самой FPGA? На примере Циклона 2, ткните носом, пожалуйста? И как ее саму прошивать? С первым максом было просто: воткнул байтбластер и поехали. Но тут я чо-то затупил.
0
фпга грузится из последовательной флеши EPCSxxx, шьется тем-же бластером прям из квартуса. для быстро посмотреть — открой схему любого стартер-кита, например, с любым практически циклоном, все должно быть понятно. а вообще — читать доку на выбранную фпга, раздел про варианты загрузки конфигурации.
0
www.altera.com/literature/hb/cyc/cyc_c51014.pdfhttp://www.altera.com/literature/hb/cyc/cyc_c51014.pdf Pages 9,10,11,

www.altera.com/literature/hb/cyc/cyc_c51013.pdf Page 45. «Serial Configuration
Device» — это и есть EPCS-ка
0
У меня вопрос к знающим людям. Возникла необходимость прошить ATF1502AS, но нигде программатора не сыскать… только очень дорого и долго, какой-нить универсальный программатор… Кто-нибудь знает дешевый вариант сделать это? В поиске находится ATDH1150USB, но заполучить данный программатор практически нигде нельзя.
0
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.