LINUX.ORG.RU

Вышел симулятор электронных схем Qucs-S 24.3.0

 , , ,


2

4

Qucs-S — программное средство для моделирования электронных схем. В качестве движка используется либо открытый Ngspice (для схем общего назначения), либо QucsatorRF (для анализа устройств СВЧ). 23 июля этого года состоялся очередной релиз программы.

Главные новшества релиза 24.3.0:

  • Сборка бинарных пакетов для всех платформ переведена на Qt6
  • Упрощена процедура импорта сторонних SPICE моделей подсхем, для чего переделан специальный компонент SPICE Library Device (см. скриншот) и добавлен диалог задания символа УГО и назначения выводов. Добавлены шаблоны символов УГО. Ранее для этой процедуры требовалось создавать подсхему.
  • Упрощён импорт SPICE моделей для дискретных компонентов. Теперь можно импортировать модель прямо из диалога свойств компонента через кнопку Fill from SPICE model.
  • Проведён рефакторинг движка рендеринга схем и диаграмм, чтобы улучшить рендеринг на HiDPI мониторах.
  • Обновлены инструменты для синтеза аттенюаторов и пассивных фильтров
  • Добавлены новые библиотеки компонентов: ШИМ-контроллеры, ИМС смесителей, германиевые диоды.
  • Движок QucsatorRF обновлён до версии 1.0.1, изменения в основном касаются конвертера форматов файлов

С полным списком улучшений и исправлений багов можно ознакомиться на странице релиза.

>>> Страница релиза

★★★★

Проверено: Zhbert ()
Последнее исправление: hobbit (всего исправлений: 2)

Диалог открытия файлов примеров наконец по-человечески запилили, за что отдельное спасибо.

forth32
()

Не понял как добавить компонент в библиотеку.

Вот у меня есть файл ad8056.cir, что дальше?

futurama ★★★★★
()
Ответ на: комментарий от futurama

Поместить на схему компонент «SpiceLibraryDevice», в свойствах указать путь к файлу ad8056.cir Выбрать подсхему, выбрать шаблон символа, если какой-то готовый подходит, назначить выводы через таблицу. Если ни один символ не подходит, то нарисовать свой sym файл и указать в свойствах. Подробнее см. руководство раздел 8.2 https://ra3xdh.github.io/pdf/qucs_s_tutorial.pdf

Ну и ещё нужно чтобы модель была совместима с Ngspice. Некоторые расширения LTSpice не поддерживаются. Разработчики Ngspice работают над этим.

DarthVadimius ★★★★
() автор топика
Последнее исправление: DarthVadimius (всего исправлений: 1)
Ответ на: комментарий от DarthVadimius

Вот эти модели, просто интересно, они содержат только какие то параметрические значения, или могут содержать некоторый скрипт/код? Например, хочу описать компонент, который выдает пилу, но 1 секунду работает а вторую секунду выключается, и так до бесконечности. Позволяют ли такие форматы описывать нечто подобное?

I-Love-Microsoft ★★★★★
()
Ответ на: комментарий от I-Love-Microsoft

Да, такое можно сделать. Нужен источник PWL (piecewise linear) source. Там можно в табличном виде задать зависимость от времени.

DarthVadimius ★★★★
() автор топика
Ответ на: комментарий от I-Love-Microsoft

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

DarthVadimius ★★★★
() автор топика
Ответ на: комментарий от DarthVadimius

Тогда пожелание - сделать в этой программе, если есть связь с авторами, добавить функцию модулей на Python (и еще чем то помимо Python, например Lua). Было бы очень круто в итоге, моделировать с учетом цифровой логики и сложного управления

И вопрос - есть ли модель LVDS выхода ПЛИС или MGT выхода ПЛИС? Обычно такие модели бывают, чтобы тестировать аналоговую обвязку быстрых схем, избегая собственно самой ПЛИС

Однако, будь там еще скрипт на Python, то можно было бы задавать некоторую умную логику управления этим пином для какого то стандарта, например моделируем MIPI CSI-2 и вот видим как наши уровни прыгают и и какая форма импульсов, проверяем разброс компонентов и так далее

I-Love-Microsoft ★★★★★
()
Ответ на: комментарий от no-such-file

Вкорячить Python в программу на Qt - такое даже я несколько раз делал. Впрочем, нужны были формулы динамические в программе, я и JS делал, без знания JS но математическую формулу было не трудно осилить

I-Love-Microsoft ★★★★★
()
Ответ на: комментарий от I-Love-Microsoft

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

no-such-file ★★★★★
()
Ответ на: комментарий от I-Love-Microsoft

Как работают симуляторы

Это не совсем симулятор. Это морда для симулятора.

no-such-file ★★★★★
()
Ответ на: комментарий от I-Love-Microsoft

Велосипед уже изобрели, даже два:

Оба будут работать и в NGSpice и в индустриальном симуляторе за мегабаксы.

Первый можно попробовать завернуть в питон.

vaxxabait
()
Ответ на: комментарий от I-Love-Microsoft

Тогда пожелание - сделать в этой программе, если есть связь с авторами

Я сам и есть автор. Запрос на поддержку Python уже есть: https://github.com/ra3xdh/qucs_s/discussions/849 Но с несколько другой целью. В PDK для микроэлектроники есть параметрические ячейки которые пересчитываются через callback на Python. Нужно реализовать их поддержку. Когда оно будет реализовано не могу сказать, так как пока не очень представляю с какой стороны здесь подступиться. К тому же это похоже задачка для программиста на фуллтайме. У меня разработка Qucs-S это не основное занятие. Но если кто-то сделает такой патч, то я его приму.

Было бы очень круто в итоге, моделировать с учетом цифровой логики и сложного управления

Здесь следует начать с того, чтобы реализовать цифроаналоговое моделирование (поддержку VHDL/Verilog моделей) на уровне Ngspice. Около 2015 года они начали что-то делать, но потом всё заглохло.

И вопрос - есть ли модель LVDS выхода ПЛИС или MGT выхода ПЛИС?

Такого не встречал, но думаю, что оно в природе существует. Поддерживается ли оно Ngspice – неизвестно. Если там IBIS модель или цифровой Verilog, то оно работать не будет.

Однако, будь там еще скрипт на Python, то можно было бы задавать некоторую умную логику управления этим пином

Здесь возможно тоже нужен не Python, а поддержка цифроаналогового моделирования, чтобы компонент на Verilog/VHDL можно было встраивать в нетлист Ngspice.

DarthVadimius ★★★★
() автор топика
Ответ на: комментарий от vaxxabait

Использовать с общим IBIS_DRIVER/IBIS_DEVICE. Пример - https://forum.kicad.info/t/more-simulation-examples-for-kicad-eeschema-ngspice/45546

Надо изучить и реализовать себе. Оказывается Ngspice в каком-то виде поддерживает IBIS.

DarthVadimius ★★★★
() автор топика
Ответ на: комментарий от vaxxabait

XSPICE - модели на С

Да, через Ngspice делали поддержку цифрового Verilog/VHDL внутри Ngspice. Но потом этот проект заглох.

DarthVadimius ★★★★
() автор топика
Ответ на: комментарий от DarthVadimius

IBIS - это ведь просто список значений стандартизованных параметров. IBIS_DRIVER - параметризованная SPICE схема типового буфера, ну или Xspice модель. Точность первого подхода под вопросом, зато, как я понимаю, вся поддержка - распарсить .ibs и применить к .subckt

vaxxabait
()
Последнее исправление: vaxxabait (всего исправлений: 1)
Ответ на: комментарий от DarthVadimius

А как насчёт Verilog-A ? https://ngspice.sourceforge.io/osdi.html

Ну и Xspice было бы хорошо.

  • Специальный компонент в библиотеке Qucs-S ?
  • Кастомный диалог настройки параметров, куда можно вставить код ?
  • Автоматический вызов компилятора ?
  • Создание символа с нужным количеством ножек ?

Просто идеи.

vaxxabait
()
Последнее исправление: vaxxabait (всего исправлений: 2)
Ответ на: комментарий от DarthVadimius

Здесь возможно тоже нужен не Python

Все равно всю полноту Verilog реализовать не удастся и не удастся подключить все IP ядра для такого моделирования, и работать будет очень медленно как и все симуляторы HDL. А так хотя бы на Python можно очень сложную логику реализовать или там чтение из файла данных на ЦАП-АЦП и работать быстро будет

I-Love-Microsoft ★★★★★
()
Ответ на: комментарий от vaxxabait

Verilog-A через Ngspice+OpenVAF поддерживается. Есть два способа: старый через JSON файлы: https://mos-ak.org/venice_2014/publications/T_4_Brinson_MOS-AK_Venice_2014.pdf и новый через SpiceGenericDevice: https://github.com/ra3xdh/qucs_s/issues/411 Новый способ предпочтительнее. Технически можно сделать специальный файловый компонент для Verilog-A как для SpiceNetlist. Но это нужно только 1.5 академическим исследователям и сейчас у меня контакты и совместные публикации с европейскими коллегами, которые запрашивали эту фичу прекратились. Поэтому в планах на ближайшее будущее такая задача не стоит.

DarthVadimius ★★★★
() автор топика

Виндовый EWB, например, не может в простейший мультивибратор. В железе собираешь - генерит меандр, рисуешь схему на компе - не делает ничего. Этот может?

yu-boot ★★★★★
()
Последнее исправление: yu-boot (всего исправлений: 1)
Ответ на: комментарий от I-Love-Microsoft

WAT ? (картинка с бабкой)

Почему не удастся ? Вот тут прикручивали verilator.

Можно сделать настолько полноценную, насколько полноценен симулятор.

Медленно ?

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

К примеру - вот это в десятки раз сливает нативному (SystemVerilog) UVM в промышленном симуляторе.

vaxxabait
()
Ответ на: комментарий от vaxxabait

Ну и Xspice было бы хорошо.

Оно было реализовано, но в недавних версиях я этот компонент выпилил. В новых версиях Ngspice более не работает сборка XSPICE компонентов вне дерева исходников программы. По крайней мере с репозиорными версиями Ngspice я ничего не смог запустить. Оно просит какие-то заголовки из недр Ngspice и не работает out-of-tree. Что там было см. тут: https://mos-ak.org/lausanne_2017/presentations/T03_Kuznetsov_MOS-AK_DATE_2017.pdf Опять же фича была востребована только для среди 1.5 академических пользователей.

DarthVadimius ★★★★
() автор топика
Ответ на: комментарий от yu-boot

Это общая болезнь всех SPICE симуляторов. Там движок происходит от общего предка. Некоторым генераторам требуется запуск через указание начальных условий. В Qucs-S+Ngspice вроде бы мультивибратор запускали.

DarthVadimius ★★★★
() автор топика
Ответ на: комментарий от DarthVadimius

Интересное. Просто как-то удивляет, что оно корректно моделирует самые разные схемы, но ломается именно на этой. Транзюки «реальные» выбирал, с паразитными R-C-L.

yu-boot ★★★★★
()

А я правильно помню что он с цифровыми не работает?

Всё никак не соберусь попробовать

pihter ★★★★★
()
Ответ на: комментарий от pihter

Да, всё верно. Чисто аналоговых схем давно нет. Хотя, может, даже такой симулятор будет очень полезен просто посимулировать переходные процессы в обвязке и импульсные характеристики и прочее

I-Love-Microsoft ★★★★★
()
Ответ на: комментарий от pihter

Про цифровые схемы см. руководство раздел 6: https://ra3xdh.github.io/pdf/qucs_s_tutorial.pdf Имеются два режима. Некоторые компоненты имеют модели для аналогового режима, а некоторые доступны только при чисто цифровом моделировании при помощи GHDL/iVerilog

DarthVadimius ★★★★
() автор топика
Ответ на: комментарий от yu-boot

Оригинальный Qucs кстати не ломался и успешно запускал схемы как мультивибраторов, так и сверхрегенераторных приемников.

Но там был не SPICE, и с моделями под него были свои заморочки.

timdorohin ★★★★
()
Ответ на: комментарий от timdorohin

сверхрегенераторных приемников.

а антенну с наушниками куда подключать?

Alphaer ★★
()
Последнее исправление: Alphaer (всего исправлений: 1)
Ответ на: комментарий от DarthVadimius

Интересно конечно, но честно говоря обычный интерфейс классических HDL симуляторов - удобнее

Mixing digital and analog devices (like RCL) in one circuit is not supported!

Жаль нельзя как то синхронизировать эти два движка, чтобы они общались через некоторые точки перехода pure-analog в pure-digital и наоборот

Живая ПЛИС она тоже работает через конечные pad-ы, это ее как бы тоннель в аналоговый мир

I-Love-Microsoft ★★★★★
()
Последнее исправление: I-Love-Microsoft (всего исправлений: 1)
Ответ на: комментарий от DarthVadimius

Ввиду отсутствия смешанного режима (читай iverilog/verilator/whatever, прикрученного к ngspice) вот тут предлагают следующее извращение (даже не костыль !) - через Yosys синтезировать наш Verilog в нетлист стандартных ячеек (которые есть в ngspice) и гонять прямо его.

Gate-level simulation для бедных без экстракции задержек из паразитных ёмкостей. Но:

  • вот оно будет ТОРМОЗИТЬ
  • никакого вам тестбенча
  • удачи с отладкой
vaxxabait
()
Ответ на: комментарий от timdorohin

Старый движок Qucsator можно выбрать в настройках программы. Он содержит некоторые уникальные модели микрополосковых линий, которые реализовать на SPICE проблематично. В движке Qucsator были проблемы с моделированием при импульсных сигналов, так что схема на 3 транзисторах могла зависнуть. Но запуск генераторов там рассчитывался по-другому, чем в SPICE.

DarthVadimius ★★★★
() автор топика
Ответ на: комментарий от I-Love-Microsoft

Примерно так оно и работает. Вот чьи-то, похоже, работоспособные попытки для ngspice+verilator -https://sourceforge.net/p/ngspice/ngspice/ci/master/tree/examples/xspice/verilator/.

Как всегда - patches are welcome, всё зависит только от тебя :)

vaxxabait
()
Ответ на: комментарий от vaxxabait

Оказывается они всё-таки доделали цифроаналоговое моделирование. И оно уже доступно в актуальном релизе через компонент d_cosim Теперь нужно будет это реализовать со стороны Qucs-S.

DarthVadimius ★★★★
() автор топика
Ответ на: комментарий от I-Love-Microsoft

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

Классический пример - как из ПЛИС сделать (не совсем ожиданно) аналоговое радио: Hackaday, оригинал.

vaxxabait
()
Ответ на: комментарий от DarthVadimius

Прости, что подкинул работки - токмо по незнанию !

Интересно, что с VHDL (хоть оно и труп). Verilator его не умел, но вот тут пишут, что прикрутили через вызов NVC как VHDL компилятора.

Да, Verilator умел ещё к SystemC цепляться - тоже надо в роадмэп :)

vaxxabait
()
Последнее исправление: vaxxabait (всего исправлений: 1)
Ответ на: комментарий от DarthVadimius

О, а ещё вот что удумали - d_process

Пишем нашу цифровую симуляцию на чём хотим от питона до, не приведи Господь, жаваскрипта.

Кидаемся через два пайпа списками изменений входов и выходов туда-сюда - PROFIT !!!

@I-Love-Microsoft, вот твой питон, упакован и готов к употреблению.

vaxxabait
()
Ответ на: комментарий от vaxxabait

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

pfg ★★★★★
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.