Pull to refresh

Comments 18

А вы свою элементную базу используете или есть какой-то "Набор юного инженера цифровых систем", желательно недорогой? Я тут попытался племянников (11, вроде, лет) на микроконтроллеры подсадить (micro:bit), но там хоть лампочки и мигают, но надо программы писать и подозреваю, что перенос активности на компьютер все ломает. Хочу проверить идею, что если своими руками делать, а они совсем не против что-нибудь помастерить, то может зацепить.

Для FPGA репозиторий примеров который сделали мы с сотоварищами поддерживает 45 плат

https://github.com/yuri-panchul/basics-graphics-music

Недорогой комплект из частей с Ali Express, который я часть использую, выглядит вот так:

https://verilog-meetup.com/2025/05/25/tang-nano-9k-setup-update/

Это набор на 10 студентов:

https://docs.google.com/spreadsheets/d/1HVJeVRhpTN54L7gBe2VHG5KTsQEmqQKKFdBnXWFDw2Q/edit?usp=sharing

На одного студента получается около $60, около 5 тыс. рублей.

Насчет набора из микросхем малой степени интеграции я сделаю список несколько потом.

Компания Arduino выпустила официальное мобильное приложение Arduino Create (доступно в Google Play). Есть и сторонние приложения.

Ардуино - это другое, чем упражнения с микросхемами малой степени интеграции и FPGA. Ардуино - это не про микроэлектронику, а про встроенное программмирование микроконтроллеров и немного проектирование систем (интеграцию микроконтроллеров и сенсоров).

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

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

Прошу прощения, сообщение про Ардуино, было для дяди племянники которого опасаются компьютера.

Спасибо за рекомендацию, посмотрю.

У micro:bit совершенно шикарная экосистема, представленная на microbit.org. Эти микроконтроллеры можно программировать, даже собирая программу из визуальных блоков. Так же поддерживается программирование на их варианте MicroPython. А поскольку там внутри Cortex-M, можно вообще уйти в сторону и использовать и С, и С++, и Rust. Аксессуаров же столько, что не составит труда сделать подавальщика масла, который будет спрашивать в чем смысл его существования.

Все это здорово, но удивительным образом не хватает программирования, путем настукивания чисел на какой-нибудь специально подключаемой цифровой клавиатуре. Или даже перещелкиванием тумблеров на какой-нибудь коробочке. У этих балбесов еще нет представления, что компьютер это чертовски полезный инструмент для достижения каких-то целей. Он у них вещь в себе. Я еще держу на примете всякие Exa Punks и их же TIS-100, Turing Complete и nandgame (этот вариант хороший, но, правда, сильно сложный), но, понятно, специально подсаживать на серьезные компьютерные игры мне не хочется.

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

Ах, Ямахи. Как много в этом слове...

В список устройств я бы еще добавил реализацию схемы RC-генератора на логических CMOS-вентилях и схему линейного усилителя на них же. А вот еще на D-триггере формирователь импульсов.

Мой личный выбор задач для школьников идет от сохи, то есть от моей личной ситуации на работе. Я прооектировщих блока GPU в чипах в телефонах Самсунг. При это я front-end RTL (register transfer level) designer. То есть D-триггеры я вижу - их в моем блоке сотни тысяч, а вот то что вы описываете вокруг меня нет. Я не занят ни ASIC library design, ни analog-mixed signal. Более того, я подозреваю что чтобы объяснить это по-человечески, нужны дифуры. А если объяснять на пальцах - то это просто отвлечение школьника от моего маршрута: логические элементы + D-триггеры -> System Verilog + Register Transer Level -> микроархитектура простейших процессоров.

Ну, мне удавалось объяснить работу мультивибратора на двух транзисторах "на пальцах", без всяких дифуров. Постепенный заряд/разряд конденсатора вполне понимабелен, тем более, что легко придумывается "гидравлический" аналог и конденсаторов, и резисторов.

По собственному опыту могу сказать, что объяснения на пальцах - вещь неоднозначная. Мне несколько раз пытались объяснить кольцевые генераторы на пальцах, у меня каждый раз возникало ощущение недоговаривания и попыток надурить. В итоге перешел в режим вежливого игнорирования (добавляло то, что они мне нужны в чудаковатых режимах работы). Потом сел с диффурами, все оказалось несложно, понятно и даже красиво.

В качестве примера побочки от рассказа на пальцах. В русской Википедии пишут

Один инвертирующий каскад с линией задержки (Фиг. 1) в связи вход-выход, однако, способен к генерации.

Есть сомнения в справедливости этого утверждения.

Нет, все верно. Если величина задержки и коэфициент усиления будут достаточные, то возникнут автоколебания.

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

Именно на таком каскаде (инвертор + линия задержки) построены тактовые генераторы некоторых советских вычислительных машин, в частности, ЕС-1020 и ЕС-1030. В роли линии задержки там был длиннющий кусок коаксиального кабеля.

Это хорошие примеры. Вашу статью на Хабре про ЕС-1020 я нашел, но там у меня вопросов возникло больше, чем получилось ответов. Про отражение от линии задержки было полезно прочитать. Вообще не так про эти задержки думал и идею с длинным кабелем сразу отмел.

Моя задача крутится вокруг перехода к установившемуся автоколебательному режиму и его структуры в сети таких генераторов. Сами генераторы могут быть построены и на нескольких инверторах, здесь ограничений нет. В частности возникла идея, что можно избежать ряда проблем и сделать конструкцию более предсказуемой путем добавления линий задержки. 100-метровый коаксиальный кабель нам, конечно, не подойдет, но это мы потом с инженерами работать будем. Но до того как пойти к инженерам, мне надо разобраться с тем, что будет происходить в лучшем случае и как определить насколько мы далеки от лучшего случая. Для этого надо составить разумную динамическую модель. В ходе разбирательств начитался всякого. Но почему именно от Википедии у меня осадок остался, непонятно. Будет мне уроком.

Диффуры в школе не дают. Так что, только, как говорит @SIISII, заряд-разряд и закон Ома. В качестве примера могу привести книгу "Радио это очень просто" где на пальцевых методах объяснена работа радиоприемника и его компонентов. Потом, когда школьник подрастет, он сможет увеличить степень детализации своего понимания, освоив диффуры. Конечно, я ничего не навязываю, но когда под рукой есть микросхемы мелкой логики, базовые вещи вроде согласования уровней, задержек сигнала, логические гонки, можно показать вживую на экране осциллографа.

Да, но это не моя цель. Моя личная цель - привести к простому CPU на языке описания аппаратуры SystemVerilog, на уровне регистровых передач (register transfer level - RTL), с реализацией на ПЛИС/FPGA. А самых мотивированных из тинейджеров постарше - к микроархитектурным комструкциям: конвейеры, FIFO итд - то есть к тому, с чем я работаю как проектировщик GPU, до этого проектировщик сетевых чипов, до этого CPU.

Если я буду отвлекаться на любые вещи, которые не входят в этом маршрут, то они просто не дойдут. И операционным усилителям и RC-генераторам уже долго учили и учат другие люди, а вот микроархитектуре и уровню регистровых передач - сильно меньше.

Процессор из учебника Харрис & Харрис:

Картинка из одной из моих статей про конвейер обработки данных
Картинка из одной из моих статей про конвейер обработки данных

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

Sign up to leave a comment.

Articles