* ./src/m2e :

- Convertisseur MBK -> Eagle de Francois Dromard.
This commit is contained in:
Jean-Paul Chaput 2003-02-13 15:20:28 +00:00
parent c07aca33e2
commit 9ba6f6a7c1
8 changed files with 1361 additions and 0 deletions

View File

@ -0,0 +1,3 @@
## Process this file with automake to produce Makefile.in
SUBDIRS = src doc

View File

@ -0,0 +1,35 @@
dnl Process this file with autoconf to produce a configure script.
AC_INIT(src/m2e.c)
M2E_MAJOR_VERSION=1
M2E_MINOR_VERSION=0
M2E_VERSION=$M2E_MAJOR_VERSION.$M2E_MINOR_VERSION
AC_SUBST(M2E_MAJOR_VERSION)
AC_SUBST(M2E_MINOR_VERSION)
AC_SUBST(M2E_VERSION)
# For automake.
VERSION=$M2E_VERSION
PACKAGE=m2e
dnl Initialize automake stuff
AM_INIT_AUTOMAKE($PACKAGE, $VERSION)
dnl Checks for programs.
AC_PROG_CC
AC_PROG_MAKE_SET
AC_CHECK_LIB(m, pow)
dnl Checks for typedefs, structures, and compiler characteristics.
AC_C_CONST
AM_ALLIANCE
AC_OUTPUT([
Makefile
src/Makefile
doc/Makefile
doc/man1/Makefile
])

View File

@ -0,0 +1,2 @@
SUBDIRS = man1

View File

@ -0,0 +1,2 @@
man_MANS = m2e.1
EXTRA_DIST = $(man_MANS)

View File

@ -0,0 +1,176 @@
mbk2eagle 01/07/2002
________________________
Cet outil permet, à partir d'une description structurelle d'une carte (.vst),
de générer un fichier script utilisable par Eagle (logiciel de routage de cartes).
Ce fichier permet de fournir à Eagle, la liste des composants utilisés
ainsi que l'interconnexion de ces composants.
La description structurelle doit être complétée par trois types de fichiers.
- Un fichier "nom__de_figure.pin" correspondant à la description des connexions de
la carte circuit imprimé, avec son environnement (connecteurs de la carte).
- Un ou plusieurs fichiers "composants.pin" correspondants aux différents modèles de
composants qui doivent être implantés sur la carte circuit imprimé.
- Un fichier "nom__de_figure.cls" dans lequel on définit la classe des
signaux ainsi que la rotation et le placement des différentes instances
des modèles. Par défaut la classe d'un signal est la classe 0.
Dans les fichiers, les lignes vides ou commençant par # sont ignorees.
1. Organisation du fichier "nom__de_figure.pin"
________________________________________________
Dans ce fichier on doit placer, pour chaque connecteur de la carte, les 2 rubriques dans l'ordre :
Rubrique 1
----------
/MODELE <instance> <modele> <rotation> <(coordonnees)>
<instance> correspond au nom d'instance du connecteur.
<modele> correspond au nom du fichier Eagle décrivant le connecteur. Il
est de la forme : nom_modele@nom_bibliotheque
<rotation> On peut mettrel'une des valeurs : R0, R90, R180, R270.
<(coordonnees)> position provisoire du connecteur (x y). Il doit etre entierement
dans la zone utilisable actuellement 100x160 mm.
Rubrique 2
----------
/CONNECTEURS
On énumère les signaux du connecteur à raison
d'un signal par ligne, sous la forme :
<repère de broche> <nom du signal>
EXEMPLE
/MODELE P1 IBM8BIT@con-pc R90 (6.5 0.5)
/CONNECTEURS
B1 VSS
B3 VDD
B29 VDD
B31 VSS
A2 DATA(7)
A3 DATA(6)
A4 DATA(5)
A5 DATA(4)
A6 DATA(3)
A7 DATA(2)
A8 DATA(1)
A9 DATA(0)
A11 AEN
2. Organisation des fichiers "composants.pin"
______________________________________________
Dans ce fichier doit placer 2 rubriques dans l'ordre :
Rubrique 1
----------
/MODELE <modele>
<modele> correspond au nom du fichier Eagle décrivant le connecteur. Il
est de la forme : nom_modele@nom_bibliotheque
Rubrique 2
----------
/CONNECTEURS
On énumère les signaux du composant sous la forme :
<repère de broche> <nom du signal>
EXEMPLE
/MODELE DIL08@dil (0.5 3.0)
/CONNECTEURS
1 DATA
2 CLK
3 OE_N
4 CE_N
5 VSS
6 CEO
7 VPP
8 VDD
3. Organisation du fichier "nom__de_figure.cls"
________________________________________________
Dans ce fichier doit placer 2 rubriques dans l'ordre :
Rubrique 1
----------
/CLASS
On énumère ensuite les signaux avec leur numéro de classe, à raison
d'un signal par ligne, sous la forme :
<nom du signal> <numéro de la classe>
Inutile d'énumérer les signaux de classe 0. Cette rubrique peut être vide,
mais il doit y avoir "/CLASS".
Rubrique 2
----------
/PLACEMENT
On énumère ensuite les instances avec la rotation à effectuer et les
coordonnées de placement, à raison d'une instance par ligne, sous la forme :
<nom de l'instance> <rotation> <coordonnées>
<rotation> On peut mettrel'une des valeurs : R0, R90, R180, R270.
<(coordonnees)> position provisoire du composant (x y). Il doit etre entierement
dans la zone utilisable de la carte, actuellement 100x160 mm.
EXEMPLE
/CLASS
CLK 1
VSS 2
VDD 2
/PLACEMENT
IC1 R90 (4.25 1.2)
IC2 R180 (3.25 1.2)
IC3 R0 (3.25 1.4)
4. Ligne de commande
_________________
m2e [-v n ] [-o output] figure
-v definit le niveau des messages affiches ; par defaut 1
si 0 : affiche seulement les erreurs
si 1 : affiche les erreurs et les warning
si 2 : affiche en plus les noms des fichiers .pin utilises
si 3 : mode trace pour le debug
5. Variable d'environnement
________________________
M2E_PIN_LIB doit etre definie. Elle donne les chemins d'acces aux fichiers .pin

View File

@ -0,0 +1,22 @@
## Process this file with automake to produce Makefile.in
AM_CFLAGS = -g
bin_PROGRAMS = m2e
m2e_LDADD = -lMpu -lMlu \
-lMcl -lMcp \
-lMal -lMap \
-lMsl \
-lMel -lMgl \
-lMhl \
-lMvg \
-lMmg \
-lMlo \
-lMph -lMut \
-lRcn -lm
m2e_SOURCES = m2e.c m2e.h

1079
alliance/src/m2e/src/m2e.c Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,42 @@
/* USER field codes */
#define DEDALE 7683
#define PLACEMENT "/PLACEMENT"
#define CLASSE "/CLASS"
#define MODEL_PIN "/MODELE"
#define ALIM_PIN "/ALIM"
#define PL_ALIM_PIN "/PLAN_ALIM"
#define PS_ALIM_PIN "/PISTE_ALIM"
#define CONN_PIN "/CONNECTEURS"
#define IMPL_DED /IMPLANTATION
#define MAXL 127 /* nombre max de car par ligne en entree */
#define MAXREP 5 /* nombre de "repere,broche" par ligne */
#define FIGURE 0
#define INSTANCE 1
#define SIZE_BUF 512 /* taille du tampon pour la concatenation */
int LigneSuiv(char *pbuf);
int LigneSlash(char *pbuf);
int OpenFileOut(char *name);
int OpenTempOut(void);
int GetPtrFichPin(char * pnom);
int GenRepFig(char *pbuf,char *prep);
int GenAlimFig(char *pbuf);
int GenAlimInst(char *pbuf);
void GenPatteAlim(char *pbuf,char *prep,char instance);
int NotAlimName(losig_list *ps);
void SauvPinCon(locon_list *pcon,char *pbuf,char *pb,char *pd);
int TraitConnect(locon_list *pcon,char *pbuf,char *prep);
int TraitFichFig(lofig_list *ptfig);
int GenRepIns(char *pbuf,loins_list *ptins);
int TraitFichInst(loins_list *ptins);
int TraitListInst(lofig_list *ptfig);
void ConcatFich();
void TraitSignaux(lofig_list *ptfig);
int ParseCommand(int argc,char *argv[]);
int LoadPinPath(void);
int ChercheSignal(losig_list *psig,char *pname);
int TraitFichClass(lofig_list *ptfig);
loins_list* ChercheInst(loins_list *pins,char *pname);