Продолжаем наблюдение...
TL;DW Мужик придумал еще один питонячий DSL под названием SKiDL для описания схематики и предлагает им заменить вообще весь схемный ввод, утверждая, что индустрия на него подсела, хотя он же её и убивает (отсюда и параллели с героином).
Соображения по этому поводу у меня можно уместить в одну короткую фразу: это лютый вин и фейл одновременно.
Вин — потому что со схематикой действительно давно пора уже что-нибудь сделать, и в современных цифровых устройствах она давно себя отжила. Там в видео приводится пример, где листы схемы заполнены тупо прямоугольниками с выводами земли, а следующие листы — выводы питания с россыпями блокировочных конденсаторов (и, как нормальные блокировочные конденсаторы, все они подключены тупо впараллель). И, даже если не говорить от настолько тривиальных случаях, всё равно, на 90% это соединение одноименных ножек у разных прямоугольников. Понятно, что тут графическое изображение схемы не несет никакой познавательной ценности, одну лишь дополнительную когнитивную нагрузку. Рисовать такое — отдельная боль, сотни кликов мышкой, только чтобы объяснить среде, что землю нужно подключать к земле.
С фейлом все не настолько однозначно. Первое и самое очевидное (и, к счастью, проще всего преодолимое) ограничение — то, что в нынешнем состоянии приходится выбирать — либо классический схемный ввод, либо SKiDL, потому что оно генерирует сразу цельный нетлист, который должна потом всосать рисовалка pcb. Взять, и вот так запросто перевести свой проект с одной идеологии на другую мало кто способен, а бизнес так и просто не будет рисковать. Т.е. кто-то сначала должен это всё нормально интегрировать в кикад, а потом оно, может быть, не выстрелит и его придется выбросить :-)
Второе — вот те самые 10% случаев. Проект как бы пытается усидеть на двух стульях одновременно. Нюанс в том, что для задания тривиальных соединений вам не нужен DSL, достаточно таблички :) Табличку можно и напитонить, но синтаксический оверхед будет тоже приличный. Нетривиальные случаи можно обыграть схемным вводом, но его не дают, поэтому нам нужна возможность описывать топологию текстом (занятие не для слабонервных!). Которая бы не понадобилась, если бы... см выше.
И тут мы плавно подходим к пункту три. Автор немножечко лукавит, называя свой проект идейным наследником MyHDL (еще один питоний... не знаю, транспилер чтоли? в VHDL/Verilog). SKiDL — не является HDL в том понимании, как это принято в индустрии. Точнее, не является синтезируемым HDL, а является просто объектной обёрткой над нетлистом. Плюс немного синтаксического сахара сверху. Я не знаю что это — wishful thinking или нечто более недобросовестное, но моментик настораживает.
Пара слов о самом SKiDL.
Данный код эквивалентен картинке справа (ну почти, картинку я взял из википедии, там отстутсвует резистор в базе, потом может исправлю), т.е. порождают одинаковый нетлист

Смысл достаточно самоочевиден, разве что надо пояснить про &, который обозначает последовательное соединение. Без него пришлось бы писать что-то вроде
Это собственно и есть тот синтаксический сахар о котором выше. Есть еще |, который параллельное соединение и, кажется. на этом всё.
Как нибудь, если совсем лень не одолеет, напишу более подробный обзор SKiDL'а, а пока — вот пример применения в реальной жизни. Хотя схематику-то он сгенерировал, а как он это разводил я не знаю :)
UPD. Что-то козла долго нет, не заболел ли?
TL;DW Мужик придумал еще один питонячий DSL под названием SKiDL для описания схематики и предлагает им заменить вообще весь схемный ввод, утверждая, что индустрия на него подсела, хотя он же её и убивает (отсюда и параллели с героином).
Соображения по этому поводу у меня можно уместить в одну короткую фразу: это лютый вин и фейл одновременно.
Вин — потому что со схематикой действительно давно пора уже что-нибудь сделать, и в современных цифровых устройствах она давно себя отжила. Там в видео приводится пример, где листы схемы заполнены тупо прямоугольниками с выводами земли, а следующие листы — выводы питания с россыпями блокировочных конденсаторов (и, как нормальные блокировочные конденсаторы, все они подключены тупо впараллель). И, даже если не говорить от настолько тривиальных случаях, всё равно, на 90% это соединение одноименных ножек у разных прямоугольников. Понятно, что тут графическое изображение схемы не несет никакой познавательной ценности, одну лишь дополнительную когнитивную нагрузку. Рисовать такое — отдельная боль, сотни кликов мышкой, только чтобы объяснить среде, что землю нужно подключать к земле.
С фейлом все не настолько однозначно. Первое и самое очевидное (и, к счастью, проще всего преодолимое) ограничение — то, что в нынешнем состоянии приходится выбирать — либо классический схемный ввод, либо SKiDL, потому что оно генерирует сразу цельный нетлист, который должна потом всосать рисовалка pcb. Взять, и вот так запросто перевести свой проект с одной идеологии на другую мало кто способен, а бизнес так и просто не будет рисковать. Т.е. кто-то сначала должен это всё нормально интегрировать в кикад, а потом оно, может быть, не выстрелит и его придется выбросить :-)
Второе — вот те самые 10% случаев. Проект как бы пытается усидеть на двух стульях одновременно. Нюанс в том, что для задания тривиальных соединений вам не нужен DSL, достаточно таблички :) Табличку можно и напитонить, но синтаксический оверхед будет тоже приличный. Нетривиальные случаи можно обыграть схемным вводом, но его не дают, поэтому нам нужна возможность описывать топологию текстом (занятие не для слабонервных!). Которая бы не понадобилась, если бы... см выше.
И тут мы плавно подходим к пункту три. Автор немножечко лукавит, называя свой проект идейным наследником MyHDL (еще один питоний... не знаю, транспилер чтоли? в VHDL/Verilog). SKiDL — не является HDL в том понимании, как это принято в индустрии. Точнее, не является синтезируемым HDL, а является просто объектной обёрткой над нетлистом. Плюс немного синтаксического сахара сверху. Я не знаю что это — wishful thinking или нечто более недобросовестное, но моментик настораживает.
Пара слов о самом SKiDL.
Данный код эквивалентен картинке справа (ну почти, картинку я взял из википедии, там отстутсвует резистор в базе, потом может исправлю), т.е. порождают одинаковый нетлист
inp, outp = Net('Vin'), Net('Vout')
r1, r2 = Part('resistor'...), Part('resistor'...)
q1 = Part('transistor'...)
ntwk_ce = vcc & r1 & outp & q1['C,E'] & gnd
ntwk_b = inp & r2 & q1['B']
Смысл достаточно самоочевиден, разве что надо пояснить про &, который обозначает последовательное соединение. Без него пришлось бы писать что-то вроде
r1[1] += vcc r1[2] += outp q1['C'] += outp ... итд
Это собственно и есть тот синтаксический сахар о котором выше. Есть еще |, который параллельное соединение и, кажется. на этом всё.
Как нибудь, если совсем лень не одолеет, напишу более подробный обзор SKiDL'а, а пока — вот пример применения в реальной жизни. Хотя схематику-то он сгенерировал, а как он это разводил я не знаю :)
UPD. Что-то козла долго нет, не заболел ли?