CIRCUITS LOGIQUES PERSONNALISES.

  1. Présentation :
    1. Généralités :
    2. La réalisation pratique d’un opérateur logique complexe en logique câblée consiste à utiliser des composants intégrés disponibles sur le marché. Le problème consiste à optimiser le choix des composants par rapport à des critères de coût, de performance, du nombre de composants, de la complexité des connexions.

      La notion de circuit intégré personnalisé à la demande de l’utilisateur est récente ( 1980 ) et constitue certainement l’évolution la plus importante de l’électronique depuis l’apparition du microprocesseur dans les années 1970. Les circuits intégrés à la demande, ou ASIC : Application Specific Integrated Circuits, permettent d’intégrer, sur une surface réduite de semi-conducteur ( 30 à 40 mm² ), tout ou partie des fonctions complexes propres à un équipement électronique et, ainsi de remplacer plusieurs circuits.

      Quels sont les bénéfices que l’on peut tirer des ASIC par rapport à la solution classique (association de circuits standards)?
      Essentiellement une réduction du coût global du système grâce à:

      - la diminution du temps de conception obtenue grâce à la CAO;
      - la diminution du nombre de circuits intégré nécessaires à la réalisation d’une application résultant de l’optimisation de l’intégration des fonctions sur la puce;
      - la diminution du stock de composants due à des circuits " universels ";
      - l’augmentation de la fiabilité;
      - une meilleure protection de la propriété industrielle du produit;

      Comme cette réduction de coût s’accompagne d’une amélioration des performances, en particulier de la vitesse, que demander de plus?
      Il ne faut pas oublier toutefois que la conception des ASIC passe nécessairement par l’utilisation de moyens de CAO. Tout ce petit monde n’existerait pas sans les progrès de l’informatique.

    3. Les familles d'ASIC :
    Familles d'ASIC
    La plupart de ces circuits existent en TLL, CMOS, ECL ou AsGa.
  2. ASIC précaractérisés :
  3. Les réseaux précaractérisés font appel à toutes les étapes de fabrication des circuits intégrés: de la diffusion à la métallisation. Ils sont obtenus par assemblage de fonctions prédéfinies et précaractérisées électriquement par le fabricant de semi-conducteur. Ces fonctions, fixes ou paramétrables, sont extraites d’une bibliothèque qui est en quelque sorte un catalogue logiciel dans lequel le client tire les composants qui vont constituer son circuit.

    L’étape de conception consiste d’abord à définir l’ensemble des fonctionnalités du circuit afin de juger de sa faisabilité. Il faut ensuite saisir le schéma logique du circuit. Le concepteur utilise un éditeur de schéma hiérarchisé en liaison avec une bibliothèque de cellules fournies par le fondeur dans une technologie déterminée. Le simulateur permet ensuite de tester les fonctionnalités et de détecter les erreurs ou les problèmes de timing. La définition des entrées/sorties sur le boîtier est ensuite faite. Le résultat des travaux de conception du circuit est la fabrication des masques nécessaires à la réalisation de la puce ( une dizaine de masques en général ).

    Les composants réalisables sont:

    • des cellules standards (standards cells ): gamme de circuits pouvant aller du simple transistor aux portes, bascules, compteurs...
    • des mégacellules (mega cells ): ALU, microprocesseur...
    • des cellules compilées ( compiled cells ): ROM, RAM, PLD...
  1. ASIC prédiffusés masquables :
  2. Les réseaux prédiffusés sont des matrices de fonctions logiques déjà diffusées (préparées ) dans le substrat mais non interconnectées. C’est l’interconnexion des portes qui va personnaliser le circuit en fonction de l’application visée. La réalisation des interconnexions correspond à l’élaboration par le constructeur des derniers masques nécessaires à la fabrication du circuit.

    1. Gate array :
    2. Dans le domaine logique, les circuits les plus utilisés sont les réseaux de portes (gate array). Ils sont constitués d’une matrice de portes à deux entrées placées en colonnes et séparées par des chemins d’interconnexions. En périphérie sont réparties les blocs d’entrées/sorties. Toutes ces cellules sont interconnectées par 2 ou 3 couches de métallisation.

      Caractéristiques essentielles des gate array ( valables en 1990 ... ) :

      • nombre de portes équivalents allant jusqu’à 20000 dont au moins 80% effectivement utilisées. Mais ce pourcentage diminue avec la complexité du problème ;
      • le nombre de portes est fonction du nombre de couches de métallisation données par le fabricant et le coût fonction du nombre de masques nécessaires ;
      • existent en TTL, CMOS, ECL, AsGa et même en BiCMOS ;
      • temps de propagation élémentaires de quelques 100ps à quelques ns ( fréquence d’horloge de 50MHz à 1GHz ) et des puissances dissipées de 1 à 15W selon les technologies ;
      • le routage est effectué par le fabricant de semi-conducteur ou par des ingénieurs ayant accès aux bases de données du fabricant.

    3. Réseaux compactés - mers de portes - :
    4. Ce sont des réseaux de portes pour lesquels il n’existe pas de canaux de routage spécialisés, le routage se faisant au-dessus des portes élémentaires. L’intérêt de cette solution est de permettre d’augmenter le nombre de portes existant sur la puce, la surface réservée aux chemins d’interconnexions étant ici utilisée par les portes.

    5. Réseaux structurés :
    6. Ce sont des réseaux de portes prédiffusés auxquels sont associés des fonctions précaractérisées standards: ROM, RAM, ALU... Ce type de réseau est bien adapté aux applications microinformatiques haut de gamme: traitement du signal, processeur graphique... C’est une solution intermédiaire avec la solution circuit précaractérisé complet. Elle présente un coût de développement moins élevé que celui des précaractérisé.

  3. ASIC prédiffusés programmables :
  4. Les réseaux logiques programmables sont des circuits intégrés complètements achevés et disponibles sur catalogues. Ils doivent être personnalisés par l’utilisateur final qui programme les interconnexions entre les différents sous ensembles, inclus dans le circuit, à l’aide d’un outil de développement associé à un programmateur de circuits. Ils permettent de résoudre la plupart des problèmes de logique combinatoire ou séquentielle réalisés jusqu’alors par l’association de circuits 74xxnnn biens connus.

    La structure classique des PLD (Programmable Logique Device) comporte une partie combinatoire composée de deux zones de portes ET et OU, une partie séquentielle composée de bascules (D, JK ), et des portes d’interfaçage entrées/sorties figées. Tout ou partie de ces éléments sont reliés par des fusibles qui sont laissés intacts (liaison présente) ou détruits (pas de liaison) selon les besoins.

    Ces réseaux permettent typiquement de remplacer 4 à 10 circuits intégrés logiques de moyenne complexité. Ils peuvent êtres utilisés pour remplacer plus de 90% des circuits logiques classiques et ceci avec une vingtaine de références distinctes.

    De nouvelles générations de PLD présentant une structure plus modulaire et des blocs d’entrées/sorties plus élaborés, permettent actuellement d’augmenter encore les possibilités de remplacement.

    On peut distinguer deux grandes familles de circuits logiques programmables :

    • les mémoires mortes programmables ou PROM : Programmable Read Only Memory, ou encore mémoire programmable à lecture seule ;
    • les circuits logiques programmables ou PLD ;

    On distingue pour chacune de ces deux familles, d’autres familles en fonction de différents critères qui sont :

    • la nature du fusible ( PLD, PROM, EPLD, EPROM, EEPLD, EEPROM ) ;
    • la technologie de réalisation bipolaire (TTL, ECL ) à fusible métalliques ou MOS ( C ou HCMOS) ;
    • l’architecture interne du réseau ( ET/OU, modulaire à OLMC, ... ).


    1. Les PROM :


      1. Les différentes familles :
      2. Elles sont résumées dans le schéma suivant :

        Les différentes familles de ROM
      3. ROM programmables par masque :

      4. Les ROM ( Read Only Memory ) ne sont programmées que lors de leur fabrication par action directe sur le masque de gravure du circuit intégré. Elles sont réservées à des productions en grande série et ne peuvent en aucun cas être programmées directement par l’utilisateur.

      5. Les PROM à fusibles :

      6. La zone mémoire d’une PROM ( Programmable Read Only Memory ) à fusible est constituée d’une matrice de fils croisés. À chaque intersection, une diode en série avec un fusible établissent la liaison entre deux fils. Chaque intersection correspond à un bit de mémoire. La matrice contient 2N lignes et 8 colonnes ( si mémoire de 8bits...).

        Principe des PROM à fusible

        La programmation consiste à griller les fusibles appropriés selon la donnée à mémoriser ( 0 ou 1 ). La programmation est irréversible. Les diodes sont réalisées soit par des transistors bipolaires soit par des transistors MOS. Les fusibles sont réalisés soit en diminuant la section de la métallisation des interconnexions lors de la dernière étape de réalisation du circuit, soit par dépôt de silicium polycristallin à la place de la métallisation d’interconnexion. Dans les deux cas la programmation se fait en appliquant une impulsion de tension provoquant un courant d’amplitude et de durée permettant la fusion du fusible.

      7. Les UVPROM ou EPROM :
      8. Dans les UVPROM ou EPROM ( Erasable Programmable Read Only Memory ), le point mémoire est constitué par un transistor MOS particulier : le SAMOS ( Stacked gate Avalanche injection Metal Oxyd Semiconductor ). C’est un transistor MOS à " grille flottante ". Ce transistor à deux mode de fonctionnement :

        • en utilisation normale, en polarisant Vgs et Vds positivement, on observe le mode de fonctionnement classique ;
        • par contre, en polarisant très fortement le drain par rapport à la source, l’énergie apportée au niveau du canal est telle que certains électrons traversent la couche d’isolant, et s’accumulent sur la grille flottante. Après suppression de cette forte polarisation, les électrons accumulés sur la grille flottante demeurent emprisonnés.

        Le premier mode de fonctionnement correspond au fonctionnement normal ou non programmé ; le second mode de fonctionnement correspondant au mode programmé.

        De ce fait, lorsqu’un transistor SAMOS a été préalablement programmé, et qu’on le polarise avec des valeurs de Vgs et Vds correspondant au mode fonctionnement classique, les charges négatives accumulées sur la grille flottante créent une barrière de potentiel trop élevée entre la grille et la source pour que le transistor soit passant. Pour le rendre passant, il faudrait appliquer des valeurs de Vgs plus importantes.


Transistor SAMOS

Si le potentiel de la ligne de sélection est choisi à une valeur égale à Vc pour le niveau haut :

  • Transistor non programmé : transistor passant ;


  • Transistor programmé : transistor bloqué.

        Inversement, pour effacer la programmation du transistor SAMOS, on applique un rayonnement ultraviolet, qui, par effet photoélectrique, apporte l’énergie suffisante aux électrons piégés dans la grille flottante pour se libérer.

        La structure d’un point mémoire est donc :


Structure d'un point mémoire
  • Transistor non programmé :

  • Ligne de sélection à l’état bas à ligne de bit à l’état haut ;

    Ligne de sélection à l’état haut à ligne de bit à l’état bas ;


  • Transistor programmé :
  • Ligne de sélection à l’état bas à ligne de bit à l’état haut.

    Ligne de sélection à l’état haut à ligne de bit à l’état haut.

    La programmation de la mémoire EPROM consiste donc à programmer chaque transistor SAMOS de la matrice pour lequel la donnée lue doit être au niveau haut.

        L’effacement ne peut pas être partiel, et concerne donc la totalité de la mémoire. A cet effet, une fenêtre en quartz, transparente aux ultraviolets est prévue sur le boîtier. Le temps de programmation est relativement rapide (le programmateur d’EPROM applique des tensions de 21 ou 12,5 Volts, selon les modèles, pendant une dizaine de ms à chaque transistor à programmer), alors que le temps d’effacement ( exposition aux UV) est relativement long (10mn à 20 mn selon la puissance de la source d’UV) .

      1. Les OTPROM :
      2. Ce sont des circuits mémoires dérivés des EPROM. Leur processus de fabrication est pratiquement le même mais leur boîtier ne possède pas de fenêtre en quartz. Ils ne sont donc pas reprogrammables. Ce sont donc des mémoire programmable une seule fois : One Time Programmable Read Only Memory ( OTP ). Elles ont les mêmes caractéristiques que les EPROM et sont destinées aux grandes séries car elles sont moins coûteuses.

      3. Les EEPROM ou E2PROM :
      4. Les EEPROM ( Electrically Erasable Programmable Read Only Memory ) ou PROM effaçable électriquement. Leur principe est voisin de celui des EPROM. Elles intègrent des transistors FLOTOX de technologie MOS. La structure du transistor FLOTOX (FLOating gate Tunnel Oxyd) est très proche de celle du SAMOS, la seule différence étant au niveau du drain, la présence d’une épaisseur très fine d’isolant. Lorsqu’on applique une tension Vgd positive, la grille flottante se charge d’électrons. Après suppression de cette polarisation de programmation, les électrons restent piégés, et le transistor reste bloqué, quel que soit le niveau appliqué sur la ligne de sélection. Le transistor étant chargé, si on applique une tension Vgd négative, la grille flottante se décharge, et le transistor se comporte désormais comme un transistor MOS classique.

      5. Les Flash EPROM :
      6. Ce sont également des mémoires effaçables électriquement, mais plus rapides que les EEPROM.

    1. Les PLD :


      1. Les différentes familles :


      2. Les différentes familles de PLD
      3. Les PAL bipolaires :
        1. Notions de base :
        2. Le concept de PAL ( Programmable Array Logic ) a été inventé il y a maintenant plus de 20 ans par la société MMI.
          Principe des PLD

          Toute fonction logique à n variables peut se mettre sous la forme d’une somme de produits ou de produit de sommes.
          Il semble donc naturel d’utiliser une structure comportant deux ensembles fonctionnels:

          • un ensemble d’opérateurs ET organisés sous forme de matrices qui génèrent les produits de variables d’entrée, éventuellement complémentées.
          • un ensemble d’opérateurs OU, appelé matrice OU, qui somme les produits.

          On obtient donc en sortie, une somme de produit qui nous permettra de réaliser toutes les équations logiques imaginables.
          Dans un PLD, la matrice ET est programmable et la matrice OU est figée. Dans une PROM, c’est l’inverse. Les interconnexions des lignes de la matrice ET sont réalisées par des fusibles.

          Dans l’exemple qui suit, on a pris le cas d’une structure à deux entrées :
          Exemple

          Présenté tel quel, ce montage comporte deux entrées I1 et I2 et une sortie O.
          Lors de la livraison du PAL, tous les fusibles sont intacts et la programmation consiste à faire sauter les fusibles nécessaires afin de réaliser la fonction de son choix. Le principe est donc très proche de celui des PROM bipolaires à fusibles.



        3. Conventions de notation :
        4. La représentation précédente n’est pas vraiment utilisable en pratique. En effet, elle occupe beaucoup de place et conduit vite à des schémas illisibles surtout lorsque l’on sait que les PAL contiennent plusieurs dizaines d’exemplaires de cette cellule élémentaire.
          Une autre représentation schématique a donc été adoptée dans l’industrie :

        5. Représentation simplifiée de la structure d'un PAL :

        6. Lorsque la matrice ET est figée et que la matrice OU est programmable, on retrouve la structure des PROM, la matrice ET réalisant le décodage des adresses.

          Lorsque la matrice ET est programmable et que la matrice OU est figée, on obtient le principe de fonctionnement des PAL.

          Lorsque les matrices OU et ET sont toutes les deux programmables, on est alors en présence d’un PLA (Programmable Logic Array).

          Exemple :

          1- Entourez les connections qui doivent rester intactes pour obtenir les équations suivantes :

          O0 = A.B + C.D + A.D

          O1 = A + B/.D/.C + A/.D

          O2 = ( A.B )/ + C.D/

          O3 = ( A.B.C/.D )/

          Une telle structure ne permet évidemment d’obtenir que des expressions de type combinatoire. On dit qu’il s’agit de PAL Combinatoire ou PAL simple, mais il existe des PAL à registres dans lesquels les sorties se font sur des bascules D, et des PAL Versatiles où la structure de sortie est une macro-cellule ( bloc logique configurable ).

        7. Les entrées / sorties des PAL :

          • Entrées / sorties d’un PAL combinatoire :

          Le signal résultant de la zone de fusibles programmables est appliqué à la patte d’entrée/sortie via un buffer trois états, lui –même commandé par cette même zone de fusibles. Cela signifie donc que l’état de la sortie : valide ou haute impédance, pourra être une fonction logique des signaux d’entrée.

          Cette même patte est reliée, comme les pattes d’entrées, à un inverseur/non-inverseur qui attaque à son tour la zone de fusibles programmables. Il est ainsi possible :

            • soit de ré-injecter le signal de sortie dans la zone d’entrée ;
            • soit d’utiliser tour à tour la patte de sortie comme patte d’entrée en faisant passer le buffer de sortie dans le troisième état.

          • Entrées / sorties d’un PAL à registre :

          Les PAL à registres utilisent une approche un peu différente. En effet la sortie du réseau de fusibles programmables aboutit sur l’entrée d’une bascule D. La sortie Q/ de ce registre est ré-injectée sur la matrice de fusible via un inverseur/non-inverseur comme dans le cas des PAL simples. La sortie Q est envoyée sur la patte de sortie via un buffer trois états, mais contrairement aux PAL simples, cette patte de sortie ne peut être utilisée en entrée car elle ne dispose d’aucun accès direct vers la matrice de fusibles. Les entrées d’horloges des bascules sont communes pour toutes les sorties et sont commandées par une seule et unique ligne appelée CLOCK. De même, les buffers de sorties sont commandées par une seule ligne nommée OE.
        8. Le décodage des références :


        9. Voici un exemple de codage de la référence d’un PAL ( PAL 22V10 d’AMD ) :

          La référence est décomposée de la manière suivante :

          • Un terme PAL ou GAL qui précise le tpe de circuit ;
          • Un terme CE ou C, présent dans le cas des PAL CMOS effaçables électriquement et absent dans le cas des PAL bipolaires.
          • Un nombre indiquant les entrées disponibles qui peuvent être des entrées simples ou des entrées / sorties ;
          • Une ou deux lettres indiquant le type de structure de sortie :

          L : Combinatoire active au niveau bas ;
          H : Combinatoire active au niveau haut ;
          R : Registre ;
          RA : Registre asynchrone ;
          X : Registre et OU exclusif ;
          V : Versatile.

          • Un nombre indiquant les sorties disponibles ;
          • Une lettre indiquant la consommation ( normale, faible ou très faible ) ;
          • Un nombre indiquant le temps de propagation typique par porte, en nanoseconde ;
          • Diverses autres lettres codant le type de boîtier utilisé et la gamme de température de fonctionnement du circuit.

        10. Exemple de PAL Combinatoire : le 16 L 8 :


        11. Exemple de PAL à registre : le 16 R 8 :


        12. Les PAL versatiles ou VPAL :
        13. Ces PAL, dont le plus célèbre est très certainement le 22V10 d’AMD qui a été le premier circuit de ce type introduit sur le marché, présentent une évolution des PAL vers les circuits logiques programmables de haut niveau. En effet, ils continuent à respecter les principes généraux rencontrés plus haut mais utilisent une structure de cellule de sortie très proche des macro-cellules ou OLMC des GAL que nous verrons par la suite.

        14. Technologie des PAL bipolaires :


        15. La technologie de ces PAL est celle des PROM. Les fusibles sont réalisés de la même façon.
          De ce fait, il ne sont pas reprogrammables et donc, pas effaçable.

        16. Les PAL CMOS et GAL :
          1. Notions de base :
          2. Faisant partie d’une génération récente de circuits logiques programmables, les GAL ( Generic Array Logic ) sont des PAL versatiles en technologie CMOS. La structure de base est donc la même que les PAL, matrice ET programmable et matrice OU figée, mais les cellules de sortie sont constituées par des OLMC ( Output Logic Macro Cell ), qui sont des blocs de sortie programmables et permettent donc d’obtenir différents type de sorties.
            Outre les possibilités des blocs de sorties, les GAL présentent l’avantage d’être reprogrammables. Ils sont pratiquements tous du type EEPLD et permettent donc une programmation et un effacement électrique. Les fusibles sont de la même technologie que ceux des EEPROM.
            Il existe une dizaine de familles de PAL CMOS mais nous allons limiter notre étude à celle des GAL du type du GAL22V10.

          3. Le GAL 22V10 :


          4. Architecture interne :
            Elle est donnée à la page suivante. On retrouve la matrice ET programmable et les cellules de sortie.

            Matrice ET programmable :
            La matrice est organisée en 44 lignes d’entrées ( 22 entrées et leurs complément ) croisant 132 lignes de produits avec un fusible à chaque intersection ( en fait une cellule E²CMOS ). Parmi les 132 lignes de produits, 130 arrivent directement sur les dix OLMC en nombre variable ( 9, 11, 13, 15, ou 17 ) pour chacune. Les deux autres lignes de produits, sont utilisées comme reset Asynchrone ( AR ) et Preset synchrone ( SP ). Enfin, c’est le signal appliqué à la broche " 1 " qui synchronise toutes les OLMC dans le cas d’une utilisation séquentielle.

            Structure d’une OLMC :



            GAL 22V10




            On s’aperçoit que dans chaque groupe de 9, 11, 13, 15 ou 17 lignes de produits arrivant aux OLMC, la première est la ligne de validation de la sortie trois états ( Output Enable ). Les 8, 10, 12, 14 ou 16 autres lignes arrivent, elles, sur une porte OU constitutive de la matrice OU.

            Configuration d’une OLMC :

            Deux bits ( en fait deux fusibles ), SOi et S1i , configurent chaque OLMC. SOi et S1i possèdent une adresse ( voir la structure interne du GAL ) et vont se programmer comme les fusibles de la matrice ET.

            Remarque : SOi et S1i sont en réalité 2 fusibles qui assurent une liaison avec la masse ( état logique 0). Pour les mettre à l’état logique 1, il suffit de " griller " ces fusibles.

            Les schémas suivant représentent les quatre configurations possibles des OLMC.




            Vous pouvez télécharcher la version PDF de ce document :
            ASIC.PDF (310ko environ)

            cignus@club-internet.fr
            © 1999, J.P. PIAU.
            Dernière mise à jour : le 22 / 02 / 99 @ 01h50