bandeau Aconit

Navigation : Publications  >  Les nouvelles  >  Cassandre, un Langage de Transferts entre Registres


Pour nous écrire :


© 2002-2020 - Aconit

Cassandre, un Langage de Transferts entre Registres


Cassandre est un Langage de Transferts entre Registres (RTL) dont la conception et la réalisation nécessitèrent des recherches approfondies, menées entre autres au sein de l’IMAG, laboratoire auquel Jean Mermet était, à l’époque, rattaché en tant que jeune ingénieur en informatique. Il témoigne dans l’article qui suit des tenants et aboutissants de cette aventure qui dura environ dix ans.

CASSANDRE

Chronologie et intervenants (Juillet 66 – Septembre 75)
Par Jean P. MERMET, ancien directeur de recherches au CNRS. Business angel.

En Juillet 1966 je sortis de l’ENSIMAG, dont j’avais suivi la scolarité en étant en même
temps chercheur à temps partiel, depuis 3 ans, dans l’équipe du professeur J. Kuntzmann.
J’avais fait à ce titre quelques publications en algèbre de Boole.
Ce dernier profita de mon statut tout neuf d’ingénieur pour me présenter à M. Sokoloff de la
compagnie Thomson qui lui rendait visite avec un étrange manuscrit à la main. Il s’agissait
d’une longue formule écrite en APL (A Programming Language), langage inventé par
Kenneth Iverson, chercheur chez IBM (b). M. Sokoloff avait, comme tous ceux qui l’ont
étudiée, été séduit par la description complète et formelle du système 360 en APL (a). Il était
convaincu qu’un système digital pourrait un jour se dériver par compilation d’une description
formelle semblable et souhaitait lancer une étude sous forme de coopération entre le
laboratoire IMAG et la Compagnie Française Thomson-Houston-Hotchkiss-Brandt (CFTH-
HB).

Cette coopération prit la forme du contrat 66 00 069 de la DGRST. Elle fut d’autant plus
facile et efficace que mon partenaire chez CFTH-HB se trouva être F. Lustman, qui avait
terminé depuis peu une thèse de docteur ingénieur à l’IMAG. Elle commença par un examen
critique d’APL et une large étude bibliographique qui sont résumés dans l’introduction de ma
thèse de docteur-ingénieur (10).

S’en suivirent les définitions de CASSANDRE, langage synthétisant l’état de l’art en 1966-
67, et de ses deux compilateurs, l’un destiné à produire un programme de simulation du
système logique décrit dans ce langage, l‘autre conçu pour générer les circuits matérialisant
une réalisation de ce système. Ceci fut effectué pour l’essentiel en 18 mois (1), (2) et publié
peu après (3), (4), (6).

Bientôt, se joignirent à nous F. Anceau (5), (7), (8), qui entreprit le développement d’un
simulateur de CASSANDRE, codé, à fins de performances, en langage assembleur 360, et
P. Liddell (5), (7) qui fit, auprès de moi, une thèse de 3ième cycle sur la compilation, en
schémas logiques, de descriptions CASSANDRE (9).

I –CASSANDRE un langage RTL

En 1966, aucun langage HDL (Hardware Description Language) n’était commercialisé.
L’industrie de l’EDA (Electronic Design Automation) n’allait surgir que quinze ans plus tard,
en 1981, avec la création concomitante, sur la côte ouest des USA, des sociétés MENTOR
Graphics, DAISY Systems et VALID Logic. La conception assistée par ordinateur (CAO) des
circuits consistait alors essentiellement à utiliser des formalismes graphiques aidant les
concepteurs à placer et interconnecter, sur les cartes de circuits imprimés, les boitiers de
composants de la technologie de l’époque et des programmes de vérification des
connections, d’optimisation du nombre de couches planaires nécessaires pour éviter des
courts circuits, et autres vérifications électriques réduisant le nombre d’itérations du design et
du prototypage. Les outils utilisés étaient des stations de travail graphiques, dont les
vendeurs, comme Computeur Vision ou Calma produisaient aussi bien le hardware que les
programmes et qui s’appliquaient à tous les domaines de l’industrie bien que, jusqu’à
l’apparition de logiciels 3D, leur principal marché fût celui des circuits imprimés. De petites compagnies apparurent, qui constituaient des bases des composants disponibles. Certaines offrirent un modèle exécutable macro-généré à partir des fonctions cataloguées dans une telle base, sorte de simulateur au niveau booléen qui permettait ainsi de vérifier le fonctionnement et les performances attendus à partir d’un prototype virtuel essentiellement topologique.
C’est sur cette base technologique que s’installa le trio MDV (Mentor, Daisy, Valid), le
premier utilisant les toutes nouvelles stations Apollo et les deux autres leurs propres stations
de travail développées pour la circonstance.

Mais, il existait, dès le milieu de la décennie 60, chez les fabricants d’ordinateurs comme
IBM, Burroughs, DEC, aux USA, et même CAE en France, des études ayant débouché sur
l’emploi de langages propres (b), (c), (d) de nature fonctionnelle et se plaçant à un niveau
d’abstraction plus élevé où les primitives n’étaient plus des variables booléennes scalaires,
des flip-flops ou des fonctions à petit nombre d’entrées, mais des variables de type tableaux,
des fonctions combinatoires de complexité arbitraire et des éléments de mémorisation,
registres, (eux-mêmes de type tableaux) pour stocker l’information.

Le fonctionnement de l’ensemble était supposé synchronisé par une ou plusieurs horloges.
Le postulat de base était ainsi que tout transfert d’un élément de type registre à un autre,
quel que soit le nombre de couches des circuits combinatoires les séparant, pouvait
s’effectuer entre deux impulsions d’horloges consécutives. Les langages offrant ce type de
spécifications s’appelèrent RTL : Register Transfer Languages ou langages de transferts
entre registres. CASSANDRE (Conception Assistée et Simulation des Systèmes logiques,
leur ANalyse, Description et REalisation) appartient à cette catégorie.

Évidemment, cette hypothèse de synchronisme des descriptions RTL requiert des outils de
vérification temporelle complémentaires de l’outil de simulation : soit pour ramener un
module critique au niveau de modélisation réseau de portes logiques temporisé, soit pour
ajouter des assertions de propriétés temporelles dans le langage lui-même, comme ce sera
fait plus tard dans les extensions de CASSANDRE.
L’adoption de RTL’s dans l’industrie fut longue, car elle allait changer la méthodologie de
conception : de « bottom up », du niveau structurel au niveau fonctionnel, à « top down »,
d’un niveau fonctionnel à une implantation à travers un compilateur de circuits logiques
(hardware compiler). C’était pourtant le seul moyen d’accompagner la croissance explosive
de la complexité des circuits. Ce type d’outil fut un des objets de nos travaux avec
CASSANDRE.
Au début des années 80, EFCIS, filiale du LETI depuis 1972, qui possédait un excellent
hardware compiler « maison » (ayant bien quelque familiarité avec celui de CASSANDRE vu
l’implication de notre transfuge Hanczakowski), se vit proposer celui de Synopsys qui était
encore un peu « prototype ». EFCIS conclut pourtant avec Synopsys.
Cet épisode me fit comprendre la raison d’être principale de l’industrie EDA. Les concepteurs
de circuits doivent concentrer toutes leurs forces face à une concurrence mondiale et sans
pitié. Il leur faut donc externaliser toute technologie qui peut l’être, quitte à la racheter ensuite
très cher. D’ailleurs, en la mutualisant avec leurs concurrents, ils se prémunissent contre le
risque de voir cette technologie hautement stratégique disparaître. Enfin, en organisant une
concurrence féroce au sein de l’EDA, ils exercent une grande pression sur les prix, ce qui
explique le paradoxe que cette niche technologique hautement vitale, n’a jamais pesé plus
de 1-2 % de l’industrie microélectronique (aujourd’hui 10,8 milliards de dollars par rapport à
plus de 500 milliards de dollars).

II Caractéristiques du langage

Ces langages destinés à décrire in fine des circuits électroniques, du « hardware », devaient
donc se voir attribuer une sémantique hardware, bien éloignée de celle des langages de
programmation dont ils mimaient le plus souvent la syntaxe, mais qui avaient, eux, une
sémantique algorithmique. Cette distinction était en 1966 encore un peu confuse, d’où les
nombreuses discussions sur l’usage du langage d’Iverson, qui, comme son nom l’indique, est un langage de programmation. S’ajoutait à cela le fait que la syntaxe choisie pour les
premiers HDL, dont CASSANDRE fait partie, était « de type Algol », très éloignée de celle
d’APL. Néanmoins, certains opérateurs d’APL apportaient une concision et une puissance
d’expression du parallélisme, à travers l’usage de tableaux, soit de variables logiques, soit
même de structures répétitives de modules de « hardware », qui nous les firent adopter.
Dès lors qu’ils agissaient uniquement sur les primitives élémentaires de CASSANDRE, qui
avaient une « sémantique hardware » précise, ils héritaient de cette sémantique.
En bref, les éléments primitifs de CASSANDRE sont Unité, Registre, Signal, État.
Une Unité représente un module élémentaire du matériel décrit. C’est une entité structurelle.
Elle peut contenir un réseau d’autres unités interconnectées, dont chacune, à son tour, peut
contenir un réseau d’unités, etc… C’est donc une notion récursive qui définit une hiérarchie
de modèles imbriqués. Les feuilles de cette hiérarchie sont des unités dont les contenus sont
entièrement synthétisés. Une telle unité intégrant une importante fonction synthétisée testée
et réutilisable dans d’autres conceptions serait aujourd’hui appelée IP.

Exemple de conception hiérarchique

Arbre d’imbrication de toutes les unités du Z0001 (outil David, Ménard)

En 1966 Moore n’avait pas encore énoncé son empirique loi sur la croissance de la
complexité des circuits ; une boutade qui est miraculeusement restée vraie pendant 50
ans. Mais on pouvait pressentir que la complexité des modèles associés serait
exponentielle. Or, un circuit dont le nombre de transistors aurait doublé tous les 18 mois
pendant 50 ans, en contient 2**33. Et une unité contenant une hiérarchie à 10 niveaux
d’unités, dont chacune contient aussi 10 unités, en contient au total 10 milliards. Les 2
nombres sont du même ordre de grandeur. Cette hiérarchie doit être bien construite, pour autoriser, par exemple, un concepteur, à travailler simultanément sur 3 à 4 niveaux voisins.

L’unité Z0001, sommet de la hiérarchie produite par le compilateur de circuits logiques Liddell-Fantino. Mais l’unité, ne contient pas que de la structure, sauf au niveau terminal. Elle contient aussi
des fonctions booléennes, des connections, des variables d’état et leur séquencement, des éléments de mémorisation.

Un Registre représente un tableau d’éléments de mémorisation. Ce peut être un vecteur, une matrice ou un vecteur de matrices, etc... Chaque élément d’un registre a une sortie qui est de type Signal et 3 entrées : une donnée, une horloge et une condition. Seule l’occurrence d’un signal d’horloge, éventuellement conditionné, peut changer le contenu d’un
registre en lui affectant la valeur de l’entrée donnée.
Un Signal représente une sortie de circuit combinatoire ou une sortie de registre. Il dénote
aussi les entrées donnée et condition d’un registre ou encore l’opérande d’une fonction
booléenne dans un circuit combinatoire. Un signal a donc la sémantique d’une connexion. Il
n’a une valeur stabilisée qu’en fin de cycle. Il ne peut pas être modifié par une horloge en
mode synchrone. Toutefois Anceau (6), utilisera en mode asynchrone un opérateur de
dérivation sur front montant ou descendant, permettant de fabriquer des horloges locales. Un signal peut être un tableau de dimensions quelconques, comme un registre.
Un Etat dénote un état pas encore encodé d’un automate d’états finis. Chaque unité peut
en effet avoir une structure de contrôle locale, constituée d’une liste déclarée d’états et de
transitions, conditionnées ou pas, entre ces états, dénotées par des instructions Allera, et
donc un automate d’états fini contrôlant son comportement. On fait l’hypothèse, qu’au
moment de la synthèse, un codage sera créé pour cet ensemble d’états, ainsi qu’un registre
d’état pour stocker l’état courant de l’unité. En gardant ainsi toute liberté d’implémentation du contrôle d’une unité, on se réserve la possibilité de réaliser un contrôle micro-programmé où
chaque état deviendra l’adresse d’un mot d’une mémoire ROM, contenant la liste des
conditions qui libèrent l’exécution, en parallèle, de toutes les actions possibles, au sein de
l’unité, sous cet état. Cela ouvre le champ très vaste de la microprogrammation, de la
compilation de microprogrammes pour une nouvelle machine et de l’optimisation
d’architecture et de coût-performances que cela permet.
Ce domaine sera le champ le plus exploité de l’utilisation de CASSANDRE dans l’industrie.
Bien entendu le langage contient bien d’autres notions fonctionnelles : opérateurs booléens,
augmentés de certains opérateurs d’Iverson, portant sur les variables Registre ou Signal,
opérateurs de transition d’État, opérateur condition... Ces opérations s’exécutent en parallèle
dans un même état. L’instruction est une forme abstraite de micro-instruction sans limite de
parallélisme. Ce dernier reste une décision de conception.
Il comporte aussi une arithmétique de syntaxe d’Algol, portant sur les variables indices, avec
une sémantique purement structurelle et des opérations de modification de tableaux,
décalage, rotation, concaténation, qui ne modifient que les connections sans ajouter de
matériel.
Un exemple très simple peut donner un avant-goût du « style » d’une description, mais pour
plus de détail sur ces notions mieux vaut se reporter à la partie b de (10).
Description en CASSANDRE d’un additionneur parallèle 16 bits

Génération en Algol d’un modèle simulable de l’unité ADD CASSANDRE

Cet exemple montre la différence entre sémantique algorithmique, par nature séquentielle et
sémantique “hardware” massivement parallèle.
Dans l’état ETAT3, en CASSANDRE, si D vaut 0, les registres M, L, AD reçoivent en
parallèle respectivement 16, 1, 1 bits. Le registre implicite d’état reçoit le code de ETAT4.
Dans la procédure Algol, il faut séquentiellement charger chacun des 16 bits de M, ceux de
L, AD, XL, XAD et enfin les 16 bits de XM, puis exécuter allera ETA4. Soit finalement 37
cycles au lieu d’un seul. Mais, ce rapport d’étirement de 37 du temps doit être multiplié par
celui causé par le compilateur d’Algol (ou autre langage de programmation) en code
machine exécutable.
In fine, le rapport entre temps de simulation et temps simulé sera plutôt entre 10**4 et 10**6.
Après cette période initiale de conception du langage et de prototypage des outils associés,
il me semblait très souhaitable d’aller confronter nos résultats à l’avis des auteurs américains
de travaux du même ordre, repérés par notre étude bibliographique. Avec quelques craintes,
je demandai au Pr. Kuntzmann de m’envoyer en mission aux USA pour cela. Contrairement
à mes craintes, il trouva l’idée excellente.
Mon intention était d’identifier d’éventuels travaux en cours au MIT et à l’Université de
Stanford, ce que nous n’avions pas fait jusqu’alors et de rendre visite à Schlaeppi, Iverson,
Chu et Breuer.
J’allai d’abord au centre de recherche d’IBM à Yorktown Heights. Hans Schlaeppi, auteur de
LOTIS avait quitté le laboratoire IBM de Zürich pour celui de Y.H. Je passai la première
journée avec lui et il me suggéra nombre d’additions relatives au timing des modèles et au
séquencement basé sur l’ordonnancement des délais.
Je revins le lendemain travailler avec Kenneth Iverson. Comme tous les chercheurs du labo
de Y.H il disposait d’une minuscule alvéole de travail, mais derrière celle-ci il avait,
pratiquement pour lui tout seul, un 360/91, la plus grosse machine de l’époque,
habituellement réservée aux militaires. Pour l’anecdote : il fut enchanté de voir les
opérateurs de son langage repris dans CASSANDRE mais surpris que nous les appliquions
à des tableaux en dimension arbitraire, alors qu’à l’époque il se contentait des vecteurs et
des matrices. Je lui dis que, quitte à généraliser, autant généraliser complètement. Il en rit,
un peu sceptique quant à l’utilité d’un tel luxe. Mais plus tard quand je le revis à une école
NATO à Copenhague, il me dit avec un grand sourire qu’il avait adopté cette généralisation
en APL.

Les jours suivants j’allai à Washington et au campus de College Park pour rencontrer Y. Chu.
Il me dit en substance que CASSANDRE était très bien mais trop compliqué pour
l’enseignement. J’aimais la simplicité de CDL mais il n’avait pas le pouvoir de traiter des
vrais projets industriels et je fus déçu de ne trouver aucun projet d’extension pour cela. Il me
proposa de traduire son livre en français et de partager les droits d’auteur sur la version
traduite.
À UCLA, j’eus avec M. Breuer une discussion très instructive sur le codage de la partie
contrôle des unités CASSANDRE.

III - Équipe de développement. Environnement technologique et industriel

Le centre scientifique IBM de Grenoble fut créé en 1967 pour mener des travaux avec
l’IMAG sur le thème de l’exploitation conversationnelle des ordinateurs. Il fut dirigé jusqu’en
1969 par Jean-Jacques Duby et ensuite par Max Peltier puis Alain Auroux. L’installation
dans 3 universités européennes Grenoble, Pise et Munich de machines IBM.360/67 instaura
un environnement technologique privilégié pour l’enseignement et l’ingénierie logicielle.
CASSANDRE en profita immédiatement. En plus de la productivité accrue des
développeurs, grâce au time-sharing et au mode conversationnel, des outils comme le
transformateur de grammaires de Griffiths et Peltier (h) apportèrent une aide importante à
Anceau, Couturier, Perron, Liddell, Doussy, Bogo, David, Fantino, Ménard et finalement
Bressy, dans le développement des compilateurs de simulation, synthèse et implantation
graphique des modèles CASSANDRE.
Un autre facteur de grande émulation fut la présence au sein du centre de recherche du
CEA à Grenoble, du LETI, créé et dirigé en 1967 par le Capitaine de Vaisseaux Michel
Cordelle.
Les équipes sous la direction de J. Kuntzmann, dont la nôtre, avaient des réunions de travail
quasi-hebdomadaires avec l’équipe de conception de circuits de Jacques Lacour (futur
directeur de 1983 à 1991), Joseph Borel (plus tard EFCIS, puis ST-Micro), Michel Henry...
La marine, grâce à Louis Néel, directeur du Centre d’études nucléaires, prix Nobel, certes,
mais aussi Amiral de réserve, avait contre toute intuition, une grande importance à Grenoble.
C’est ainsi que, pour exécuter mes obligations militaires, je m’engageai fin 1968 pour 18
mois comme élève-officier de marine et fut rapidement détaché au LETI dans l’équipe de
Jacques Lacour (J). Cette affectation fut pour moi une aubaine, car, non seulement elle me
permit de combler, en partie, l’immense lacune de mes connaissances dans le domaine de
l’électronique des circuits intégrés, mais encore de consacrer, avec la bénédiction de J.
Lacour, le temps requis pour que les développements de Cassandre ne soient en rien
freinés. De plus l’équipe du LETI servit d’alpha-testeur pour ces développements.
Dans l’industrie, Télémécanique Informatique (TI) se révéla être un partenaire de choix.
Créé par Guy Jardin en 1962, le département automatisme et électronique de la Société
d’électricité Mors, produisit bientôt le calculateur industriel MAT 01. Mais ce département, qui
s’installa à Crolles avec un effectif atteignant 170 personnes en 1967, fut vendu en
décembre à la société Télémécanique Électrique dont il devint la division informatique
industrielle : T.I.
Dès le début de CASSANDRE, la coopération fut établie avec Charles Malka, mon voisin de
salle de classe à l’ENSIMAG. Au fil des ans, pas moins de 8 personnes de l’équipe
CASSANDRE allaient rejoindre Télémécanique Informatique. Une nouvelle usine fut créée à
Echirolles (14 000 M2) pour héberger 700 personnes, dont 400 ingénieurs et cadres en
1972.
Citons Deguerry qui la dirigeait : « La logique câblée est progressivement abandonnée pour
la création d’une gamme d’ordinateurs pour le contrôle industriel. Sont mis sur le marché
différents ordinateurs destinés aux applications temps réel tels que : T2000 (1968) ; T1000
(1969) ; T1600 (1972) ; Gamme Solar (1975). Les effectifs de la division dépassent 1000
personnes en 1976. Alors que le MAT 01 s’était vendu à quelques dizaines d’exemplaires
(20 à 25), les ventes de T2000 atteindront 700 à 800 exemplaires, celles du T1600 quelques
milliers et le Solar 16 000 unités vendues dans le monde, ce qui le place au 2 rang mondial
en informatique industrielle ».
Mais, l’étatisme bureaucratique, en France, prétend faire mieux que le darwinisme industriel.
Les stratèges des « french ordinateurs » inventèrent « un plan calcul de l’informatique
industrielle ». Ils créèrent la SEMS, en 1976, au lieu de laisser jouer la concurrence...
Le contrat CRI « CASSANDRE et l’industrie » nous donna l’occasion de développer le projet
T0001 en, collaboration avec C. Malka, comme contre-projet, sans objectif de réalisation, du
calculateur T1000. Le but était d’abord d’utiliser, dans une architecture de mini-ordinateurs,
des circuits MSI, nouveaux en 1970. L’objectif était d’arriver à un optimum du moment quant
au compromis coût-performances, et, en même temps, de familiariser une équipe de T.I à la
microprogrammation de type « à mots longs », avec les remises en cause architecturales
que cela peut entrainer.
Après avoir rempli sa mission, le T0001 ainsi conçu fut détourné vers un usage
pédagogique. Sous le nom de Z0001, il servit de support à l’examen de microprogrammation
en C4 de maîtrise informatique, de sujet de travaux dirigé en 3ième année de l’ENSIMAG et il
fournit à Darondeau un « projet d’étude d’un mini-ordinateur micro-programmé entièrement
compatible avec le 360 ».
Totalement décrit en CASSANDRE il servit d’illustration à la plupart des concepts de la partie
A de ma thèse d’état (14) et aussi de cobaye aux traitements du langage des parties C et D.
Ce mini-ordinateur virtuel fut doté d’un chemin de données de 4 bits, comme le TETRAMAT,
développé et breveté avec l’IFP (j), mais les 2 projets étaient néanmoins totalement
différents. Grace à une micro-programmation à mots longs, le Z0001pouvait, à très faible
coût, émuler une architecture de 16 bits voire 32 bits.
C’est probablement ce que faisait le plus petit modèle de la gamme SOLAR, qui tient sur une
seule carte. On ne peut prétendre y voir nécessairement un lien généalogique entre les
deux.

IV – Commercialisation de CASSANDRE

En Mai 1969, le délégué à l’informatique accorda au Pr. Kuntzmann un contrat du CRI pour
faire un audit de CASSANDRE chez différents industriels, contrat nommé ci-dessus
« CASSANDRE et l’industrie ». Ceci nous apporta des relations nouvelles avec la SPERAC,
Crouzet, TITN, Philips data system, Institut Français du Pétrole, Électronique Marcel
Dassault.

La SPERAC, enfant chéri du plan calcul (ou « dépotoir » selon « French ordinateurs »),
avait développé un système interne appelé CRISSMASS et nous devions le comparer à
CASSANDRE. C’était le pensum incontournable du contrat. Il fut exécuté sommairement.
PHILIPS Data Systems initialisa avec M. Denoyelle une coopération très appréciée des 2
cotés : elle devait se poursuivre pendant vingt ans. Les filiales françaises et américaines
utilisèrent le simulateur pour la conception de leurs mini-ordinateurs et s’acquittèrent de
royalties via CEGOS.
CROUZET avait à développer pour la Direction de l’aviation civile, le système
CAMPANULE (Chaîne Adaptable par Microprogrammation pour Analyse Numérique et
Logique). Ils prirent contact avec le LETI qui les aiguillèrent vers nous. La coopération avec
M. Theul, fut très facile, grâce à leur proximité géographique. Ils choisirent CASSANDRE
pour la mise au point des microprogrammes du projet et firent beaucoup évoluer
l’environnement du système et la méthodologie en mettant en évidence en continu les
difficultés d’usage qu’ils rencontraient.
TITN (Traitement de l’Information. Techniques Nouvelles) nous proposa de développer
avec eux l’Ordoprocesseur, petit ordinateur micro-programmé. Ce fut l’occasion
d’embaucher A. Lux, le major à l’examen de microprogrammation de 1968.
L’ordoprocesseur fut entièrement décrit en CASSANDRE et simulé. L’élaboration des
micro-instructions fit apparaitre le besoin d’un macro-assembleur de micro-programmes.
IFP (Institut Français du Pétrole). La coopération autour de l’invention du TETRAMAT(k) fut
la plus complète pour CASSANDRE, puisqu’elle comporta toutes les phases possibles,
avec d’abord la formation des utilisateurs du langage et du système (Nov.-Déc. 1970), puis
l’écriture et la simulation des unités logiques élémentaires, le regroupement de ces unités
dans une unité globale et la simulation de celle-ci (Jan.- Mars 1971), suivie du début
d’écriture des micro-programmes et leur simulation, et du feed-back des résultats obtenus
sur le matériel et des modifications induites de celui-ci (Mai-Juin1971). La suite et fin de la
simulation des microprogrammes s’effectua chez la CEGOS.
Signature d’un contrat de distribution de CASSANDRE avec CEGOS-informatique
Le 15 Déc. 1970, le Pr. Kuntzmann décida de créer une équipe de recherche à l’ENSIMAG.
L’équipe CASSANDRE, augmentée de C. Le Faou, porteur du programme de simulation
électrique IMAG3, en constituait l’essentiel. Ce transfert accompagnait l’idée de constituer
entre l’INPG et le CEA un Centre Grenoblois de Logique et d’Informatique pour : « l’aide à la
conception, à la fabrication et à l’évaluation des composants et systèmes électroniques ».
Ce CEGLI devait avoir pour volet industriel un GIE pour la CAO avec la société Matra et le
CNET. Les logiciels CASSANDRE, IMAG3, entre autres, allaient être exploités par le GIE.
Je passai un certain temps, à la demande du Pr. Kuntzmann, sur la rédaction des statuts et
la négociation de ce GIE. Mais au moment de conclure, ce dernier annonça qu’il venait de
confier la commercialisation d’IMAG3 à la société SESA.
Ainsi prit fin, début 1971, la première velléité de créer une société EDA française.
Je pris donc rendez-vous à mon tour avec M. Stern de SESA puis avec les sociétés, CERCI,
ISS, CEGOS, pour négocier la diffusion de CASSANDRE. L’affaire fut conclue avec CEGOS,
moyennant versement de redevances égales à 25% des prix de vente ou location. (l).
Parmi les sociétés clientes, on peut citer ; Thomson DIS/SCAS, LTT, Électronique Serge
Dassault, Signetics, North American Philips, RTC, TRT, CTI, LEP, Philips Eindhoven,
MATRA.

V – CASSANDRE : bénéfices et interrogations

CASSANDRE, ses publications, ses outils associés implantés dans des universités comme
celles de Pise, ou Institut Weismann, leur usage par une dizaine de compagnies en France,
aux Pays Bas, en Angleterre, aux USA, apportèrent à notre équipe une certaine notoriété qui
allait s’avérer déterminante dans nombre de projets internationaux qui marquèrent l’après
CASSANDRE. J’en prendrai quatre exemples.

Définition de CONLAN :

L’International Symposium on “Computer Hardware Description Languages and their
Applications”, tenu à New York, N.Y., USA, du 3 au 5 Septembre 1975, où Dominique
Borrione présenta une contribution personnelle et aussi celle de l’équipe CASSANDRE (17),
décida la création d’un groupe pour la définition d’un standard mondial des HDL : CONLAN.
Ce groupe constitué de 4 membres américains et deux européens, le Pr. Piloty de Darmstadt
et D. Borrione, elle-même, fut une source d’inspiration pour notre projet CASCADE
d’intégration en un seul langage d’une famille de dialectes HDL : IMAG3 au niveau
électrique, CASSANDRE au niveau RTL, LASCAR au niveau émulation de l’arithmétique et
LASSO au niveau système, ces deux derniers dus à D. Borrione.
Création de VHDL :

En 1982 MATRA nous mit en relation avec le département de la Défense américain (DoD)
qui s’apprêtait à lancer un appel d’offre pour définir le langage qui serait son standard pour le
projet VHSIC, comme il l’avait fait quelques années plus tôt pour son langage de
programmation, appel remporté alors par J. Ichbiah de CII qui avait créé le langage ADA.
Le DoD nous envoya pour revue et critique son appel d’offre et je fis part à l’officier
responsable de notre intention d’y répondre. Je pensais que le projet CASCADE et l’équipe
associée nous plaçaient en de bonnes conditions. Mais ce ne fut pas du goût d’IBM qui
s’était déjà fait griller par les « frenchies ». Ils obtinrent le classement confidentiel défense 3
mois avant le lancement du « call for tender ». J’en conçus une certaine rancune, que je pus
défouler quand le DoD voulut faire de VHDL un standard mondial civil et que j’organisai
l’entrisme européen dans la standardisation IEEE.

VHDL IEEE/1076-1993, comme standard civil :

L’avènement de VHDL marqua la fin de CASSANDRE et de ses développements.
Cependant avec la « First European Conference on VHDL Methods » que j’organisai à
Marseille en 1990, et celles qui suivirent annuellement, la participation européenne à la
standardisation de VHDL monta rapidement en puissance. De multiples groupes
thématiques « system level simulation », « high level synthesis », « analog extensions » qui
donna VHDL/AMS... furent créés en Espagne, UK, Allemagne, Suisse. Ce travail aboutit à
des corrections et des changements majeurs du standard, reflétés dans la version 1993 et
fut reconnu par les IEEE (m).

Projets Européens :

En 1982 la commission de l’UE décida de financer la recherche sur les systèmes intégrés de
CAO de VLSI. Nos longues relations avec le groupe Philips nous permirent de constituer très
rapidement un consortium formé des sociétés TMC(UK), RTC, CTI, TRT (F) APT (NL), de la
société italienne SGS et du Politecnico di Torino. Le projet CERES pour « CASCADE
Environment for the Realization of Electronic Systems », sous notre maîtrise d’œuvre, fut le
premier contrat de recherche jamais financé par la CEE. Son budget était d’environ 70M-F
pour un total de 180 personnes-années.

Pour l’anecdote, le second contrat financé fut celui présenté par le centre de recherche du
CNET à Grenoble. On peut songer mélancoliquement à ce qu’aurait pu être le GIE du
CEGLI pour la CAO électronique, avorté en 1970 (supra) en chantant : « Tous les regrets
sont superflus, n’en parlons plus » !

Conclusion

Si l’on veut maintenant se pencher sur le passé de CASSANDRE, se pose inévitablement la
question : « Aurions nous pu faire mieux » ?
Dans le domaine technique on peut toujours faire mieux. Mais la carrière de CASSANDRE
n’a pas été un succès ou un échec à l’aune de sa qualité technique, mais à celle de
l’industrie européenne des circuits électroniques.
Pourquoi l’Europe a-t-elle su produire un leader mondial en CAD-CAM, comme Dassault
Systèmes qui contrôle aujourd’hui 30% du marché mondial, malgré Calma, Computer Vision
puis AutoDesk ? Parce que le marché Européen était supérieur à ceux de l’Amérique du
Nord et d’Asie. (ComputerVision faisait, en 1985, 60% de ses ventes en Europe).
Et pourquoi l’Europe n’a pas su produire Synopsys, alors que ses créateurs sont
européens ? Parce que le marché européen de la micro-électronique a toujours été
beaucoup plus petit que le marché américain (et même désormais que celui d’Asie).
La question qui suit alors est : « CASSANDRE pouvait-il être VHDL ou Verilog à la place de
Verilog » ? Et la réponse est aussi négative, mais pour d’autres raisons.
À l’issue du projet CERES, une petite société fut créée, ESTI, pour essayer de mettre
CASCADE sur le marché. L’ANVAR nous finança une aide au développement commençant
par une étude de marché. Je sélectionnai une vingtaine de petites sociétés américaines que
j’entrepris de visiter.
Je découvris le projet le plus proche de CASSANDRE près de Boston. Dans le sous-
bassement d’une villa, une dizaine de développeurs, pour beaucoup indiens, programmaient
frénétiquement derrière un nombre égal de stations Sun. Leur langage s’appelait Vérilog
HDL et la société s’appelait Gateway Design Automation.
Je passai deux ou trois heures avec Prabhu Goel, et nous fumes à peu près d’accord sur tout.
CASCADE était beaucoup plus ambitieux que Verilog HDL. Mais, comme disent les américains,
« il y avait trop de choses dans l’assiette ». Pour la rendre plus digeste, il aurait fallu débaucher
quelques designers de l’industrie, leur faire exprimer une hiérarchie de priorités. Et, pour le
capital-risque, il aurait fallu déménager très vite aux USA, de préférence en Californie où se
trouvait, en prime, la plus grande part du marché mondial.
À mon retour à Grenoble je fis le tour des volontaires. Il fut rapide !
Quant à faire VHDL, je l’ai dit, la procréation, même assistée par ordinateur, nous fut
interdite.
Ce fut la fin de CASSANDRE.

Bibliographie équipe CASSANDRE
1 - Lustman : « Langages exprimant le fonctionnement d’un système »
Rapport DGRST, contrat CFTH-HB, Décembre 1967
2 – Mermet : « le langage CASSANDRE »
Rapport final DGRST, contrat 66 00 069, 31 Mars 1968
3 - Mermet : « Le langage CASSANDRE », Cours d’école d’été NATO, Hières, 1968
In « Structure et Conception des ordinateurs ». Guy Boulaye, Dunod, pp.43-90.
4 – Mermet : « Description formelle d’un langage orienté vers le hardware : CASSANDRE »
Colloque sur les calculateurs embarqués sur fusées et satellites. 3-6 décembre 1968.
CNES. Paris
5 – Anceau, Liddell : « Système de traitement de descriptions en CASSANDRE. Application
à la simulation »
Colloque sur les calculateurs embarqués sur fusées et satellites. 3-6 décembre 1968.
CNES. Paris
6 – Lustman, Mermet : « CASSANDRE, un langage de description de machines digitales »
Revue Bleue de l’AFIRO, R.I.R.O, N°15, p3-35, 1969
7 – Anceau, Liddell, Mermet, Payan : « CASSANDRE, a language to describe digital
systems. Application to logic design ». Third International symposium on computer and
information sciences. Miami, déc.1969
8 - Anceau : « Le système de simulation CASSANDRE »
Rapport de fin de contrat IMAG- CFTH-HB Mars 1970
9 – Liddell : « Découpage syntaxique de systèmes logiques décrits en CASSANDRE »
Thèse de 3 ième cycle – Grenoble – Mars 1970
10 – Mermet : « Définition du langage CASSANDRE »
Thèse de docteur-ingénieur – Université de Grenoble, Mars 1970
11 – Bogo, Guyot, Lux, Mermet, Payan : « CASSANDRE and the computer aided logical
systems design “. Congrès mondial de l’IFIP – Ljubljana – 23-28 août 1971
12- Anceau, Couturier, Doussy, Perron : « Compilation et simulation du langage
CASSANDRE » Rapport de contrat CRI « industrialisation de CASSANDRE », 1972

13- Chatelin, Guyot, Hanczakowski, Menard, de Polignac : « Application du langage
CASSANDRE à la microprogrammation » Rapport de contrat DRME, Avril 1972
14- Mermet : « Étude méthodologique de la conception assistée par ordinateur des systèmes
logiques : CASSANDRE »
Thèse d’état de doctorat es-sciences mathématique – Grenoble, 10 Avril 1973.
15– Polignac (Karen de) : « Utilisation du langage CASSANDRE pour la conception
de machines micro-programmées ». Thèse de 3 ième cycle - Grenoble –1973
16 – Guyot, Martin, Mermet : « A Microprograms Metacompiler »
EUROMICRO newsletter, Vol 1, Number 1, October 1974
17 – Bressy, David, Fantino, Mermet : « A hardware compiler for interactive realization of
Logical systems described in CASSANDRE”
International Symposium on Computer Hardware Description Languages and their
Applications, New York, N.Y., USA, 3 to 5 September 1975
Travaux concomitants

a - Sokoloff : « Tentative d’emploi du produit tensoriel généralisé en langage d’Iverson, pour
la compilation automatique des schémas logiques »
Colloque d’algèbre de Boole, IMAG, Grenoble 1965
b - A. D. Falkoff ; K. E. Iverson ; E. H. Sussenguth : A formal description of SYSTEM/360”
IBM Sys.J., vol3, pp. 198-262- 1964
c– T.D. Friedman : ”ALERT : a program to produce logic design from preliminary machine
descriptions” RC 1578, IBM research, March 24, 1966
d – Le langage EPICURE. Rapport interne CAE, 1965
e - Y. Chu : “An ALGOL-like computer design language”
Comm. of the ACM, Vol 8, N°10 October 1965
f – Schlaeppi : “A formal language for describing machine logic, timing and sequencing
(LOTIS)”, IEEE trans. On electronic computers, Vol EC 13, pp. 439-448, August, 1964
e – Schorr R. : “Computer aided digital systems design and analysis using a register transfer
language” IEEE trans. On electronic computers, Vol E.C 13, pp 730-737, Dec. 1964
f – Parnas D.L : "System Function Description-Algol", (Ph.D. Thesis), Computation Center,
Carnegie- Mellon University, Pittsburgh, PA, February 1965,
g – Gorman D.F : “A system description language and its use”. Ph.D. University of
Pennsylvania, April, 1968
h – Griffiths M, Peltier P : “Grammar transformation as an aid to compiler production”

Étude N°FF2-0057, Mai 1968, Centre scientifique IBM France

Autres

i - Mario R. Barbacci : “A comparison of register transfer languages for describing
computers and digital systems”, Carnegie Mellon University Tech. Report, 1973
j – Les Échos, 5 févr. 1991
https://www.lesechos.fr/1991/02/cea-jacques-lacour-denis-randet-941078
k – « Automate électronique universel »
Brevet d’enregistrement national 71 15 912
Invention de J.F Thérond, J. Mermet, J.P. Barret, J. Cretin, 3 Mai 1971
l – « IMAG - CEGOS INFORMATIQUE » Plaquette commerciale, 1971.
m – Mermet. J : IEEE meritorious service award « for being the prime force behind the
acceptance of VHDL as European Standard Hardware Description Language », 1994
n – Mermet. J : « Langages pour la conception des circuits intégrés »
Techniques de l’Ingénieur- Traité électronique – Paris 1999
https://books.google.fr/books?id=UNIkBBRFQHgC&pg=PA5&lpg=PA5&dq=Le+langage+Epicure+pour+la+description+d
e+circuits+logiques&source=bl&ots=QJChsQmxHB&sig=ACfU3U1ugT759N0CWrrKd3SCuFrUgooh3A&hl=fr&sa=X&ve
d=2ahUKEwiJ3bKyqdXuAhVLzhoKHf3hB6QQ6AEwCXoECAoQAg#v=onepage&q=Le%20langage%20Epicure%20pour
%20la%20description%20de%20circuits%20logiques&f=false
o – Bloch. L : « Informatique et micro-électronique, première industrie mondiale ? »
Binaire

Première publication :
Mise en ligne le samedi 9 octobre 2021

Article écrit par :
Jean Mermet , René Gindre


Première publication :
Mise en ligne le samedi 9 octobre 2021

Article écrit par :
Jean Mermet , René Gindre



Haut de page | Accueil | Plan du site | Mentions légales | Administration ?