Почему не зовут, меня зовут. Просто я все жду чтобы была сделана какая-нибудь сделка по Украине. До этого есть всякие риски что на меня будут стучать за консультирование в подсанкционных регионах, и придется разбираться. На меня и так все время стучат, и мне приходилось отвечать и офицеру экспортного контроля, и (правда еще до всех этих нынешних событий) разговаривать с ФБР, и писать всякое юристам ответы. Но если я буду разъезжать по России, то это все увеличится на порядок. Я думаю что будет сделана какая-нибудь сделка усилиями Кушнера, Виткофа и Кирилла Дмитриева и потом поразъезжаю.
Я двумя руками за чтобы школьники поизобретали велосипеды, но в области которая релевантна (например сделают свой вариант sram-based FIFO), а не ковырятся в каком-нибудь 8080 из 1976 года.
Популяризатор может упрощать корректно, но Петзольд здесь не упрощает, а высказывает свое понимание с 1970-х годов. Это понимание и тогда было не очень а сейчас оно совсем оторванно от индустриальных практик.
А это IMHO может пригодиться, когда в конкретном случае в абстракции цифровой схемы внезапно обнаружится дырка, и придётся глядеть через нее на уровень ниже - “иголки” там ловить и т.п.
"Иголки" на физическом уровне в компании обычно ловит группа по Physical Design, а не RTL design. Для проектировщика логики нужно иметь представление о статическом анализе тайминга и о надежном стиле проектирования, чтобы "иголок" не было.
В любом случае, изучение нюансов таймера 555 или установка дюжины дополнительных резисторов на каждую плату врядли поможет понять "иголки" которые возникают на физическом уровне в ASIC design, а вот время на них тратится.
Моя цель - привести школьника к микроархитектурно нетривиальным схемам, чтобы он мог их спроектировать и построить руками. А потом пересесть с них на SystemVerilog и FPGA, то есть привязать к современному взрослому проектированию.
Round-robin arbiter, конечные автоматы для распознавания последовательностей ("кодовый замок"), вычислители собирающие аргументы приходящие в разное время с помощью FIFO - все это можно построить на микросхемах малой степени интеграции.
Но в текущих наборах школьник до таких схем не доходит (максимум до счетчика и сдвигового регистра), частично потому что на это не хватает времени и внимания - он увязает надолго в транзисторном уровне и всяких SR-защелках, JK-триггере и разных способах использовать таймер 555. Поэтому я и пропускаю все это дело.
При всем сказанном, я совершенно не против, чтобы другой преподаватель параллельно строил курс с фокусом вокруг аналоговых вещей - скажем операционных усилителей и аналоговых компьютеров. Но и тут должна быть привязка к современному взрослому проектированию.
Но вот свое предположение, почему объяснение построено у Петцольда именно так - что это обусловлено причинами историческими, - я рискнул изложить.
Именно, это просто вот такая 50-летняя традиция. Она мешает в современных обстоятельствах, когда надо быстро (пока не закончилось полугодие или пока у детей есть внимание) пересадить на верилог + FPGA, а также потом объяснить всякие конечные автоматы, конвейеры и FIFO.
Я в этой индустрии с 1995 года, когда я познакомился с верилогом в Mentor Graphics, и я могу сказать совершенно определенно - и альфа, и latch-based design были тогда экзотикой. Работал с такими компаниями как Hitachi в 1998 и дизайном от Motorola в 1999 и там все было d-flip-flop based. В d-latch based дизайне вы теряете половину такта - зачем?
Потренируюсь в подаче. Например у Петзольда (как и во многих курсах за последние 50+ лет) D-триггер объясняют через SR-защелку, D-защелку, JK-триггер, master-slave итд - у Петзольда на это уходит 30 страниц. Которые местами написаны очень мутно, например пассаж про разницу между level-sensitive и edge-sensitive D-триггер. И потом еще столько же страниц про использование D-защелок и D-триггеров, причем только для банальных действий типа накопления результатов сложения.
Я объясняю это в 5 пунктов и 5 минут упражнений с платой:
D-триггер - это устройство, которой помнит 1 бит информации в течение 1 такта. Иными словами, минимальный элемент состояния.
Такт - это период тактового сигнала, по английски clock. Clock меняется 0101 с фиксированной частотой.
Запись в D-триггер, через вход D, происходит в начале такта, когда clock меняется с 0 в 1. После записи D-тригер можно читать в любой момент в течение такта - на его выходе Q будет стоять значение записанное в начале такта.
Любые изменения входа D посередине такта будут игнорироваться.
Из смеси комбинационного логики И/ИЛИ/НЕ и D-триггеров можно строить схемы, результат в которых зависит не только от текущих входов, но и предистории. В частности строить выполнятели итеративных алгоритмов.
Далее каждый ученик получает микросхему CMOS 4013 и уже собранный генератор тактового сигнала на основе микросхемы 555, настроенный на частоту около 0.5 герц (период тактового сигнала около 2 секунд). Он исследует как информация запоминается во внутренее состояние D‑триггера во время положительного фронта тактового сигнала. Вход D с кнопки, CLK выводится на светодиод, Q выводится на светодиод. Ученик видит, что изменения входа внутри такта игнорируются.
Через 5 минут игры с платой школьник понимает работу D-триггера и может перейти к его использованию, причем не только в счетчиках и сдвиговых регистрах для мигающих огоньков (как это делается в кондовых текущих наборах для школьников), но и в конечных автоматах для распознавания последовательностей и других интересных схемах, вплоть до очередей FIFO и других взрослых микроархитектурных конструкций.
Обращаю внимание что для моего объяснения функции и использования D-триггера - для него D-защелка итд вообще не нужны. D-защелку нужно показать только через год или два, уже студенту освоившему все микроархитектурные конструкции, когда пойдет речь о трюках для экономии энергопотребления и будет нужен medium-grain clock gater. До этого она только сбивает с толку.
А какую вы именно плату с воронежским МК используете? Я сам собираюсь скупить все доступные платы с российскими RISC-V микроконтроллерами для исследования.
Ерунда полная. Сделать препроцессор, который превращает такой 'русский си" в обычный - не требует изменения компилятора. А вот эта часть статьи вообще написана иишницей;
Тут не получится просто взять и заменить «if» на «если» в исходниках компилятора. Потому что компилятор — это не текст. Это сложная система, состоящая из множества взаимосвязанных компонентов: лексер, парсер, препроцессор, генератор кода, оптимизатор, линкер. Каждый из этих компонентов ожидает определённые токены, определённые ключевые слова, определённую грамматику. И чтобы изменить язык, который понимает компилятор, нужно изменить все эти компоненты. А чтобы изменить их — нужно понять, как они работают.
Я не был бы настолько категоричен. Во-первых, и в России, и в Украине есть школьники с такими же проектами. Во-вторых, и в Области Сан-Францисского Залива есть куча проблем: бомжи, наркоманы, бывают и инциденты с оружием, при которых школу закрывают и над ней полицейские вертолеты кружат.
К тому же прогресс не стоит на месте, еще один маленький шажок и ардуинщики органично втиснут FPGA в свою экосистему. Оно и сейчас там есть, но пока без бубна - никак.
И уж когда втиснут, они с чистой маркетинговой совестью могут сказать, что "FPGA это просто один из модулей Arduino, на любителя или для гиков".
Они это уже пытались еще 10 лет назад. Первая попытка было совсем стремная - алтеровский FPGA работал только через ардуину, а при попытке сконфигурировать его традиционным способом сгорал.
Вторая попытка был Xilinх-овский FPGA, тоже привязанный к ардуине, за двойную для такой платы цену.
Вообще это выглядело как связка коня и мотоцикла.
FPGA рынок сильно раздроблен и правильно делать как у меня и сотоварищей, то есть поддерживать все 45 плат который валяются по кладовкам в разных университетах:
Ардуинщики такого делать не станут, это противоречит их идеологии "есть только одна каноническая плата освященная епископом, ну может еще две, а всего остального не существует"
На таких гуляниях можно встретить самых разных людей, даже директоров NVidia инкогнито, но меня прежде всего интересуют люди в системе образования, готовые попробовать на школьниках разные находки - например связку от макетки до FPGA до ASIC-а.
Спасибо!
Обязательно!
Почему не зовут, меня зовут. Просто я все жду чтобы была сделана какая-нибудь сделка по Украине. До этого есть всякие риски что на меня будут стучать за консультирование в подсанкционных регионах, и придется разбираться. На меня и так все время стучат, и мне приходилось отвечать и офицеру экспортного контроля, и (правда еще до всех этих нынешних событий) разговаривать с ФБР, и писать всякое юристам ответы. Но если я буду разъезжать по России, то это все увеличится на порядок. Я думаю что будет сделана какая-нибудь сделка усилиями Кушнера, Виткофа и Кирилла Дмитриева и потом поразъезжаю.
А, ну хорошо, спасибо за поправку. Я несколько лет назад слышал, что эта команда делала верификацию, поэтому так понял.
Я двумя руками за чтобы школьники поизобретали велосипеды, но в области которая релевантна (например сделают свой вариант sram-based FIFO), а не ковырятся в каком-нибудь 8080 из 1976 года.
Популяризатор может упрощать корректно, но Петзольд здесь не упрощает, а высказывает свое понимание с 1970-х годов. Это понимание и тогда было не очень а сейчас оно совсем оторванно от индустриальных практик.
"Иголки" на физическом уровне в компании обычно ловит группа по Physical Design, а не RTL design. Для проектировщика логики нужно иметь представление о статическом анализе тайминга и о надежном стиле проектирования, чтобы "иголок" не было.
В любом случае, изучение нюансов таймера 555 или установка дюжины дополнительных резисторов на каждую плату врядли поможет понять "иголки" которые возникают на физическом уровне в ASIC design, а вот время на них тратится.
Если CPU упал на инструкции ветвления - имеет ли смысл мерять его метрики после этого события?
Те же Харрисы вполне адекватная книжка, хоть и не идеальная - https://www.dmkpress.com/catalog/electronics/circuit_design/978-5-97060-961-3/
Моя цель - привести школьника к микроархитектурно нетривиальным схемам, чтобы он мог их спроектировать и построить руками. А потом пересесть с них на SystemVerilog и FPGA, то есть привязать к современному взрослому проектированию.
Round-robin arbiter, конечные автоматы для распознавания последовательностей ("кодовый замок"), вычислители собирающие аргументы приходящие в разное время с помощью FIFO - все это можно построить на микросхемах малой степени интеграции.
Но в текущих наборах школьник до таких схем не доходит (максимум до счетчика и сдвигового регистра), частично потому что на это не хватает времени и внимания - он увязает надолго в транзисторном уровне и всяких SR-защелках, JK-триггере и разных способах использовать таймер 555. Поэтому я и пропускаю все это дело.
При всем сказанном, я совершенно не против, чтобы другой преподаватель параллельно строил курс с фокусом вокруг аналоговых вещей - скажем операционных усилителей и аналоговых компьютеров. Но и тут должна быть привязка к современному взрослому проектированию.
Именно, это просто вот такая 50-летняя традиция. Она мешает в современных обстоятельствах, когда надо быстро (пока не закончилось полугодие или пока у детей есть внимание) пересадить на верилог + FPGA, а также потом объяснить всякие конечные автоматы, конвейеры и FIFO.
Про TTL спасибо.
Я в этой индустрии с 1995 года, когда я познакомился с верилогом в Mentor Graphics, и я могу сказать совершенно определенно - и альфа, и latch-based design были тогда экзотикой. Работал с такими компаниями как Hitachi в 1998 и дизайном от Motorola в 1999 и там все было d-flip-flop based. В d-latch based дизайне вы теряете половину такта - зачем?
Потренируюсь в подаче. Например у Петзольда (как и во многих курсах за последние 50+ лет) D-триггер объясняют через SR-защелку, D-защелку, JK-триггер, master-slave итд - у Петзольда на это уходит 30 страниц. Которые местами написаны очень мутно, например пассаж про разницу между level-sensitive и edge-sensitive D-триггер. И потом еще столько же страниц про использование D-защелок и D-триггеров, причем только для банальных действий типа накопления результатов сложения.
Я объясняю это в 5 пунктов и 5 минут упражнений с платой:
D-триггер - это устройство, которой помнит 1 бит информации в течение 1 такта. Иными словами, минимальный элемент состояния.
Такт - это период тактового сигнала, по английски clock. Clock меняется 0101 с фиксированной частотой.
Запись в D-триггер, через вход D, происходит в начале такта, когда clock меняется с 0 в 1. После записи D-тригер можно читать в любой момент в течение такта - на его выходе Q будет стоять значение записанное в начале такта.
Любые изменения входа D посередине такта будут игнорироваться.
Из смеси комбинационного логики И/ИЛИ/НЕ и D-триггеров можно строить схемы, результат в которых зависит не только от текущих входов, но и предистории. В частности строить выполнятели итеративных алгоритмов.
Далее каждый ученик получает микросхему CMOS 4013 и уже собранный генератор тактового сигнала на основе микросхемы 555, настроенный на частоту около 0.5 герц (период тактового сигнала около 2 секунд). Он исследует как информация запоминается во внутренее состояние D‑триггера во время положительного фронта тактового сигнала. Вход D с кнопки, CLK выводится на светодиод, Q выводится на светодиод. Ученик видит, что изменения входа внутри такта игнорируются.
Через 5 минут игры с платой школьник понимает работу D-триггера и может перейти к его использованию, причем не только в счетчиках и сдвиговых регистрах для мигающих огоньков (как это делается в кондовых текущих наборах для школьников), но и в конечных автоматах для распознавания последовательностей и других интересных схемах, вплоть до очередей FIFO и других взрослых микроархитектурных конструкций.
Обращаю внимание что для моего объяснения функции и использования D-триггера - для него D-защелка итд вообще не нужны. D-защелку нужно показать только через год или два, уже студенту освоившему все микроархитектурные конструкции, когда пойдет речь о трюках для экономии энергопотребления и будет нужен medium-grain clock gater. До этого она только сбивает с толку.
А какую вы именно плату с воронежским МК используете? Я сам собираюсь скупить все доступные платы с российскими RISC-V микроконтроллерами для исследования.
Ну если его совсем не учить то точно не будут собеседовать
Времена сейчас такие. В каждой Герани и каждом Цирконе - ПЛИС Zynq. А потом это можно перенести на айфоны:
От текста пахнет ИИ. Можно просто промпт? Так короче и быстрее читать.
Ерунда полная. Сделать препроцессор, который превращает такой 'русский си" в обычный - не требует изменения компилятора. А вот эта часть статьи вообще написана иишницей;
Я не был бы настолько категоричен. Во-первых, и в России, и в Украине есть школьники с такими же проектами. Во-вторых, и в Области Сан-Францисского Залива есть куча проблем: бомжи, наркоманы, бывают и инциденты с оружием, при которых школу закрывают и над ней полицейские вертолеты кружат.
Они это уже пытались еще 10 лет назад. Первая попытка было совсем стремная - алтеровский FPGA работал только через ардуину, а при попытке сконфигурировать его традиционным способом сгорал.
Вторая попытка был Xilinх-овский FPGA, тоже привязанный к ардуине, за двойную для такой платы цену.
Вообще это выглядело как связка коня и мотоцикла.
FPGA рынок сильно раздроблен и правильно делать как у меня и сотоварищей, то есть поддерживать все 45 плат который валяются по кладовкам в разных университетах:
https://github.com/yuri-panchul/basics-graphics-music
Ардуинщики такого делать не станут, это противоречит их идеологии "есть только одна каноническая плата освященная епископом, ну может еще две, а всего остального не существует"
Принцев на самом деле довольно много. Вот я пошел на MakerFaire, пообщался там с неким товарищем:
потом прихожу домой, гуглю и вижу что он вице-президент системного инжиниринга в NVidia:
На таких гуляниях можно встретить самых разных людей, даже директоров NVidia инкогнито, но меня прежде всего интересуют люди в системе образования, готовые попробовать на школьниках разные находки - например связку от макетки до FPGA до ASIC-а.