А что если учить школьников одновременно ПЛИС-ам и микроконтроллерам? Более объемная картина мира или шарики за ролики?

    В последние семь лет ко мне неоднократно обращались преподаватели детских кружков с вопросом, что бы такое придумать для детей в области электроники, чтобы было 1) интересно 2) конвертировалось бы в будущую специальность и 3) давало бы что-нибудь качественно другое, чем уже устоявшиеся среди преподавателей лего-ардуины-и-разберри-паи.

    Подход, который я хотел бы предложить в этой заметке — это конструирование устройств на основе макентной платы, используя примитивы разных уровней абстракции. Прежде чем описать суть предложения, я приведу аналогию. Допустим, нам нужно исследовать местность между городом A и городом B. Из A в B можно проехать на автомашине, рассматривая окрестности дороги. Но еще лучше — проехать не только на автомашине, но и потом проплыть тот же маршрут на подводной лодке, пролететь его на самолете, походить в некоторых местах пешком, а также прорубить кусок шахты на участке между городами на проходческом комбайне. По ходу дела ученик получит не только опыт вождения автомобиля, но и представление о структуре недр, морской экосистеме, нравах жителей и общей карте местности.


    Теперь суть предложения. Ученик за несколько дней выполняет серию простых электронных проектов, которые имеют сходную функциональность, но используют в качестве строительных кубиков разные объекты, в том числе:

    1. Микросхемы малой степени интеграции, по несколько логических элементов в каждой
    2. Программируемые логические интегральные схемы, десятки тысяч ячеек с изменяемой логической функцией
    3. Микроконтроллеры
    4. Встраиваемые процессоры

    В качестве базового пособия для таких упражнений используются избранные места из популярного учебника Харрис & Харрис, доступного на русском языке, в том числе в виде официально бесплатной электронной версии. В бумажном виде эту книжку можно заказать здесь и здесь:



    Замечу, что (3) перекрывается по тематике с ардуинами, а (4) — с расберри пай. (1) уже вводилось в истории для обучения школьников, но имеет ограниченную полезность без соединения с другими уровнями через (2). Именно (2) и сравнение (1)-(2)-(3) отличает это предложение от уже используемых. Все четыре типа кубика могут монтироваться на одну и ту же монтажную плату, но имеют разную разную природу, требующую разные методы для работы с ними.

    Макетная плата для монтажа в гнезда (breadboard) — это простое устройство для прототипирования электронных схем без паяльника. Оно включает сотни гнезд, часть из которых уже соединена металлическими полосами, с возможностью дополнительных соединений перемычками (jumpers). Уже в 1970-е годы некоторые педагоги обнаружили, что детям интересно строить на таких платах разного рода поделки на основе микросхем малой степени интеграции: мигающие огоньки, счетчики, сирены и т.д. Технику из Калифорнии по имени Gary A. Gibson удалось внедрить это в школах (см. описание одного их таких наборов тут). Вот пример такой схемы:



    Внутри каждой такой микросхемы всего несколько логических элементов:


    Наборы Гибсона являются практических идеальными, чтобы «потрогать» и ввести такие концепции как логический элемент (gate — AND, OR, NOT), триггер (D-flip-flop) и сигнал тактовой частоты (clock). Сейчас, в 21 веке, эти наборы с небольшими модификациями продолжает продавать компания ETron Circuit Labs. В России похожие наборы продает ООО «Киберфизика».

    При этом уже в 1980-е годы интерес к таким наборам упал, так как в промышленности стали использовать больше микроконтроллеров, чем микросхем малой степени интеграции, а логически плавный переход от индивидуальных логических элементов к микроконтроллерам через проектирование микросхем был однозначно недоступным для школьников.

    Одновременно в тех же 1980-х годах возникли две технологии, которые спустя 20 лет изменили ситуацию снова. Одна из таких технологий — это логический синтез из языков описания аппаратуры (Hardware Description Language — HDL), используя уровень регистровых передач (Register Transfer Level — RTL). Другая технология — программируемые логические интегральные схемы (Field Programmable Gate Array — FPGA), матрицы логических ячеек, функцию которых можно менять с помощью перепрошивки конфигурационной памяти. Последнее отличается от классического программирования, ибо в случае ПЛИС/FPGA мы строим схему, а не пишем цепочку инструкций программы.

    Сейчас существуют недорогие ПЛИС/FPGA, платы с которыми которые можно вставлять в макетную плату. Теперь вместо физических соединений нескольких логических элементов перемычками (jumpers) школьник может строить схемы из десятков тысяч логических элементов меняя конфигурацию ПЛИС/FPGA. См. заметку Как начать разрабатывать железо, используя ПЛИС — пошаговая инструкция:



    Помимо простых конечных автоматов и арифметических устройств школьник может построить, реконфигурируя такую микросхему, и простой микропроцессор — см. Глава 7 в Харрис & Харрис.

    А недавно компания Digilent (отделение National Instruments) выпустила еще один вставляемый в макетную плату модуль Cmod A7-35T с ПЛИС бОльшей емкости Xilinx Artix-7, в который можно поместить и используемое в промышленности микропроцессорное ядро MIPS microAptiv UP, базовая конфигурация которого доступна бесплатно в виде пакета MIPSfpga (но это уже не для школьников, а скорее для студентов вузов):


    Наконец, в макетную плату можно вставить и модуль с микроконтроллером, который можно программировать на C. Тем самым можно сравнить программирование встроенного процессора с построением схемы в ПЛИС-е в предыдущем упражнении. Как программировать подобный микроконтроллер, я описал в свое время в заметке Как начать работать с Microchip PIC32. Часть первая.



    Замечу, что для программирования Microchip PIC32 можно использовать и Ардуино-подобную систему разработки MPIDE, и профессиональную среду MPLAB X, в которой можно например использовать RTOS-ы. С моей точки зрения, разница в уровне сложности для начала работы с MPIDE и MPLAB X недостаточно велика, чтобы сначала учить MPIDE, а потом – MPLAB X. Если в конечном итоге человек собирается получить профессиональные навыки, лучше сразу начинать с MPLAB X. Если же целью является скажем научить программированию микроконтроллеров гуманитариев, то лучше использовать MPIDE и на нем оставаться.

    Наконец, в макетную плату можно вставить и модуль со встроенным процессором, на котором может работать версия Линукса — OpenWrt. Помигать лампочками на компьютере со встроенным Линуксом — тоже неплохое упражнение, чтобы понять, какие дополнительные уровни это добавляет (драйверы, kernel/user mode и т.д.):

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



    Итого, если бы у меня стояла задача прокатить школьников галопом по Европам за несколько дней, то я бы делал это так:

    День 1 до обеда. Сборка комбинационных схем на макетной плате с микросхемами малой степени интеграции:

    1.1 Упражнение с логическими элементами AND, OR, NOT
    1.2 Укражнение с сумматором и 7-сегментным индикатором

    День 1 после обеда. Сборка последовательностных схем на макетной плате с микросхемами малой степени интеграции:

    1.2 Упражнение с генератором тактового сигнала 555 и D-триггером
    1.3 Упражнение с счетчиком, бегающими огоньками и 7-сегментным индикатором

    День 2. Повторение дня 1, но с Verilog и FPGA

    День 3. Повторение дня 1, но с микроконтроллером и на C

    День 4. Повторение дня 1, но с встроенным процессором и Линуксом OpenWrt

    День 5. Доделать предыдущие дни + лекция по всей электронной промышленности
    Что вы думаете?

    Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.

    Поделиться публикацией
    Похожие публикации
    Реклама помогает поддерживать и развивать наши сервисы

    Подробнее
    Реклама
    Комментарии 160
    • +2
      Ничего не имеют против ПЛИС. Скорее даже за!

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

      Микроконтроллеры позволяют решить 99,99% всех задач. Если школьников обучать чему-то, что требуется для 0,01% задач, представляю, как они начнут кривляться. Вам же тяжелее будет.

      Да и сама тема с одновременным выполнением всех команд в блоке — предполагаю, действительно будет слишком сложна для школьников.
      • +3
        Вас удивит, что у меня полностью наоборот — 99% моих задач можно решить только на ПЛИС, без применения МК?
        Задачи просто разные и точек соприкосновения не так уж много. Даже ценовой сегмент — и то другой — МК стоят пару десятков баксов максимум, в то время как нормальная ПЛИС начинается от сотни баксов.
        • +1
          можно решить только на ПЛИС

          Такие задачи известны — там, где нужна очень высокая скорость обработки информации.

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

          в то время как нормальная ПЛИС начинается от сотни баксов.

          Altera Cyclone IV с хорошей отладочной платой и USB-бластером продаются на AliExpress за 37 долларов.

          Не всегда нужны дорогие Stratix.
          • 0
            Такие задачи известны — там, где нужна очень высокая скорость обработки информации.

            Я имел ввиду, что я могу их решить точно также легко на ПЛИС, как и вы на МК. Например поморгать светодиодиком или сделать автомат состояний для робота.
            • 0
              Вот это поворот!
              Было бы странно, если бы нельзя было.
              Когда говорят «нет задач для ПЛИС» — не имеют ввиду, что нет задач, которые можно решить на ПЛИС. Имют ввиду, что задачи решаются на гораздо более дешевых и простых инструментах.
              • 0
                Имют ввиду, что задачи решаются на гораздо более дешевых и простых инструментах.

                ВЫ хотите сказать, что МК — это самый дешевый и простой инструмент для решения задач выше? Всегда ли так?
                • +2
                  А когда это не так? Тини13А стоит порядка 25 центов и занимает что-то около квадратного сантиметра на плате — можно купить их мешок и вообще забыть про дискретную логику. Расскажете про аналогичные вещи в мире ПЛИС?
                  • 0
                    Если все молодые люди будут решать все проблемы покупкой мешков Тини13А, то кто будет проектировать новые Тини13А, когда проектировщики старых выйдут на пенсию? Ведь для проектирования микроконтроллеров нужно знать методологию разработки цифровой логики, а ее лучше учить с упражнениями на ПЛИС-ах.
                    • +1
                      В этом я полностью с вами согласен, но 2 момента:
                      1 — мы обсуждаем распространенность задач.
                      2 — если открыть любой даташит, там будет куча вот таких картинок с ключами, триггерами и прочими штуками. И любое усложнение задачи потребует погружения вот в это вот все. Только оно будет более органичным и своевременным. image

                      Ну и да, мне действительно интересно
                      Расскажете про аналогичные вещи в мире ПЛИС?
                      • –1
                        В даташитах на ПЛИСы тоже есть картинки с устройством ячеек для ввода-вывода. Для простых задач типа построение простых конечных автоматов, арифметических блоков и студенческих процессорных ядер эти картинки можно игнорировать, используя заранее приготовленные wrappers, которые задают все параметры таких пинов — см. пример такого wrapper-а — https://github.com/MIPSfpga/mipsfpga_2_0_sandbox/blob/master/boards/basys3/basys3.xdc
                        • +3
                          И? Я же с этим не спорю.

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

                          То есть, мой пример как бы опровергает ваше обобщенное утверждение, что «если все будут работать на МК, никто никогда не узнает о нижнем уровне».
                          • 0
                            Так я имел в виду микроархитектуру, устройство конвейера микропроцессорного ядра внутри микроконтроллера. Полистайте ваш спек по любому микроконтроллеру и посмотрите, есть ли там это. Если и есть пару картинок с конвейером, то это не в форме, чтобы человек без предварительного знания почувствовал, как это работает. Если же сконструировать простой собственный процессор на верилоге и реализовать его в ПЛИС, то внутренности микроконтроллера становятся более-менее понятными, во всяком случае ядро и цифровая часть его вообще.
                            • +1
                              Это есть в профильных вузах. У вас есть какие-то доводы в пользу необходимости этих знаний школьникам? Что они будут с этим делать?
                              • +2
                                В 20 веке программирование и проектирование электроники было разделено. Сейчас, в 21 веке, мы живем во время интегрированных чипов, в которых разработчик системы на кристалле должен видеть и устройство софтвера, и устройство хардвера. Такое видение нужно закладывать рано.

                                Особенно это важно в контексте гетерогенных вычислений. В 20 веке просто тупо повышали частоту процессора за счет улучшения в технологии физической реализации. Сейчас так делать нельзя, поэтому все больше появляется вычисления на GPU и других специализированных вычислителях. Для этого нужно подход — часть задачи решать в хардвере, часть в софтвере.
                              • –1
                                В 20 веке программирование и проектирование электроники было разделено. Сейчас, в 21 веке, мы живем во время интегрированных чипов, в которых разработчик системы на кристалле должен видеть и устройство софтвера, и устройство хардвера. Такое видение нужно закладывать рано.

                                Особенно это важно в контексте гетерогенных вычислений. В 20 веке просто тупо повышали частоту процессора за счет улучшения в технологии физической реализации. Сейчас так делать нельзя, поэтому все больше появляется вычисления на GPU и других специализированных вычислителях. Для этого нужно подход — часть задачи решать в хардвере, часть в софтвере.
                      • 0
                        Там где будет мешок тини, там будет вагон ПЛИСов.
                        Кроме цены самих контроллеров есть еще цена разработки и владения и апгрейда. НЕ соизмерима.
                        И почему использование «Тини» автоматически подразумевает отсутсвие знаний по проектированию?
                        ИМХО детей надо сразу учить работать с микроконтроллерами и правильно работать (кроме программирования). Т.е. правильно подключать сенсоры и акктуаторы, учить схемам помехозащиты и т.п.
                        Учить ПЛИС сейчас, это как сейчас автомастера учить сначала на полном серьезе работе с паровыми двигателями, а потом уже ДВС и потом к электромобилям, на том основании, что надо выучить механику. ТАк механику можно выучить ии бех паровых двигателей :)

                        Учтите что к тому моменту как дети, которых сейчас учат, не то что ПЛИС, подозреваю что уже и МК будет свосем не так.
                        • –1
                          *** И почему использование «Тини» автоматически подразумевает отсутсвие знаний по проектированию? ***

                          А как предлагаете дать понятие о register transfer level, Verilog и synthesis — основной методологии проектирования цифровых систем на кристалле в последние 25 лет? Все на симуляторе типа Icarus Verilog?

                          *** ТАк механику можно выучить ии бех паровых двигателей :) ***

                          Аналогия с паровыми двигателями неверная. Концепции, которые можно отрабатывать с лабами на ПЛИС (Verilog, synethesis) — это не исторический артефакт, а то, что используют те же проектировщики Apple iPhone в Купертино. Они тоже этому учились с лабами на ПЛИС.

                        • +1
                          > то кто будет проектировать новые Тини13А, когда проектировщики старых выйдут на пенсию?

                          Видимо, как и генетики и металлурги, которых в школе тоже не готовят, и такие специалисты, при наличии спроса, появятся.
                          • –1
                            Так про генетику (законы Менделя) и металлургию (глава в школьной химии) в школе говорят, а вот про технологии, которые являются ключевыми для чипов (в частности маршрут RTL2GDSII который является основой всего цифрового проектирования в последние 25 лет, и при этом отлично привязывается и к математике, и к физике) — не говорят. А этом можно было бы делать.

                            Замечу также что до середины 1980-х в советских школах вообще не было программирования, а упражнения с микросхемами малой степени интеграции (номер 1 в моем списке) вполне практиковались еще в 1970-х в калифорнийских школах. Сейчас же, в эпоху интегрированных хардверно-софтверных решений и гетерогенных систем на кристалле, было бы полезно вообще поменять взгляд, начиная уже со школы, что между алгоритмами в софтвере и хардвере якобы стоит стена.
                            • +1
                              законы Менделя и закон Ома — это в школе дают, а про технологии в школе не говорят.

                              Там и программирование то ровно на таком уровне, что бы проверка орфографии в ворде магией не казалась.
                              • 0
                                Но про металлургию в школе говорят, как и в современной школе говорят про технологию генетического модифицирования и про PCR (polymerase chain reaction).

                                Например:

                                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
                                • 0
                                  > Summer Research Program for Science Teachers

                                  Это вообще для школьников?

                                  > 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.

                                  Ну ок, а к чему это выделено?
                                  • 0
                                    Да, для школьников, там же сказано «9-10 класс / grade».

                                    Выделено, чтобы подчеркнуть что это официальные государственные рекомендации школьным учителям
                                    • +1
                                      Документ с упоминанием New York State Science Standards — это официальные государственные рекомендации школьным учителям, понял.

                                      Возвращаясь к нашим, я правильно понял вашу логику, генетиками становятся только те, кому в 9 классе рассказывали про ПЦР?
                                • 0
                                  *** Там и программирование то ровно на таком уровне, что бы проверка орфографии в ворде магией не казалась ***

                                  Дык и микроархитектуру процессора нужно показывать ровно на уровне, чтобы айфоны магией не казались.
                                  • 0
                                    А какое отношение RTL2GDSII к микроархитектуре имеет?
                                    • 0
                                      Прежде всего (чисто на всякий случай) напоминаю что некоторые путают архитектуру (ассемблер) с микроархитектурой (строением конвейера и больших арифметических блоков).

                                      Так вот RTL2GDSII — это способ реализации микроархитектуры, от описания на языка описания аппаратуры до файла с геометрией дорожек и транзисторов, который отправляется на фабрику. Микроархитектура непостредственно связана с RTL (register transfer level), описанием того, что происходит в процессоре в каждом такте. Без хотя-бы получасового описания RTL2GDSII на научно-популярном уровне микроархитектура не имеет смысл, потому что тогда непонятно, откуда беруться задержки в логических элементах, которые приводят к необходимости разделять выполнение инструкции на стадии, строить конвейер итд.

                                      У меня есть про это текст — Введение в дизайн харвера микросхем для тех программистов, которые этим никогда не занимались
                                      • +1
                                        Я тут подумал еще, и вот какая мысль: возможно, весь спор идет из того, что из статьи не понятно позиционирование предлагаемых уроков. И в первую очередь не понятно, для кого это. То есть понятно, что для потенциальных разработчиков SOC, но для каких конкретно детей? Для всех в рамках обязательной программы? Для кружков? Для спецшкол? Что они должны уже знать для прохождения этого курса?

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

                                        p.s. лично я за любые уклонения школы в «техническую» сторону, но возможности реализации и конечный результат выглядят сомнительными. И если встанет вопрос о перераспределении ресурсов, то пусть лучше физику с логикой нормально выучат, основы научного метода или что-то еще такое. А то, плодятся всякие странные индивиды, как в соседней теме про гомеопатию.
                                        • +1
                                          > Так вот RTL2GDSII — это способ реализации микроархитектуры

                                          Вот и я об этом, даже если рассказывать про микроархитектуру, то не про RTL2GDSII(и в ЕГЭ добавить вопрос «как расшифровывается RTL2GDSII»), и, тем более, не про геометрию дорожек.

                                          > откуда беруться задержки в логических элементах

                                          То есть вы хотите школьникам рассказать не только про RTL2GDSII, архитектуру и микроархитектуру, но и про логические элементы, формирование транзисторов на SOI, заодно виды памяти, виды кешей и остальную ВУЗовскую программу?
                            • 0
                              Есть еще стоимость разработки. Условно если мне нужно сделать определенную задачу на 15 штук тини за 2 дня в единственном варианте, то ПЛИС легко может оказаться выгодней по общей стоимости железо+разработка+отладка
                              • 0
                                Так никто и не говорит, что ПЛИС не нужны. Просто, это очень глубокая специализация.
                          • +2
                            Хм, я наверное Вас огорчу, но есть огромный перечень задач, которые ни МК, ни процы не способны решать так же хорошо как ПЛИС.
                            В пример приведу 10G Ethernet, МК такое может? Процессор общего назначения такое может? Если может, то какова его цена? И подобных примеров множество. Все изделия, которые подразумевают под собой необходимость передавать и обрабатывать большой поток данных содержат в себе ПЛИС. По этой причине всё телекоммуникационное оборудование, оборудование связи в своем составе содержит ПЛИС.

                            Если уж говорить о цене, то ПЛИС дорогие лишь до определенного момента. Пока разработка на уровне «умный дом», «чЭпЭу станок для дома» и прочий простой эмбедед — выигрывают МК и процы с ядром ARM. Как только задача становится действительно сложной, наступает этап когда решать ее на ПЛИС дешевле, чем на DSP или процах общего назначения.
                            • 0
                              И подобных примеров множество.

                              Не так уж и много. Только ситуации, когда нужна очень быстрая обработка данных.

                              И что самое главное — чтобы при этом не существовало уже готовой копеечной микросхемы, решающей поставленную задачу.
                              • 0
                                «только ситуации, когда нужная очень быстрая обработка данных» — то есть 70% современной техники? Пускай на половину из этой доли можно найти готовую микросхему, но увы есть несколько минусов:
                                1) не такая она и дешевая будет, всякие преобразователи видеопотока от AD стоят дороже циклона 5-го или MAX10
                                2) Нулевая гибкость у готового решения. Что тоже актуально если устройство сложнее телевизора
                                • 0
                                  Для поточной обработки есть еще DSP всякие.
                                  • 0
                                    Что именно вы понимаете под «70% современной техники сложнее телевизора с преобразователями видеопотока»? Я как то оглядываюсь, и, если это не телефон или телевизор, то сложнее мультиварки с выходом в интернет устройств вокруг очень не много.
                                  • –1
                                    Если все молодые люди будут решать все проблемы покупкой готовых копеечных микросхем, то кто будет проектировать новые готовые копеечные микросхемы, когда проектировщики старых выйдут на пенсию? Ведь для проектирования готовых копеечных микросхем нужно знать методологию разработки цифровой логики (Verilog-synthesis-static timing analysis), а ее лучше учить с упражнениями на ПЛИС-ах.
                                  • 0
                                    А где я говорил что ПЛИС не нужны?
                                    Я говорил, что есть много задач, где ПЛИС не нужны.
                                    Это не отменяет того факта, что есть задачи где ПЛИС нужны и колхозить решение на МК будет глупостью.
                              • 0
                                Но школьники с таким вряд ли столкнутся, даже покинув школу и начав работать по специальности.

                                Эм… а где тогда можно столкнуться, если не в работе по специальности? Только хобби что ли?
                                • 0
                                  Cyclone IV за 37 долларов — не нормальная ПЛИС) там в этих 6ти тысячах ячеек не развернуться нормально. добавил эзернет — минус уже 3 тысячи сразу, плюс NIOS какой-нибудь и еще 2 тысячи улетело ну и на сигналтап по мелочи останется. Я считаю, что для обучения и тренировки меньше 10-15 тысяч ячеек — даже рассматривать не стоит и подходит уже только для решения конкретной задачи, где надо съекономить
                                • 0
                                  Подскажите, пожалуйста, какие задачи для хоббищика единственно возможно или хотя бы проще решить именно на плис? У меня есть отладка на плисине, но мне так и не удалось найти под неё задачу.
                                  Хотя буду честным, все мои задачи решались при помощи восьмивыводной Tiny13A.
                                • 0

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

                                  • 0
                                    Вы правы. Но никто не проводил исследований, сколько из используемых ПЛИС действительно были необходимы, а какие можно было заменить на контроллер без какой-либо потери производительности.

                                    Например, некоторое время назад я наткнулся на статью про создание часов на газоразрядных лампах с использованием CPLD Altera MAX II.

                                    Разработка, без сомнения, была крута. Но у меня есть некоторые сомнения по поводу реальной потребности в ПЛИС в подобном проекте.
                                    • +1

                                      Ну не надо сравнивать статью некого любителя о часах на ПЛИС и опыт производителей промышленного оборудования. Найти хорошего программиста намного проще, чем хорошего разработчика ПЛИС. И ПЛИС нужны не только там где нужна очень высокая производительность, а где важна гибкость и надежность аппаратной платформы, где применяются нестандартные технические решения и протоколы. Ну а базовое обучение разработке на ПЛИС (пусть не в школе, а в техническом вузе) необходимо для лучшего понимания как работает аппаратура. Сам на практике сталкиваюсь с тем, что хорошие программисты не очень представляют как физически работает аппаратура, и отсюда при разработке рождаются несколько необоснованные требования к ней. Я согласен, что МК в повседневной жизни разработчика встречаются чаще, но ПЛИС это тоже огромный пласт схемотехники и не стоит его сбрасывать с борта только потому, что кому-то он редко встречается, по такому принципу можно вообще 90% вузовского образования выкинуть, часто Вам в реальной жизни надо рассчитывать поверхностные интегралы или проводить реакцию восстановления альдегидов?

                                  • 0
                                    Нейросети на чем лучше реализовывать?
                                    • 0
                                      Нейронные сети обычно используют относительно медленные каналы для получения данных и сам расчет результата не является узким местом.

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

                                      Но скорее всего, встроенной памяти не хватит и большого прироста производительности вы не получите.
                                      • 0
                                        Глубокие сети как раз таки наоборот, требуют больших вычислительных ресурсов, иначе бы не было хайпа вокруг карт NVidia с их ориентацией на тензорные вычисления. Что касается медленного канала получения данных, то скажите, кадр с камеры при 30 fps это медленно?
                                        • +1
                                          У видеокарты памяти — гигабайты. У лучших моделей Stratix за 10 тыс. $ — десятки мегабайт.

                                          кадр с камеры при 30 fps это медленно?

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

                                          Скорее всего, видеокарта даст намного большую производительность, чем не очень профессионально написанный HDL для ПЛИС.
                                          • 0
                                            Странное сравнение Видеокарта — большое устройство состоящее из графического (векторного) процессора и микросхем памяти (отдельно). ПЛИС — просто микросхема. Подключи к ней такую же память — и у нее будут гигабайты.
                                            • 0
                                              и у нее будут гигабайты

                                              Будут гигабайты и не будет преимущества.
                                              • 0
                                                Поясните. При необходимости специализации под какую-то узкую задачу и схожих характеристиках FPGA всегда обставит чип общего назначения.
                                                • +1
                                                  В теории FPGA быстрее, но на практике неоптимизированный HDL будет синтезировать схему, которая сможет работать только на низкой частоте и иметь всякие другие проблемы.

                                                  Видеокарта со своим OpenCL и встроенной памятью легко может обойти по производительности.

                                                  Я это хорошо понял, когда хотел сделать свой биткоин-майнер на FPGA Cyclone V (можете посмотреть характеристики, достаточно мощная штука). За основу я взял OpenSource проект на Verilog.

                                                  Выяснилось, что для биткойна FPGA с этой программой совсем немного обгоняло видеокарту HD 7990, а для алгоритмов, более активно работающих с памятью (scrypt), работало даже медленнее.
                                  • +4
                                    Выбрал второй вариант — про работу транзистора хотя бы в ключевом режиме надо рассказать. Подключение реле через транзисторный ключ — очень частая задача, и многие очень квалифицированные специалисты по МК и ПЛИС перед ней пасуют, так как «проходили мимо»… Про диоды тоже рассказать: как автоматическое переключение питания сделать при работе от двух источников, как транзистор диодом от самоиндукции реле защитить.
                                    • +2
                                      Транзисторы нужны, хотя бы на простейшем понятийном уровне " подали — транзистор открылся/закрылся ".
                                      Это даст законченную картину — логические элементы перестанут быть «магическими», а также нужные знания для осознанного соединения с реальностью — индикаторы, датчики и т.п.

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

                                      Почему 5 дней, имхо — крайне мало? Это ж как надо внимательно относится к отбору и степени погружения в сущности.
                                      • +3
                                        Идея хорошая. Я её даже уже обдумывал) В рамках одного стартапа предлагалось использовать Digilent Cmod S6 (Spartan-6) для одного из обучающих проектов вместо Arduino Nano.

                                        Проблема в том, что программирование на ПЛИС несколько отличается от программирования на Си. Если посадить обычного программера за HDL и объяснить ему, что код выполняется не последовательно, а параллельно, то этого будет мало. Хотя уже это будет являться поначалу проблемой — потребуется время на переосмысливания подхода к кодописанию. Если человек не понимает схемы, базовых занний цифровой схемотехники, то будет тяжело. Как объяснить человеку, что Data <= Data_ADC — это просто присваивание вне процесса и триггер под процессом без объяснения что такое триггер или регистр? Просто натаскать ученика «делай так» и «не делай так» не хочется.
                                        По сути HDL — это так и сложно. Просто надо иметь знания о базовых вещах цифровой техники: что такое регистр, триггер, мультиплексор, дешифратор, память. Кирпичиков, на которых строится вся схемотехника — раз-два и обчёлся на самом деле) Это если не погружаться как именно устроены RS-триггеры, транзисторный уровень работы схемы и т.д. и т.п.

                                        Я всё к чему. Да, можно научить через ПЛИС зажигать светодиод по кнопке, по сути «продёрнув» сигналы через регистры в ПЛИСе. Но это мало чем будет оличаться от написания кода на ардуине. А вся крутость ПЛИС — гибкость решений, высокие временные разрешения и скорость работы, фактическая свобода для назкоуровневого творчества, надёжность — она ведь окажется непонятой, нераскрытой. Тем более ещё и непростой: например, чтобы написать UART на HDL нужно всё же попариться, чем подключить просто библиотеку UART. А как оцифровать уровень внешнего аналового сигнала? Это ж не как в ардуине — прописал строчку и всё) Тут надо ставить АЦП, ножек мало, поэтому придётся какой-нибудь брать с SPI интерфейсом, этот SPI надо будет реализовать на HDL или использовать готовое IP ядро, но для такого использования IP наверняка потребуется лицензия. Ну, ладно — возъмём какой-нибудь параллельный АЦП, но данные наверняка пойдт на его тактах АЦП и, если схема в ПЛИСе работает на других тактах, то надо будет корректно переносить сигналы между разными клоковыми доменами — да тут начинающий инженер накосячить может)

                                        Ещё момент — цена входа. Ардуины можно из Китая по 100-150р. выписыть. А платку вышеупомянутого ПЛИС мне пришло заплатить, в своё время, почти 10к и ждать 3 месяца. Разница очень существенна. А дешевыё ПЛИС очень маленькие по логике — с ними не очень интересно, хотя для простых задач вполне подойдут.

                                        Как резюме. Идея-то хорошая. Но как к ней подступиться правильно не очень понятно. Понятно, что не нужно ставить задачи «всё и сразу». Но 5 дней — мне кажется это вообще ни о чём. Это кружок нужен с полноценным погружением. И хорошо отобранный контингент, которому будет это реально интересно.

                                        Кстати, про Марсоход слышали? Интересный проект.
                                        • –1
                                          *** Но это мало чем будет оличаться от написания кода на ардуине. А вся крутость ПЛИС — гибкость решений, высокие временные разрешения и скорость работы, фактическая свобода для назкоуровневого творчества, надёжность — она ведь окажется непонятой, нераскрытой. ***

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

                                          Также можно продемонстрировать это же конструированием небольшого процессора — но это конечно более длинный проект со старшими школьниками.

                                          Плата Марсоход у меня есть. Ее тоже можно было бы использовать, но она не втыкается в макетную плату
                                          • +2
                                            Не знаю… очевидность этой гибкости не всем может быть понятна. Для школьника гораздо более понятнее написать SQRT, чем вникать в численные методы и ряды и врят ли ему сильно принципиально как быстро загорится лампочка после загрузки значений по входам — через 60-80 нс, или десятки миллисекунд — на глаз это не сильно заметно) Реализовывать точную арифметику в ПЛИСе — оно всё не очень радостно и не от хорошей жизни обычно делается.

                                            Как по мне, гораздо полезнее тогда было бы сделать драйвер для сервоприводов. Потому что в ардуине все напропалую используют библиотеки, а как оно на физическом уровне работет не всем очевидно. А тут надо будет нарисовать картинки, диаграммку, длиной счётчиков управляющие импульсы запрограммировать (раз, вроде, в 20 мс там надо импульсы определённой длительности вырабатывать). Потом на осциллографе показать эти картинки. Прикрутить управление и показать, что вот, когда импульсы на осциллограмме уменьшаются, то он в одну сторону крутится, когда увеличиваются — в другую. Тут тебе и картинки, и серва дрыгается и хоть какое-то понимание есть, что всё это делает именно твой код — на это надо особый упор делать. Мне кажется это ребёнку было бы интереснее, чем абстрактная ЦОС в ПЛИСе.
                                        • +12
                                          Проголосовал про ЭГЕ и Анну Каренину, так как не понимаю, зачем вы пытаетесь сделать из школьников сразу системных архитекторов без полного усваивания базовых знаний. Тут бы с МК и программированием полностью разобраться, а вы им и электронику, и роботов и ПЛИС в одну голову — ПЛИС и МК это вообще как математика и литература.
                                          Тем более даже знаний программирования МК отдельно хватит на то, чтобы ребенок нашел себе профессию.
                                          Я за свою жизнь 10 лет работал на МК и 10 лет после этого на ПЛИС и только сейчас могу решать, что больше подходит для решения конкретной задачи, зная возможности и недостатки каждой технологии. До этого будет просто каша в голове.
                                          • 0
                                            Есть вещи в программах математики как минимум физматшкол, которые естественнее выглядят на ПЛИС-ах, чем в виде программы для микроконтроллера. Например конечный автомат. Это математическая концепция, но без привязки к реализации интуитивно непонятно зачем это.

                                            *** Тут бы с МК и программированием полностью разобраться ***

                                            Вставление в голову программирования в рамках концепции фон-нейманновской машины потом очень трудно «разучить», понять, что процессор выполняющий цепочку команд — это только частный случай более общего вычислительного устройства. А если вводить сразу, то картина мира становится более двумерной.

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

                                          • +3
                                            tl:dr
                                            Ответ на вопрос в заголовке — они офигеют. И так офигевают и без программирования.
                                            • +2

                                              ПЛИС вещь довольно непростая (сужу по себе- трудно перестроить мышление с императивного языка на Verilog, а вот визуальное конструирование, как электронную схему казалось проще, хотя что-то сложное так сделать — ужас). Поэтому, возможно изучение HDL и потом "обычных" ЯП может внести путаницу, а вот проектирование в "схемотехническом режиме" может быть полезно. Мне кажется, полезно будет спроектировать и собрать в ПЛИС собственный примитивный процессор — это даст глубокое понимание, как все это работает.


                                              P.S. Хотя с такой задачей справились единицы из целого потока студентов второго курса одного из технических вузов, принеся какие-то невнятные картинки :(

                                              • 0
                                                > визуальное конструирование
                                                не нужно
                                                > принеся какие-то невнятные картинки
                                                неудивительно, при таком подходе. На обычном верилоге простой процессор можно разработать за 1-2 дня. Это очень простой и ясный язык.
                                                • 0
                                                  визуальное конструирование
                                                  не нужно

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

                                                • 0
                                                  ПЛИС вещь очень простая и понятная если начинать с базовых элементов.

                                                  Одно дело мозг «перестраивать» другое «узнавать».

                                                  Здесь, именно, нужно давать примеры: можно так, а можно эдак.

                                                  Но 5 дней… боюсь это будет что-то типа экскурсии на атомную станцию — круто, но нифига не понятно.
                                                  • +4
                                                    Да всё там понятно. Вот уран в активной зоне, вот вода греется, вот турбина крутится, вот генератор, вот трансформаторы… Только когда скажут сделай что-то подобное, пусть самое простейшее, у тебя будет только один вопрос: а как? )
                                                    • 0
                                                      Это да :) но «активная зона», «турбина», «генератор», «трансформатор» — реперные понятия с которых можно начинать.

                                                      Пожалуй, даже 5 дней пойдут на пользу.

                                                      Но, обязательно должны остаться какие-то артефакты — по моему мнению, лучше всего — личные записи.
                                                • +1
                                                  Так или иначе всё равно в обучении будет компиляция сред разработки в команды архитектуры той же AVR.
                                                  ПЛИС это совершенно другое. Совместить это без начальных знаний невозможно.

                                                  Готовым библиотекам конечно можно и обезьяну обучить пользоваться. Но в данном случае это разные направления.
                                                  • 0
                                                    Именно потому что другое, я и предлагаю вводить это вместе. Вставление в голову программирования в рамках концепции фон-нейманновской машины потом очень трудно «разучить», понять, что процессор выполняющий цепочку команд — это только частный случай более общего вычислительного устройства. А если вводить программированием микроконтроллера и ПЛИС-ы сразу (с введением от микросхем малой степени интеграции), то картина мира становится более двумерной.
                                                  • +3
                                                    Личто я за то, чтобы все знали и прикладное программирование и МК и ПЛИС, тоесть все люди вообще, мир стал бы лучше и умнее. Но давайте вернемся на землю — школьникам это все абсолютно не интересно, и тут вопрос не что давать, а для начала как хотябы заинтересовать программированием в рамках школьной программы.
                                                    • +2

                                                      Шарики за ролики не заедут — у психики множество защит. Сработает простейшая — пропустить всё мимо ушей.


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


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

                                                      • +1
                                                        Школьники школьниками, а я бы и сам не против пройти такой курс!
                                                        • +5
                                                          ИМХО, идея неплохая, но рассказать это всё за 7 дней — сложнее чем создать землю за 7 дней. Для любых знаний нужен срок чтобы «уложиться» в голове, перейти в долговременную память. Если на одном уроке рассказывать о логических элементах, на втором — прошивать что-то, а на третьем — уже в линусе копаться, то на четвёртом у человека не будет в голове ни первого ни второго ни третьего. Тем более у школьников, у которых кроме этого предмета есть ещё куча посторонних. А во-вторых, мне кажется что главное в этом деле — это заинтересовать. Без интереса знаний не получится. Это как с программированием. Есть учителя которые первым уроком показывают простейшую игру, и дети загораются желанием — это ж свою игру можно написать! А есть те кто первым уроком считает квадратные уравнения в коде. И дети не понимают «а нахрена». Вот и тут так. Я не могу представить себе ребёнка который скажет «ууух, транзистор можно открывать! и логическое AND построить! Вааау».
                                                          • +3
                                                            Лучше школьникам физику и математику давать на достойном уровне, для желающих более углублено. Это куда больше даст для технических специальностей, в том числе и электроники.
                                                            Если школьник не будет заниматься, то этот курс забудет на следующий день. Есть ли в нем смысл? А в хорошей базе в виде физики, математики точно имеется.
                                                            • 0
                                                              Ну например упражнения на ПЛИС помогут уложить школьнику в голову концепцию конечного автомата, который вводится в курсе дискретного анализа довольно рано во многих вузовских программах, и с которой однозначно знакомы ученики физматшкол. Без практических упражнений эта концепция воспринимается как нечто абстрактное.

                                                              Вот как это вводится в Харрис & Харрис, схема, и код на верилоге, превращающийся в данную схему после синтеза:



                                                              Схема, временные диаграммы



                                                              Код на Verilog
                                                              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
                                                              


                                                          • +4
                                                            1. к сожалению большинство школьников с трудом вам смогут объяснить что есть электрический ток, а Вы им сразу про «1. Микросхемы малой степени интеграции, по несколько логических элементов в каждой».
                                                            я бы, что бы не отбить у них желание, начал бы
                                                            1. с выключателя, лампочки и батарейки.
                                                            Попутно освежив знания про электрон, атомы, кристаллическую решотку, проводники…
                                                            2. Затем всё это повторил с мощьной лампой и транзистором в роли комутатора, попутно дав им понять что схема с ОК это простейший «инвертор», «элемент НЕ»
                                                            3. Далее показал бы как сделать мигающую лампочку без клацанья пальцами по выключателю — ну понятно, что имеется в виду мультивибратор, сначала на транзисторах, затем на логике.
                                                            вот мотом уже то что вы писали «1. Микросхемы малой степени интеграции, по несколько логических элементов в каждой».
                                                            Ну а ваши пункты 2,3,4 это уже факультатив, ибо способы достижения одной цели. Кто что выбирает дело добровольное, и нужно ли школьнику всё это, вопрос большой.
                                                            Как по мне то ПЛИС для школьника излишне, познакомить но не более, ибо для нормальной работы с ПЛИС нужно как минимум знать и понимать базовае логические элементы, дишефраторы, триггеры… Правила оптимизации всего этого хозяйства.
                                                            Да и стоимость микросхем ПЛИС как б «кусается».
                                                            Применять же для процесса обучения готовые модули, это сразу урезать разум школьника до «софтера» с «0» по химии и страхом перед отверткой, бокорезами и паяльником. В сяко лучше взять макетку, паяльник, рассыпуху tiny13 и сделать ту же мигалку, показав как развилась техника, и насколько «гибкой» становится самодельная железяка с софтовой начинкой.
                                                            • 0
                                                              *** рассыпуху tiny13 ***

                                                              Tiny13 — это то же микроконтроллер, применяя его мы снова перескакиваем два уровня (логических элементов и register transfer level) и тем самым микросхемы, системы на кристалле и устройство процессора — остаются магическими черными ящиками, как в ардуине.
                                                              • 0
                                                                Смысл в том, что он ничего не стоит. Набор на минимально поиграться можно за 5 баксов собрать вместе с програмамтором.
                                                                • 0
                                                                  А как предлагаете дать понятие о register transfer level, Verilog и synthesis — основной методологии проектирования цифровых систем на кристалле в последние 25 лет? Все на симуляторе типа Icarus Verilog?
                                                                  • +3
                                                                    Я не уверен, что обычных школьников нужно обучать проектированию SoC.

                                                                    Смотрите, к чему я клоню: есть куча дешевых МК и всяких к ним штук — школьник (увлекшийся вашим курсом) может за смешные деньги собрать себе набор и продолжить играться дома. Прокатит такое с ПЛИС? Если нет, то стоит ли тратить на это время в рамках 5 дневной программы?

                                                                    Кроме того, у ПЛИС весьма специфичные задачи (как тут верно и не раз отметили), и я считаю плохим тоном продвигать их использование там, где они не нужны. Совсем другое дело — дать задачу, с которой не справится микроконтроллер, и обьяснить, что для ПЛИС это фигня. И уже имея востребованность начинать разъяснения по поводу проектирования. Но эта востребованность должна возникнуть естественным путем.
                                                                    • 0
                                                                      Ну и да, могу ошибаться, но имхо, перед курсом ПЛИС неплохо бы дать дискретку и основы ЦОС. Я имею ввиду, что это позволит действительно использовать ПЛИС по назначению. А учить использовать не по назначению — плохой тон, как по мне. Если ошибаюсь — поправьте.
                                                                  • 0
                                                                    Ну как по мне то Вы не правы, вот почему.
                                                                    1. до Tiny13 мы узнаём что такое источник тока, лампочка, и когда она горит а когда не горит.
                                                                    2. что моргать её можно заставить при помощи человека, клацая тумблером
                                                                    3. мы узнаём что можно прикладывать меньше усилий, применяя усилитель в виде транзистора
                                                                    4. узнаём что можно вообще запустить автоколебательный процесс на транзисторах
                                                                    5. переносим это дело на уровень логики в микросхемах
                                                                    6. придаём гибкости в реализации, за счёт применения микросхем с програмной начинкой, а уже про тип этих микросхем — разговор отдельный. Считаю что ПЛИС это не антогонист МК, а другая ветвь реализации задания. Это не противоположности.
                                                                    Для познания других элементов жосткой логики, будут более сложные уроки, например про дешифраторы для семисигментных индикаторов.
                                                                    • 0
                                                                      *** Считаю что ПЛИС это не антогонист МК, а другая ветвь реализации задания. ***

                                                                      Tiny13 — микроконтроллер. Это система на кристалле которая синтезируется по маршруту RTL2GDSII. Т.е. сначала сам Tiny13 — это куча кода на верилоге (плюс аналоговые блоки), и этот верилог описывает ядро микроконтроллера и конечные автоматы его периферийных устройтв типа UART или SPI. Проектировщики Tiny13 используют софтвер для логического синтеза и place&route, чтобы пройти от кода на верилоге до файла GDSII, который они отправляют на фабрику, чтобы там произвели Tiny13.

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

                                                                      Понимаете, как это связано? Не антагонист и не другая ветвь, а нечто, что тренирует создателей другого.
                                                                      • +1
                                                                        Я, к сожалению, не владею информацией о процессе производства и способах проектирования ИМС. С ПЛИС знаком именно по лабам в приборке, однако считаю что ШКОЛЬНИКУ будет куда важней знать функциональное назначение, элементов жосткой логики(и-не, или, искл. или..., дешифраторы, счётчики, мультивибраторы, блокинг генераторы, и т.д и т.п ну да про бл. ген это не туда:)) а уж на чём он выполнит функции этих элементов, он или его работодатель выберут потом, когда он закончит, после школы, техникум, институт, или магистратуру. Вы просто спросите у школьника что такой «регистр» или «D-триггер» и поймёте, что до этого очень далеко.
                                                                        А ведь ещё надо дать понятие о питании, тактировании, сути данных и способах их передачи.
                                                                        • +1
                                                                          Здесь скорее вопрос в том, скольким людям действительно нужно это знать. Сейчас на дворе эпоха специализации. Сравнительно мало людей знают, как сделать хороший молоток. Значительно больше людей этого не знают, но с помощью молотков делают изумительные вещи, которыми потом пользуются остальные. Так они друг друга дополняют. Если кто-то не знает технологию производства молотка, которым он каждый день пользуется, это не делает его ущербным в своей профессии.
                                                                          • 0

                                                                            Я думаю эти люди пришли на лабы уже подготовленными и с хорошей базой.

                                                                            • +1
                                                                              *** Я думаю эти люди пришли на лабы уже подготовленными и с хорошей базой ***

                                                                              Вы ошибаетесь. Просто погуглите курсы в большом количество американских университетов и вы увидите, что цифровая логика вводится с лабами на FPGA на довольно простом уровне, например https://www.altera.com/support/training/university/materials-lab-exercises.html
                                                                              • 0

                                                                                Так это университет! А не 6-11 класс школы, я правильно понимаю?

                                                                              • +1
                                                                                американских университетов

                                                                                Университетов — ОК. Но причем тут школьники?
                                                                                • +1
                                                                                  Если вы посмотрите на данные лабы, то вы можете убедиться, что они доступны старшекласникам, в физматшколах — совершенно точно. При этом, так как они привязывают определенный материал по математике (например конечные автоматы) к практике, они полезны. Также красивым является и принцип конвейерной обработки
                                                                                  • +1
                                                                                    Так речь же про разработчиков Tiny13. Навряд ли у них были лабы с ПЛИС в школах, курс-то всё равно университетский, им его не давали (доступен школьнику или нет — уже другое дело). А в университете они уже знали, чего хотят.
                                                                    • 0
                                                                      Мне кажется, что основное это вовлечение школьников в нашу специальность. Мигать светодиодом сначала на логике, потом на ПЛИСе, потом на микроконтроллере конечно все интересно, но думаю что наибольшее вовлечение должно происходить исходя из реализации школьником каких-то вау-проектов: машинка на радиоуправлении, квадрокоптер, робот. Можно посмотреть примеры проектов на hackaday или же instructables и начнут просто разбегаться глаза на то, что можно сделать в рамках DIY. Очень интересная плата для этого snickerdoodle от krtkl — плата на ZYNQ — ПЛИС + двухядерный ARM и можно попробовать и verilog, и linux, и baremetal и.т.д.
                                                                      • +1
                                                                        " Очень интересная плата для этого snickerdoodle от krtkl — плата на ZYNQ — ПЛИС + двухядерный ARM и можно попробовать и verilog, и linux, и baremetal и.т.д." — вот тут я с вами не согласен. Простой пример:
                                                                        У меня доченька приболела(завтра 6 лет ей будет) и на улицу не пошли, взял я свой инструмент, достал паяльник и первое что сделал — показал как из двух раздельных проводов, при помощи «проволочки» и «горячего гвоздя» мы сделали один целый проводок. На светящиеся глазки ребёнка было любо глянуть.
                                                                        Затем достал светодиод, микрокнопку, 1206 SMD 680R, зарядку от телефона и usb шнур. Спаяли, нажимает кнопку и говорит «ух ты, а давай ещё жолтенький припаяем».
                                                                        К чему это я? Да к тому что главное заинтересовать ребёнка, а уж различных «фич» на экранах своих планшетов они и так насмотрятся. А тут море знаний и опыта, которые можно «пощупать», понюхать да и порой обжечся.
                                                                        Важно воспитать в ребёнке жажду познания, тягу к пониманию сути а не пользования готовыми заготовками.
                                                                        Такое мое мнение. а Вы бы стали изучать ТТЛ после работы с Arduino и т.п.?
                                                                        • 0
                                                                          К своему стыду скажу, что года 4 имею платку с цинком, но так и не осилил запрогать её на верилоге, т.к. там всякая лабуда с загрузкой через процессор и поотдельности ничего не попробовать… Лучше уж платку типа MOJO 3.
                                                                        • +1

                                                                          Простые задачи можно решать на чем угодно, средние проще на МК, сложные средний школьник не решит ни на чем, да и средний выпускник ВУЗа тоже.

                                                                          • 0
                                                                            А если сдвинуть фокус с окончательного приложения системы на обучение ключевым технологиям? Вот вы согласны, что Apple iPhone на микроконтроллере не построить, для него нужна большая специализированная система на кристалле. А проектировщики Apple iPhone в Купертино учили в свое время методологию register transfer level, Verilog и synthesis, тоже вместе с лабами на ПЛИС.
                                                                            • +1
                                                                              Школьника надо обучать не «технологиям» а миру вокруг него. Они в первую очередь должны понять что и как работает а не что как делают. Ибо не понимая что такое электрический ток, триггер. регистр, генератор… он не создаст ту «систему на кристалле» сна которой соберут ВАЙфон, а софтеры сделают из него игрушку.
                                                                              • +1
                                                                                Так что такое триггер и зачем это нужно, можно понять, только сконструировав простой конечный автомат (скажем для управления светофором). Без такого упражнения интуитивно непонятно, зачем вообще нужно устройство, которое запоминает состояние ввода на положительном фронте тактового сигнала.

                                                                                Такое упражнение не делается на микроконтроллере, в самом простейшем виде его можно сделать на микросхемах малой степени интеграции, но естественнее всего его делать на ПЛИС.

                                                                                • +1
                                                                                  Да неужели? а как на счёт D -триггера, к примеру для управления светом от одной тактовой микрокнопки? Или для решения такой задачи тоже ПЛИС, или МК пристроим? там одна ИМС типа 561тм2, и при помощи двух кнопок упаравляем двумя нагрузками, нажал -включилась, ещё раз нажал — выключилась. И
                                                                                  И суть ясна, и на пальцах можно показать как оно происходит, а вот объяснить зачем в выключатель лампочки стоимостью 5$ ставить ИМС стоимостью 35$ я не смогу, ибо это не «естественнее всего»

                                                                                  Но, не подумайте что я не уважаю ПЛИС, мне как человеку понимающему «железную логику», и не программисту а электронщику по натуре, ПЛИСы очень нравились, но цена и «бедная» перефирия, не позволяли в моих скромных проэктах их использовать. Это просто другой уровень, на котором работают меньшая часть электронщиков планеты.
                                                                                  К тому же сейчас я проектированием не занимаюсь, ремонтирую быт технику, а в этой плоскости ПЛИСов практически нет, а вот МК полно, почти везде. Как то так.
                                                                                  • 0

                                                                                    У вас разное мышление, вы пытаетесь реализовывать на практике, автор больше в плоскости R&D. Я например начал заниматься электроникой из-за того, что смог повторять нужные мне устройства из журналов в школьные годы. Осознавать, как и для чего ловить фронт прямоугольного импульса, я начал примерно на первом курсе универа.

                                                                                    • +1
                                                                                      Вот тут я с Вами согласен.
                                                                                      По сути вопрос надо ставить изначально так: в какую тему вводить надо этих школьников?
                                                                                      Если из них планируют получить электронщиков, или ещё более широкий профиль — радиотехников, то это одно.
                                                                                      А вот если людей заточенных на частичное создание айфона, какую то часть процессора, или иного изделия, то это уже другое.
                                                                                      Не говоря уже про софтеров, к коим можно отнести, с некоторой поправкой, и работающих с ПЛИС.
                                                                          • 0
                                                                            Вист за дискретные элементы. И график плотноват — чтобы дети это все нормально поняли и начали что-то реальное сами делать, надо в полтора-два раза медленнее, imho.
                                                                            • +3
                                                                              Господи, да мы в школе электрический ток осознать не могли, куда уж там МК или, тем более, ПЛИС. Пригодились бы основы схемотехники и ТДУ, вот это — да. И изучение программирования расширить. А у вас — за неделю больше, чем за несколько лет в ВУЗе дается.
                                                                              • –3
                                                                                Штука в том, что осмысливать электрический ток и не надо. 0 и 1, больше ничего. Элементарно. Вся современная электроника такова. Ну я всякими частностями пускай аналоговые инженеры занимаются ;)
                                                                                • +3
                                                                                  Это только в первом приближении так работает, а стоит чуть поднять мощность и/или частоту и все — приплыли. Все актуаторы оказываются аналоговыми, проводники в схеме оказываются не идеальными и здравствуй индукционная связь, здравствуйте земляные петли и тд и тп. Чисто цифровая цифра, разумеется, имеет место быть, но это скучно=)
                                                                                  • +1
                                                                                    Если думать обо всем сразу — голова лопнет. Когда разрабатываешь алгоритм — не думаешь о топологии кристалла. Когда корректируешь топологию — не думаешь обо всем стеке протоколов который ходит поверх данного конкретного триггера. Когда думаешь обо всем сразу — ничего не делаешь руками сам, а лишь рисуешь блок-диаграммы, да пишешь планы и отчеты. Это называется специализация. Бывают, конечно, радиолюбители, которые сами и программу напишут, и схему нарисуют, и плату разведут-спаяют, но конечный уровень таких поделок обычно весьма невысок.
                                                                                    • 0
                                                                                      Да ладно, полно людей, кто одновременно и схему рисует и код пишет. Указанные мной нюансы очень рано вылезают, при чем тут топология кристалла? (мы, наверное, о разном говорим?)
                                                                              • +4

                                                                                Я лично начинал свой путь с детекторного приемника, потом транзисторы и логика. И если бы мне в 6 классе школы показали бы ПЛИС, с вероятностью в 99,99% процентов я ничего бы не понял. ПЛИСину мне уже показали на 4 курсе университета. Как уже писали выше, скорость, прототипирование, военка и космос, промышленность. В consumer сегменте их я даже не встречал.

                                                                                • 0
                                                                                  *** В consumer сегменте их я даже не встречал ***

                                                                                  Разумеется встречали. ПЛИС широко используется для прототипирования и верификации всеми компаниями-производителями встроенных процессорных ядер и других компонент. Эти компоненты (soft IP) потом лицензируются производителям ASIC-ов, и эти ASIC идут в consumer electronics.
                                                                                  • +2

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

                                                                                    • +1
                                                                                      Такое тоже есть, но и FPGA есть, а также hardware emulators типа Veloce.

                                                                                      Я работаю инженером-проектировщиком в команде микропроцессорного ядра 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). "


                                                                                      • 0

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

                                                                                    • 0
                                                                                      Это как бы не совсем одно и то же.
                                                                                    • 0
                                                                                      В consumer сегменте их я даже не встречал.

                                                                                      Как ни странно, Cyclone II попалась мне в AV-ресивере Yamaha, достаточно ширпотребном. Использовалась для обработки видеосигнала.
                                                                                      • 0

                                                                                        Сэкономили на DSP =)?

                                                                                        • 0
                                                                                          И DSP там тоже были: Blackfin + ASIC, а также простой управляющий микроконтроллер от Renesas. Очень навороченная схема получилась.
                                                                                          Что удивительно для нашего времени, вся схема этого ресивера (rx-v671) приведена в Service Manual на него.
                                                                                      • 0
                                                                                        В продолжение где встречалась ПЛИС «в быту» — я видел ее на материнской плате IBM в каком-то древнем году. Xilinx Coolrunner какой-то что ли. Зачем — не знаю. Видать не хотели ставить 20 корпусов 74* :)
                                                                                      • 0
                                                                                        Зачем школьникам еще этим голову забивать? Простой 8-битный процессор можно на макетках и логике сделать:
                                                                                        https://www.youtube.com/watch?v=35zLnS3fXeA
                                                                                        https://www.youtube.com/watch?v=HyznrdDSSGM&list=PLowKtXNTBypGqImE405J2565dvjafglHU&spfreload=10
                                                                                        • +1
                                                                                          Вы наверное шутите, но я предлагаю вам в порядке эксперимента сначала накрутить процессор на макетке таким образом, а потом сделать этот же процессор с такой же логикой в FPGA, и сравнить время. Если же такой эксперимент покажется вам неубедительным, сделайте процессор конвейерным и повторите.
                                                                                        • +2

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

                                                                                          • +1

                                                                                            Один глупый вопрос, а кто учить то будет? Пойдут специалисты в школу на зп школьного учителя?

                                                                                            • 0
                                                                                              У каждого инженера наступает такой момент, когда он, меняя рабочее место, задумывается о практике в школе (ПТУ), но большинство из самых отчаянных, которые после этого идут работать учителем (мастером производственного обучения), сталкиваются с горой требований по отчётности и отсутствием у учеников-студентов интереса к предмету.

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

                                                                                              7 дней достаточно только чтоб у кого-то из подростков проявился интерес, но всё будет сводится к копированию действий преподавателя, без реального осмысления. Дети и подростки, нынче в эпоху избыточности информации, способны только копировать, а преподаватель обязан их развлекать иначе результата добиться вообще не реально.
                                                                                              • 0

                                                                                                Пардон речь идет не о кружке, а о преподавании в школах, столько технически грамотных пенсионеров желающих и умеющих преподавать вы тупо не найдете. Тут на элементарную информатику то учителей нет...

                                                                                            • 0
                                                                                              Я бы начал с моделирования на компьютере, на том же Clash, а потом только на реальном железе.
                                                                                              Вместо C для контроллеров я бы выбрал либо что-то более высокоуровневое (типа реактивного программирования), либо низкоуровневое, но интерактивное, типа Fort. Либо и то, и то.
                                                                                              • 0
                                                                                                .
                                                                                                • 0
                                                                                                  Раз уж пошла такая тема, то посоветуйте литературу по FPGA. Но чтобы с самого нуля, на русском или простом английском и написанную не канцеляритом (а то у нас любят перевести все общепринятые термины и потом гадай, что это). Тема очень интересная, но информации на порядки меньше, чем по тем же микроконтроллерам…
                                                                                                  • 0
                                                                                                    Самый нуль он общий и для FPGA и для MК и для SoC :)
                                                                                                    Могу порекомендовать вот эту тему (в коментарии прямая ссылка) https://habrahabr.ru/post/259505/#comment_8447713.

                                                                                                    А лично я недавно с удовольствием перечитал книгу написанную моим любимым институтским преподавателем «Функциональные узлы цифровой автоматики» (с) Потемкин Игорь Семенович. Если вас не смущает, что это книга издана в 1988 могу порекомендовать и ее, самый нуль точно с тех пор не изменился.

                                                                                                    Кстати рекомендую и автору топика ознакомиться — как минимум с последовательностью и стройностью изложения.
                                                                                                    • 0
                                                                                                      Вот дела! Я дал ссылку на статью автора топика! :)))
                                                                                                      Юрий, я так понимаю, вы принимали непосредственное участие в работе над этим учебником.

                                                                                                      Пользуясь случаем хочу сказать огромное спасибо за проделанную работу!
                                                                                                  • 0
                                                                                                    Если начинать с нуля, то самым простым способом изучения ПЛИС является MATLAB/Simulink + Xilinx DSP System Generator. Ну Симулинк, конечно лучше знать заранее.
                                                                                                    Проходите онлайн курс и документацию:
                                                                                                    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.
                                                                                                    Школьникам тоже бы посоветовал, но как я уже писал выше, сначала их надо сделать Системными Архитекторами.
                                                                                                    • +1
                                                                                                      Ага. Только вместо понятия логического вентиля школьников тогда придется предварительно просвещать на тему цифрового представления сигналов и их обработки.
                                                                                                      • 0
                                                                                                        В Xilinx блоксете для Симулинк есть не только ЦОС, а и вполне понятные и простые модели логических элементов — И, ИЛИ, НЕ, простые счетчики и компараторы, регистры, задержки, мультиплексоры, сумматоры.
                                                                                                        image
                                                                                                        Большим преемуществом является то, что все это можно легко промоделировать и затем залить в ПЛИС двумя кликами.
                                                                                                        • 0
                                                                                                          Не забывайте про цену матлаба…
                                                                                                          • 0
                                                                                                            Для школьников и студентов бесплатно… В Mathworks думают об этом.
                                                                                                      • 0
                                                                                                        *** Xilinx DSP System Generator ***

                                                                                                        Вы собираетесь знакомить школьников с Xilinx DSP System Generator до знакомства с FIR фильтрами и преобразованием Фурье? А как они поймут, зачем DSP48 в Xilinx вообще нужен и почему бы не обойтись обычными математическими операциями на процессоре?
                                                                                                        • 0
                                                                                                          Написал выше — необязательно начинать с DSP.
                                                                                                          • +1
                                                                                                            А там у матлаба галочка в свойствах фильтра скорость/ресурсы, а дальше матлаб сам раскидывает и про dsp48 школьник и не узнает и не нужно это школьникам…
                                                                                                            Это слишком глубокое копание, не забывайте, что можно улучшить химию, биологию так чтобы любой школьник мог синтезировать реактивы на промышленном уровне и изо/труды, чтобы заткнуть за пояс хендмейд мастерские города и т.д.

                                                                                                            В школе (хотя я даже про доп занятия по специальности) не нужны такие глубокие узкоспециализированные знания…
                                                                                                            • 0
                                                                                                              Вы просто предлагаете не учить принципу разработки последовательностных цифровых схем (с концепциями gate / clock / D-flip-flop) и вместо этого больше учить прикладной математике в Simulink. Ну это как спор учителя пения с учителем рисования, кому нужно больше часов в программе.
                                                                                                              • 0
                                                                                                                Конечно. С помощью таких средств инженер-математик, физик или проектировщик систем управления может легко реализовать свои алгоритмы на ПЛИС или процессорах, в зависимости от его желаний, не прибегая к программированию вообще.
                                                                                                                Взгляните, например на 3Д проектирование. Многим школьникам сегодня нужно преподавать черчение, если сейчас можно нарисовать 3D модель и из нее сделать деталь на 3Д принтере или CNC машине? Профессия чертежника исчезла.
                                                                                                                Точно также скоро исчезнут профессии Си и VHDL кодеров. Это сингулярность.