Le projet gEDA travaille à produire une suite GPL complète d’outils EDA (Electronic Design Automation). Ces outils sont utilisés pour la conception de circuits électriques, la saisie de schémas, la simulation, le prototypage et la production. Le projet gEDA offre actuellement une suite mature d’applications de logiciels libres pour la conception électronique, incluant le la saisie de schémas, la gestion d’attributs, la génération de bill of materials (BOM), le netlisting dans plus de 20 formats de netlist, la simulation analogique et numérique et le placement sur circuit imprimé « printed circuit board (PCB) ».
Ales Hvezda est à l’origine du projet gEDA. Le projet gEDA a quelque peu grossi, depuis le printemps 1998. Ces outils ne sont plus l’oeuvre d’une seule personne. De nombreuses personnes s’y sont impliquées. Quelques personnes contribuent aux outils originaux, alors que les autres développent leurs propres outils. C’est la raison pour laquelle gEDA ne se réfère plus aux outils originels (ils ont maintenant leurs propres vies) mais à tous les projets qui sont libres et qui sont associés quelque part dans ces pages web ou les listes de diffusion geda-dev/geda-user. En association avec gEDA, les auteurs de logiciels libres ne laissent pas le contrôle sur leurs outils mais ils sont aidés par la communauté pour maintenir la qualité et la liberté des outils EDA.
gEDA peut être prononcé « gee-daahhh » (rhymes with cheetah) ou “g-dahhh (short g).
gaf signifie « gschem and friends » (gschem et ses amis). C’est un sous-jeu de la suite d’outils complète groupée sous le nom de gEDA. gEDA/gaf est une collection d’outils qui inclut actuellement:
gschem: un programme de capture de schémas
gnetlist: un programme de génération de netlist
gsymcheck: un vérificateur de syntaxe pour les symboles de schémas
gattrib: une feuille de calcul qui manipule les propriétés des symboles d’un schéma
libgeda: les bibliothèques pour gnetlist de gschem et gsymcheck
gsch2pcb: Annotation directe depuis votre schéma vers le circuit en utilisant
PCB.
quelques utilitaires mineurs
Les outils gEDA/gaf partagent un format de fichier commun (.sch) et partagent aussi une bibliothèque commune (libgeda.so). Les sources de la distribution gEDA/gaf peuvent être trouvées sur ce site web (geda.seul.org).
Bien que gaf se réfère surtout à gEDA, le nom gEDA ne s’applique pas obligatoirement à gaf – les outils rassemblés sous la bannière de « gEDA » comprennent beaucoup d’autres programmes. En fait, gEDA fait référence à tout outil d’EDA sous GPL qui décide de s’associer avec le site web/liste de diffusion. Des exemples importants d’outils gEDA incluent le programme de création de circuit imprimé PCB, le compilateur Verilog Icarus Verilog, le simulateur de circuits analogiques gnucap et le simulateur open-source SPICE ngspice. Il existe plusieurs autres programmes gEDA.
Pour des raisons historiques, sur freshmeat, gaf est connu comme le paquet ‘gEDA’.
La suite gEDA est une image CDROM (.iso) crée par Stuart Brorson pour faciliter l’installation des divers outils qui forment, sont associés oiu fonctionnent totalement avec le projet gEDA. L’objectif est que les outils rassemblés sur la suite gEDA en CDROM constitue un environnement de conception cohérent, complet, open-source en un seul téléchargement. La suite gEDA sur CDROM inclut actuellement:
gEDA/gaf – saisie de schématic et netlisting
-
gnucap – simulation analogique
gspiceui –
GUI front end for ngspice/gnucap
-
gerbv – visualisation Gerber
-
GTKWave – visualisation de forme d’onde numérique
wcalc – analyse de ligne de transmission et structure électromagnetique
Au centre de la suite gEDA en CDROM est la facilité d’utiliser l’installateur qui automatise la construction et l’installation des divers paquets depuis les sources - facilitant l’installation la suite complète pour les novices. La suite gEDA en CDROM est disponible sur la page de téléchargement. Note: L’installateur ne fonctionne qu’avec Linux!
Les outils de la suite gEDA et leurs associés ont les caractéristiques suivantes:
Gratuit.
Tous les formats de fichiers et tous les codes sources sont disponibles en licence
GPL. Cette licence vous garantit des droits spécifiques aux auteurs et aux utilisateurs de logiciels
GPL.
L’indépendence vis à vis de toute entreprise. Tous les outils gEDA sont fournis avec les sources complètes. Vous pouvez les changer, les améliorer, les porter (sur d’autres systèmes) et même les distribuer (si vous respectez les termes de la
GPL).
Aucun mécanisme n’est utilisé pour restreindre l’utilisation de ces outils (comme l’utilisation de numéros de série du disque dur ou des adresses ethernet pour forcer le logiciel à ne fonctionner que sur un machine).
Aucunes limitations arbitraires, imposées par les marketing ou les ingénieurs. Les versions gratuites des outils commerciaux incluent des limitations capricieuses (i.e. une taille de carte limité, l’impossibilité d’imprimer, l’impossibilité d’exporter des netlists, etc.) qui verrouille le programme et force les utilisateurs sérieux à acheter les outils complets. Par contraste, les outils gEDA sont pleinement fonctionnels et n’imposent aucune limitation arbitraire sur la conception pour vous soutirer de l’argent.
Garanties de protection de conception. Comme le logiciel fonctionnera pour toujours (pour les raisons citées ci-dessus), les fichiers de conception de gEDA sera toujours visualisable/éditable (avec les bonnes versions du logiciel).
Flux de conception ouverts. Cela signifie que les outils correspondent les uns avec les autres par des moyens connus et documentés (fichiers /
API). Il est facile de remplacer un outil ou de l’améliorer avec quelque chose d’autre si vous le désirez.
Stabilité - Les bogues qui plantent sont étudiés immediatement et réparés dès que possible.
Minimise les fonctionnalités gourmandes et inutiles.
Fonctionne sur autant de plates-formes que possible. Pour gEDA/gaf: GNU/Linux et d’autres systèmes Unix.
Dévelopé d’une manière ouverte (pas de secrets).
Les programmes sont documentées.
gEDA n’aura peut être pas les dernières fonctionnalités les plus pointues que l’on pourrait trouver dans d’autres paquets et peut, quelques fois, être vu comme à la traîne de la technique EDA mais les outils sont devenus utiles à beaucoup de personnes à cause des raisons mentionnées ci-dessus.
La Suite gEDA est un rassemblement de programmes independants. Cela s’est produit pour des raisons historiques: Ales Hvezda a débuté le programme gEDA plus ou moins seul. La vision originelle était de produire une suite intégrée complète pour créer des circuits imprimés de telle manière que les passionnés de robots puissent concevoir leurs propres cartes. Néanmoins, au fur et à mesure de la progression du projet gEDA, l’ampleur de la tâche est devenu claire - et le codage des nombreuses applications proposées n’avait pas encore commencé!
Pendant ce temps, d’autres développeurs de logiciels -avec leurs propres applications écrites indépendament - ont trouvé que la vision du projet permettait de les compléter. Les auteurs de ces applications se sont joints à Ales et ont fait contribuer leur programme au projet gEDA. Parmi des projets, on trouve « pcb », un programme de création de circuits imprimés vieux de 10 ans (à ce moment). Avec cette contribution de « pcb », l’outil originel pour circuits imprimés de gEDA, « gpcb » a été abandonné. Au même moment, d’autres développeurs ont ajouté des simulateurs analogiques et numériques, des visualiseurs de formes de signal, ainsi de suite.
C’est de cette manière que s’est agglomérée la suite gEDA. Ce n’est pas un code partagé ou une interface utilisateur commune qui distingue la suite gEDA. C’est plutôt la vision partagée d’un environnement EDA open-source qui maintient la cohérence du projet. Aujourd’hui, la Suite gEDA est un ensemble de différents programmes réalisés par plusieurs auteurs. Les applications tentent de fonctionner ensemble et réussissent généralement. Mais les démarrages séparés de chaque programme de la suite sont encore observables. Néanmoins, avec un peu de travail, les divers composants de la Suite sont intéropérables et plusieurs personnes ont achevé des circuits imprimés assez compliqués en utilisant la Suite gEDA.
C’est plus une question de religion. Je vais résumer quelques pour et contre (tel que je les vois) de chaque approche ici.
Vous pouvez utiliser les « meilleures des espèces » d’applications pour chaque partie de la conception. Ceci étant, vous pouvez utiliser le flux standard de gEDA gschem →gsch2pcb →pcb pour créer un circuit imprimé. Néanmoins, si vous pensez que l’application open-source « PCB » craint, vous pouvez utiliser le flux gschem →gnetlist →Protel (par exemple). Rappelez-vous que gnetlist peut sortir plus de vingt différents formats de netlist! De plus, si vous n’aimez pas un des composants du flux, vous pouvez écrire un autre outil qui le remplacera. Maintenant, il est vrai, qu’en ce moment, en général, qu’il n’existe qu’une seule application pour effectuer une tâche particulière. Cette situation devrait néanmoins changer avec le temps – comme en témoigne la nouvelle branche du projet « pcb », le netlister supplémentaire
gnetman, de même que le projet
HEC. En règle générale, l’approche de la suite offre la plus grande liberté à l’utilisateur.
Le flux de la conception possède quelques points d’arrêts naturels. Cela se produit lorsqu’un des outils achève son travail et l’écrit dans un dans un fichier (i.e. gschem écrit un fichier .sch ou gnetlist écrit une netlist SPICE). A ce point, vous pouvez facilement casser le flux et écrire des scripts qui traite totalement et/ou partiellement les données de l’étude. Pour les grands développements, c’est un avantage réel d’avoir une approche de « suite de conception ». Cet avantage peut peut ne parler qu’aux « utilisateurs intensifs » mais notez son importance: toutes les suites d’EDA de rang professionnel (Synopsys, Xilinx) travaillent de la même manière.
L’utilisation d’une suite d’applications peut être automatisé en utilisant un Makefile ou même un script
Perl. Les concepteur d’ASIC le font en permanence avec leurs outils de schémas et de synthèse. Quelques utilisateurs gEDA ont publiquement annoncé (sur la liste de diffusion) qu’ils le faisaient aussi et soulignent que c’est une fonctionnalité importante de la suite gEDA.
Extensibilité: une application monolithique est presque toujours développée un seul développeur qui a une vision unique de son programme. Ce développeur peut assurer un standard de style et d’interface utilisateur pour tous ses outils. Le problème avec ceci est qu’un développeur seul ne peut écrire - même s’il est particulièrement doué - qu’un (ou quelques) partie d’une application EDA. C’est la raison pour laquelle toute application EDA monolithique, open-source, sera toujours limitée dans son champ et ses fonctionnalités par les aptitudes d’un développeur seul. (J’aimerais que l’on me prouve que j’ai tord sur ce point. Les contres-exemples sont les bienvenus mais aucun n’a attiré mon attention lors de l’écriture de cette partie.) D’un autre côté, une assemblée de développeurs travaillant indépendamment sur leurs propres applications - tout en contribuant à l’oeuvre dans son ensemble – peuvent donc créer un environnement EDA très grand et très capable.
C’est plus difficile pour les nouveaux car ils ne connaissent pas le flux d’avance. Ceci étant, ils ont réellement besoin de
RTFM pour savoir quel est l’outil qu’ils devront faire ensuite fonctionner. Une bonne documentation aide (c’est la raison pour laquelle vous lisez ceci) mais elle reste toujours un second choix après le développement d’une interface intuitive.
Les différents programmes peuvent avoir diverses conventions d’interfaces utilisateur (i.e. l’organisation du menu est différente, la fonctionnalité des touches ou de la souris sont différents). Ceci peut être désagréable pour ceux qui ne sont pas familiers avec les programmes.
Comme aucune supposition n’est faite dans le flux de la conception, les symboles
légers de schémas sont nécessaires. Cela impose à l’utilisateur de passer plus de temps à ajouter, par exemple, des attributs d’empreintes de composants à son schéma. De plus, l’utilisateur doit passer réellement plus de temps à trouver quelle empreinte utiliser. Néanmoins, une bonne suite (comme la suite gEDA) offrira de multiples méthodes pour effectuer cette tâche (i.e. gattrib, des scripts
Perl pour faciliter les empreintes, etc.).
Quelques développeurs sont plus énergiques que d’autres ou ont plus de temps libre. C’est la raison pour laquelle quelques programmes de la suite seront plus développés (et moins bogués) que d’autres. Malheureusement, un seul programme bogué dans une suite peut entacher la perception d’un nouvel utilisateur sur la suite complète.
Not infinitely scalable. One developer can’t do everything, no matter how smart. Therefore, a monolithic app will never approach the size or power of a suite developed by a confederacy of programmers.
Lack of choice. If the developer doesn’t like your way of doing things, you have no choice. Even if you submit patches to enable your way of performing a task, there is a chance the main developer will ignore or reject your patches. This is probably not an issue for newbies, but for “power users” it represents a problem.
Risk. If the apps developer quits, the code becomes abandoned, and the users suffer. This effectively happened to the program
XTrkCAD, a CAD program for designing model railroads. The author of this program quit developing it, but thankfully placed his stuff on Sourceforge so that the program wouldn’t simply disappear. Unfortunately, without the original developer’s involvement, the code languished. Patches contributed to the project went to /dev/null. Eventually, a coalition of concerned user/developers created a
fork of the code to enable further development. However, work on the forked code has been piecemeal and sporadic. (Hopefully, this will change someday.) Meanwhile, for the ordinary user, the fact that the original developer quit represents a catastrophe.
All of the tools and associated files in gEDA will be released under the GNU General Public License version 2 (GPL), from Free Software Foundation
From the license:
When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things.
This cannot be stressed enough: gEDA is GPLed software. Therefore nothing proprietary can be distributed with gEDA like part libraries from proprietary EDA products. Conversion program for proprietary libraries will be available, but any converted files which are part of a proprietary product must never find their way into gEDA. Contributed files must be GPLable (or be placed under another free license). Please keep this in mind if you wish to contribute something.
Even though the focus of gEDA is GPLed software, other software licenses are more than welcome to be mixed with the existing software, just as long as they are compatible with the GPL.
The official website is gEDA Project hosted by the SEUL Project. The European mirror is at European gEDA Project mirror hosted by Swedish University Network - Sweden, Nothern Europe.
There are several mailing lists. Please look at the mailing list’s info page for how to subscribe and post.
You can download all the software, including the gEDA suite CDROM from the download page.
You can find the latest set of documentation on the toplevel documentation page.
Come to the Free EDA Users Group (Freedog) meeeting in Cambridge, MA. The meeting is at 7PM on the first Wednesday of each month at the Kendal Square Starbucks.
The most important thing to do is to read and understand Bill Wilson’s excellent gschem -> gsch2pcb -> PCB tutorial. This should get you started.
Also be sure to check out the other gEDA documentation. An installation guide is contained in this Wiki, as is some general information about how to use the tools. Spend some time browsing, download the gEDA Suite, and try it out for yourself!