Comments 160
Задачи просто разные и точек соприкосновения не так уж много. Даже ценовой сегмент — и то другой — МК стоят пару десятков баксов максимум, в то время как нормальная ПЛИС начинается от сотни баксов.
Такие задачи известны — там, где нужна очень высокая скорость обработки информации.
Я имел ввиду, что я могу их решить точно также легко на ПЛИС, как и вы на МК. Например поморгать светодиодиком или сделать автомат состояний для робота.
Было бы странно, если бы нельзя было.
Когда говорят «нет задач для ПЛИС» — не имеют ввиду, что нет задач, которые можно решить на ПЛИС. Имют ввиду, что задачи решаются на гораздо более дешевых и простых инструментах.
Имют ввиду, что задачи решаются на гораздо более дешевых и простых инструментах.
ВЫ хотите сказать, что МК — это самый дешевый и простой инструмент для решения задач выше? Всегда ли так?
1 — мы обсуждаем распространенность задач.
2 — если открыть любой даташит, там будет куча вот таких картинок с ключами, триггерами и прочими штуками. И любое усложнение задачи потребует погружения вот в это вот все. Только оно будет более органичным и своевременным.
Ну и да, мне действительно интересно
Расскажете про аналогичные вещи в мире ПЛИС?
Вы спросили, откуда возьмется потенциальный интерес к устройствам без работы с ПЛИС и дискретной логикой. Я вам показал, что любое углубленное использование любой микросхемы в итоге пораждает закапывание в нижний уровень просто на основе официальной документации — без гугления и тд.
То есть, мой пример как бы опровергает ваше обобщенное утверждение, что «если все будут работать на МК, никто никогда не узнает о нижнем уровне».
Особенно это важно в контексте гетерогенных вычислений. В 20 веке просто тупо повышали частоту процессора за счет улучшения в технологии физической реализации. Сейчас так делать нельзя, поэтому все больше появляется вычисления на GPU и других специализированных вычислителях. Для этого нужно подход — часть задачи решать в хардвере, часть в софтвере.
Можно сделать например специализированный сопроцессор к MIPSfpga для работы с Unum https://www.crcpress.com/The-End-of-Error-Unum-Computing/Gustafson/p/book/9781482239867
Вот пример проекта такого рода, хотя его делал не хоббист, а молодой профессионал — http://zatslogic.blogspot.com/2016/01/using-mips-microaptiv-up-processor.html
Особенно это важно в контексте гетерогенных вычислений. В 20 веке просто тупо повышали частоту процессора за счет улучшения в технологии физической реализации. Сейчас так делать нельзя, поэтому все больше появляется вычисления на GPU и других специализированных вычислителях. Для этого нужно подход — часть задачи решать в хардвере, часть в софтвере.
Кроме цены самих контроллеров есть еще цена разработки и владения и апгрейда. НЕ соизмерима.
И почему использование «Тини» автоматически подразумевает отсутсвие знаний по проектированию?
ИМХО детей надо сразу учить работать с микроконтроллерами и правильно работать (кроме программирования). Т.е. правильно подключать сенсоры и акктуаторы, учить схемам помехозащиты и т.п.
Учить ПЛИС сейчас, это как сейчас автомастера учить сначала на полном серьезе работе с паровыми двигателями, а потом уже ДВС и потом к электромобилям, на том основании, что надо выучить механику. ТАк механику можно выучить ии бех паровых двигателей :)
Учтите что к тому моменту как дети, которых сейчас учат, не то что ПЛИС, подозреваю что уже и МК будет свосем не так.
А как предлагаете дать понятие о register transfer level, Verilog и synthesis — основной методологии проектирования цифровых систем на кристалле в последние 25 лет? Все на симуляторе типа Icarus Verilog?
*** ТАк механику можно выучить ии бех паровых двигателей :) ***
Аналогия с паровыми двигателями неверная. Концепции, которые можно отрабатывать с лабами на ПЛИС (Verilog, synethesis) — это не исторический артефакт, а то, что используют те же проектировщики Apple iPhone в Купертино. Они тоже этому учились с лабами на ПЛИС.
Видимо, как и генетики и металлурги, которых в школе тоже не готовят, и такие специалисты, при наличии спроса, появятся.
Замечу также что до середины 1980-х в советских школах вообще не было программирования, а упражнения с микросхемами малой степени интеграции (номер 1 в моем списке) вполне практиковались еще в 1970-х в калифорнийских школах. Сейчас же, в эпоху интегрированных хардверно-софтверных решений и гетерогенных систем на кристалле, было бы полезно вообще поменять взгляд, начиная уже со школы, что между алгоритмами в софтвере и хардвере якобы стоит стена.
Там и программирование то ровно на таком уровне, что бы проверка орфографии в ворде магией не казалась.
Например:
http://www.scienceteacherprogram.org/biology/Romero06.html
Subject: Living Environment
Grade Level: 9th and 10th
Unit: Genetics, Biotechnology, lab skills
Objective: Students will be able to:
Explain the importance and function of enzymes
Describe the effect of temperature on enzymatic reactions
Compare the process of DNA Replication and PCR
List the steps involved in the PCR process
Become familiar with the following terms:
denaturation, primers, replication, template, polymerase, PCR
.......
New York State Science Standards
Standard 1 Key Idea 1-performance indicator 1.1b
Key Idea 2-performance indicator 2.2a
Standard 4 Key Idea 2-performance indicators 2.1a, 2.1b, 2.1c, 2.2c, 2.2d, 2.2e
Key Idea 5- performance indicators 5.1f, 5.1g
Это вообще для школьников?
> New York State Science Standards
> Standard 1 Key Idea 1-performance indicator 1.1b
1.1b Learning about the historical development of scientific concepts or about individuals who have contributed to scientific knowledge provides a better understanding of scientific inquiry and the relationship between science and society.
Ну ок, а к чему это выделено?
Выделено, чтобы подчеркнуть что это официальные государственные рекомендации школьным учителям
Дык и микроархитектуру процессора нужно показывать ровно на уровне, чтобы айфоны магией не казались.
Так вот RTL2GDSII — это способ реализации микроархитектуры, от описания на языка описания аппаратуры до файла с геометрией дорожек и транзисторов, который отправляется на фабрику. Микроархитектура непостредственно связана с RTL (register transfer level), описанием того, что происходит в процессоре в каждом такте. Без хотя-бы получасового описания RTL2GDSII на научно-популярном уровне микроархитектура не имеет смысл, потому что тогда непонятно, откуда беруться задержки в логических элементах, которые приводят к необходимости разделять выполнение инструкции на стадии, строить конвейер итд.
У меня есть про это текст — Введение в дизайн харвера микросхем для тех программистов, которые этим никогда не занимались
Полагаю, если бы это было четко описано, шанс получить вместо спора конструктивный диалог был бы выше.
p.s. лично я за любые уклонения школы в «техническую» сторону, но возможности реализации и конечный результат выглядят сомнительными. И если встанет вопрос о перераспределении ресурсов, то пусть лучше физику с логикой нормально выучат, основы научного метода или что-то еще такое. А то, плодятся всякие странные индивиды, как в соседней теме про гомеопатию.
Вот и я об этом, даже если рассказывать про микроархитектуру, то не про RTL2GDSII(и в ЕГЭ добавить вопрос «как расшифровывается RTL2GDSII»), и, тем более, не про геометрию дорожек.
> откуда беруться задержки в логических элементах
То есть вы хотите школьникам рассказать не только про RTL2GDSII, архитектуру и микроархитектуру, но и про логические элементы, формирование транзисторов на SOI, заодно виды памяти, виды кешей и остальную ВУЗовскую программу?
В пример приведу 10G Ethernet, МК такое может? Процессор общего назначения такое может? Если может, то какова его цена? И подобных примеров множество. Все изделия, которые подразумевают под собой необходимость передавать и обрабатывать большой поток данных содержат в себе ПЛИС. По этой причине всё телекоммуникационное оборудование, оборудование связи в своем составе содержит ПЛИС.
Если уж говорить о цене, то ПЛИС дорогие лишь до определенного момента. Пока разработка на уровне «умный дом», «чЭпЭу станок для дома» и прочий простой эмбедед — выигрывают МК и процы с ядром ARM. Как только задача становится действительно сложной, наступает этап когда решать ее на ПЛИС дешевле, чем на DSP или процах общего назначения.
1) не такая она и дешевая будет, всякие преобразователи видеопотока от AD стоят дороже циклона 5-го или MAX10
2) Нулевая гибкость у готового решения. Что тоже актуально если устройство сложнее телевизора
Я говорил, что есть много задач, где ПЛИС не нужны.
Это не отменяет того факта, что есть задачи где ПЛИС нужны и колхозить решение на МК будет глупостью.
Но школьники с таким вряд ли столкнутся, даже покинув школу и начав работать по специальности.
Эм… а где тогда можно столкнуться, если не в работе по специальности? Только хобби что ли?
Хотя буду честным, все мои задачи решались при помощи восьмивыводной Tiny13A.
Ну насчет ПЛИС я совсем не согласен. В потребительских продуктах для массового рынка ПЛИС практически не применяют, ибо дорого, но в промышленном оборудовании их полным полно, а еще авионика и космос, там вообще без них никуда. Да и перед тем как выпустить какой-нибудь чип или железное IP их часто верифицируют на ПЛИС, пусть даже на меньших частотах. Очень много научного и медицинского оборудования тоже имеют в своем составе ПЛИС. Интел в ближайшее время начнет массовый выпуск процессоров с встроенной ПЛИС, их тоже надо будет кому-то программировать.
Ну не надо сравнивать статью некого любителя о часах на ПЛИС и опыт производителей промышленного оборудования. Найти хорошего программиста намного проще, чем хорошего разработчика ПЛИС. И ПЛИС нужны не только там где нужна очень высокая производительность, а где важна гибкость и надежность аппаратной платформы, где применяются нестандартные технические решения и протоколы. Ну а базовое обучение разработке на ПЛИС (пусть не в школе, а в техническом вузе) необходимо для лучшего понимания как работает аппаратура. Сам на практике сталкиваюсь с тем, что хорошие программисты не очень представляют как физически работает аппаратура, и отсюда при разработке рождаются несколько необоснованные требования к ней. Я согласен, что МК в повседневной жизни разработчика встречаются чаще, но ПЛИС это тоже огромный пласт схемотехники и не стоит его сбрасывать с борта только потому, что кому-то он редко встречается, по такому принципу можно вообще 90% вузовского образования выкинуть, часто Вам в реальной жизни надо рассчитывать поверхностные интегралы или проводить реакцию восстановления альдегидов?
Это даст законченную картину — логические элементы перестанут быть «магическими», а также нужные знания для осознанного соединения с реальностью — индикаторы, датчики и т.п.
ПЛИСы нужны хотя бы для понимая того, что и в микроконтроллерах все базовые элементы работают одновременно (физически), но структура такова, что работа производится последовательно и что микроконтроллер это условно говоря одна крайность, а ПЛИС — другая и между ними могут быть какие угодно промежуточные решения.
Почему 5 дней, имхо — крайне мало? Это ж как надо внимательно относится к отбору и степени погружения в сущности.
Проблема в том, что программирование на ПЛИС несколько отличается от программирования на Си. Если посадить обычного программера за HDL и объяснить ему, что код выполняется не последовательно, а параллельно, то этого будет мало. Хотя уже это будет являться поначалу проблемой — потребуется время на переосмысливания подхода к кодописанию. Если человек не понимает схемы, базовых занний цифровой схемотехники, то будет тяжело. Как объяснить человеку, что Data <= Data_ADC — это просто присваивание вне процесса и триггер под процессом без объяснения что такое триггер или регистр? Просто натаскать ученика «делай так» и «не делай так» не хочется.
По сути HDL — это так и сложно. Просто надо иметь знания о базовых вещах цифровой техники: что такое регистр, триггер, мультиплексор, дешифратор, память. Кирпичиков, на которых строится вся схемотехника — раз-два и обчёлся на самом деле) Это если не погружаться как именно устроены RS-триггеры, транзисторный уровень работы схемы и т.д. и т.п.
Я всё к чему. Да, можно научить через ПЛИС зажигать светодиод по кнопке, по сути «продёрнув» сигналы через регистры в ПЛИСе. Но это мало чем будет оличаться от написания кода на ардуине. А вся крутость ПЛИС — гибкость решений, высокие временные разрешения и скорость работы, фактическая свобода для назкоуровневого творчества, надёжность — она ведь окажется непонятой, нераскрытой. Тем более ещё и непростой: например, чтобы написать UART на HDL нужно всё же попариться, чем подключить просто библиотеку UART. А как оцифровать уровень внешнего аналового сигнала? Это ж не как в ардуине — прописал строчку и всё) Тут надо ставить АЦП, ножек мало, поэтому придётся какой-нибудь брать с SPI интерфейсом, этот SPI надо будет реализовать на HDL или использовать готовое IP ядро, но для такого использования IP наверняка потребуется лицензия. Ну, ладно — возъмём какой-нибудь параллельный АЦП, но данные наверняка пойдт на его тактах АЦП и, если схема в ПЛИСе работает на других тактах, то надо будет корректно переносить сигналы между разными клоковыми доменами — да тут начинающий инженер накосячить может)
Ещё момент — цена входа. Ардуины можно из Китая по 100-150р. выписыть. А платку вышеупомянутого ПЛИС мне пришло заплатить, в своё время, почти 10к и ждать 3 месяца. Разница очень существенна. А дешевыё ПЛИС очень маленькие по логике — с ними не очень интересно, хотя для простых задач вполне подойдут.
Как резюме. Идея-то хорошая. Но как к ней подступиться правильно не очень понятно. Понятно, что не нужно ставить задачи «всё и сразу». Но 5 дней — мне кажется это вообще ни о чём. Это кружок нужен с полноценным погружением. И хорошо отобранный контингент, которому будет это реально интересно.
Кстати, про Марсоход слышали? Интересный проект.
Гибкость можно показать например с помощью проектиков с построением арифметических блоков — ведь даже операции типа извлечения квадратного корня в железе можно сделать или за один цикл с низкой тактовой частотой, или с конечным автоматом с высокой тактовой частотой, или конфейерным способом для реализации высокой пропускной способности устройства, или установлением нескольких блоков работающих параллельно.
Также можно продемонстрировать это же конструированием небольшого процессора — но это конечно более длинный проект со старшими школьниками.
Плата Марсоход у меня есть. Ее тоже можно было бы использовать, но она не втыкается в макетную плату
Как по мне, гораздо полезнее тогда было бы сделать драйвер для сервоприводов. Потому что в ардуине все напропалую используют библиотеки, а как оно на физическом уровне работет не всем очевидно. А тут надо будет нарисовать картинки, диаграммку, длиной счётчиков управляющие импульсы запрограммировать (раз, вроде, в 20 мс там надо импульсы определённой длительности вырабатывать). Потом на осциллографе показать эти картинки. Прикрутить управление и показать, что вот, когда импульсы на осциллограмме уменьшаются, то он в одну сторону крутится, когда увеличиваются — в другую. Тут тебе и картинки, и серва дрыгается и хоть какое-то понимание есть, что всё это делает именно твой код — на это надо особый упор делать. Мне кажется это ребёнку было бы интереснее, чем абстрактная ЦОС в ПЛИСе.
Тем более даже знаний программирования МК отдельно хватит на то, чтобы ребенок нашел себе профессию.
Я за свою жизнь 10 лет работал на МК и 10 лет после этого на ПЛИС и только сейчас могу решать, что больше подходит для решения конкретной задачи, зная возможности и недостатки каждой технологии. До этого будет просто каша в голове.
*** Тут бы с МК и программированием полностью разобраться ***
Вставление в голову программирования в рамках концепции фон-нейманновской машины потом очень трудно «разучить», понять, что процессор выполняющий цепочку команд — это только частный случай более общего вычислительного устройства. А если вводить сразу, то картина мира становится более двумерной.
Дополнительный бонус — привязка к физике, если рассказывать почему возникают временные задержки.
Ответ на вопрос в заголовке — они офигеют. И так офигевают и без программирования.
ПЛИС вещь довольно непростая (сужу по себе- трудно перестроить мышление с императивного языка на Verilog, а вот визуальное конструирование, как электронную схему казалось проще, хотя что-то сложное так сделать — ужас). Поэтому, возможно изучение HDL и потом "обычных" ЯП может внести путаницу, а вот проектирование в "схемотехническом режиме" может быть полезно. Мне кажется, полезно будет спроектировать и собрать в ПЛИС собственный примитивный процессор — это даст глубокое понимание, как все это работает.
P.S. Хотя с такой задачей справились единицы из целого потока студентов второго курса одного из технических вузов, принеся какие-то невнятные картинки :(
не нужно
> принеся какие-то невнятные картинки
неудивительно, при таком подходе. На обычном верилоге простой процессор можно разработать за 1-2 дня. Это очень простой и ясный язык.
Одно дело мозг «перестраивать» другое «узнавать».
Здесь, именно, нужно давать примеры: можно так, а можно эдак.
Но 5 дней… боюсь это будет что-то типа экскурсии на атомную станцию — круто, но нифига не понятно.
ПЛИС это совершенно другое. Совместить это без начальных знаний невозможно.
Готовым библиотекам конечно можно и обезьяну обучить пользоваться. Но в данном случае это разные направления.
Шарики за ролики не заедут — у психики множество защит. Сработает простейшая — пропустить всё мимо ушей.
Слишком много материала на 5 дней. Нужно думать, как урезать, не потеряв основные идеи. Грубо говоря, нужно суметь упростить ПЛИС до уровня ардуины, а потом упростить все 5 этапов ещё на порядок — как минимум давая заготовки проектов (ученик не должен заниматься рутиной типа подключения нужных библиотек и т.п. — у него на это не будет времени).
В общем, нужен гениальный педагог, который займётся темой. Сам бы у такого с удовольствием поучился...
Если школьник не будет заниматься, то этот курс забудет на следующий день. Есть ли в нем смысл? А в хорошей базе в виде физики, математики точно имеется.
Вот как это вводится в Харрис & Харрис, схема, и код на верилоге, превращающийся в данную схему после синтеза:
module pattern_fsm_moore ( input clock, input reset_n, input a, output y ); parameter [1:0] S0 = 0, S1 = 1, S2 = 2; reg [1:0] state, next_state; // state register always @ (posedge clock or negedge reset_n) if (! reset_n) state <= S0; else state <= next_state; // next state logic always @* case (state) S0: if (a) next_state = S0; else next_state = S1; S1: if (a) next_state = S2; else next_state = S1; S2: if (a) next_state = S0; else next_state = S1; default: next_state = S0; endcase // output logic assign y = (state == S2); endmodule
А откуда такая уверенность?
https://www.imgtec.com/blog/imaginations-mips-architecture-is-coming-to-the-universities-in-russia-and-ukraine/
я бы, что бы не отбить у них желание, начал бы
1. с выключателя, лампочки и батарейки.
Попутно освежив знания про электрон, атомы, кристаллическую решотку, проводники…
2. Затем всё это повторил с мощьной лампой и транзистором в роли комутатора, попутно дав им понять что схема с ОК это простейший «инвертор», «элемент НЕ»
3. Далее показал бы как сделать мигающую лампочку без клацанья пальцами по выключателю — ну понятно, что имеется в виду мультивибратор, сначала на транзисторах, затем на логике.
вот мотом уже то что вы писали «1. Микросхемы малой степени интеграции, по несколько логических элементов в каждой».
Ну а ваши пункты 2,3,4 это уже факультатив, ибо способы достижения одной цели. Кто что выбирает дело добровольное, и нужно ли школьнику всё это, вопрос большой.
Как по мне то ПЛИС для школьника излишне, познакомить но не более, ибо для нормальной работы с ПЛИС нужно как минимум знать и понимать базовае логические элементы, дишефраторы, триггеры… Правила оптимизации всего этого хозяйства.
Да и стоимость микросхем ПЛИС как б «кусается».
Применять же для процесса обучения готовые модули, это сразу урезать разум школьника до «софтера» с «0» по химии и страхом перед отверткой, бокорезами и паяльником. В сяко лучше взять макетку, паяльник, рассыпуху tiny13 и сделать ту же мигалку, показав как развилась техника, и насколько «гибкой» становится самодельная железяка с софтовой начинкой.
Tiny13 — это то же микроконтроллер, применяя его мы снова перескакиваем два уровня (логических элементов и register transfer level) и тем самым микросхемы, системы на кристалле и устройство процессора — остаются магическими черными ящиками, как в ардуине.
Смотрите, к чему я клоню: есть куча дешевых МК и всяких к ним штук — школьник (увлекшийся вашим курсом) может за смешные деньги собрать себе набор и продолжить играться дома. Прокатит такое с ПЛИС? Если нет, то стоит ли тратить на это время в рамках 5 дневной программы?
Кроме того, у ПЛИС весьма специфичные задачи (как тут верно и не раз отметили), и я считаю плохим тоном продвигать их использование там, где они не нужны. Совсем другое дело — дать задачу, с которой не справится микроконтроллер, и обьяснить, что для ПЛИС это фигня. И уже имея востребованность начинать разъяснения по поводу проектирования. Но эта востребованность должна возникнуть естественным путем.
1. до Tiny13 мы узнаём что такое источник тока, лампочка, и когда она горит а когда не горит.
2. что моргать её можно заставить при помощи человека, клацая тумблером
3. мы узнаём что можно прикладывать меньше усилий, применяя усилитель в виде транзистора
4. узнаём что можно вообще запустить автоколебательный процесс на транзисторах
5. переносим это дело на уровень логики в микросхемах
6. придаём гибкости в реализации, за счёт применения микросхем с програмной начинкой, а уже про тип этих микросхем — разговор отдельный. Считаю что ПЛИС это не антогонист МК, а другая ветвь реализации задания. Это не противоположности.
Для познания других элементов жосткой логики, будут более сложные уроки, например про дешифраторы для семисигментных индикаторов.
Tiny13 — микроконтроллер. Это система на кристалле которая синтезируется по маршруту RTL2GDSII. Т.е. сначала сам Tiny13 — это куча кода на верилоге (плюс аналоговые блоки), и этот верилог описывает ядро микроконтроллера и конечные автоматы его периферийных устройтв типа UART или SPI. Проектировщики Tiny13 используют софтвер для логического синтеза и place&route, чтобы пройти от кода на верилоге до файла GDSII, который они отправляют на фабрику, чтобы там произвели Tiny13.
А теперь внимание вопрос: как в юности люди, которые писали тот самый Verilog, который становится Tiny13, изучали как это делать. Подсказка: у них были лабы с ПЛИС.
Понимаете, как это связано? Не антагонист и не другая ветвь, а нечто, что тренирует создателей другого.
А ведь ещё надо дать понятие о питании, тактировании, сути данных и способах их передачи.
Я думаю эти люди пришли на лабы уже подготовленными и с хорошей базой.
Вы ошибаетесь. Просто погуглите курсы в большом количество американских университетов и вы увидите, что цифровая логика вводится с лабами на FPGA на довольно простом уровне, например https://www.altera.com/support/training/university/materials-lab-exercises.html
Так это университет! А не 6-11 класс школы, я правильно понимаю?
У меня доченька приболела(завтра 6 лет ей будет) и на улицу не пошли, взял я свой инструмент, достал паяльник и первое что сделал — показал как из двух раздельных проводов, при помощи «проволочки» и «горячего гвоздя» мы сделали один целый проводок. На светящиеся глазки ребёнка было любо глянуть.
Затем достал светодиод, микрокнопку, 1206 SMD 680R, зарядку от телефона и usb шнур. Спаяли, нажимает кнопку и говорит «ух ты, а давай ещё жолтенький припаяем».
К чему это я? Да к тому что главное заинтересовать ребёнка, а уж различных «фич» на экранах своих планшетов они и так насмотрятся. А тут море знаний и опыта, которые можно «пощупать», понюхать да и порой обжечся.
Важно воспитать в ребёнке жажду познания, тягу к пониманию сути а не пользования готовыми заготовками.
Такое мое мнение. а Вы бы стали изучать ТТЛ после работы с Arduino и т.п.?
Простые задачи можно решать на чем угодно, средние проще на МК, сложные средний школьник не решит ни на чем, да и средний выпускник ВУЗа тоже.
Такое упражнение не делается на микроконтроллере, в самом простейшем виде его можно сделать на микросхемах малой степени интеграции, но естественнее всего его делать на ПЛИС.
И суть ясна, и на пальцах можно показать как оно происходит, а вот объяснить зачем в выключатель лампочки стоимостью 5$ ставить ИМС стоимостью 35$ я не смогу, ибо это не «естественнее всего»
Но, не подумайте что я не уважаю ПЛИС, мне как человеку понимающему «железную логику», и не программисту а электронщику по натуре, ПЛИСы очень нравились, но цена и «бедная» перефирия, не позволяли в моих скромных проэктах их использовать. Это просто другой уровень, на котором работают меньшая часть электронщиков планеты.
К тому же сейчас я проектированием не занимаюсь, ремонтирую быт технику, а в этой плоскости ПЛИСов практически нет, а вот МК полно, почти везде. Как то так.
У вас разное мышление, вы пытаетесь реализовывать на практике, автор больше в плоскости R&D. Я например начал заниматься электроникой из-за того, что смог повторять нужные мне устройства из журналов в школьные годы. Осознавать, как и для чего ловить фронт прямоугольного импульса, я начал примерно на первом курсе универа.
По сути вопрос надо ставить изначально так: в какую тему вводить надо этих школьников?
Если из них планируют получить электронщиков, или ещё более широкий профиль — радиотехников, то это одно.
А вот если людей заточенных на частичное создание айфона, какую то часть процессора, или иного изделия, то это уже другое.
Не говоря уже про софтеров, к коим можно отнести, с некоторой поправкой, и работающих с ПЛИС.
Я лично начинал свой путь с детекторного приемника, потом транзисторы и логика. И если бы мне в 6 классе школы показали бы ПЛИС, с вероятностью в 99,99% процентов я ничего бы не понял. ПЛИСину мне уже показали на 4 курсе университета. Как уже писали выше, скорость, прототипирование, военка и космос, промышленность. В consumer сегменте их я даже не встречал.
Разумеется встречали. ПЛИС широко используется для прототипирования и верификации всеми компаниями-производителями встроенных процессорных ядер и других компонент. Эти компоненты (soft IP) потом лицензируются производителям ASIC-ов, и эти ASIC идут в consumer electronics.
Я понимаю, что перед продакшеном, любой ASIC проходит этапы прототипирования… Но это не ПЛИС в прямом понимании, это готовый чип с определенной архитектурой и/или ядром.Я вижу это так.
Я работаю инженером-проектировщиком в команде микропроцессорного ядра MIPS I6500. У нас в офисе используется для моделирования сначала софтверный симулятор Synopsys VCS (раньше также Cadence IUS), потом эмуляторы Mentor Veloce (когда нужно запускать Линукс на проектируемом процессоре) и другие, но и FPGA платы используются, в частности мы даем клиентам вот такие платы:
https://community.imgtec.com/developers/mips/resources/development-platforms/
Обратите внимание на " The cores can consist of either the actual MIPS processor running at full speed (LV), or where the core RTL is programmed into an FPGA daughter card (CoreFPGA6A or CoreFPGA6B). "
В consumer сегменте их я даже не встречал.
Как ни странно, Cyclone II попалась мне в AV-ресивере Yamaha, достаточно ширпотребном. Использовалась для обработки видеосигнала.
https://www.youtube.com/watch?v=35zLnS3fXeA
https://www.youtube.com/watch?v=HyznrdDSSGM&list=PLowKtXNTBypGqImE405J2565dvjafglHU&spfreload=10
Школьникам то это зачем? А вот в универах для профильных специальностей этого очень не хватает. Нам вот препод рассказывал на практических занятиях, помните, вы комбинаторные схемы и конечные автоматы на бумажке рисовали по такому то предмету? А теперь смотрите, как эти штуки можно сделать на процессоре и мы вручную, ешкин кот, в тетради, ассемблировали программу под советские процессоры и потом запускали программу на таком же древнем роботе. А потом препод говорил, а смотрите, как это легче сделать на современном ПЛК, и мы пощелкав пять минут мышкой запускали ПЛК. А кто заинтересовался, говорит препод, есть и современные контроллеры вместо советских, и программировать под них намного легче, а есть еще и ПЛИСы, можно прямо схему в них нарисовать и все так же будет работать. А вот если бы еще и вживую показал и мы бы попробовали плисины — было бы больше пользы, кмк.
Один глупый вопрос, а кто учить то будет? Пойдут специалисты в школу на зп школьного учителя?
Вместо C для контроллеров я бы выбрал либо что-то более высокоуровневое (типа реактивного программирования), либо низкоуровневое, но интерактивное, типа Fort. Либо и то, и то.
Могу порекомендовать вот эту тему (в коментарии прямая ссылка) https://habrahabr.ru/post/259505/#comment_8447713.
А лично я недавно с удовольствием перечитал книгу написанную моим любимым институтским преподавателем «Функциональные узлы цифровой автоматики» (с) Потемкин Игорь Семенович. Если вас не смущает, что это книга издана в 1988 могу порекомендовать и ее, самый нуль точно с тех пор не изменился.
Кстати рекомендую и автору топика ознакомиться — как минимум с последовательностью и стройностью изложения.
Проходите онлайн курс и документацию:
https://www.xilinx.com/video/hardware/introduction-to-system-generator.html
https://www.xilinx.com/video/hardware/getting-started-with-system-generator.html
https://www.xilinx.com/support/documentation/sw_manuals/xilinx2015_3/ug897-vivado-sysgen-user.pdf
и тогда вы научитесь быстро программировать всякие Спартаны и Виртексы не хуже крутых ПЛИСоводов, вообще не притрагиваясь к VHDL или Verilog.
Школьникам тоже бы посоветовал, но как я уже писал выше, сначала их надо сделать Системными Архитекторами.
Большим преемуществом является то, что все это можно легко промоделировать и затем залить в ПЛИС двумя кликами.
Вы собираетесь знакомить школьников с Xilinx DSP System Generator до знакомства с FIR фильтрами и преобразованием Фурье? А как они поймут, зачем DSP48 в Xilinx вообще нужен и почему бы не обойтись обычными математическими операциями на процессоре?
Это слишком глубокое копание, не забывайте, что можно улучшить химию, биологию так чтобы любой школьник мог синтезировать реактивы на промышленном уровне и изо/труды, чтобы заткнуть за пояс хендмейд мастерские города и т.д.
В школе (хотя я даже про доп занятия по специальности) не нужны такие глубокие узкоспециализированные знания…
Взгляните, например на 3Д проектирование. Многим школьникам сегодня нужно преподавать черчение, если сейчас можно нарисовать 3D модель и из нее сделать деталь на 3Д принтере или CNC машине? Профессия чертежника исчезла.
Точно также скоро исчезнут профессии Си и VHDL кодеров. Это сингулярность.
Можно улитку по машине тьюринга пускать ползать, тоже важно…
спор учителя пения с учителем рисованияБыть может, все-таки спросим детей?
А красивым конвейером процессора на плис, могут восхищаться пара человек на свете…
В этом смысле ПЛИС становятся гораздо более понятными, чем процессоры — это как обычные логические схемы, только без необходимости их ручной пайки, соединения проводами и согласованием уровней, а с возможностью моделирования и быстрой проверки в железе.
99.(9)% это уровень мышления СМС-ками… Как бы это не грустно звучало.
Из цифровой техники — да, дать логические элементы, включая регистры, сдвиговые регистры. Пусть соорудят что-то простое, типа «бегущие огни». Большее вряд ли поймут, ибо нет базы для понимания чего то большего.
(с) Стругацкие «Понедельник начинается в субботу»
Большее вряд ли поймут, ибо нет базы для понимания чего то большего.Если вы дали, по-настоящему дали, «логические элементы» и «регистры» (читай триггеры), то не хватает всего ничего: «шина», «сихронизация» -> «автомат» и вуаля — вы знаете как сделать процессор!
И почувствуйте разницу не знаете как работает, а знаете как сделать!
Из нашей группы в количестве 16 человек, после университета, в сфере радиоэлектроники работает ровно два человека, этим людям просто было это интересно. Я с одногруппником по ночам паял девайсы. Так же я хочу вам рассказать историю о том как я ходил на курсы по программированию. Нас было в группе около 20 человек. Через пол года изучения С++ нас стало 10, еще через пол года 5 самых стойких, которые хотели научиться и которым, самое главное, было интересно. И обучались отнюдь не школьники. Многих мотивировал только будущий заработок, они думали что за месяц научаться клепать прикладные приложения с нуля, и станут Биллами Гейтсами. Это я о чем, нужно именно заинтересовать детей. Лично на меня повлиял мой дядя, когда рассказал, что бывают приемники без батареек и адаптеров питания. Я ему не поверил, как это без батареек, мой плеер ведь на батарейках! Тогда он мне дал книгу В.Г Борисова "Юный радиолюбитель", после этого мой мир перевернулся. Как работает диод и транзистор, я понял только в 10 классе средней школы, на уроках физики тремя годами позже.
Еще одна проблема — детей сейчас пичкают шаблонами «как надо», в результате они например бьются над реализацией перевода задержки импульса от ультразвукового датчика в сантиметры и то, что железу на сантиметры наплевать и можно оперировать именно этим временем, воспринимается как откровение. Здесь ПЛИС тоже оказывается полезно показать как образец делания чего-то «не как надо». Например тот же DDS-генератор на звуковой диапазон мы сначала на Ардуино собирали — долго и печально (но собрали и даже призовое место сегодня на районном конкурсе за него получили), а потом я показал им как просто это на FPGA сделать.
А что если учить школьников одновременно ПЛИС-ам и микроконтроллерам? Более объемная картина мира или шарики за ролики?