Simulation

Je veux simuler mon circuit analogique. Quelles sont mes options?

Parmi les applications de la Suite gEDA, il y a deux simulateurs de circuits analogiques: ngspice et gnucap. Plus (un peu) en détail:

Les deux sont des programmes CLI (command line interface·; «·interface à ligne de commande·»), signifiant que vous intérragissez avec le simulateur en saisissant les commandes sur la ligne de commande. Cela signifie aussi que vous avez besoin d'apprendre le jeu de commandes spécifique au simulateur.

Si vous préférez une interface graphique, la nouvelle application GSpiceUI de gEDA fournit une jolie interface utilisateur graphique pour piloter les programmes de simulation. Néanmoins, GSpiceUI n'est pas un simulateur sortie-schema-vers-simulation complet comme LTSpice ou PSpice. Il fournit, à la place, un menu d'interface graphique qui vous vous aide à porter des commandes dont vous avez besoin pour effectuer vos simulations ngspice/gnucap.

Qu'en est-il de tclspice? Qu'est ce que c'est? Dois-je l'utiliser?

Tclspice est un fork du développement de ngspice. Il a débuté en 2002. En principe, tclspice exportera le jeu de commande SPICE vers un API TCL, vous permettant d'embarquer des analyses SPICE en un programme TCL. Cette vision est certainement très attirante car TCL est un langage à scripts très puissant – bien plus puissant que les constructions de scripts disponibles dans SPICE lui-même. En utilisant TCL, il est possible d'imaginer l'écriture d'optimisateurs de circuits complexes, ajoutant des éléments de comportement à la simulation et finalement en gagnant le contrôle de la sortie graphique de SPICE.

Au fur et à mesure, le but a été partiellement atteint – avec tclspice, vous pouvez donc faire quelque chose comme ceci:

#! tclsh 
package require spice 
spice::codemodel /usr/local/src/tclspice-0.2.12/src/xspice/icm/spice2poly.cm 

spice::source netlistname.cir
spice::tran 0.1ns 40ns
spice::run
spice::plot Vout
puts "All done now!"

Malheureusement, tclspice manque de fonctionnalités importantes, comme vous fournir un code de retour qui vous indique à quel stade réel est votre simulation ou si elle est en erreur. Aussi, les fonctionnalités graphiques semblent de jamais fonctionner (au moins pour moi … et les développeurs admettent que la partie graphique a des problèmes). Convertir des variables TCL vers et depuis des vecteurs SPICE semble ne jamais fonctionner – encore une fois, au moins pour moi. Finalement, ngspice (au moins) beaucoup de fuites de mémoire, rendant les simulations longues difficiles. C'est la raison pour laquelle, tclspice n'a pas encore réalisé les promesses qui ont été originellement été faites: une manière pratique, par scripts pour piloter les simulations SPICE.

Les développements sur tclspice ont effectivement cessé en 2004. Peu être qu'un jour, quelqu'un le redémarrera. Pendant ce temps, la branche de développement ngspice a récupéré quelques fonctionnalités tclspice si vous les voulez (elles nécessitent des options de configuration séparées) et le code est plus récent.

N'existe-t-il une belle interface graphique (capture de schéma) de telle manière que je n'ai juste qu'à placer des composants et presser un bouton «·simulation·»?

Non. Le miux que vous puissiez faire est d'utiliser GSpiceUI.

Comment puis-je créer mes schémas pour faciliter les simulations analogiques?

Le chemin habituel pour la conception est «·gschem·» → «·gnetlist -g spice-sdb·» → [«·ngspice·» | «·gnucap·»]. Vous avez besoin d'attacher des attributs aux composants dans votre schéma pour fournir les attributs nécessaires à SPICE/Gnucap. Vous pouvez aussi attacher des attributs en utilisant gattrib.

Le Circuit Simulation using gEDA and SPICE - HOWTO décrit tout ceci en détail.

Quelques ressources SPICE vous aideront pour comprendre comment utiliser spice-sdb.

Quelles sont les commandes gnetlist pour SPICE sont à utiliser ici? Il y en a beaucoup. . . .

Utilisez spice-sdb. Il est le plus riche en fonctionnalités. Les autres ne sont présent que pour des raisons historiques. Notez que spice-sdb est une extension d'une des autres commandes SPICE, vous ne perdez rien en utilisant spice-sdb.

Comment faire si on veut utiliser gnucap, puis-je utiliser spice-sdb pour créer mes netlists gnucap?

Oui. Vous pouvez aussi dessiner votre schéma en utilisant les directives gnucap disponibles dans le répertoire de symbole «·spice·».

Pourquoi ne puis-je réutiliser mon schéma de simulation pour le placement sur carte?

Les nouveau veulent habituellement créer un schéma unique pour la simulation/validation et le placement sur carte. Cette vision semble tout d'abord attirante car votre carte aura d'abord été testée et validée avant de la créer en FR-4. Néanmoins, le diable est dans les détails·; utiliser un seul schéma pour la simulation et le placement ne fonctionne habituellement pas pour els raisons suivantes:

C'est la raison pour laquelle, je (SDB) recommande normalement de ne pas trop tenter d'utiliser le même schéma pour la simulation et pour le placement. Si vous pouvez le faire, c'est bien! Mais, habituellement, vous ne le pouvez pas.

Personellement, je ne crée des modèles SPICE que pour les sections analogiques critiques de mon circuit. Un projet plus grand devrait donc avoir plusieurs schémas de simulation validant les sous-circuits analogiques. En plus des schémas de simulation, j'ai un schéma principal qui est utilisé pour le placement.