Notion de circuit logique programmable

Motivation et principes généraux

Dans la section Synthèse de fonctions logiques, nous avons présenté une méthode qui permet de construire un circuit à partir d’une table de vérité. Nous avons d’abord représenté la fonction à réaliser comme un système d’équations logiques de la forme somme de produits. Nous avons ensuite dessiné le schéma d’un circuit directement inspiré de ces équations. Ce schéma est rappelé ci-dessous :

Circuit de commande du robot

Si nous appliquons la même méthode pour développer un circuit réalisant une autre fonction logique, nous devinons que le circuit aura la même allure. On retrouvera :

Ainsi, plutôt que de construire un nouveau circuit en partant de zéro, nous pouvons partir d’un circuit de base dans lequel les portes logiques sont déjà en place et où les connexions restent à définir. On appelle circuit logique programmable un circuit logique qui peut être configuré – programmé – pour réaliser une fonction particulière. La figure ci-dessous représente une structure possible pour un tel circuit.

Structure typique d'un PLA

Sur ce schéma, chaque cercle rouge représente une connexion que nous pouvons configurer. Soit nous choisissons de relier ensemble une ligne et une colonne, soit nous choisissons de ne pas les relier. Les résistances en entrée des portes ET et OU sont des résistances de tirage qui permettent de neutraliser les entrées non utilisées.

Dans la suite de ce document, nous utiliserons une représentation allégée dans laquelle nous ne dessinerons pas les résistances de tirage et nous regrouperons sur une même colonne ou ligne les entrées des portes.

Représentation allégée d'un PLA

Le circuit ci-dessus permet ainsi de réaliser toutes les fonctions logiques combinatoires dans lesquelles il y a au maximum quatre entrées, quatre sorties et huit termes produits différents. Dans les sections qui suivent, nous allons nous intéresser aux techniques permettant de réaliser des connexions configurables.

Technologie des circuits logiques programmables

Une connexion configurable est un point du circuit où l’utilisateur peut choisir d’établir ou de couper le contact entre deux conducteurs. Les technologies disponibles pour réaliser ces connexions se distinguent par différents critères :

Circuits à fusibles

Un fusible est un filament conducteur qui fond lorsque l’intensité du courant qui le traverse dépasse un certain seuil. Ils servent habituellement à protéger des installations électriques.

Dans les premières générations de circuits programmables, chaque connexion configurable était réalisée à l’aide d’un fusible. Dans un circuit vierge, tous les fusibles étaient intacts. Pour réaliser une fonction logique particulière, il suffisait de repérer les connexions à couper et de faire fondre les fusibles correspondants. En fonctionnement normal, les fusibles restants se comportaient comme de simples conducteurs.

Circuit à fusibles

La figure ci-dessus illustre une configuration des entrées d’une porte ET afin de réaliser la fonction ABA\cdot\overline B. Ici, deux fusibles ont été supprimés et deux ont été laissés intacts.

Une fois programmé, un tel circuit ne peut pas être effacé pour réaliser une autre fonction. En effet, un fusible fondu ne peut pas redevenir conducteur. En anglais, on parle de circuit OTP pour One Time Programmable.

Circuits à antifusibles

Un antifusible est un composant qui se comporte à l’inverse d’un fusible. Initialement isolant, il devient conducteur lorsqu’il est soumis à une tension électrique suffisamment élevée.

Dans de nombreuses familles de circuits programmables, les connexions configurables sont réalisées avec des antifusibles. Pour réaliser une fonction logique particulière, il suffit de repérer les connexions à établir et de rendre conducteurs les antifusibles correspondants.

Circuit à antifusibles

La figure ci-dessus illustre une configuration des entrées d’une porte ET afin de réaliser la fonction ABA\cdot\overline B. Ici, deux antifusibles sont devenus conducteurs et deux ont été laissés intacts.

Lorsqu’il est devenu conducteur, un antifusible ne peut pas redevenir isolant. Une fois programmé, un circuit à antifusibles ne peut pas être effacé pour réaliser une autre fonction.

Circuits à mémoire volatile (RAM)

Pour réaliser des circuits dont la configuration peut être effacée et modifiée, on utilise couramment des éléments de mémorisation. Dans un circuit à base de RAM statique, ces éléments de mémorisation sont des verrous ou des bascules. Le circuit programmable est alors organisé en deux plans superposés :

Circuit à cellules de RAM

Sur la figure ci-dessus, nous avons représenté un circuit comportant quatre connexions configurables réalisées avec quatre transistors NMOS commandés par quatre éléments de mémorisation. Chaque transistor se comportera comme un interrupteur ouvert ou fermé en fonction de la valeur courante de la cellule de mémoire qui lui est associée.

Dans un tel circuit, il suffit de modifier le contenu de la RAM pour réaliser une autre fonction logique. En revanche, les informations mémorisées dans une RAM sont perdues lorsque le circuit n’est plus alimenté. Il faut donc le reconfigurer à chaque mise sous tension.

Circuits à mémoire non volatile (EEPROM, Flash)

Une EEPROM est une mémoire non volatile effaçable électriquement. Les mémoires Flash sont un cas particulier d’EEPROM.

Comme pour les circuits à base de RAM, un circuit programmable utilisant de l’EEPROM est constitué d’un plan contenant la structure de base du circuit et d’un plan de mémoire dans lequel la configuration est enregistrée.

Circuit à cellules d'EEPROM

Les mémoires EEPROM et Flash conservent les informations mémorisées lorsque le circuit n’est plus alimenté. Pour le moment, les circuits programmables à base d’EEPROM restent plus chers que les circuits à base de RAM car ils nécessitent un procédé de fabrication spécifique.

Résumé

On appelle circuit logique programmable un circuit logique qui peut être configuré – programmé – pour réaliser une fonction particulière.

Dans un circuit logique programmable, les portes logiques sont déjà en place mais les connexions restent à définir.

Les connexions configurables peuvent être réalisées au moyen de différentes technologies.