LINUX.ORG.RU

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

 , , ,

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

7

4

Сегодня, 19 января вышел очередной релиз Qucs-S-0.0.22. Qucs-S является форком проекта Qucs и в отличие от оригинала позволяет использовать не только встроенный движок моделирования, но и внешние Ngspice и XYCE. Это позволяет использовать готовые SPICE-модели электронных компонентов минуя слои совместимости и достичь лучшей скорости и стабильности симулятора. Проект написан на C++ с использованием набора библиотек Qt4.

Список изменений:

  • Добавлен компонент SPICEINIT, который позволяет задавать дополнительные настройки для Ngspice;
  • Исправлены баги;

Подробности и ссылки на пакеты для Debian, Ubuntu и CentOS есть на странице релиза.

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

★★★★

Проверено: anonymous_incognito ()
Последнее исправление: DarthVadimius (всего исправлений: 3)

Ответ на: комментарий от sena

Эту поделку он тоже не собирает, конечно же. Нормальный софт он бы поставил из репозитория, но у поделки которую за сколько-там-лет не дошли руки переписать с Qt3 там оказаться шансов нет.

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

Почему катушки на схеме квадратные?

Эту библиотеку рисовал у нас английский профессор. Поэтому это не русские катушки.

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

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

Где-то в материалах офлайн курсов была пара страниц про совмещение аналога и event-based. Как они проводят синхронизацию путем ревертирования времени в аналоговой части.

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

у поделки которую за сколько-там-лет не дошли руки переписать с Qt3 там оказаться шансов нет

Но почему? Если компилируется, собирается… В репозитории Дебиана даже motif лежит.

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

Почему? «Четвёрку» уже отовсюду выкидывают.

Шашечки или ехать? Появятся ресурсы - портируют. Не всегда переход с Qt4 на Qt5 это легкая правка .pro/CMakeLists.txt и замена Qt::WFlags на Qt::WindowFlags с повсеместным выкидыванием qSort() и drop-in-place заменой на std::sort() ;-)

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

SimulIDE мне понравился, хотя я вообще не шарю в моделировании микроконтроллеров.

Жаль что разработка там идёт полузакрытом режиме, как это делал QCAD лет десять назад.

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

Я прихожу к выводу, что OpenSource проектам нужен авторитарный лидер.

Ох… Помню был такой опенсорц проект: освоение космоса. Один авторитарный лидер занимался хищением разработчиков в своем же дворе, которых заганял потом в шарашки и переодически избивал. Еффективность, конечно, повышалась в разы.

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

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

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

anonymous
()

Я только интересуюсь этой темой. У меня есть вопрос, на который, может быть, кто-нибудь квалифицированно ответит. Это на тему дискретных цифровых схем, правда, не аналоговых.

Если я правильно понимаю, то модель по описанию Verilog / VHDL перед симуляцией timing превращается в дискретно-событийную модель, которая и обсчитывается.

Вопрос. Конвертация модели Verilog / VHDL сильно же зависит от технологии синтеза? То есть, выбираем одну технологическую базу - будет одна дискретно-событийная модель. Выбираем другой способ синтеза - может быть совсем другая модель.

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

Другими словами, без синтеза схемы сам симулятор вещь довольно бесполезная?

Я все правильно понимаю, или не так все категорично? Просветите, пожалуйста!

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

При проектировании ASIC’ов сначала создают описание модели, которое будет может быть синтезируемое или не быть таковым, но в любом случае без точных задержек. Задержки есть, но их мало и они связаны с алгоритмами, а не с реализацией. Все это тестируется на куче тестов для проверки соответствия ТЗ.

Потом добавляют всякие ограничения (constraints), которые описывают какие сигналы должны быть выровнены по времени и как. На основании всего этого синтезатор создаёт схему из логических ячеек, имеющихся в библиотеке. Эта схема с задержками для каждого элемента, но всё равно описана на HDL языках. Ещё раз тестируется. Можно сконвертировать такое описание в схему на транзисторах, но делается это редко, т.к. цифровые схемы и так довольно таки предсказуемо работают и хорошо описываются моделями. Транзисторную схему можно моделировать в аналоговом симуляторе.

Потом схему на HDL можно (и нужно) превратить в топологию. Если очень хочется можно произвести экстракцию из топологии и получить схему с паразитными элементами. Это тоже можно промоделировать, но не знаю делают ли такое для больших чипов, т.к. очень уж затратно по времени. Опять же моделируется в аналоговом симуляторе.

Отвечая на твой вопрос. Цифровой симулятор для цифровых схем можно использовать и без синтезатора. Аналоговый симулятор для моделирования цифровых схем без синтезатора бесполезен. Да и с ним мало нужен.

Вот смешанное моделирование это уже интереснее. Т.к. самокалибровка аналоговых блоков (являющимися схемами) часто делается при помощи цифровых модулей (написанных на HDL) и тут нужны силы обоих типов симуляторов.

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

Эту библиотеку рисовал у нас английский профессор. Поэтому это не русские катушки.

Так и по западным стандартам катушки не квадратные. Любой datasheet по чип-дросселям в пример. Профессор явно схалтурил, ведь рисовать квадратное сильно проще, чем нормальное обозначение

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

http://www.farnell.com/datasheets/5169.pdf Где тут квадратные дроссели (катушки индуктивности0 ? Халтурщик ваш английский профессор. И русские катушки тут не причем

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

А при описании HDL в цифровых схемам явные задержки используются? (что-то я такое видел) Блокировки (по ресурсам / приборам / многоканальным устройствам) имеют смысл при описании аппаратуры, или это уже уровнем выше будет, а в моделях HDL кроме реакции на сигналы и обычных задержек по времени ничего больше и нет?

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

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

Просто мне эта тема очень интересна, но я только в процессе изучения принципов построения схем и в процессе изучения того же Verilog.

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

Я больше по аналоговой части, если что.

А при описании HDL в цифровых схемам явные задержки используются? Ты про задержки поставленные разработчиком, не связанные с особенностями синтеза? Да, так можно и иногда нужно. Если просто задержка, то она будет синтезирована в последовательность буферов. Каждый буфер пропускает сигнал без изменений, но добавляет задержку. Так например задержка в 2нс будет представлена 3-мя последовательными буферами (все цифры взяты для примера). Но это плохой метод, т.к. для больших задержек много места занимает, жрёт много тока и обладает малой точностью. Лучше такты отсчитывать, если есть такая возможность.

Блокировки (по ресурсам / приборам / многоканальным устройствам) имеют смысл при описании аппаратуры, или это уже уровнем выше будет, а в моделях HDL кроме реакции на сигналы и обычных задержек по времени ничего больше и нет? Это уже уровень драйверов, мне кажется, так что выше. Разве что блокировка по областям памяти для процессоров, но это просто реализация какой-нибудь инструкции или блока их выполнения. Это можно и на HDL описать.

Получается, здесь имеет смысл даже моделирование без учета тех временных задержек, которые возникают из особенностей самого синтеза? Имеет смысл моделирование собственно логики схемы по входному Verilog без этих деталей? На начальных этапах проектирования, когда нужно просто отработать алгоритмы и основные связи между модулями, то пишется поведенческая модель, которая может даже и не синтезируема, т.к. использует высокоуровневые конструкции. Зато эта модель функционально (без учёта задержек, вызванных реализацией) аналогична тому, что должно получиться в итоге. Так что да, конечно, моделирование без учёта задержек тоже имеет смысл.

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

Имеет смысл моделирование собственно логики схемы по входному Verilog без этих деталей? Если есть какие-то тестовые последовательности и известно какой на них должен быть ответ, то можно обойтись и без деталей, лишь бы результат был такой же. Если всё нормально, то выбранный путь верен и можно продолжать разработку. После синтеза, правда, всё равно лучше перепроверить, а то там может много всякой фигни вылезти.

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

Обосрался с разметкой. Стыдоба то какая.

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

Тогда еще вопрос. А насколько актуальны задачи больших размерностей? Часто ли бывает, что имитационная модель по Verilog умещается в памяти одного компьютера? Или бывает, что нужен кластер? Для определенности возьмем нашу страну, западные и Китай (вроде бы никого не забыл - ну, да, еще Япония и Южная Корея).

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

Я прихожу к выводу, что OpenSource проектам нужен авторитарный лидер.

Как минимум — костяк команды, способный договориться между собой.

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

Ну отлично же :) Я считаю — пусть разработчик будет в первую очередь сыт и одет.

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

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

Думаю для добротного тестирования Эльбруса, Байкала или даже Мультиклета нужны довольно мощные сервера, но о размерах не могу судить.

Память там вроде как не является ограничивающим фактором. Вычислительные мощности нужны скорее нужны, чтобы моделирование не затянулось на недели. Так что одному ПК будет грустно, но тем не менее реально посчитать крупную модель в не очень большом тесте. Кстати, сейчас движутся в направлении выноса вычислений на видеокарту и иногда даже ПЛИС.

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

Спасибо за информативное общение!

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

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

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

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

Тогда еще вопрос. А насколько актуальны задачи больших размерностей? Часто ли бывает, что имитационная модель по Verilog умещается в памяти одного компьютера? Или бывает, что нужен кластер?

Очень актуальны. Фирмы держат большие фермы для распараллеливания симуляций. Но в последнее время наметилось миграция в облака. Еще для реально больших чипов используют эмуляторы (специальное железо с FPGA внутри) - Cadence Palladium, Synopsys Zebu etc

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

Компилируется, собирается, работает, пользователи довольны. Какие могут быть ещё критерии??? Мне кажется ты преувеличиваешь…

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

ПЛИС действительно применяют, как уже писал другой аноним у кеденса есть аппаратно-программаная платформа для этого. Правда, когда мы её тестировали, то с наскоку получили даже меньшую производительность, чем на основном сервере, там нужно настраивать качественно.

Что ты имеешь в виду под допусками на моделирование при использовании ПЛИС?

А GPU так и вообще мало отличаются от CPU в плане работы, разве что ядер заметно побольше, что и эксплуатируется во всяких расчётных программах. Но может я не знаю чего-то о них.

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

Что ты имеешь в виду под допусками на моделирование при использовании ПЛИС?

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

dave ★★★★★
()

Раз уж тут про электронику, вопрос к тем кто в теме. А где есть надёжный источник проверенных моделей компонентов, например транзисторов? Для ngspice и этого симулятора?

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

Надёжный источник моделей - только сайт производителя компонентов. Нужно искать там модель и интегрировать в симулятор. Кое-что есть в библиотеках LTspice, которые незашифрованы. Модели дискретных компонентов Qucs поддерживает напрямую через Drag’n’Drop, для ИМС нужно добавлять УГО вручную.

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

А при описании HDL в цифровых схемам явные задержки используются?

Кто-то использует. Но это только загромождает код и смысла в синтезируемом коде не имеет – синтезатор все эти задержки игнорирует. При написании тестов явные задержки используются, но тут это оправдано.

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

Разумеется. Именно так и делается. Минимум 80% времени код отлаживается именно в симуляторе до cинтеза.

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

Очень интересная информация.

А существуют ли готовые парсеры или даже фронтенд для Verilog?

Представление имею об этом HDL. Может быть, и самому можно написать, если будет куча свободного времени)

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

Я Верилог не люблю. Мне приходится иногда иметь с ним дело, и тогда я страдаю.

А существуют ли готовые парсеры или даже фронтенд для Verilog?

Тут уже упоминали IcarusVerilog.

Ещё есть https://sourceforge.net/projects/gplcver/ . Но выглядит мёртвым.

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

Я уже спрашивал в этом треде и мне указали на Icarus Verilog и GHDL. Я проверил и оба они боле-менее живые, особенно GHDL. Причём последний имеет даже какие-то биндинги к Ada и частично на ней напиасан.

Это симуляторы, но из них можно выдрать парсеры я думаю. Кстати, если будешь писать свой, то обрати внимание на то, что VHDL, Verilog и System Verilog описывают по-сути одно и тоже, но разным синтаксисом. Может сможешь начудить универсальный парсер, переводящий разные описания в одно единое представление.

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

Причём последний имеет даже какие-то биндинги к Ada и частично на ней напиасан.

По-моему, он написан на Ada полностью.

Встраивается в gcc как ещё один язык.

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

Для VHDL есть ещё nvc.

Может сможешь начудить универсальный парсер, переводящий разные описания в одно единое представление.

Вот бы допилили конвертер VHDL->Verilog vhdlpp из iverilog.

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

Неужто никто не собрал нормальную хорошую библиотеку… Не у всех производителей получается найти модели.

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

python, ruby

Для десктопного GUI и матана? Повеселил!

На питоне ml делают и прочий матан, куча либ, под капотом которых находится С. Достаточно быстро. А какие проблемы с python-gui? Запускаешь графику в отдельном потоке от вычислений и даже GIL тебе не будет мешать.

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

На питоне

Достаточно быстро

Вечер перестаёт быть томным.

«Учимся читать вместе for a great good!»:

куча либ, под капотом которых находится С. Достаточно быстро.
под капотом которых находится С.
C.

alienclaster ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.