Общие принципы создания отладочной платы для ПЛИС

Для работы с ПЛИС нужна отладочная плата, конечно, как и все, ее можно купить, но они очень дороги и их проблематично найти. Остается делать самому.

Выбор чипа я оставлю на вас, можете руководствоваться ценой, доступностью, начинкой. Я бы посоветовал для начала, из фирмы Altera, MAX II (epm240 или epm570) это CPLD, или Cyclone I (EP1C3), Cyclone II (EP2C5) это FPGA, из Xilinx советуют семейство Spartan-3 (xc3s50) – FPGA. Разница между CPLD и FPGA в том, что первые с постоянной памятью, а в последних прошивка стирается при отключении питания. Как правило FPGA более вместительные и дороже.

Что должно быть на плате
Разведен разъем для конфигурирования (скорее это JTAG), стабилизатор питания (если используете FPGA тогда 2 стабилизатора – для питания ядра и портов ввода-вывода), кварцевый генератор мегагерц на 50 (хотя можно любой другой), кучка светодиодов, несколько кнопок с подтяжкой, остальные свободные выводы на пины. Желательно добавить какую-нибудь SRAM и EEPROM можно и FLASH память (в зависимости от выбранного чипа это может быть и внутри, в FPGA скорее есть SRAM на несколько килобайт, а в MAX II целый килобайт флэша), АЦП по схеме R-2R, возможно даже VGA выход.

Дальше буду считать что человек решивший сделать отладочную плату уже разводил и делал платы.

Буду показывать на примере MAX II, я для нее делал.

Для начала питание. Тут ничего сложного смотрим в даташит (Device Handbook) и делаем как написано. Вместо даташита можете полезть в хелп IDE, там все будет.

Vccint — питание ядра
Vccio — питание портов ввода-вывода
Для простоты выберем питание ядра и портов 3.3 вольта



Важная штука – фильтрующие конденсаторы, должны быть на каждой паре GND и VCC (треугольниками обозначены) по 0.1мкФ.

Квадратики – это входы тактовых импульсов, хотя могут быть и обычными портами, к одному из такого входа надо подключить генератор (хотя в MAX II есть встроенные, примерно на 5 МГц).

Пятиугольники это выводы JTAG


Кружечки это обычные порты ввода-вывода, все они равноправны, могут быть входом, выходом, выходом с открытым стоком, двунаправленными, с входом триггера Шмита, с программируемой нагрузочной способностью, также к ним можно подключить встроенные подтягивающие резисторы (в старших микросхемах EPM1270 и EPM2210 есть еще защитные диоды для толерантности к 5 В только подключать пин через резистор, их тоже можно подключать и отключать). Все это относится к семейству MAX II.

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

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


Вот моя отладочная плата на которой я учился


Описание семейства MAX II

Вот готовый пример, без ничего, но рабочая
Простейшая макетная плата для ПЛМ EPM7064S фирмы Altera

P.S. Надеюсь вам не будет трудно выбрать первый чип :)

UPD Пару слов про генератор
Самой ПЛИС генератор не нужен. Выбор генератора обусловлен только вашими требованиями. Это может быть кварцевый генератор (лучше всего), генератор на ЛА3, на 555 таймере или мультивибратор на транзисторах. Частоту лучше выбирать по-больше (к примеру MAX II может работать до 304 МГц, это не значит что если вы напишете ядро какого-то процессора он будет работать на 300МГц, в логических ячейках существуют задержки и чем больше последовательность этих ячеек тем меньше максимальная частота). Так как частоту всегда можно поделить, стоит выбирать генератор с большей частотой. Не стоит забывать что частоту делить можно только целочисленно (если думаете поковырять USB, то лучше ген. на 48МГц, если VGA — 40МГц). Более важна такая характеристика как стабильность частоты, если частота будет плавать, или вы не будете знать ее точного значения — ничего хорошего не получится.

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

RSS свернуть / развернуть
А плата, на которой ПЛИС, содержит только ПЛИС или еще что-то?
А можно увидеть нижнюю сторону отладочной платы?
0
Сейчас не могу зафоткать, там просто все аккуратно проводами соединено и резисторы для светодиодов. На плате мега32, ЦАП MAX515, место под атмеловскую eeprom с IIC интерфейсом, стабилизатор с переключением на 3.3 и 5 В, 555 тайме, место под at90usb162 (за шлейфом от кнопок не видно), 93c86 (маленькая такая), питается от USB, внешнего блока или (для ПЛИС) от программатора. Можно добавлять и убавлять что угодно.
0
Вроде как спрашивают про зеленую платку с плисиной. Есть ли что-то у нее с тылу, или там только ПЛИС?
0
Под ней все фильтрующие конденсаторы (один даже видно) и генератор на 50МГц.
0
классно. но не уговаривайте меня перейти на плис!
0
Я и не уговариваю, вы сами поймете что это интересно :)
0
я не особенно люблю логику
0
Если планируется делать плату в домашних условиях — я бы не рекомендовал ставить переходные отверстия под корпус. Если заказывать — то никаких ограничений…
0
очень дороги и их проблематично найти
Платы Digilent (я себе взял BASYS2) можно купить где-то по 1500 р. с доставкой к нам, если ты студент.
+1
Мне как-то фирма Altera больше нравится (так исторически сложилось), хочу в будущем прикупить Altera DE0 Board, 1.5 раза дороже чем BASYS2, но и начинка получше будет.
+1
Уважаемый hellraiser. Вот вы писали что есть CPLD и FPGA и писали что при отключении питания прошивка в FPGA стирается. Я когда то тоже хотел занятся ПЛИС но дело дальше изучения VHDL не дошло. Однако слышал что в CPLD есть еепром память а для FPGA нужна какая то конфигурационная микросхема, в которую записывается прошивка и при включении питания FPGA конфигурируется заново. Потом я так понимаю программируемой логике нужен генератор чтоб тактировать ПЛИС.
Немогли бы Вы в следующей статье осветить эти вопросы и написать статью подключение FPGA и CPLD.
Про конфигурационную микросхему и про тактирование могу ошибаться так что если не так то поправьте.
+1
Если быть точным, то в CPLD flash память.
Саму по себе ПЛИС тактировать не надо. Тактируется ваша программа, к примеру VHDL. Пример проектирования. это сигнал CLK, по фронту которого переключаются светодиоды (точнее увеличивается переменная count, а в зависимости от ее значения переключаются светодиоды), а в этом примере Основы VHDL. Пример проще простого. никакого тактирования не надо, там при изменения входа сразу изменяется выход.
Про микросхемы конфигурирования FPGA сам мало знаю (готовых устройств на FPGA не делал), мне хватало конфигурировать FPGA от программатора и работала она до отключения питания.
+1
Так не интересно конфигурировать плис только на один раз. Зашёл я на альтеровский сайт. Продактс->девайсис->конфигурєйшн девайсис. А где там какие конкретно конфигурационные чипы есть шо то я ниче не понял где их посмотреть.
0
А и ещё в догонку:
Основы VHDL. Пример проще простого. никакого тактирования не надо, там при изменения входа сразу изменяется выход.
\
С этим я не согласен, в том плане что сразу сигнал не изменяется на выходе. Там есть такое понятие как время прохождения сигнала серез логический элемент. И помоему этот параметр указывается в названии CPLD или FPGA. Очень хотелось про это ещё что то услышать. Читал Бибило он там писал про задержки но шо то не дошло совсем.
0
Действительно, не сразу, к другом концу провода сигнал тоже не сразу приходит.
На каждом логическом элементе есть задержка, и эту задержку вам покажет IDE после компиляции. В документации указана задержка распространения сигнала от выхода в выходу (когда сигнал идет через диагональ чипа и задействована только одна ячейка), для epm240 это 4.7 нс, для epm570 — 5.4 нс.
Еще существует такое понятие как Speed Grade, некий показателя быстродествия среди микросхем одного типа. Чем меньше число, тем меньше время распространения сигнала. Для примера EP1C3T144C6N и EP1C3T144C8N последняя цыфра (6 и 8), это показатель быстродействия, в чипе EP1C3T144C6N задержка сигнала будет меньше.
0
Что вы имеете виду? Я говорил только о неоднократно конфигурируемых микросхемах. FPGA имеет бесконечное количество циклов перезаписи, в CPLD — конечно (в документации указано 100, хотя на самом деле гораздо больше), но тоже очень большое.
0
Есть микросхемы у которых количество циклов перезаписи 10000, например atmel.com/dyn/resources/prod_documents/doc3492.pdf
0
Попробуйте посмотреть в сторну чипов AT17… Это конфигурационные ПЗУ специально для Альтер.
Про подключение CPLD можете посмотреть тут: we.easyelectronics.ru/plis/prosteyshaya-maketnaya-plata-dlya-plm-epm7064s-firmy-altera.html

Статью про подключение FPGA напишем, но несколько позже. Тема ПЛИС объемная, сложно охватить все сразу да еще на пальцах расписать…
0
А чем они от обычных ПЗУ отличаются?
0
Тем что это ПЗУ само может работать в режиме мастера и конфигурировать ПЛИС по включению питания. Без дополнительного управления с контроллера.
0
Забавно. А почему ПЛИС при запуске сама не тянет из ПЗУ свою прошивку?
0
Может и сама. Есть 2 режима заливки с памяти: Passive Serial и Active Serial. Вот в активном режиме плис сама затягивает прошивку.
0
Вариант с контроллером и обычной памятью может быть дешевле. Там объем информации порядка нескольких мегабит.
0
приобрел MAX II EPM240T100C5N, хочу сделать отладочную плату. Попытался найти датшит с распиновкой, но как оказалось — не так просто. Тут вижу картинку с «треугольниками», «кружочками» и т.д. Облазил вдоль и поперек MAX II Device Handbook — ничего подобного не нашел :(( Тыкните носом, где можной найти распиновку.
0
Это то что я использовал когда делал плату PINOUT ALTERA MAXII у 240 ноги почти как 570… Например Марсоход сделан так что их можно даже менять…
0
спасибо за ссылку!)
0
если кто не может найти, вот по MAX II www.altera.com/literature/lit-dp.jsp?category=MAX%20II, также вся инфа на все чипы есть в квартусе.
0
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.