LINUX.ORG.RU

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

 , , ,


2

3

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)
Ответ на: комментарий от 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 ★★★★
() автор топика
Ответ на: комментарий от 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 ★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.