Pull to refresh

Comments 160

UFO just landed and posted this here
Вас удивит, что у меня полностью наоборот — 99% моих задач можно решить только на ПЛИС, без применения МК?
Задачи просто разные и точек соприкосновения не так уж много. Даже ценовой сегмент — и то другой — МК стоят пару десятков баксов максимум, в то время как нормальная ПЛИС начинается от сотни баксов.
UFO just landed and posted this here
Такие задачи известны — там, где нужна очень высокая скорость обработки информации.

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

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

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

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

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

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

Можно сделать например специализированный сопроцессор к MIPSfpga для работы с Unum https://www.crcpress.com/The-End-of-Error-Unum-Computing/Gustafson/p/book/9781482239867

Вот пример проекта такого рода, хотя его делал не хоббист, а молодой профессионал — http://zatslogic.blogspot.com/2016/01/using-mips-microaptiv-up-processor.html
В 20 веке программирование и проектирование электроники было разделено. Сейчас, в 21 веке, мы живем во время интегрированных чипов, в которых разработчик системы на кристалле должен видеть и устройство софтвера, и устройство хардвера. Такое видение нужно закладывать рано.

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

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

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

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

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

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

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

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

Там и программирование то ровно на таком уровне, что бы проверка орфографии в ворде магией не казалась.
Но про металлургию в школе говорят, как и в современной школе говорят про технологию генетического модифицирования и про 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
> 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.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

UFO just landed and posted this here

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

Нейросети на чем лучше реализовывать?
UFO just landed and posted this here
Глубокие сети как раз таки наоборот, требуют больших вычислительных ресурсов, иначе бы не было хайпа вокруг карт NVidia с их ориентацией на тензорные вычисления. Что касается медленного канала получения данных, то скажите, кадр с камеры при 30 fps это медленно?
UFO just landed and posted this here
Странное сравнение Видеокарта — большое устройство состоящее из графического (векторного) процессора и микросхем памяти (отдельно). ПЛИС — просто микросхема. Подключи к ней такую же память — и у нее будут гигабайты.
UFO just landed and posted this here
Поясните. При необходимости специализации под какую-то узкую задачу и схожих характеристиках FPGA всегда обставит чип общего назначения.
UFO just landed and posted this here
Выбрал второй вариант — про работу транзистора хотя бы в ключевом режиме надо рассказать. Подключение реле через транзисторный ключ — очень частая задача, и многие очень квалифицированные специалисты по МК и ПЛИС перед ней пасуют, так как «проходили мимо»… Про диоды тоже рассказать: как автоматическое переключение питания сделать при работе от двух источников, как транзистор диодом от самоиндукции реле защитить.
Транзисторы нужны, хотя бы на простейшем понятийном уровне " подали — транзистор открылся/закрылся ".
Это даст законченную картину — логические элементы перестанут быть «магическими», а также нужные знания для осознанного соединения с реальностью — индикаторы, датчики и т.п.

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

Почему 5 дней, имхо — крайне мало? Это ж как надо внимательно относится к отбору и степени погружения в сущности.
Идея хорошая. Я её даже уже обдумывал) В рамках одного стартапа предлагалось использовать 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 дней — мне кажется это вообще ни о чём. Это кружок нужен с полноценным погружением. И хорошо отобранный контингент, которому будет это реально интересно.

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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


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


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

Школьники школьниками, а я бы и сам не против пройти такой курс!
UFO just landed and posted this here
Лучше школьникам физику и математику давать на достойном уровне, для желающих более углублено. Это куда больше даст для технических специальностей, в том числе и электроники.
Если школьник не будет заниматься, то этот курс забудет на следующий день. Есть ли в нем смысл? А в хорошей базе в виде физики, математики точно имеется.
Ну например упражнения на ПЛИС помогут уложить школьнику в голову концепцию конечного автомата, который вводится в курсе дискретного анализа довольно рано во многих вузовских программах, и с которой однозначно знакомы ученики физматшкол. Без практических упражнений эта концепция воспринимается как нечто абстрактное.

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



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



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


> с которой однозначно знакомы ученики физматшкол

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Такое тоже есть, но и 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). "


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

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

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

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

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

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

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

UFO just landed and posted this here

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

Я бы начал с моделирования на компьютере, на том же Clash, а потом только на реальном железе.
Вместо C для контроллеров я бы выбрал либо что-то более высокоуровневое (типа реактивного программирования), либо низкоуровневое, но интерактивное, типа Fort. Либо и то, и то.
UFO just landed and posted this here
Самый нуль он общий и для FPGA и для MК и для SoC :)
Могу порекомендовать вот эту тему (в коментарии прямая ссылка) https://habrahabr.ru/post/259505/#comment_8447713.

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

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

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

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

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

В первую очередь там должно появиться умение читать чертеж.
Если я начну с вами спорить на предмет behavioral synthesis, то это будет долго и не для этого поста. Так что просто зафиксируем различие мнений. Как говорят американцы, agreed to disagree.
Ну вы сами-то точно уверены в необходимости этих концепций для школьников, даже для пары человек из каждого класса, (не всем группам факультетов радиотехники такое преподают)?
Можно улитку по машине тьюринга пускать ползать, тоже важно…
спор учителя пения с учителем рисования
Быть может, все-таки спросим детей?
Я думаю больше учеников попросит научить профессионально играть в танчики и монтировать летсплеи.
Да, это конструктивное предложение. Можно попробовать так и так, а потом опросить детей.
Вы понимаете, чем были хороши радиокружки и всякие журналы юный техник. Они позволяли смастерить что-то минимально полезное: радио, усилитель для магнитофона, счётчик гейгера, часы какие-нибудь и т.п. на ардуине сейчас можно сделать гирлянду какую-нибудь или автомат вентилятора в туалете, ну сердечко с подсветкой на день святого валентина.

А красивым конвейером процессора на плис, могут восхищаться пара человек на свете…
Еще забыл — в Симулинке используется описание алгоритмов работы в виде сигналов, блоков и связей между ними — такое описание как раз наиболее соответствует логике работы ПЛИС.
В этом смысле ПЛИС становятся гораздо более понятными, чем процессоры — это как обычные логические схемы, только без необходимости их ручной пайки, соединения проводами и согласованием уровней, а с возможностью моделирования и быстрой проверки в железе.
А вы уверены, что школьникам ближе обыкновенные логические схемы в виде сигналов, а не математические абстракции, которые можно записать логическими операторами в пошаговом скрипте?
Если показать просто концепции, то это все возможно
И классическая ситуация: прошли. Как всегда мимо…
Мы говорим о школьниках? Вы с современными школьниками последний раз когда общались?
99.(9)% это уровень мышления СМС-ками… Как бы это не грустно звучало.
Из цифровой техники — да, дать логические элементы, включая регистры, сдвиговые регистры. Пусть соорудят что-то простое, типа «бегущие огни». Большее вряд ли поймут, ибо нет базы для понимания чего то большего.
«Вам действительно так нужен программист?» — спросил я. «Нам позарез нужен программист». — «Я поговорю с ребятами, — пообещал я. — Я знаю недовольных». — «Нам нужен не всякий программист, — сказал горбоносый. — Программисты — народ дефицитный, избаловались, а нам нужен небалованный». — «Да, это сложнее», — сказал я. Горбоносый стал загибать пальцы: «Нам нужен программист: а — небалованный, бэ — доброволец, цэ — чтобы согласился жить в общежитии…» — «Дэ, — подхватил бородатый, — на сто двадцать рублей». — «А как насчёт крылышек? — спросил я. — Или, скажем, сияния вокруг головы? Один на тысячу!» — «А нам всего-то один и нужен», — сказал горбоносый. «А если их всего девятьсот?» — «Согласны на девять десятых».

(с) Стругацкие «Понедельник начинается в субботу»
А если чуть серъезнее:

Большее вряд ли поймут, ибо нет базы для понимания чего то большего.
Если вы дали, по-настоящему дали, «логические элементы» и «регистры» (читай триггеры), то не хватает всего ничего: «шина», «сихронизация» -> «автомат» и вуаля — вы знаете как сделать процессор!

И почувствуйте разницу не знаете как работает, а знаете как сделать!

Из нашей группы в количестве 16 человек, после университета, в сфере радиоэлектроники работает ровно два человека, этим людям просто было это интересно. Я с одногруппником по ночам паял девайсы. Так же я хочу вам рассказать историю о том как я ходил на курсы по программированию. Нас было в группе около 20 человек. Через пол года изучения С++ нас стало 10, еще через пол года 5 самых стойких, которые хотели научиться и которым, самое главное, было интересно. И обучались отнюдь не школьники. Многих мотивировал только будущий заработок, они думали что за месяц научаться клепать прикладные приложения с нуля, и станут Биллами Гейтсами. Это я о чем, нужно именно заинтересовать детей. Лично на меня повлиял мой дядя, когда рассказал, что бывают приемники без батареек и адаптеров питания. Я ему не поверил, как это без батареек, мой плеер ведь на батарейках! Тогда он мне дал книгу В.Г Борисова "Юный радиолюбитель", после этого мой мир перевернулся. Как работает диод и транзистор, я понял только в 10 классе средней школы, на уроках физики тремя годами позже.

Мне кажется 5 дней мало… Я вот тоже загорелся с детьми роботов на плисах делать, но как-то очень туго пока идет. Если идти последовательно от логических элементов, то сдуваются. Сейчас пробую просто хоть заинтересовать какими-то реальными проектами. Например очень медленно и трудно делаем СВ-трансивер (громко сказано конечно, пока только DDS-генератор спроектировали и пробуем модуляцию завести к нему, но конечная цель такая). Ну и на конкурс робота проектируем.

Еще одна проблема — детей сейчас пичкают шаблонами «как надо», в результате они например бьются над реализацией перевода задержки импульса от ультразвукового датчика в сантиметры и то, что железу на сантиметры наплевать и можно оперировать именно этим временем, воспринимается как откровение. Здесь ПЛИС тоже оказывается полезно показать как образец делания чего-то «не как надо». Например тот же DDS-генератор на звуковой диапазон мы сначала на Ардуино собирали — долго и печально (но собрали и даже призовое место сегодня на районном конкурсе за него получили), а потом я показал им как просто это на FPGA сделать.
Sign up to leave a comment.

Articles

Change theme settings