Pull to refresh

Comments 45

Выглядит очень неплохо! Напомните, какие есть ещё подобные свободные программы для сравнения?
kicad*.
Она даже чуть более функциональной будет, но и сама по себе сложнее в понимании, имхо.
KiCAD не моделирует режимы работы схемы. Он нужен, чтобы делать из схем печатные платы. Вот если бы схемы KiCAD можно было сразу моделировать в Qucs, было бы очень и очень круто.
Формат списка цепей у них совместим. Оба пакета понимают Spice.
А подробности, пожалуйста? Допустим есть схема KiCAD, для каждого элемента схемы есть модель (например, Spice). Какие манипуляции позволяют моделировать упомянутую схему?..
В идеале, из KiCad (eeschema) экспортируем список цепей в формате spice и передаем в эмулятор.
Так как spice — текстовый формат, в случае нестыковок можно попытаться огрехи импорта/экспорта исправить.
Чтобы точно проверить эту идею, нужно провести эксперимент.
Спасибо. Есть такая опция. В Кикад, оказывается, даже есть кнопка «запустить симулятор» во вкладке сохранения списка цепей в формате Спайс. Надо будет погуглить и потестить.
KiCAD не имеет встроенных средств визуализации результатов моделирования, а у Ngspice — графический интерфейс для этих целей очень и очень примитивен.

Я считаю, что объединять симулятор и разводчик ПП в одну программу не следует. Иначе получится монстр наподобие Multisim, который ни для того ни для другого не годится.
Правильней было бы схему из эмулятора портировать в КiCAD для дальнейшей разводки, а не наоборот…
Схемы из KiCAD как правило предназначены для разводки ПП. Они содержат много элементов, моделей которых нет (например микроконтроллеры, разные сложные микросхемы и т.п.). Для моделирования схему как правило разбивают на мелкие функциональные узлы, иначе схема целиком будет моделироваться очень долго. Как уже здесь ответили, из KiCAD можно если схема простая заэкспортировать spice-netlist и промоделировать его.
Согласен. Объединять симулятор и разводчик ПП точно не надо. Наверное, было бы все-таки удобно уметь экспортировать в Qucs из разводчика функциональные блоки или просто выделенный мышкой участок схемы (не плохая идея), а не всю схему, но это уже пожелания к KiCAD.
Как ниже уже ответили, KiCAD и Qucs выполняют разные функции. KiCAD — это САПР для проектирования ПП, она схему не моделирует. А Qucs — симулятор схем, печатную плату в нём развести нельзя.
Из свободных open-source моделировщиков:
Ngspice — консольный симулятор, как следует из названия spice-совместимый.
Xyce — новейший spice-совместимый консольный симулятор, поддерживает параллельные вычисления. Вышел в 2014 году.
Gnucap — консольный spice-симулятор. Проект по-видимому скончался.

Мы работаем над тем, чтобы использовать Qucs в качестве фронтенда для Ngspice и Xyce.

Симуляторы только цифровых схем: KSimus, KTechLab (оба живые), TkGate (проект неактивен), все с графическим интерфейсом.

Всё вышеперечисленное доступно для Linux.

Ещё стоит упомянуть про форк проекта Qucs — он называется QucsStudio и разрабатывается бывшим лидером проекта Qucs. Распространяется свободно с частично закрытым кодом. Он работает только под Windows, до сих пор использует Qt3. Собственно движок моделирования имеет закрытый код, а GUI открытый код.

Из полностью закрытых бесплатных симуляторов:
LTSpiceIV Работает только под Windows, для Linux заявлена wine-совместимость
Демо-версия (с урезанным функционалом и библиотекой) MicroCAP.
Возможно ли полностью внешнее управление моделированием схемы? Т.е. файл задан, я хочу извне изменить параметр элемента, промоделировать схему и получить svg картинки на выходе? Имеется в виду файл сценария какой-нибудь.
Ну тут проще любой spice-симулятор использовать.
Я в студенческие годы ngspice использовал.
Параметризовал то что нужно, а потом перебираешь. А ещё там есть встроенный скриптовый язык.
Честно говоря — новая тема для меня, но интересная.

Вот есть такая информация: A Tutorial Qucs Simulation of SPICE Netlists [pdf]

This tutorial note describes how SPICE netlists can be simulated using Qucs. The
text is much more than a basic outline of the processes needed to link SPICE circuit
files to Qucs.

То есть на вход Qucs можно подавать SPICE netlists.
Кстати для публикации схем в документацию удобная возможность может быть, отсюда: github.com/Qucs/qucs/issues/32

qucs -p -i schematic.sch -o printout.[png, svg, pdf, eps]
Данная возможность ожидается в следующем релизе Qucs.
У Qucs симулятор выполнен в виде отдельной программы qucsator. Её можно запускать с командной строки, передав в качестве параметра netlist. А netlist можно генерировать при помощи скрипта и подставлять туда нужные параметры. Потом данный моделирования можно обработать gnuplot'ом и получить svg.

Qucstaor выдаёт результаты моделирования в виде XML. Преобразовать его в CSV можно при помощи утилиты qucsconv, которая тоже запускается с командной строки.
А можно немного подробностей про Verilog?
Сам я Verilog никогда не использовал, поэтому дам только общую информацию.

Для цифровых схем есть файловый компонент «Устройство Verilog». Ему надо дать исходный текст Verilog и он создаёт нужный компонент.

Для аналоговых схем можно вкомпилировать компонент Verilog прямо в Qucs при помщи генератора моделей ADMS. Для этого есть руководство здесь
Смотрю очень хорошая программа. Скажите а вот как она в сравнении с gEDA?
Несмотря на внешнее сходство Qucs и gEDA выполняют разные задачи. При помощи gEDA разрабатывают печатную плату, схему она смоделировать не может. А Qucs — это моделировщик электронных схем, для разработки печатной платы он не предназначен. Сравнивать их сложно. Единственная похожая функция — это только то, что из gEDA можно заэкспортировать spice-netlist и смоделировать его в Ngspice.
Рад, что Qucs вызвал интерес. Нужно в дальнейшем мне информировать хабрасообщество о ходе разработки Qucs и о новых функциях в нём?
Конечно нужно! Программа очень хорошая для тех кто работает с электроникой (ну или как я, изучает).
Поддерживаются ли BSIM4 Level 54 модели? Возможно ли загрузить параметры автоматически (Если есть SPICE файл от фабрики )?
BSIM4 модели есть. Они находятся в группе Компоненты->Устройства Verilog. Что понимается под файлом «SPICE от фабрики». Если есть библиотека SPICE, то её можно сконвертировать в библиотеку Qucs при помощи утилиты qucsconv.
Файл не совсем обычный. Нужно вырезать из него то что относится к модели транзистора ( .MODEL и то что идёт за ним ) и сохранить отдельно как библиотеку spice, затем при помощи qucsconv сконвертировать её в библиотеку Qucs. Оттуда можно вставить транзистор.
Попробовал, генерирует файл где всё закомментировано
# .MODEL:CMOSP PMOS (LEVEL=54 VERSION=4.3…

В GUI (Components -> Verilog-A), если выбрать bsim4v30 компонент можно задать все параметры вручную (Edit->Properties). Не слишком удобно, хотя один раз на проект можно сделать.

Как мне видится использование формата netlist'а отличного от SPICE вредная идея, т.к. большинство других симуляторов SPICE поддерживают.

Например в LTSPICE (Бесплатном, но закрытом) можно добавить свои SPICE команды при необходимости.
В qucsconv могли не добавить поддержку BSIM. Нужно будет посмотреть исходник на этот счёт.
Относительно совместимости нетлиста здесь нужно читать работы основателей проекта, чем они мотивировали разработку своего собственного формата. Согласен, что идея была не очень хорошая. Все остальные свободные симуляторы имеют SPICE-совместимый нетлист. Мы сейчас работает над тем, чтобы подключать к Qucs spice-совместимые симуляторы (ожидается примерно через релиз). В том числе будет компонент, который будет передавать ядру пользовательские spice-параметры.
Правильная идея, например у ngspice нет нормального gui, но как симулятор он вполне хорош.
Текущее состояние поддержки в Qucs ngspice и Xyce можно посмотреть здесь:

github.com/Qucs/qucs/issues/181
github.com/Qucs/qucs/issues/77

Пока работают только базовые симуляции и очень мало компонентов.

Есть нестабильная ветка github.com/ra3xdh/qucs/tree/spice4qucs. Требуется пересобрать только GUI. Использовать на свой страх и риск.
Поддерживается ли сборка CMake'ом под Windows? Попробовал собрать — пока не получилось.

Когда планируете переход с Qt4 на Qt5?
CMake под Windows должен собирать. Возможно связано что-то с этими багами github.com/Qucs/qucs/issues/171. Подробнее не подскажу, т.к. Windows у меня нет.

Переход на Qt5 планируется примерно через год. До конца года мы должны закончить портирование на Qt4 (сейчас собирается через Qt3Support )
Существуют ли где-нибудь инструкции по сборке под windows?

Сколько человек сейчас активно работают над проектом?
Инструкция для сборки под Windows есть здесь github.com/Qucs/qucs/wiki/Build-Windows.

Сейчас над проектом работают не менее 6 человек. В основном специалисты по GUI. Собственно ядром моделирования занимаются 2 человека.
А цифровое моделирование не планируется?

Уж очень «вкусно» всё выглядит, и хочется чего-то, подобного Протеусу, с его симуляцией микроконтроллеров и логическими анализаторами…
Цифровые компоненты есть и модель в виде файла verilog можно подключить. Simulavr еще привинтить бы…
«Фишка» протеуса в том, что не надо разбираться с verilog, а можно взять .hex/.elf от «реального» чипа и посмотреть, что выйдет. Не говоря уж про всякие индикаторы и анализаторы протоколов. (ещё б он под вайном не через раз работал...)

Но, в целом, надо пробовать )
Цифровое моделирование МК не планируется. Сейчас можно использовать VHDL/Verilog, если нужно подключать сложные цифровые ИС. Простые логические элемены/триггеры/регистры тоже реализованы. Зато планируем добавить через несколько релизов цифроаналоговое моделирование (ЦАП/АЦП, цифровые схемы в аналоговом включении).

По поводу добавление симуляции МК… Данную функцию добавить у нас неоднократно просили. Трудоёмкость создания интерактивного симулятора, подобного Proteus большая, а нужность и полезность — сомнительная.

Целиком полагаться на симулятор при отладке устройства на МК — очень вредная идея. Взять и смоделировать схему с МК целиком можно далеко не всегда. По опыту работы с Proteus, он корректно симулирует только AVR. Уже для PIC-контроллеров я искал у себя в программе несуществующие баги, так как симулятор неправильно неправильно смоделировал прошивку. Есть жалобы на некорректную реализацию MSP430.

Протеус имел смысл, когда МК прошивали самодельным программатором от LPT-порта, а профессиональные программаторы были недоступны. Сейчас внутрисхемные отладчики и простое контрольное оборудование доступны даже студентам, отладочные платы для любых МК тоже продаются в огромных количествах, так что все действия, которые выполняются при помощи Протеуса можно выполнить при помощи современных отладочных комплектов.

Вобщем, я считаю, что с МК лучше работать в железе на отладочное плате, а не в симуляторе.
Sign up to leave a comment.

Articles