La CAO Électronique sous Linux

Transcription

La CAO Électronique sous Linux
La CAO Électronique
sous Linux
IT331: Linux embarqué
Xavier NOURISSON
Adrien ZANCAN
Electronique
Systèmes embarqués
14 janvier 2005
ENSEIRB
La CAO Électronique sous Linux
SOMMAIRE
INDEX DES ILLUSTRATIONS....................................................3
INTRODUCTION......................................................................4
LES LOGICIELS DE CAO...........................................................5
I. CONCEPTION
6
DE CIRCUITS
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
11
LOGICIELLE
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
II.5.2. Compilateurs
II.5.3. Simulateurs
II.5.4. Programmateurs
II.5.5. Librairies
II.5.6. Environnements de développement (IDEs)
13
14
15
15
16
16
II.6. YaPIDE
16
CONCLUSION.......................................................................17
GLOSSAIRE..........................................................................18
RÉFÉRENCES........................................................................19
ANNEXE – COMPARATIF DES LOGICIELS.................................20
2/20
Index des illustrations
INDEX
Index des illustrations
DES ILLUSTRATIONS
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
INTRODUCTION
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
Les logiciels de CAO
LOGICIELS DE
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 opensource 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
conception
de
la
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
Illustration 1 - Bartels AUtoEngineer: Layout d'un circuit intégré
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
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
principaux
trois
modules
(un
éditeur de schémas, un
éditeur de PCB et un autorouteur) 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.
Illustration 2 - CadSoft Eagle: Routage
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.
Illustration 3 - gEDA: Saisie de schémas
7/20
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
logiciel
schémas
de
est
saisie
et
un
de
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
Illustration 4 - Oregano: Saisie de schéma et simulation
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.
Illustration 5 - SoC GDS:
Comparaison de layouts
9/20
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
simulateur
de
un
circuits
électroniques numériques.
Il supporte une grande
quantité
d'éléments
de
bases aussi bien que des
modules
pour
personnalisés
la
conception
hiérarchique.
distribution
nombreux
La
inclue
de
tutoriels
et
exemples.
Illustration 6 - TkGate: Fenêtre de saisie de schéma
TkGate est disponible pour Unix / Linux sous les termes de la licence GPL.
10/20
Les logiciels de CAO
Conception de circuits
I.8. Xcircuit
XCircuit
logiciel
de
schémas
est
un
saisie
de
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
qualité
Illustration 7 - XCircuit: Fenêtre principale
entre
artistique
et
la
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
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
ajoutant
de
GPUTILS,
nouvelles
fonctionnalités telles que
la simulation ou la prise
en
charge
d'autres
modèles
de
microcontrôleurs.
GPUTILS
sous
est
licence
distribué
GPL
mais
certains des outils cités
Illustration 8 - GPUTILS
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
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
environnement
un
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.
Illustration 9 - PiKdev: Gestion d'un projet
•
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.
Illustration 10 - YaPIDE:
Visualisation de la mémoire
16/20
Conclusion
Conclusion
CONCLUSION
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
GLOSSAIRE
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
RÉ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
Annexe – Comparatif des logiciels
Annexe – Comparatif des logiciels
ANNEXE – COMPARATIF
DES LOGICIELS
20/20