This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
geda:faq-simulation.ru [2012/02/20 15:14] 127.0.0.1 external edit |
geda:faq-simulation.ru [2014/04/25 08:47] vzh Updated using po4a |
||
---|---|---|---|
Line 1: | Line 1: | ||
+ | //Эта страница доступна также на следующих языках:// | ||
+ | [[faq-simulation|English]], [[faq-simulation.fr|Français]]. | ||
+ | |||
====== Моделирование ====== | ====== Моделирование ====== | ||
- | |||
- | |||
===== Я хочу смоделировать работу своей аналоговой схемы. Какие есть варианты? ===== | ===== Я хочу смоделировать работу своей аналоговой схемы. Какие есть варианты? ===== | ||
Line 7: | Line 8: | ||
моделирования: **ngspice** и **gnucap**. (Чуть) более | моделирования: **ngspice** и **gnucap**. (Чуть) более | ||
подробно: | подробно: | ||
- | * [[http://ngspice.sourceforge.net/|ngspice]] --- это портированная/доработанная классическая программа **SPICE 3f5** для платформы GNU/Linux. Она полнофункциональна, включает расширения XSpice (такие как конструкции SPICE 2 POLY) и фреймворк CIDER. | + | * [[http://ngspice.sourceforge.net/|ngspice]] --- это перенос/доработка классической программы **SPICE 3f5** для платформы GNU/Linux. Она полнофункциональна, включает расширения XSpice (такие как конструкции SPICE 2 POLY) и фреймворк CIDER. |
- | * [[http://www.gnucap.org/|gnucap]] --- это новая, написанная с нуля программа схемотехнического моделирования. Она предоставляет возможность выполнения как событийного, так и сквозного моделирования. Это --- плод труда //Al Davis//. Если вы хотите загрузить её, убедитесь, что скачиваете последнюю версию, которую можно найти по ссылке "development releases" (рабочие выпуски) на сайте **gnucap**. | + | * [[http://www.gnucap.org/|gnucap]] --- это новая, написанная с нуля программа схемотехнического моделирования. Она предоставляет возможность выполнения как событийного, так и сквозного моделирования. Это --- плод труда //Al Davis//. Если вы хотите загрузить её, убедитесь, что скачиваете последнюю версию, которую можно найти по ссылке «development releases» (рабочие выпуски) на сайте **gnucap**. |
- | Обе программы выполнены с интерфейсом командной строки, то есть взаимодействие | + | Обе программы имеют только интерфейс командной строки, то есть |
- | с программой моделирования осуществляется набором команд в командной строке. | + | взаимодействие с программой моделирования осуществляется набором команд в |
- | Это значит также, что вам нужно изучить специфический для программы набор | + | командной строке. Это значит также, что вам нужно изучить специфический для |
- | команд. | + | программы набор команд. |
- | + | ||
- | Если вы предпочитаете графический интерфейс, новое приложение gEDA **gspiceui** | + | |
- | предоставляет хорошую графическую оболочку для работы с данными программами | + | |
- | моделирования. Однако **gspiceui** не предоставляет полного цикла вида | + | |
- | "схема-в-вывод-моделирования" подобно **ltspice** или **pspice**. Точнее, она просто | + | |
- | предоставляет графическое меню, помогающее управлять командами, нужными для | + | |
- | выполнения моделирования с помощью **ngspice**/**gnucap**. | + | |
+ | Если вы предпочитаете графический интерфейс, новое приложение gEDA | ||
+ | **gspiceui** предоставляет хорошую графическую оболочку для работы с этими | ||
+ | программами моделирования. Однако **gspiceui** не предоставляет полного | ||
+ | цикла вида «от-схемы-до-вывода-моделирования» подобно **LTSpice** или | ||
+ | **PSpice**. Точнее, она просто предоставляет графическое меню, помогающее | ||
+ | управлять командами, нужными для выполнения моделирования с помощью | ||
+ | **ngspice** / **gnucap**. | ||
===== Как насчёт tclspice? Что это? Стоит ли это использовать? ===== | ===== Как насчёт tclspice? Что это? Стоит ли это использовать? ===== | ||
Проект [[http://tclspice.sourceforge.net/|tclspice]] был ответвлением | Проект [[http://tclspice.sourceforge.net/|tclspice]] был ответвлением | ||
- | основного маршрута разработки **ngspice**. Он был начат в 2002 году. В принципе, | + | основного маршрута разработки **ngspice**. Он был начат в 2002 году. В |
- | **tclspice** должен был бы экспортировать набор команд SPICE в API TCL, позволяя | + | принципе, **tclspice** должен был бы экспортировать набор команд SPICE в API |
- | вам встроить SPICE-анализ в TCL-программу. Это определённо очень | + | TCL, позволяя вам встроить SPICE-анализ в TCL-программу. Это определённо |
- | привлекательная цель, так как TCL --- это мощный скриптовый язык, намного | + | очень привлекательная цель, так как TCL --- это мощный скриптовый язык, |
- | более мощный, чем скриптовые конструкции имеющиеся в самом SPICE. При | + | намного более мощный, чем скриптовые конструкции имеющиеся в самом |
- | использовании TCL, как можно себе представить, возможно написание сложных | + | SPICE. При использовании TCL, как можно себе представить, возможно написание |
- | оптимизаторов схем, добавление в моделирование поведенческих элементов и, | + | сложных оптимизаторов схем, добавление в моделирование поведенческих |
- | наконец, получение управления над графическим выводом SPICE. | + | элементов и, наконец, получение управления над графическим выводом SPICE. |
- | Как оказалось, эта цель была достигнута частично --- с помощью **tclspice** в | + | Как оказалось, эта цель была достигнута частично --- с помощью **tclspice** |
- | самом деле можно сделать что-то вроде этого: | + | в самом деле можно сделать что-то вроде этого: |
<code>#! tclsh | <code>#! tclsh | ||
package require spice | package require spice | ||
Line 50: | Line 51: | ||
моделирование или оно завершилось ошибкой. Кажется и графическая | моделирование или оно завершилось ошибкой. Кажется и графическая | ||
функциональность тоже никогда не работала (по крайней мере для меня..., и | функциональность тоже никогда не работала (по крайней мере для меня..., и | ||
- | разработчики согласны, что графика отвратительна). Трансляция переменных TCL в | + | разработчики согласны, что графика отвратительна). Трансляция переменных TCL |
- | векторы SPICE и наоборот, тоже, кажется, никогда не работала, опять, по | + | в векторы SPICE и наоборот тоже, кажется, никогда не работала, опять, по |
- | крайней мере для меня. Наконец, в **ngspice** (по крайней мере) множество утечек | + | крайней мере для меня. Наконец, в **ngspice** (по крайней мере) множество |
- | памяти, что затрудняет выполнение длительного моделирования. Поэтому **tclspice** не | + | утечек памяти, что затрудняет выполнение длительного моделирования. Поэтому |
- | соответствует данным изначально обещаниям: быть удобным скриптовым средством | + | **tclspice** не соответствует данным изначально обещаниям: быть удобным |
- | для выполнения SPICE-моделирования. | + | скриптовым средством для выполнения SPICE-моделирования. |
- | + | ||
- | Действительная разработка проекта **tclspice** остановилась в 2004 году. Возможно | + | |
- | когда-нибудь кто-нибудь снова возьмётся за него. Тем временем основная ветка | + | |
- | разработки [[http://ngspice.sourceforge.net/|ngspice]] приобрела возможности | + | |
- | **tclspice**, если они вам нужны (для них требуются особые ключи в конфигурации), | + | |
- | и код там более свежий. | + | |
+ | Действительная разработка проекта **tclspice** остановилась в 2004 | ||
+ | году. Возможно когда-нибудь кто-нибудь снова возьмётся за него. Тем временем | ||
+ | основная ветка разработки [[http://ngspice.sourceforge.net/|ngspice]] | ||
+ | приобрела возможности **tclspice**, если они вам нужны (для них требуются | ||
+ | особые ключи в конфигурации), и код там более свежий. | ||
===== Где взять модели? ===== | ===== Где взять модели? ===== | ||
- | Существует очень мало моделей с открытым исходным кодом, предоставленных | + | Существует очень мало моделей с открытым исходным кодом, предоставленных в |
- | в общее пользование энтузиастами. Вот почему в пакетах **gnucap** и **ngspice** | + | общее пользование энтузиастами. Вот почему в пакетах **gnucap** и |
- | нет больших библиотек моделей. Если вы сваяли свою собственную, и | + | **ngspice** нет больших библиотек моделей. Если вы сваяли свою собственную, |
- | вам хотелось бы внести свой вклад в проект, это может быть отличной | + | и вам хотелось бы внести свой вклад в проект, это может быть отличной |
возможностью (намёк, намёк...). | возможностью (намёк, намёк...). | ||
Хотя многие производители и предоставляют бесплатно SPICE-модели, они | Хотя многие производители и предоставляют бесплатно SPICE-модели, они | ||
сохраняют проприетарную лицензию. Это значит, что данные модели не могут | сохраняют проприетарную лицензию. Это значит, что данные модели не могут | ||
- | распространяться вместе с gEDA Suite. К тому же в различных реализациях SPICE | + | распространяться вместе с gEDA Suite. К тому же, в различных реализациях |
- | мнения насчёт правильного синтаксиса несколько различаются. Как следствие, | + | SPICE мнения насчёт правильного синтаксиса несколько различаются. Как |
- | некоторые модели, поставляемые производителями, необходимо корректировать для | + | следствие, некоторые модели, поставляемые производителями, необходимо |
- | работы со специфической реализацией. | + | корректировать для работы со специфической реализацией. |
**spicelib** предоставляет средство получения моделей, скорректированных для | **spicelib** предоставляет средство получения моделей, скорректированных для | ||
- | **gnucap** и **ngspice**. Это набор скриптов, который доставит модели поставщиков | + | **gnucap** и **ngspice**. Это набор скриптов, который доставит модели |
- | непосредственно из исходного местоположения, что решает проблему их | + | поставщиков непосредственно из исходного местоположения, что решает проблему |
- | распространения. Затем подправит их для совместимости с **gnucap** и **ngspice**. | + | их распространения. Затем подправит их для совместимости с **gnucap** и |
- | **spicelib** можно загрузить со страницы | + | **ngspice**. **spicelib** можно загрузить со страницы |
[[http://www.h-renrew.de/h/spicelib/doc/index.html]]. | [[http://www.h-renrew.de/h/spicelib/doc/index.html]]. | ||
- | |||
===== Нет ли какой-нибудь красивой графической оболочки (редактора схем), в которой я мог бы просто добавлять компоненты и нажимать кнопку "моделирование"? ===== | ===== Нет ли какой-нибудь красивой графической оболочки (редактора схем), в которой я мог бы просто добавлять компоненты и нажимать кнопку "моделирование"? ===== | ||
Нет. Лучшее, что можно сделать --- использовать | Нет. Лучшее, что можно сделать --- использовать | ||
[[http://www.geda.seul.org/tools/gspiceui/index.html|gspiceui]]. | [[http://www.geda.seul.org/tools/gspiceui/index.html|gspiceui]]. | ||
- | |||
===== Как подготовить свою схему для аналогового моделирования? ===== | ===== Как подготовить свою схему для аналогового моделирования? ===== | ||
- | Обычная последовательность разработки --- | + | Обычная последовательность разработки --- **gschem** -> **''gnetlist -g |
- | **gschem** -> **''gnetlist -g spice-sdb''** -> [**ngspice** | **gnucap**]. | + | spice-sdb''** -> [**ngspice** | **gnucap**]. Чтобы задать необходимые |
- | Чтобы задать необходимые атрибуты для SPICE/**gnucap**, их нужно прикрепить к | + | атрибуты для SPICE / **gnucap**, их нужно прикрепить к компонентам в своей |
- | компонентам в своей схеме. Можно также добавить атрибуты с помощью | + | схеме. Можно также добавить атрибуты с помощью **gattrib**. |
- | **gattrib**. | + | |
+ | Всё это очень подробно описано в [[gEDA:csygas.ru|HOWTO по схемотехническому | ||
+ | моделированию с помощью gEDA и SPICE]]. | ||
- | Всё это очень подробно описано в [[gEDA:csygas.ru|HOWTO по схемотехническому моделированию | ||
- | с помощью gEDA и SPICE]]. | ||
Некоторые [[http://www.brorson.com/gEDA/SPICE/|SPICE-ресурсы]] помогут вам | Некоторые [[http://www.brorson.com/gEDA/SPICE/|SPICE-ресурсы]] помогут вам | ||
понять, как использовать **spice-sdb**. | понять, как использовать **spice-sdb**. | ||
- | |||
===== Какой драйвер для gnetlist использовать для создания списка соединений SPICE? Их несколько... ===== | ===== Какой драйвер для gnetlist использовать для создания списка соединений SPICE? Их несколько... ===== | ||
Используйте драйвер **spice-sdb**. Он наиболее продвинутый и очень богат | Используйте драйвер **spice-sdb**. Он наиболее продвинутый и очень богат | ||
возможностями. Другие остались только по историческим причинам. Обратите | возможностями. Другие остались только по историческим причинам. Обратите | ||
- | внимание, что **spice-sdb** является расширением одного из других драйверов SPICE, | + | внимание, что **spice-sdb** является расширением одного из других драйверов |
- | так что используя его вы ничего не потеряете. | + | SPICE, так что, используя его, вы ничего не потеряете. |
===== А что если я хочу использовать gnucap, можно ли мне использовать spice-sdb для создания списка соединений для него? ===== | ===== А что если я хочу использовать gnucap, можно ли мне использовать spice-sdb для создания списка соединений для него? ===== | ||
Line 118: | Line 114: | ||
Лучше просто начертить схему, без директив, и запустить эту программу | Лучше просто начертить схему, без директив, и запустить эту программу | ||
моделирования интерактивно. | моделирования интерактивно. | ||
- | |||
===== Почему бы мне не использовать свою схему моделирования также и для разработки топологии? ===== | ===== Почему бы мне не использовать свою схему моделирования также и для разработки топологии? ===== | ||
Line 133: | Line 128: | ||
* Обычно на самом деле нужно смоделировать поведение только какой-то части разработки. Например, вы можете захотеть смоделировать поведение фильтра или кварцевого резонатора, но вам не нужно (или вы не можете) моделировать работу источника питания, логики или других частей своего проекта. Если вы упорно будете настаивать на создании SPICE-моделей для этих отдельных частей схемы, то может быть вам придётся пройти множество трудных испытаний, --- и сделать много ненужной тяжёлой работы, --- чтобы найти или создать SPICE-модели для частей своей разработки, которые не так уж и важны. | * Обычно на самом деле нужно смоделировать поведение только какой-то части разработки. Например, вы можете захотеть смоделировать поведение фильтра или кварцевого резонатора, но вам не нужно (или вы не можете) моделировать работу источника питания, логики или других частей своего проекта. Если вы упорно будете настаивать на создании SPICE-моделей для этих отдельных частей схемы, то может быть вам придётся пройти множество трудных испытаний, --- и сделать много ненужной тяжёлой работы, --- чтобы найти или создать SPICE-модели для частей своей разработки, которые не так уж и важны. | ||
- | Поэтому я (SDB) обычно рекомендую не слишком сильно пытаться использовать одну | + | Поэтому я (SDB) обычно рекомендую не слишком сильно пытаться использовать |
- | и ту же схему и для моделирования, и для разработки топологии. Если можно это | + | одну и ту же схему и для моделирования, и для разработки топологии. Если |
- | сделать --- здорово! Но обычно --- нельзя. | + | можно это сделать --- здорово! Но обычно --- нельзя. |
- | Лично я склоняюсь к тому, чтобы создавать SPICE-модели только для критических | + | Лично я склоняюсь к тому, чтобы создавать SPICE-модели только для |
- | аналоговых частей своих проектов. Поэтому проект побольше может содержать пару | + | критических аналоговых частей своих проектов. Поэтому проект побольше может |
- | схем для моделирования аналоговых частей схемы с целью проверки их | + | содержать пару схем для моделирования аналоговых частей схемы с целью |
- | работоспособности. Кроме схем для моделирования у меня будет и основная схема, | + | проверки их работоспособности. Кроме схем для моделирования, у меня будет и |
- | используемая для разработки топологии. | + | основная схема, используемая для разработки топологии. |