91
0

Пользователь

Вот что отвечает ChatGPT 4.5, на запрос "make a circuit of a four-bit full adder in Verilog language", насколько близко к ожидаемому результату? (это т.н. `zero-shot`)

Hidden text

Creating a four-bit full adder circuit in Verilog involves leveraging a basic full adder module to handle binary addition bit by bit. A full adder adds two binary digits along with a carry input and outputs a binary sum and a carry out. For a four-bit full adder, this operation is extended over four bits.

First, let's write the Verilog code for the basic full adder module:

``````module FullAdder(
input a,
input b,
input cin,
output sum,
output cout
);

// Sum calculation
assign sum = a ^ b ^ cin;

// Carry out calculation
assign cout = (a & b) | (b & cin) | (a & cin);

endmodule
``````

With the basic full adder defined, we can proceed to build the four-bit full adder using four instances of this module, chaining the carry of each to the next.

``````module FourBitFullAdder(
input [3:0] A,
input [3:0] B,
input Cin,        // Carry input for the least significant bit
output [3:0] S,
output Cout       // Carry output from the most significant bit
);

wire [2:0] carry; // Internal carries between full adders

.a(A[0]),
.b(B[0]),
.cin(Cin),
.sum(S[0]),
.cout(carry[0])
);

.a(A[1]),
.b(B[1]),
.cin(carry[0]),
.sum(S[1]),
.cout(carry[1])
);

.a(A[2]),
.b(B[2]),
.cin(carry[1]),
.sum(S[2]),
.cout(carry[2])
);

.a(A[3]),
.b(B[3]),
.cin(carry[2]),
.sum(S[3]),
.cout(Cout)
);

endmodule
``````

This module defines a `FourBitFullAdder` that accepts two 4-bit numbers (`A` and `B`) and a carry-in (`Cin`). It then generates a 4-bit sum (`S`) and a carry-out (`Cout`). The carries between the adders are managed internally with `carry[2:0]`, which are connected to the respective full adders.

This Verilog setup is suitable for synthesis in digital logic design and can be used in higher-level designs or tested individually through a simulation testbench. If you need a testbench example for this circuit, I could provide that as well.

да, пока не слышал чтобы LLM могли и схемотехникой заниматься, сделал поиск нашел публикацию "LADAC: Large Language Model-driven Auto-Designer for Analog Circuits" (на английском) и попросил LLM рассказать о чём статья (на русском):

Hidden text

Исследование под названием "LADAC: автоматизированный дизайнер на базе больших языковых моделей для аналоговых схем" представлено командой авторов: Чэнджи Лю, Йицзян Лю, Юань Ду, Ли Ду. В работе рассматривается возможность использования больших языковых моделей (LLMs) для автоматизации проектирования аналоговых схем, что является новаторским подходом, поскольку большинство исследований в данной области сосредотачивались на цифровых схемах. Проект LADAC демонстрирует, как LLM может выступать в роли агента, принимающего решения на основе пользовательских требований и принципов проектирования аналоговых схем, и успешно применяется для проектирования двух типов усилителей с коэффициентом усиления более 80 дБ и кольцевого осциллятора с частотой колебаний 100 МГц.

Введение в статье подчеркивает значительный прогресс LLMs в решении различных задач благодаря их способности к логическому мышлению. Однако применение LLMs для дизайна аналоговых схем сталкивается с рядом проблем, связанных с особенностями аналоговых схем, такими как сложные взаимосвязи и необходимость итеративного подбора размеров транзисторов.

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

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

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

Спасибо за новость.

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

"Десять DIY проектов на базе различных глав книги "Искусство схемотехники" с указанием номеров глав, уровня сложности, а также перечнем необходимых компонентов для каждого проекта"

Hidden text

1. Простой аудио усилитель

• Главы: 2 "Биполярные транзисторы", 4 "Операционные усилители"

• Уровень сложности: Начинающий

• Компоненты: Биполярные транзисторы (напр., 2N2222A), операционные усилители (напр., LM358), резисторы, конденсаторы, питание, динамик.

2. Солнечное зарядное устройство для мобильных телефонов

• Главы: 9 "Стабилизация напряжения, преобразование энергии"

• Уровень сложности: Средний

• Компоненты: Солнечная панель, стабилизатор напряжения (напр., LM7805), диоды, аккумуляторы, USB разъем.

3. Цифровой термометр

• Главы: 5 "Прецизионные схемы", 1 "Основы электроники"

• Уровень сложности: Средний

• Компоненты: Цифровой датчик температуры (напр., DS18B20), микроконтроллер (напр., Arduino), OLED-дисплей, питание.

4. Ночник с автоматическим включением

• Главы: 2 "Биполярные транзисторы"

• Уровень сложности: Начинающий

• Компоненты: Фоторезистор, биполярный транзистор (напр., BC547), резисторы, светодиоды, питание.

5. USB MIDI контроллер

• Главы: 7 "Генераторы и таймеры", 8 "Малошумящая аппаратура"

• Уровень сложности: Продвинутый

• Компоненты: Микроконтроллер с USB (напр., Arduino Leonardo), кнопки, потенциометры, USB кабель.

6. Портативный металлоискатель

• Главы: 6 "Фильтры", 7 "Генераторы и таймеры"

• Уровень сложности: Средний

• Компоненты: Схема на основе LC генератора, катушка, транзисторы, питание.

7. Водонепроницаемый датчик влажности почвы

• Главы: 5 "Прецизионные схемы"

• Уровень сложности: Начинающий

• Компоненты: Микроконтроллер (напр., Arduino), датчик влажности почвы, OLED-дисплей, резисторы, питание.

8. Построение RGB LED контроллера

• Главы: 3 "Полевые транзисторы"

• Уровень сложности: Средний

• Компоненты: Микроконтроллер (напр., Arduino Nano), RGB LED, полевые транзисторы (напр., IRF530), резисторы, питание.

9. Электронный дартс

• Главы: 8 "Малошумящая аппаратура", 9 "Стабилизация напряжения, преобразование энергии"

• Уровень сложности: Продвинутый

• Компоненты: Микроконтроллер (напр., Raspberry Pi), датчики удара, LED для индикации, питание.

10. WiFi Управляемый автомобиль

• Главы: 7 "Генераторы и таймеры", 1 "Основы электроники"

• Уровень сложности: Продвинутый

• Компоненты: Микроконтроллер с WiFi (напр., ESP8266), двигатели DC, драйвер двигателя (напр., L298N), аккумулятор, шасси автомобиля.

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

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

Сократ: Платон, задумался ли ты когда-нибудь о том, кому принадлежат права на творения, созданные не человеком, а нейросетью?

Платон: В самом деле, Сократ, вопрос этот весьма загадочный и полный размышлений. Как можно определить правообладателя, когда дело касается инструмента, подобного нейросети? Сам инструмент, оператор, или же материнская компания?

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

Платон: Действительно, Сократ, и что если модель научена на произведениях одного автора и идеально копирует его стиль? Не касаются ли нас в этом случае права того автора?

Сократ: А как насчет Пола Маккартни и Битлов? Создание новой песни полным составом без их согласия кажется мне нарушением их прав. Как и поступок в отношении Скарлетт Йохансен, когда её образ использовали недопустимым образом с помощью нейросети.

Платон: Вот и вопрос о музыке для фильма, которую не можешь доказать своей, Сократ. Что делать, если возникают споры о правах на неё?

Сократ: И еще одна дилемма, Платон, как это всё работает в законах страны и мира? Чем руководствоваться?

Платон: Верно, Сократ. В нашем мире для использования в делах требуются исключительные права. Юрист Дима Гриц, в частности, умело ориентируется в этих темах, опираясь на советы, которые напоминают нам о непостоянстве и многозначности мира нашего.

Сократ: Понимаю, Платон. Значит, в вопросах, где нет ясности, мы стремимся к пониманию через диалог и осознание ограничений наших знаний.

Платон: Так точно, Сократ. Ибо истина зачастую скрывается за пеленой неопределенности, побуждая нас к бесконечным поискам и размышлениям.

(авторство не моё)

Здесь атмосфера выставки в Японии Экспо-70. Может со временем получится найти фотографии стенда «Просвещение», где и был выставлен Робот.
Про конструктор «Радиокубики» есть в воспоминаниях Вадима Мацкевича: глава Моя вторая жизнь

Как быстрее освоить элементы радиотехники и приступить к автоматике? И вот я на Чкаловской СЮТ придумал электронный конструктор — «радиокубики». Из них, например, радиоприемник [100] можно собрать не за 2–3 месяца, а за 2–3 минуты. Пользуясь «радиокубиками», мои мальчишки за короткое время проходили всю радиотехнику, собирая до 200 различных схем, и приступали к конструированию элементов электронной автоматики робота. Именно благодаря «радиокубикам» моим ученикам удалось создать того самого робота-гиганта, ставшего лучшим экспонатом советского павильона «Просвещение» на Всемирной выставке «Эксмо-70» в Японии.

О «кубиках» была статья в журнале «Моделист-конструктор»{4}. Меня пригласил президент Академии педагогических наук Столетов и предложил на основе «кубиков» создать учебные пособия из 12–15 кубиков для уроков труда школы и факультативов по физике. Главными условиями разработки были простота, эффективность и высокая доступность.

Я получил лабораторию в АПН и приступил к работе. Через год моей лаборатории удалось решить поставленную президентом задачу. Восемь заводов в СССР приступили к серийному производству «радиокубиков» для трудового обучения школьников электронике и факультативов по физике. Министерство просвещения СССР включило «кубик» в табели учебного оборудования школ. Для учителей труда школ в АПН я проводил семинары по изучению «кубиков» и методик работы с ними. Преподаватели труда по достоинству оценили новое пособие — «кубики» пошли в школы РСФСР. Один только Лианозовский завод в Москве в месяц выпускал не менее пятидесяти тысяч комплектов. Не без гордости скажу, что японцы приезжали в мою лабораторию, чтобы получить согласие на издание в Японии моей методики «Электроника в радиокубиках».
Спасибо за обзор. Мне тоже нравится Rust, полезно знать эту технологию, как инструмент для решения тех задач, где скриптовый язык (Ruby) будет нецелесообразен) Например, делал небольшой проект по парсингу больших файлов (десяток Гб), вполне понравился результат. Думаю Rust медленно, но верно набирает свой рынок. И лет через 5 все будут удивляться, как мы жили раньше без него)
Спасибо за статью, я сам сторонник TailwindCSS, планирую активно его использовать.

Думаю логично было добавить, что наряду с классическим применением CSS («Separation of Concerns» или «semantic») появилось новое направление — «CSS Utility Classes» (или «functional CSS», «Atomic CSS», «Utility-first CSS»).

И «functional CSS» — это просто другой подход, и в этой нише TailwindCSS конечно является самым популярным (список).

Надо понимать, что TailwindCSS это не проект-эксперимент, но это рабочий инструмент, который появился в результате многолетнего опыта по верстке.

По сути TailwindCSS — это продукт двух профессионалов своего дела — дизайнера (Steve Schoger) и верстальщика (Adam Wathan). И про них можно отдельно долго рассказывать — сколько сил они потратили для того, чтобы поделиться с людьми своим опытом (множество видео уроков) — как делать красивые и удобные сайты, и как делать верстку быстро и эффективно (этих красиво спроектированных сайтов).

Что же такое «Utility first», например в этой статье рассказано — critter.blog/2018/06/08/in-defense-of-functional-css

Так же вот статья от 2017 года, где разработчик Adam Wathan рассказывает про отличия — CSS Utility Classes and «Separation of Concerns»
если не сложно — вы могли бы привести ссылки на русскоязычные ресурсы по nodemcu, и есть ли там материалы для школьного обучения?
я кстати в отношении Arduino то же самое слышал… (и был не согласен)

мне кажется разные точки зрения — кого мы хотим получить — низкоуровневого программиста, или человека кто умеет алгоритмически мыслить, интересоваться программированием, и уметь создавать.

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

Микробит может по крайней мере заинтересовать в какой-то мере школьников этой областью, дальше они уже будут сами решать кем хотят быть. В этом плане Ардуино просто сложнее для школьной работы. Но ведь никто не исключает Ардуино (или сразу STM32) после Микробита.

Спасибо за информацию!

Интересуюсь направлением распределенных реестров, и реальные бизнес кейсы очень ценны, для понимания применимости технологии. Вы открыли новую грань)

Exonum не смотрели?

Спасибо за статью.
У меня был Радио86РК, самые теплые воспоминания о нем (ч/б телевизор Чайка), и так же позднее ZX Spectrum — тоже классные воспоминания (+маленькая отвёртка для магнитофона).
Elite forever)

Спасибо, хороший общий обзор, и за запись видео заранее спасибо!

Супер проект! Спасибо за рассказ

Спасибо, подождем)

Спасибо за рассказ, а можете уточнить с помощью каких технологических решений удалось достичь такого диапазона температуры? Если не секрет)
подогрев + вентиляция?

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

Или ещё круче — "переписать на новом крутом языке, что давно хотел попробовать", в этом случае риски увеличивается, но зато быстрое вхождение в новую тему)

Присоединюсь к комментариям, сам больше 10 лет занимался разработкой веб на win десктопе, но у меня всё веб работало в Vagrant VirtualBox Ubuntu — и это экономило уйму времени. После перешёл на Linux Mint (но виртуалка-ubunta для разработки осталась — позволяет единообразно держать окружение). Но в любом случае спасибо что поделились, возможно для кого-то это сэкономит время.

Спасибо за рассказ, "джедай" управление это круто)

1
23 ...

## Информация

В рейтинге
3 588-й
Откуда
Екатеринбург, Свердловская обл., Россия
Зарегистрирован
Активность