Как стать автором
Обновить

Комментарии 117

Студенты каких специальностей нынче программируют ПЛИС?
Ну вообще специальность:
230100 Информатика и вычислительная техника

Начали знакомиться на предмете «Теория автоматов» и делали курсовую по предмету «Схемотехника».
Специальность на 90% программистская, предметов близких к железу всего ничего, в основном кому интересно сами осваивают :)
Все же название специальности предполагает изучение подобный технологий.
Меня, собственно, другой вопрос беспокоит. Я сам обучался по специальности «автоматика» и в теме ПЛИС. А сейчас преподаю будущим прикладным программистам. Собственно вопрос хабравчанам:
Насколько оправдано давать подобную технологию именно в железе «чистым» программистам?
Вынес вопрос в ленту
ИМХО, для понимания того как работает та железяка, которую они программируют — весьма полезно.

мне бы было интересно.
Прикладники у нас этого не изучают, им своих бизнес приложений хватает, типа MS Dynamics Axapta.
Даже на нашей специальности почти все (студенты конеч) недовольны тем что у нас преподают хардварные предметы, чего уж там о прикладниках говорить.
210300 Радиотехника
как выяснилось только в ЛЭТИ из вузов Питера на момент начала этого семестра была оборудована лаборатория, где мы вдоволь порезвились со вторыми циклонами
и verilog и AHDL поизучали =)
ну к сожалению про чистых программистов ничего сказать не могу потому как у самого специальность «Технология проектирования радиоэлектронных средств на основе САПР»
как выяснилось только в ЛЭТИ из вузов Питера на момент начала этого семестра была оборудована лаборатория, где мы вдоволь порезвились со вторыми циклонами

Могу с вами поспорить, в Политехе, в этом семестре во всяком случае циклоны были, и я думаю что появились они еще раньше. У нас в программе Cyclone 3 и Max2.
Наглый гон. В Политехе на Альтере сидят уже лет 15. штук 5 лабораторий только на ФТК с разными китами как навороченными под Nios и DSP так и простенькие схемотехнику учить.
не обижайтесь, нам так сообщили) преподаватели тоже хотят потешить ЧСВ. А циклон 3 — это круто, дорогие они, у нас только двоечки…
циклон это отстой на самом деле. если аналогии проводить, то это Celeron. Вот Stratix IV уже поинтерестней.
может и отстой но
а) что есть такое в стратиксе, чего в качестве обучения и изучения не могли бы сделать на циклоне?
б) если при обучении мы вряд ли пишем нечто загружающее циклон на 100%, то зачем вместо 150 баксов платить 3к?
в) дев киты на стратиксе нифига не наглядны. У кита на втором циклоне куча возможностей подключение и можно различными способами проверять результаты работы, а у кита на стратиксе вижу только цифробуквенный двухстрочный дисплей.
я не для обучения имел в виду:) ежели чего-то интерестное делать, то стратиксы или виртексы поинтерестнее.
Думаю, не покатит.
Сейчас все студенты-программисты любят питон, пхп и с#. ПЛИС будет интересен только самым упоротым фанатам своего дела, а они, уверяю, смогут разобраться и без Вас.
Ну не все, всё таки есть отдельные уроды которые любят всякие lisp-ы, хаскели, м-эли, форты и прочие нераспространенные вещи… Мало, но есть.
Эээээ, а я что написал?
Эээ, питон, пхп и си#. А это далеко не то, что я перечислил.
Ну, я и говорю, что есть такие студенты, но они, как правило, большие любители своего дела, изучают такие вещи дома.
Если в группе 5 из 30 человек такие любители, то проще не «сложные и непонятные» пары для остальные делать, а специальный кружок/факультатив для этих самых 5-ти гуру.
google CatapultC
und google SystemC
Оправдано, чтоб не расслаблялись в своих сишарпах и аяксах :-D
гы. на той же специальности в ИТМО не то, что ПЛИС, а даже ассемблером не пахнет.
Да и у нас бы не было ПЛИС если бы преподаватель по схемотехнике не занимался бы этой темой (дисертация на сколько я знаю). Но я очень рад что так вышло :) А ассемблер(x86) отдельным предметом был.

Томский Политехнический Университет
Никит, у нас специальность 230201 вроде как была…
а, чорт, риальне так. прокосячил :(
210106 Промышленная электроника, если не ошибаюсь, тоже изучают.
Ах, только недавно закончился курс по узлам и устройствам, там были ПЛИС — в несколько другой степени, правда. ГЭТУ, ФКТИ, ВТ
У меня на 2201 «Вычислительные машины, системы, сети и комплексы» было такое…
в МТУСИ на такой же специальности было в теории, поиграться можно было только со всякими кр580, к1820 и огромными стендами с дискретными элементами
интересно другое, кто нибудь зарабатывает на жизнь программированием подобных штук?
сочувствую вам, у нас то же самое
Да, ксилинксы во всю юзаются! вот например первая попавшаяся вакансия
hh.ru/vacancy/2455643?query=VHDL

а ваще много наших программеров в азию едут, там тыщ 5 баков без проблем…
в КПИ в Украине не факультете электроники таким занимался… было дело даже лабы помогал преподу составлять…
а так веселая это штука!
Робототехника и мехатроника.

Кафедра Проблем Управления МИРЭА(ТУ).
МГТУ им. Баумана, я своё знакомство с VHDL начал с FPSlic)
230105 Программное обеспечение вычислительной техники и автоматизированных систем
Предмет «Схемотехника».

Но честно говоря, меня это все не впечатлило. Тяжеловесные IDE. Одна Libero IDE была гига на 2, вроде. И это без WaveFormer`а. В FPGA Advantage все «программирование» сводилось к щелканью мышкой. Quartus вообще адская прога. Даже на мощном компе компилирует безбожно долго самые простые проекты (или я в этом ничего не понимаю?). Более менее удобный MAX PLUS, но и тот уже древний. Из-за этого всего уже теряется какой-либо интерес. А еще удивила скорость прошивания 20кбайтовой программы: минут 5 — 7 на ProASIC plus с микросхемой APA075. Единственный плюс Actel`у, что предоставляет студенческую лицензию на год.
5 баллов!:) Разницу между timing simulation и functional simaulation cечете? Если нет — то в сад про тормознутость квартуса.
Про ProASIC вообще не о чем разговаривать ежели вы MaxPlus удобным считаете (он так лет 7 уже не актуален и не обновляется поддерживается).
ох не дочитад ваш коммент до конца. вопрос по simulation не в тему.
Что для вас простой проект в quartus? Потому как таймерок типа описанного в статье компилит секунд за 5. У него больше времени на вывод всех своих окошек и репортов уходит
230101 Вычислительные машины, комплексы, системы и сети.
То, что описано у автора в статье, нам обещали преподавать ближе к 5 курсу, а пока мы изучаем и строем логические схемы.
На втором курсе моделировали светофор, и циферку от 0 до 9 (семи сегментный код).

Все это делали на уровне логики в демо версии пакете EWB 5.12

Вот хотел герлянду к новому году запрограммировать, но пока решил отложить на потом.
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
Вот меня всегда интересовала идея, можно ли ПЛИС в реальном времени заставить изменять вшитую в него программу. Этакий железный полиморфизм
НЛО прилетело и опубликовало эту надпись здесь
Почему же, я например вижу один сценарий: по аналогии с бутлоадером для МК, можно использовать определенную часть ресурсов самого кристалла под интерфейс загрузки конфигурации. В масштабах современных ПЛИС это может быть вполне жизнеспособно, хотя это все мои теории, проектов таких не встречал за свой недолгий опыт :)
А если использовать на 1 железке 2 ПЛИСа, то в полне себе можно. С одним сильно сомневаюсь, что получится.
Почему же нет? Часть пинов выделяем под интерфейс программирования (даже USB можно), делаем блок который будет принимать и обрабатывать данные о конфигурации, далее он из закидывает в конфигурационную память по нужному протоколу (SPI обычно) и вызывает переконфигурацию. Я думаю вполне реально.
В «больших» ПЛИС конфигурация находится во внешней памяти и используется только на этапе конфигурации (обычно появление питания). Ничего не мешает прошить из ПЛИС свою же конфигурационную память и перезапустить процесс конфигурации.
Несколько лет назад толи на мембране толи ещё где была заметка про эксперементы применения плис в космосе. Я так понял мечтали чтоб уже после запуска аппарата можно было менять логику, не просто меня программы, а именно загружая новые «железяки».

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

А если случится косяк на орбите то мохнатым органом накроется оборудование на миллионы баксов. Потому и разница такая в цене.

Надежность превыше всего!
Да, конечно. ПЛИС может сама себя переконфигурировать. Условно говоря в ПЛИС задаются кординаты ячеек (прямоуголник XYнач-XYкон), для котых есть альтернативная прошивка. При необходимости плис засасывает из внешнего ПЗУ новую прошивку для этих ячеек.
Сразу оговорюсь что задача частичного реконфигурирования далеко не тривиальна и, как правило, ее стараются избегать.
Полное реконфигурирование проще и часто встречается, например, в тех же Дев-Китах от Xilinx, где на одной плате надо показать несколько примеров использования той кучи железа, что на нее напаяли.

Как правило несколько прошивок исползуют как «Dual BIOS» в современнных материнках.
Т.е. сначала грузится рабочая прошивка из 0-й страницы ПЗУ, а если CRC не сошлась или еще что-то помешало нормальной загрузке, то грузится запасная из 1-й страницы.
Можно =)
Подскажите в какой блог лучше поместить?
Может DIY или Сделай Сам?
да, самый раз
Ок! Спасибо, накоплю — перенесу
готово
Классная статья!
Напомнило студенческие годы и микроконтроллеры семейства PIC.
Вот только там конечно на ассемблере приходилось кодить. Компилятор
для них на С++ появился попозже.
Замечательная статья! Сам учусь на программиста по специальности 230105 (ПО выч. техн. и авт. систем), у нас на 5 курсе будут ПЛИСы на базе Xilinx-а. Баловался с мк AVR и думал перейти на что-то концептуально новое — подумывал купить Spartan Starter Kit(правда не знаю насколько это оправдано — если есть знающие хабравчане — подскажите!).
зы. если возможно — как нибудь оформите блоки кода(хотя бы табуляцией) — а то трудно разобраться…
Если подскажите как оформить — сделаю :) Табуляции есть, только тег их похоже съел
*
* тег «коде» :)
парсер все ест)
Если у вас есть большое желание дальше работать в этой сфере, то Spartan Starter Kit вам точно пригодится.
Я только недавно сдал лабораторные по ПЛИС-ам, которые на нем же и проверялись. Плата позволяет поиграться с кучей всего. А когда станет скучно, то можно воспользоваться многочисленными портами ввода-вывода и поработать с подключенными к ним устройствами =)

З.Ы. если бы не заградительная цена, я бы давно купил бы себе такую штуку =)
Прочитал я статью — и вспомнил, что через неделю по ПЛИС экзамен, черт;)
Во сколько весь кит обошелся и где конкретно заказывали (можно в личку, если не хотите рекламировать)? А то нашелся только один магаз с ценой почти в 9к
Покупал в ЭФО (спросил по e-mail который у них на сайте) отдали за $193,54 + $30 доставки.
Работает отлично, правда на защитном стекле (поверх платы, на видео видно) трещина, которая была явно до доставки. Пока они это мне никак не прокомментили, хотя я им написал. Но все таки праздники, так что не буду раньше времени ругать
НЛО прилетело и опубликовало эту надпись здесь
Просто на офсайте у них висит цена в 150 баксов, видимо, это оптовая. Ну 200 баксов это все равно не 8600р, как некоторые компании у нас предлагают.
НЛО прилетело и опубликовало эту надпись здесь
Да ладно, не утруждайтесь =)
Мне это бы пригодилось как курсовой проект на следующий семестр — лучше посоветуйте ПЛИС попроще, чтобы не забивать гвозди микроскопом.
НЛО прилетело и опубликовало эту надпись здесь
Заворожился бинарными секундами… эх наручные такие захотелось. самому делать — громоздко будет (да пока что и не дорос ещё), а покупать — слишком уж дорого возьмут
За статью спасибо, действительно интересно получилось!
самому такое сложно сделать, да и не на плисах это делать лучше все таки… плюс однозначно самому плату разводить, причем двухстороннюю… вполне возможно что дешевле суммарно получится именно купить :)
такие железки для таймера использовать — как из пушки по воробьям.
Это называется обучение :) Нельзя сесть и сразу видео контроллер написать, даже простенький.
Может на микроконтролере и плис было бы боле изящно и показательнее? И безо всяких kit'ов(которые и ждать долго, да и недоступны они некоторым)?
У SUN-a есть интересный проект — OpenSPARC.

Грубо говоря, это полноценная материнская плата, но вместо процессора впаяна большая ПЛИС. Есть открытые конфигурации, позволяющие сделать из ПЛИС-а полноценный SPARC-процессор. На такой штуке даже виндовс запускают.

Не помню сколько такие платы стоят, но в крупных университетах, которые сотрудничают с SUN (к примеру, у нас в КПИ) все это предоставляется бесплатно в обучающих целях.
Немного ошибся. Виндовс на архитектуре SPARC нельзя запустить :)
Запускают OpenSolaris, FreeBSD, Linux и еще некоторые *nix.
есть еще такая вещь как LEON3, тоже спарк, GPL лицензия и по полной программе используется в космосе
Вы не подскажите, сколько та штука стоит? В смысле плата процессора плюс плата расширения. А то я на сайте нифига не нашел. Я про www.ORSoC.se говорю.
Про ORSoC не знаю.

SUN-овская плата: www.opensparc.net/fpga/sun-and-xilinx-unveil-fpga-board.html
Там есть линк на дистрибьютора: www.digilentinc.com/Products/Detail.cfm?NavTop=2&NavSub=599&Prod=XUPV5

Там много всего, смотрите сами.
На страничке платы на сайте SUN-а тоже есть линки на академические программы.
Адский монстр =) Всего-то за 2 килобакса, то есть, почти даром :) К сожалению, под академическую программу я уже не подпадаю :\
Большое спасибо за статью! В прошлом семестре столкнулся с программированием ПЛИС, очень интересно!
Мы программировали и строили схемы переходов в XILINX.
НЛО прилетело и опубликовало эту надпись здесь
это не процессор.
НЛО прилетело и опубликовало эту надпись здесь
делал такое же на 8-битном процессоре еще на 2м курсе, кажется он назывался at89c2051. к плисам тогда так руки и не дошли…
хорошая статья, спасибо!
Дайте ваши результаты:
Speed/Area Report.
Device utilization summary в частности интересно.
ну что сказать!? Автор — вы молодец! Очень качественная работа, вашу статью — да в учебник для начинающих.
НЛО прилетело и опубликовало эту надпись здесь
КТиУ ВТ в ИТМО занимаются этим самым (не подумайте ничего, я про программирование на ПЛИС;)

На самом деле у нас там есть все, в частности стенты sdk разные и куча крутых железяк…
Загляните на embedded.ifmo.ru
Сколько циклов перезаписи у данной микрухи?
Перепрограммируется не FPGA, а конфигурационная память, в моем случае EPCS4.
Согласно даташиту:
Re-programmable memory with more than 100,000 erase/program cycles

После чего можно эту микруху заменить (не более 50 рублей она стоит)
Еще стоит написать, что для разработки я использую прошивку прямо в ПЛИС, минуя конфигурационную память. При этом функциональность аналогичная, но после падения питания прошивка слетает. Для разработки вполне хватает и не тратятся никакие ресурсы. Достигнув сколько-нибудь стабильной разработки можно записать её в память.
НЛО прилетело и опубликовало эту надпись здесь
а на пальцах рассказать, чем эти ПЛИС хуже или лучше atmega контроллеров?
Это другое :) Не путайте теплое с мягким :)
Докажите. Тот же таймер легко делается на AVR.
Ох. Ну вы во-первых почитайте про что такое ПЛИС и что такое микропроцессоры.
Ну а если «на пальцах» — программируя ПЛИС — вы создаете логические элементы, связи между ними. То же самое можно спаять на, к примеру, ИЛИ-НЕ логике.
Выигрыш ПЛИС в том, что:
1) они компактны
2) перепрограммируемы
3) быстры.

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

Как решен вопрос преобразования аналогово сигнала в цифровой в ПЛИС? Например, показания датчика давления масла и тп…
А никак, AFAIR :) ПЛИС — это всего лишь логика. Там нет перифирии. Нужно будет купить отдельную микросхему ADC (ЦАП) и использовать данные, которые она отдает.
Для таких устройств я бы рекомендовал все же микропроцессоры использовать.
спасибо.

а вы сделаете на одном кристалле атмеги четырехпроцессорный компьютер с поднятой микро-осью и tcp с web интерфейсом?
а на ПЛИСе? :)
2 Power PC ядра в одной ПЛИС сейчас не редкость, так что…

ЗЫ На 2й странице поинтересуйтесь доступными на кристалле ресурсами www.xilinx.com/support/documentation/data_sheets/ds100.pdf
Для будущего. Обычно логику отделяют от защелкивания в триггере. Например, в случае делителя, один блок вычисляет новое значение, а второй защелкивает его на триггере. Такое деление помогает избавиться от всяких забавных ошибок синтезаторов и использовать возможности триггеров на полную.
Если захотите попробовать verilog, то луший симулятор из доступных за так gplcver.sourceforge.net/ (ну и не за так тоже).
Спасибо за статью :) Давно хотел сам написать, да все руки не доходили.

Вот кстати, есть сайты с хреновой кучей всяких наработок. Готовые интерфейсы, опен сурсные проекты. В том числе и серьезные, вроде ОО или Java процессоров, и прочего. www.fpga4fun.com/ www.opencores.org
Директ линк на список проектов (дофига): www.opencores.org/projects
Автору пожелание — разобраться с понятиями CPLD и FPGA. То, что написано в статье мягко скажем немного не верно — не вводите людей в заблуждение.
Для примера, возьмите максимальные тактовые частоты достижимые на CPLD MAX II и FPGA Cyclone III — пойдет в разрез с вашими утверждениями что cpld быстрее.
Ключевое слово в статье — обычно. Разница между этими терминами очень размыта, во всех местах, где я про них читал — было слово ОБЫЧНО. К тому же быстродействие — это не только пиковая возможная чатсота. У близких по технологичности FPGA и CPLD однозначно можно сказать что задержка PtP (Pin-To-Pin) меньше у CPLD.

У Xilinx об этом можно прочитать тут: www.xilinx.com/support/answers/7598.htm

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

Ничего из того что я написал о CPLD и FPGA я не выдумал, всего лишь обобщил информацию из источников.

Ваш пример также не убедителен, MAXII разработан давным-давно по 0,18 мкм технологии. А CycloneIII недовно по TSMC 65 нм технологии. А заявленные частоты:
MAXII — 300MHz
CycII -315MHz

Если вы напишите свои определения для CPLD и FPGA, буду рад почитать.
Обычно — не слово нормального железячника.

основное отличие cpld от fpga это технология перепрограмируемой матрицы и объем матрицы в эквивалентных вентилях.
1.cpld — маленькие (тысячи вентилей), fpga — большие (сотни тысяч вентилей). cpld — дешевые, fpga — дорогие.
На cpld делают живопырки. Например какойнибудь микроблочек дешифрующий основной конфиг, так как cpld можно защитить от считывания конфига в отличии от fpga.

2.cpld построены по технологии энергонезависимой flash памяти и сохраняют конфигурацию при сбросе питания.
fpga построены по технологии sram — статической энергозависимой памяти. теряют конфигурацию при потере питания. нуждаются во внешнем конфигурирующем устройстве (не обязательно спец.микруха EPCS)

3. 300MHz internal clock frequency rates не есть быстродействие изготовленного на cpld девайса. откомпилируйте ваш проект на максе (если влезет) и на cyclon-e в разделе timing analyser репорта компилятора будут реальные цифры. (хотя я могу вобщем-то и ошибаться. давно с cpld не работал, но традиционно считалось что максоподобные цплдшки тормознутые по сравнению даже с первыми flex-ами)

плюс есть куча архитектурных особенностей у cpld и fpga (типа возможности синтеза чистых триггеров не на логике) которые важны при проектировании сложных устройств. Вобщем тщательно почитать что-то типа www.altera.com/literature/hb/cyc3/cyclone3_handbook.pdf и все проясниться:)
Т.е. ваши критерии точные и подходят для всех CPLD и FPGA? никаких обычно?

FPGA XC3S50 == $8
CPLD XC95108 == $31
(с одного магазина Avent, офф. поставщик)
Далее, про скорости вы ничего не ответили, задержка PtP у CPLD ОБЫЧНО меньше.

Есть много разных параметров, заморачиваться этим, я считаю, не стоит. Производители сами решат- что CPLD, а что FPGA. А при выборе надо смотреть какие функции и характеристики, и также цены нужны.
еще раз.

основное отличие cpld от fpga это технология перепрограмируемой матрицы и объем матрицы в эквивалентных вентилях..

Хехе, а мы на лабах делали синтезатор аналоговых сигналов на основе дельта-сигма модулятора :) На стратиксах правда, но думаю и циклон должен потянуть, главное чтоб на плате где-нибудь был RC-фильтр.
Мы в нашем политехе (Чернигов, Украина) не только простые лабы и курсовые на чипках от Altera и Xilinx делаем, но и OpenSource проекты систем на кристалле с использованием OpenRISC и Wishbone — OpenRISC XSoC.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации