La CAO ÉlectroniqueLa CAO Électroniquesous Linuxsous Linux
14 janvier 2005
Xavier NOURISSONAdrien ZANCAN
ElectroniqueSystèmes embarqués
IT331: Linux embarquéIT331: Linux embarqué
ENSEIRB La CAO Électronique sous Linux
SSOMMAIREOMMAIRE
INDEX DES ILLUSTRATIONS....................................................3
INTRODUCTION......................................................................4
LES LOGICIELS DE CAO...........................................................5
I. CONCEPTION DE CIRCUITS 6
I.1. Bartels AutoEngineer® 6
I.2. CadSoft Eagle 7
I.3. gEDA et outils associés 7
I.4. Oregano 9
I.5. PCB 9
I.6. SoC GDS 9
I.7. TkGate 10
I.8. Xcircuit 11
II. CONCEPTION LOGICIELLE 11
II.1. AT51Programmer 11
II.2. Mprog 11
II.3. GCC 12
II.4. ICDPROG 12
II.5. GPUTILS + Tools 13
II.5.1. Assembleurs 13II.5.2. Compilateurs 14II.5.3. Simulateurs 15II.5.4. Programmateurs 15II.5.5. Librairies 16II.5.6. Environnements de développement (IDEs) 16
II.6. YaPIDE 16
CONCLUSION.......................................................................17
GLOSSAIRE..........................................................................18
RÉFÉRENCES........................................................................19
ANNEXE – COMPARATIF DES LOGICIELS.................................20
2/20
Index des illustrations Index des illustrations
IINDEXNDEX DESDES ILLUSTRATIONSILLUSTRATIONS
Illustration 1 - Bartels AUtoEngineer: Layout d'un circuit intégré 6
Illustration 2 - CadSoft Eagle: Routage 7
Illustration 3 - gEDA: Saisie de schémas 7
Illustration 4 - Oregano: Saisie de schéma et simulation 9
Illustration 5 - SoC GDS: Comparaison de layouts 9
Illustration 6 - TkGate: Fenêtre de saisie de schéma 10
Illustration 7 - XCircuit: Fenêtre principale 11
Illustration 8 - GPUTILS 13
Illustration 9 - PiKdev: Gestion d'un projet 16
Illustration 10 - YaPIDE: Visualisation de la mémoire 16
Illustration 11 - Comparatif des différents logiciels présentés 20
3/20
Introduction Introduction
IINTRODUCTIONNTRODUCTION
Le développement de Linux a débuté en 1991. Si, il y a quelques temps, son
utilisation été réservé à une poignée d'informaticiens prêts à réinventer la roue pour
fournir un système d'exploitation open-source assez crédible pour contrer le monopole
de Microsoft, avec aujourd'hui plus de 5% des parts de marché des systèmes
d'exploitations et les efforts considérables d'une immense communauté de
développeurs, il est devenu une alternative non négligeable. Depuis quelques années,
les efforts de cette communauté et des entreprises commerciales se multiplient pour
fournir des solutions Linux pour tous les corps de métiers.
Ainsi, on trouve aujourd'hui de nombreux outils de CAO électronique disponibles
pour Linux. Tout d'abord, des sociétés ont porté leurs logiciels commerciaux depuis
Windows ou Unix. Mais aussi, énormément de logiciels, très souvent open-source,
sont développés directement pour Linux.
Ce présent rapport a pour but de présenter les différentes solutions de CAO
électronique fonctionnant sous Linux. Bien sûr, il est impossible de présenter la
totalité des logiciels disponibles, on présentera tout de même un choix de logiciels
permettant de couvrir la totalité de la chaîne de développement d'un système
électronique, avec la conception matérielle (de la saisie de schéma au routage du
circuit imprimé ou du circuit intégré en passant par la simulation) et la conception
logicielle (compilation, simulation, programmation, etc.). On privilégiera les solutions
open-source.
4/20
Les logiciels de CAO Les logiciels de CAO
LLESES LOGICIELSLOGICIELS DEDE CAO CAO
On ne peut pas réellement classés ces logiciels dans des catégories distinctes
(saisie de schémas, routage, compilation,...). En effet, certains ne feront qu'une seule
tâche (ex: saisie de schémas) mais d'autre intégreront plusieurs outils (ex: saisie de
schémas + simulation + routage). On peut tout de même séparer les logiciels de CAO
électronique en deux grandes catégories : d'une part la conception matérielle
(conception de circuits imprimés ou circuits intégrés) et d'autre part la conception
logicielle (programmation de microcontrôleurs).
Même si tous ces logiciels fonctionnent sous Linux, il peut-être intéressant de
savoir si ils sont disponibles sur d'autres plate-formes, permettant ainsi une meilleurs
compatibilité avec d'autres personnes n'utilisant pas Linux.
Pour la plupart des logiciel présentés, il est indiqué si ce sont des logiciels open-
source ou commerciaux et sur quels architectures et systèmes d'exploitations il sont
disponibles. Aussi, pour les logiciels commerciaux, la disponibilité d'une version
d'évaluation ou d'usage non commercial est indiqué avec ses limitations éventuelles.
Enfin, un récapitulatif de tous les logiciels présentés avec leurs principales
caractéristiques peut être consulté en Annexe 1.
5/20
Les logiciels de CAO Conception de circuits
I. Conception de circuits
I.1. Bartels AutoEngineer®
BAE est un logiciel
complet permettant la
conception de circuits
imprimés ou de circuits
intégrés. Il intègre les
outils nécessaires à toute
la conception : du schéma
au routage en passant par
la simulation électrique.
Ce n'est pas un
logiciel libre et la version
professionnelle est assez
cher. Il propose tout de
même une multitudes de licences avec des prix s'étendant de 86€ à 6490€. Une
version d'évaluation, limitée à la saisie du schéma et génération de la netlist est
aussi proposée.
En plus de Linux, BAE est disponible sur MS Windows et sur de nombreux
systèmes d'exploitations Unix utilisant X11.
6/20
Illustration 1 - Bartels AUtoEngineer: Layout d'un circuit intégré
Les logiciels de CAO Conception de circuits
I.2. CadSoft Eagle
EAGLE (Easily Applicable Graphical Layout Editor) est un outil puissant et
facile d'utilisation pour la conception de circuits imprimés.
Il comprend trois
principaux modules (un
éditeur de schémas, un
éditeur de PCB et un auto-
routeur) qui sont intégrés
dans la même interface. Il
n'y a ainsi pas besoin de
convertir les netlists entre
la saisie de schéma et la
conception du PCB.
C'est un logiciel commercial à un prix raisonnable (entre 49$ et 399$). Il
offre une version à but non lucratif (ou de démonstration) seulement limitée en
taille de PCB (100*80mm, une couche).
Il est disponible sur Linux (i586), MacOSX et Windows.
I.3. gEDA et outils associés
gEDA/gaf est une
suite de logiciels CAO en
licence GPL (open-
source).
gEDA/gaf effectue
notamment la saisie de
schémas/symboles, la
création de netlists et la
gestion de projets.
7/20
Illustration 2 - CadSoft Eagle: Routage
Illustration 3 - gEDA: Saisie de schémas
Les logiciels de CAO Conception de circuits
Une grosse quantité de logiciel sont développés en association avec gEDA,
on peut par exemple citer les logiciels suivants :
• gerbv
Visualiseur de fichiers Gerber.
• gnetman
Outils de manipulation de fichiers netlist.
• gnucap
Simulateur de circuits mixtes.
• GTKWave
Visualiseur de courbes de simulation numériques.
• gwave
Visualiseur de courbes de simulation analogiques.
• Icarus
Simulateur et synthétiseur Verilog.
• PCB (voir le chapitre I.5)
Outils de création de PCB / routage.
• tclspice, ngspice
Versions améliorées de Spice.
• VBS
Simulateur Verilog.
• XCircuit (voir le chapitre I.8)
Saisie de schéma avec export postscript de haute qualité.
8/20
Les logiciels de CAO Conception de circuits
I.4. Oregano
Oregano est un
logiciel de saisie de
schémas et simulation
électrique. Il permet aussi
de générer les netlists et
contient une grande
variété de librairies de
composants.
Oregano est
distribué en licence GPL
pour Unix / Linux.
I.5. PCB
PCB est, comme son nom l'indique, un éditeur de circuits imprimés. Il
intègre les fonctions habituelles d'un tel logiciel, comme l'auto-routage, l'export
dans des formats standards de l'industrie (Gerber, Drill,...). Il est distribué pour
Unix / Linux sous licence GPL.
I.6. SoC GDS
SoC GDS est un logiciel de visualisation et de
traitements rapide de layouts de circuits intégrés. Il
intègre des fonctions puissantes permettant entre
autre l'automatisation du changement de nom des
cellules, la vérification de grilles, la fusion ou la
comparaison physique de fichiers GDS II et LEF, les
modifications hiérarchiques et la conversion au
format texte.
9/20
Illustration 5 - SoC GDS:Comparaison de layouts
Illustration 4 - Oregano: Saisie de schéma et simulation
Les logiciels de CAO Conception de circuits
SoC GDS est disponible pour plate-formes Linux(x86), HP-UX, SUN/Solaris
et Windows sous un licence commerciale. Une version allégée est disponible
gratuitement avec une limitation en vitesse de fonctionnement.
I.7. TkGate
TkGate est un
simulateur de circuits
électroniques numériques.
Il supporte une grande
quantité d'éléments de
bases aussi bien que des
modules personnalisés
pour la conception
hiérarchique. La
distribution inclue de
nombreux tutoriels et
exemples.
TkGate est disponible pour Unix / Linux sous les termes de la licence GPL.
10/20
Illustration 6 - TkGate: Fenêtre de saisie de schéma
Les logiciels de CAO Conception de circuits
I.8. Xcircuit
XCircuit est un
logiciel de saisie de
schémas permettant de
générer des schémas de
qualité "imprimerie" tout
en autorisant la
génération des netlists. Il
écrit à la fois la sortie
PostScript et la netlists
SPICE pour ne pas créer
de compromis entre la
qualité artistique et la
conception électronique.
XCircuit est disponible pour Unix / Linux sous licence GPL.
II. Conception logicielle
II.1. AT51Programmer
AT51Programmer est un programmateur intelligent universel pour les
microcontrôleurs ATMEL 8051 et les mémoires Flash parallèles et EEPROM.
Ce logiciel sous licence GPL est encore en version bêta mais fonctionnelle.
II.2. Mprog
mprog est un logiciel permettant la programmation de microcontrôleurs.
Encore en version bêta, ce logiciel open-source ne supporte pour le moment que
les microcontrôleurs ATMEL AVR série "mega" programmés via SPI en utilisant la
carte STK200. Deux format de fichiers sont supportés : binaire et Intel hex. Une
11/20
Illustration 7 - XCircuit: Fenêtre principale
Les logiciels de CAO Conception logicielle
interface graphique sera bientôt disponible.
II.3. GCC
GCC (GNU Compiler Collection) est probablement le compilateur le plus
connu, le plus utilisé et un des plus efficaces. Il permet de compiler beaucoup de
langages (C, C++, Objective-C, Fortran, Java, Ada) et inclue toutes les librairies
nécessaires pour ces langages.
L'un des nombreux avantages de GCC pour la conception logicielle
électronique est sa possibilité de réaliser les compilations croisées pour de très
nombreuses architectures. Parmi les architectures disponibles, on trouve : ARM,
ARM-Xscale, Atmel AVR, Intel x86, x86-64bits(AMD64), Motorola 68HC11,
68HC12, famille Motorola 68k, MIPS, IBM-Motorola PowerPC, Sparc et bien
d'autres. De plus, on trouve très facilement de la documentation sur la
compilation croisée avec GCC.
GCC est disponible en licence GPL pour toutes les architectures
d'ordinateurs actuels et la plupart des systèmes d'exploitation.
II.4. ICDPROG
ICDPROG est un programmateur pour Microchip PIC en lignes de
commandes utilisant le système de programmation Microchip ICD (In Circuit
Debugger).
Cette version bêta sous licence GPL est dors et déjà disponible pour Linux
et Windows et supporte les PIC16F87x, (x = [0,1,2,3,4,6,7]).
12/20
Les logiciels de CAO Conception logicielle
II.5. GPUTILS + Tools
GPUTILS (GNU PIC Utilities) est un ensemble d'outils pour les
microcontrôleurs Microchip PIC.
Il est composé de
trois principaux outils que
sont gpasm, gplink et
gplib mais de nombreux
outils ont été développés
autour de GPUTILS,
ajoutant de nouvelles
fonctionnalités telles que
la simulation ou la prise
en charge d'autres
modèles de
microcontrôleurs.
GPUTILS est distribué
sous licence GPL mais
certains des outils cités
ci-dessous ne sont pas
open-source.
Ces outils variés comprennent des assembleurs, désassembleurs,
compilateurs, simulateurs, programmateurs, librairies et environnements de
développement (IDEs). En voici les principaux :
II.5.1. Assembleurs
• gpasm est l'assembleur par défaut de GPUTILS.
• tpasm est un autre assembleur de grande qualité supportant les Atmel AVR,
Motorola 6805 et 68HC11 et les 8051.
• miSim combine un éditeur (avec coloration syntaxique), un macro-
13/20
Illustration 8 - GPUTILS
Les logiciels de CAO Conception logicielle
assembleur, un désassembleur et un simulateur, dans un environnement de
développement complet. Écrit en JAVA, il est totalement portable.
Malheureusement, il n'est plus distribué comme logiciel libre depuis la
version 2.0.
• PTK4L (PIC ToolKit For Linux) inclue un assembleur, un désassembleur et
un programmateur.
II.5.2. Compilateurs
• Pyastra (Python to ASembler TRAnslator) est un compilateur Python pour
PICs.
• John Favata's picc_cc est un compilateur dédié aux PIC16C84 produisant un
code pseudo-8051 seulement reconnu par l'assembleur de Parallax.
L'assembleur Parallax est gratuit mais ne fonctionne que sous DOS. Depuis
peu, un autre logiciel dérivé (ebs_cc) permet de générer du code compatible
avec gpasm.
• Pavel Baranow a écrit un compilateur C/C++ non open-source pour
processeurs SX et PICs fonctionnant sous Windows et Linux.
• JAL (Just Another Language) est un compilateur d'un langage de haut niveau
ressemblant à du Pascal pour PIC 16x84. Il n'est pas open-source et
fonctionne sous Windows et Linux.
• AnyC est un projet de compilateur open-source pour microcontrôleurs.
• SIL est un compilateur dans un langage de haut niveau combinant les
langage BASIC, MODULA2 et Pascal.
• SDCC est un compilateur croisé qui supporte les 8051, Z80 et DS390. Il est
entrain d'être porté sur PIC.
14/20
Les logiciels de CAO Conception logicielle
II.5.3. Simulateurs
• gpsim (GNUPIC Simulateur) est le simulateur par défaut de GPUTILS. Il
supporte les cœurs PICs 12, 14 et 16 bits, presque tous leur périphériques
internes et des composants externes (comme les modules LCD).
• Le simulateur de miSim (décrit dans la section "Assembleurs") est très
abouti et permet la simulation en temps réel ou plus rapide
• SxSim est simulateur de processeurs Ubicom Sx offrant beaucoup de
puissants outils de débogage.
• nitpic est un simulateur de PIC16C84 en construction fonctionnant avec X
Windows.
• pictutils combine un simple simulateur et un assembleur pour PICs.
II.5.4. Programmateurs
• picp est le programmateur idéal pour le Microchip Picstart+.
• Odyssey est originellement écrit pour fonctionner avec la carte de
programmation EPIC de microEngineering Labs mais est assez flexible pour
être utilisé avec d'autres matériels de programmation.
• prog84 permet de programmer les PIC 16c6x/7X/923/924, 1§f87x et 24c16
via un port parallèle. Un version USB est aussi disponible.
• PP06 est un autre programmateur de PIC open-source.
• PTK4L (présenté dans la section "Assembleurs") permet la programmation
via un port parallèle.
15/20
Les logiciels de CAO Conception logicielle
• picprg est un programmateur pour port parallèle bien abouti. Il reconnaît
beaucoup de modèles de processeurs et de carte de programmation.
II.5.5. Librairies
De nombreuses librairies open-source pour PIC ont été développées. On
peut citer les librairies de Mark Crosbie (en C : LCD série, Moteurs), de Antonio
Todobom (contrôleur LCD en assembleur), de James Cameron (librairies
mathématiques, piles informatiques...) et la librairie PICFLOAT de Mike Gore
(opérations en virgule flottante).
II.5.6. Environnements de développement (IDEs)
• PiKdev est un
environnement de
développement pour
PICs basé sur KDE.
Il supporte l'édition,
la gestion de projet
et la programmation
de circuits. Il existe
une version en ligne
de commande
nommé pkp.
• miSim (présenté dans la section "Assembleurs") présente aussi un
environnement de développement.
II.6. YaPIDE
YaPIDE (Yet Another PIC IDE) est un simulateur
avec interface graphique pour Microchip PIC
fonctionnant sous Unix / Linux.
16/20
Illustration 9 - PiKdev: Gestion d'un projet
Illustration 10 - YaPIDE:Visualisation de la mémoire
Conclusion Conclusion
CCONCLUSIONONCLUSION
La quantité du nombre de logiciels disponibles montre bien l'activité du monde
Linux. Si les logiciels commerciaux sont de bonne facture, les logiciels open-source
sont de qualités très diverses. Beaucoup de ces derniers sont en version bêta mais
pourraient devenir des solutions efficaces.
Aussi, de nombreux développeurs se lancent dans des projets différents ayant
des fonctionnalités identiques. Il en résulte une énorme quantité de logiciels
effectuant la même chose mais qui ne sont pas pleinement fonctionnels. On peut citer
comme exemple le nombre de simulateurs ou de programmateurs disponibles pour
microcontrôleurs PICs.
D'autre part, la plupart des projets ont des objectifs très spécifiques (ex:
visualiseur de courbes de simulation numérique), ce qui a pour conséquence de
demander une multitudes de logiciels pour réussir à réaliser une chaîne complète de
développement. Heureusement, certains projets (comme gEDA ou GPUTILS) essaient
de regrouper les logiciels complémentaires. La prochaine étape pour la communauté
open-source sera de créer deux logiciels tout-en-un permettant d'un côté la
conception matérielle et de l'autre la conception logicielle.
Malgré tout, l'utilisation de logiciels open-source pour la CAO ne doit pas être
négligée. En effet, certains d'entre eux sont pleinement fonctionnels (on peut citer par
exemple TkGate) voire même mieux que beaucoup d'outils commerciaux, comme c'est
le cas de GCC.
Que ce soit avec des logiciels commerciaux ou open-source, la CAO électronique
est aujourd'hui tout à fait viable pour toute la chaîne de développement matérielle et
logicielle.
17/20
Glossaire Glossaire
GGLOSSAIRELOSSAIRE
CAO : Conception Assisté par Ordinateur
EDA : Electronics Design Automation
ENSEIRB : École Nationale Supérieure d'Électronique, Informatique et
Radiocommunication de Bordeaux (http://www.enseirb.fr/)
GNU : Gnu is Not Unix (http://www.gnu.org/)
GPL : General Public License (http://www.gnu.org/copyleft/gpl.html)
LCD : Liquid Cristal Display
USB : Universal Serial Bus
18/20
Références Références
RRÉFÉRENCESÉFÉRENCES
Logiciels de CAO électronique, toutes plate-formes (la plupart sont commerciaux)
http://etronics.free.fr/dossiers/softs/soft00/logiciels.htm
Logiciels de CAO électronique pour plate-formes Unix (la plupart sont open-source)
http://freshmeat.net/browse/246/
Barttels AutoEngineer http://www.bartels.de/bae.htm
CadSoft Eagle http://www.cadsoftusa.com/
gEDA http://www.geda.seul.org/
Oregano http://arrakis.gforge.lug.fi.uba.ar/
GCC http://gcc.gnu.org/
ICDPROG http://icdprog.sourceforge.net/
PCB http://pcb.sourceforge.net/
PiKdev http://pikdev.free.fr/
YaPIDE http://www.mtoussaint.de/yapide.html
gputils http://gputils.sourceforge.net/
SoC GDS http://www.dolphin-integration.com/medal/socgds/socgds_overview.html
TkGate http://www.tkgate.org/
XCircuit http://bach.ece.jhu.edu/~tim/programs/xcircuit/
19/20