Vous êtes sur la page 1sur 32

Introduction aux PLD (dispositifs

logiques programmables)
Objectifs d'apprentissage

Comprendre le concept des PLD et les conceptions basées sur PLD et utiliser l’

imagination et l’intelligence pour développer la conception à l'aide de PLD.

Décrire la compréhension pratique de l'architecture PLD

et l'utilisation pratique dans le prototypage ASIC et la conception basé sur FPGA.

"Je n'ai pas de talent particulier. Je suis seulement passionnément curieux..."

--- Albert Einstein

Plan

Histoire et évolution des PLD

Dispositif logique programmable simple (SPLD)

Dispositifs logiques programmables complexes (CPLD)

Réseaux de portes programmables sur site (FPGA)

Scénarios pratiques et lignes directrices

Introduction

Au cours de la dernière décennie, les dispositifs logiques programmables (PLD) sont utilisés
pour le prototypage rapide des ASIC.
Les conceptions basées sur PLD peuvent être utilisées pour détecter les bogues au début du
cycle de conception et pour valider la conception dans un délai plus court pour les
spécifications fonctionnelles données.
Dans le scénario actuel, il y’a besoin d’un million de portes programmables ASIC pour la
réalisation des conceptions complexes.
La conception basée sur le PLD étant plus rentable et pouvant être réalisée plus
rapidement, le marché du PLD s'est considérablement développé pour le prototypage
rapide des ASIC.

Ce cours traite l'évolution des PLD, les types de PLD et l'architecture des PLD. Même ce cours
traite les directives et scénarios de conception spécifiques au PLD.

Histoire et évolution des PLD


Dans l'industrie de la conception de semi-conducteurs, il est indispensable de disposer de
dispositifs logiques programmables (PLD).
La raison en est que l'appareil peut être programmé à plusieurs reprises pour les
différentes spécifications de conception.
Le coût requis pour établir la configuration des conceptions basées sur PLD est moindre
que celui du circuit intégré spécifique à une application (ASIC).
Pour la réalisation d'une nouvelle idée, il n'est pas possible d'injecter des fonds d'un million
de dollars à un stade précoce.
Il est donc toujours recommandé d'avoir moins d'investissement lors de la réalisation de
l'idée du produit et même de valider la fonctionnalité de conception.
Si l'on considère la dernière décennie, alors la croissance réelle du marché du PLD est due
aux exigences des SOC d'un million à un milliard de portes.
Dans les conceptions SOC, les PLD sont largement utilisés pour valider la fonctionnalité de
conception.

Les PLD sont utilisés dans divers segments de marché tels que les domaines de l'automobile, de
la consommation, des périphériques informatiques, du sans fil et de l'industrie pour la preuve
de concept des idées.

Le principal avantage des PLD est qu'ils peuvent être programmés par l'utilisateur final sur
le terrain.
Le premier PLD inventé avant 1970 est la mémoire programmable en lecture seule (PROM).
Mais PROM est une mémoire programmable une seule fois.
Encore une fois, nous pouvons différencier cela entre les dispositifs programmables par
masque et les dispositifs logiques programmables sur le terrain.
Les dispositifs logiques programmables à masque sont programmés par le fournisseur à
l'aide de l'interconnexion et du masque personnalisé,
Les appareils programmables sont programmés ou configurés par l'utilisateur en fonction
des spécifications de conception requises et de la complexité.

À la fin des années 1970, la logique matricielle programmable (PAL) a été introduite sur le
marché.

Le PAL se compose d'un plan ET programmable et d'un plan OU fixe


Mais au cours de la décennie actuelle, les appareils PAL sont disponibles avec une taille
variée d'entrées et de sorties. Au lieu d'utiliser le plan de réseau AND-OR, la plupart des
fournisseurs utilisent les structures NAND-NAND ou NOR-NOR.
Au début des années 1970, le réseau logique programmable (PLA) a été introduit sur le
marché et comporte des structures ET et OU programmables.
Au cours des années 1980, l'évolution du PLD s'est produite et les PLD sont classés en
dispositifs logiques programmables simples (SPLD) et en dispositifs logiques
programmables haute densité (HPLD).
Les SPLD incluent les PROM, PLA, PAL et GAL.
Les HPLD incluent le CPLD et le FPGA. Le CPLD est un dispositif logique programmable
complexe et le FPGA est un réseau de portes programmable sur site.

Dispositif logique programmable simple (SPLD) :


Le SPLD peut être visualisé comme le tableau de AND et OR. Figure ci-dessous décrit les
principaux blocs fonctionnels du SPLD.

Avant de passer en revue la structure interne de chaque bloc pour comprendre le SPLD,
explorons la conception simple d'un additionneur complet utilisant le concept de OU
programmable.
L'additionneur complet utilisant deux demi additionneurs et la porte OU comme indiqué
dans la figure ci-dessous

Au lieu d'utiliser les demi-additionneurs et/ou la porte, l'additionneur complet peut être réalisé
en utilisant le tableau OU fixe et le tableau ET programmable.

Le même concept est utilisé dans le tableau programmable.

Exercice :
Donner la table de vérité de l'additionneur complet ?
Donner les équations logiques liées à sum_out et carry_out, basées sur l’algèbre
booléenne min-terme ?

L'additionneur complet peut également être réalisé à l'aide d'un décodeur de 3 lignes à 8 lignes.

Le décodeur 3 lignes à 8 lignes est un circuit qui donne 8 sorties logiques pour 3 entrées et
possède une broche d'activation.
Le circuit est conçu avec des portes logiques ET et NAND.

Il prend 3 entrées binaires et active l'une des huit sorties.

Le circuit décodeur de 3 à 8 lignes est également appelé décodeur binaire ou octal.

Exercice :
Donner la table de vérité du décodeur 3 lignes à 8 lignes ?
Donner l'équation logique liée au décodeur 3 lignes à 8 lignes basée sur l’algèbre
booléenne min-terme ?
Donner le schéma logique du décodeur 3 lignes à 8 lignes ?
Donner le schéma logique de l'additionneur complet basé sur un décodeur 3 lignes vers
8 lignes ?

En fonction des termes minimum requis, le plan ET agit comme un décodeur programmable
et le plan OU qui est fixe est utilisé pour générer les sorties programmables « sum_out » et «
carry_out ».
En fonction du réseau programmable ou fixe, les SPLD sont classés comme suit :
Mémoire morte programmable (PROM);
Logique matricielle programmable (PAL);
Réseau logique programmable (PLA);
Logique de tableau générique (GAL);
Mémoire programmable en lecture seule (PROM)

La PROM a d'abord été développée comme une mémoire morte programmable une seule
fois.
Il est disponible en version programmable une fois (OTP) et programmable sur site.
Le PROMis programmable sur site basé sur EPROM et basé sur EEPROM.
Les PROM sont utilisées pour réaliser la logique du petit nombre de portes en utilisant le
concept de tables de recherche.
La logique peut être programmée dans la PROM.
C'est comme la table de recherche qui contient les fonctionnalités de la conception.
Les entrées de fonction peuvent être visualisées sous forme de lignes d'adresse, les
cellules de la matrice mémoire sont utilisées pour contenir les informations sur la
fonctionnalité et les lignes de sorties proviennent des cellules mémoire de la PROM.
Nous pouvons décrire l'architecture PROM comme suit: le décodeur d'entrée qui est un
tableau ET et les sorties sont générées à partir d'un tableau OU programmable.

Cela permet de programmer chaque sortie individuellement pour l'ensemble donné


d'entrées.
Les entrées de fonction sont données aux lignes de sélection du décodeur 3 8.
Le décodeur agit comme un tableau ET fixe et les lignes de sortie du décodeur sont utilisées
pour programmer le tableau OU.
En fonction de la capacité de diffusion du décodeur, le nombre de sorties peut être
programmé.

Exemple de réalisation de fonction logique à l'aide de PROM


La fonction recherchée est basée sur les trois lignes d'entrée A2, A1 et A0 et les lignes de
sortie sont F2 et F1. La table de vérité est donnée ci-dessous.
Donner les équations logiques des fonctions F2 et F1 basées sur l'algèbre booléenne à
terme min ?

Logique de réseau programmable (PAL) :

Le PAL utilise le tableau ET programmable et le tableau OU fixe et peut être utilisé pour
concevoir une logique à petit nombre de portes.
Il était utilisé pour implémenter la somme sous forme canonique des fonctions booléennes
du produit en utilisant le tableau ET programmable suivi d'un tableau OU fixe.
Il peut être utilisé pour générer la sortie combinatoire, ou la sortie peut être enregistrée ou
peut être renvoyée en interne.
L'exemple d'utilisation du PAL avec le tableau ET programmable et le tableau OU fixe est
présenté dans la figure suivante. Ceci permet de réaliser les fonctions F1 et F2 définies par
les équations logiques suivantes.
Comme le montre la figure, les sorties sont combinatoires, c'est-à-dire que la sortie est la
fonction de l'entrée actuelle uniquement.
La structure PAL peut être modifiée en utilisant le registre à la sortie du tableau OR pour
générer la sortie enregistrée.
La figure ci-dessous décrit un autre exemple de macrocellule qui utilise le concept de PAL
avec la sortie enregistrée.
La sortie peut être programmée comme sortie enregistrée ou sortie non enregistrée.
La sortie PAL passe par la logique XOR qui et la porte XOR agissent comme le contrôle de
polarité.
Si la sortie de la porte XOR passe par le registre, la sortie peut être disponible en tant que
sortie enregistrée.
Output MUX est utilisé pour sélectionner la sortie enregistrée ou combinatoire en fonction
de l'état de la ligne de sélection.
Le bouclage de la sortie du registre est possible en interne et peut être utilisé pour le
traitement interne par le PAL.
Tableau logique programmable (PLA) :

Le PLA est plus flexible que le PAL, et le PLA utilise les tableaux ET et OU programmables.
Pour l'optimisation du circuit logique de la conception à petit nombre de portes, le PLA peut
être un bon choix.
Les fonctions booléennes peuvent être réalisées en utilisant le ET programmable suivi du
OU programmable.
La mise en œuvre des fonctions F1 et F2 à l'aide du PLA est donnée par la figure de la slide
suivante
Les fonctions logiques pour F1 et F2 sont :
Comme le montre la figure ci-dessous, la sortie peut être une combinaison active basse ou
active haute.
Même la sortie peut être configurée comme sortie active basse enregistrée ou haute sortie
active enregistrée.

Dispositifs logiques programmables complexes (CPLD) :


Les dispositifs logiques programmables complexes (CPLD) sont utilisés pour réaliser les
contrôleurs de densité de comptage faible à modérée à l'aide du FSM
Même ils peuvent être utilisés pour concevoir la logique combinatoire et séquentielle des
conceptions de comptage à densité modérée.
Le CPLD a évolué en utilisant le concept de blocs de type PAL
Le CPLD se compose de blocs de type PAL avec les ressources de routage et les blocs
d'entrée/sortie (IO) pour réaliser les conceptions à nombre de portes modéré.
Chaque bloc de type PAL peut être traité comme un simple PLD de quelques portes
La figure suivante décrit la structure du CPLD .

Chaque bloc IO est utilisé pour établir une communication entre le monde extérieur et les
PLD.
Les multiples PLD sont empilés sur le silicium et peuvent être connectés à l'aide de
l'interconnexion programmable.
La structure de bloc PLD ou PAL peut être constituée d'un réseau de portes avec le registre
(le nombre de registres dépend de l'architecture) et être utilisée pour générer une sortie
combinatoire ou séquentielle ou les deux.
La figure suivante montre le bloc PLD de base, l'implémentation logique utilisant le VHDL est
également donnée.
La sortie combinatoire « q2_out » est la logique ET de « a_in » et « b_in » et réalisée à l'aide
du simple bloc PAL.
La sortie enregistrée « q1_out » est sensible au front positif de l'horloge « clk » et réalisée en
utilisant un registre dédié à l'intérieur du PAL ou en utilisant le registre du bloc IO.
L'utilisation d'entrées et de sorties enregistrées peut améliorer le timing et la performance
de la conception, même si l'ajout d'une logique pipeline devient facile si nécessaire.

Code VHDL RTL synthétisable pour la réalisation logique en utilisant PLD :

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_arith.all;

use ieee.std_logic_unsigned.all;

entity cpld_logic is port

a_in, b_in : in std_logic;

clk : in std_logic;
q1_out, q2_out : out std_logic

);

end cpld_logic;

L'architecture définit la fonctionnalité du design.


Le processus est sensible à « a_in », « b_in » et « clk ». Tout événement sur l'un des signaux
appelle le processus.
If-then-else est une instruction séquentielle et utilisée dans le processus.
Pour le front montant de l'horloge, « q1_out » est attribué à « a_in et b_in ».
La sortie « q2_out » est une sortie combinatoire et « q1_out » est une sortie enregistrée.
La principale limitation du CPLD est le petit nombre de portes pouvant atteindre quelques
milliers de portes.
Bien que disposant d'un timing de registre propre en raison de la mise en œuvre d'un petit
nombre de portes, plusieurs CPLD peuvent être nécessaires pour réaliser la logique qui
consiste en une conception complexe.
Dans un tel scénario, le meilleur choix est le FPGA car il s'agit d'une logique riche en
bascules.

Field-Programmable Gate Arrays (FPGAs) :

Les réseaux de portes programmables sur site (FPGA) peuvent être programmés ou
configurés sur le terrain par les programmes utilisateur et largement utilisés dans la
conception de conceptions complexes de comptage de portes.
L'utilisation intensive des FPGA au cours de cette décennie est due à la disponibilité des
macros logicielles et matérielles requises pour le processeur, le DSP (Digital Signal
Processor) et le traitement vidéo.
Même la plupart des FPGA à architecture complexe prennent en charge les interfaces haut
débit, les protocoles Ethernet, USB (Universal Serial Bus) et AHB (Advanced High
performance).
L'architecture de base du FPGA peut être visualisée comme un océan de :
Les blocs logiques ou blocs logiques configurables (CLB),
Blocs d'entrées/sorties (IOB),
Bloquer les RAM (BRAM),
Blocs DSP (DSP),
Et d'autres ressources de routage.
CLB est utilisé pour réaliser la logique combinatoire et séquentielle.
Le CLB dédié comprend le nombre de tables de recherche (LUT) et de registres.
La fonction combinatoire est réalisée à l'aide des LUT où les LUT ont le retard uniforme.
Si la logique n'est pas installée dans le CLB unique, alors les multiples CLB doivent être
utilisés et reconfigurés en fonction de la fonctionnalité.
Ils sont configurés à l'aide du programme spécifique au fournisseur, à savoir un fichier
de configuration ou un fichier bitmap.
IOB est utilisé pour établir la communication entre le monde extérieur et les CLB et vice
versa.
L'IOB est constitué des tampons bidirectionnels avec les registres.
L'entrée peut être enregistrée à l'aide du bloc IO, et même la sortie peut être enregistrée
à l'aide du bloc IO.
Les entrées et sorties non enregistrées sont possibles. En fonction des exigences
fonctionnelles de la conception.
Le bloc IO peut être configuré comme IO enregistré ou IO non enregistré.
BRAM : Le FPGA peut avoir de la RAM distribuée et de la RAM bloc (BRAM).

-La RAM distribuée peut être réalisée à l'aide des LUT,

-Et les BRAM sont réalisés à l'aide de blocs BRAM dédiés qui peuvent être programmés par l'outil
de conception spécifique au fournisseur pour la configuration et la taille requises.

La réalisation de RAM à port unique et de RAM à double port est possible à l'aide des BRAM.
La capacité de BRAM dépend de l'architecture.

DSP : Ce sont des blocs prédéfinis dédiés et peuvent être configurés pour réaliser la
fonctionnalité DSP.
La plupart des applications DSP ont besoin de multiplicateurs, de registres pipeline, de blocs
fonctionnels DSP dédiés aux opérations DSP, etc.
Pour le calcul DSP à grande vitesse, ces blocs sont utilisés et peuvent être configurés en
fonction des exigences de conception.

Concept de LUT et réalisation de la logique combinatoire

Le concept LUT peut être facilement compris en utilisant les conceptions basées sur MUX.
Nous voulons réaliser la fonction logique ayant quatre entrées et une seule sortie comme le
montre la figure suivante.

Le CLB de base se compose des LUT et des registres.


En fonction de l'architecture du périphérique, le nombre de LUT et de registres peut varier
et même les entrées et sorties de la structure LUT peuvent varier.
Pour une compréhension facile, considérez l'architecture de base CLB illustrée dans la figure
suivante.

La LUT peut être utilisée pour réaliser les fonctions logiques, peut être utilisée comme RAM
distribuée et même utilisée pour réaliser les registres à décalage.
La sortie générée est combinatoire ou séquentielle selon la configuration définie par le
fichier bitstream.
Si la cellule SRAM (FF) contient le « 1 » logique, alors la sortie est une logique combinatoire,
et si la configuration FF contient le « 0 » logique, alors la sortie est une sortie enregistrée.
Un exemple de VHDL RTL (Register Transfert Level) synthétisable pour la conception
combinatoire est donné comme suit

Code VHDL RTL synthétisable pour la conception combinatoire

library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;

entity comb_logic is port


(
a_in, b_in, c_in, d_in : in std_logic;
q_out : out std_logic
);
end comb_logic;

architecture arch_comb_logic of comb_logic

Begin

q_out <= (a_in and b_in) xor (c_in and d_in);

end arch_comb_logic;

-Le résultat de la synthèse est présenté dans la figure suivante

La logique est donc réalisée à l'aide de la LUT à quatre entrées.


Les entrées de LUT 'a_in, b_in, c_in, d_in' sont configurées à l'aide du programme spécifique
au fournisseur,
Et la sortie non enregistrée « q_out » est générée à partir de la logique MUX.
architecture arch_design_logic of design_logic is

Begin
q2_out <= (a_in and b_in and c_in);
process (clk)
begin
if (clk=’1’ and clk’event) then
q1_out <= a_in and b_in and c_in;
end process;
end arch_design_logic

Réalisation logique à l'aide du CLB

L'architecture définit la fonctionnalité du design.


L'instruction d'affectation est utilisée lorsque « q2_out » est une logique combinatoire.
Le « q1_out » est la sortie enregistrée qui provient de la bascule D déclenchée par le front
positif.

-À mesure que la complexité de la conception augmente, le nombre d'entrées requises peut


augmenter :

Dans un tel scénario, l'architecture CLB peut avoir plusieurs LUT et plusieurs registres avec
les blocs dédiés aux additionneurs.
La figure suivante décrit l'architecture du CLB et elle se compose de plusieurs LUT à trois
entrées, même si elle comprend l'additionneur complet et le registre.
La sortie de ce CLB peut être combinatoire ou séquentielle.

Architecture de CLB avec plusieurs LUT

-Utiliser la notion de propagation de report. La figure suivante décrit la mise en œuvre d'un
additionneur complet utilisant la logique XOR et le multiplexeur.

-Dans FPGA, un type de logique similaire peut être utilisé pour effectuer l'addition en utilisant «
A, B, Cin » pour générer les sorties « Cout » et « Somme ».

Additionneur complet utilisant le concept de propagation de report

-L'architecture CLB pour la série Virtex de XILINX est illustrée dans la figure

Celui-ci se compose de deux tranches, et chaque CLB comporte deux tranches.


La tranche 1 et la tranche 0 sont identiques et utilisées pour réaliser la logique numérique
avec sortie enregistrée et sortie combinatoire.
Chaque tranche se compose de deux LUT à quatre entrées et de deux registres.
Même chaque tranche comprend la logique de report et de contrôle pour réaliser la logique
d'addition.

Architecture CLB pour les FPGA de la série Virtex

La LUT à quatre entrées est utilisée pour réaliser la fonction avec quatre entrées.
En utilisant les ressources de routage, la logique de la tranche 1 peut communiquer avec la
tranche 0.
Même la sortie d'un CLB peut transférer les données vers un autre CLB.
Le routage est effectué à l'aide des algorithmes de routage spécifiques au fournisseur.

-Le CLB à huit entrées avec la sortie enregistrée et la sortie combinatoire est illustré dans la
figure suivante

Ceci est utilisé pour concevoir la fonction logique qui nécessite 8 entrées.
Le CLB peut être utilisé pour obtenir une sortie enregistrée ou non enregistrée.

CLB avec deux LUT à quatre entrées


-La LUT ou générateur de fonctions est nommé G, H et F.

-Les LUT G et F sont des LUT à quatre entrées et la LUT H est une LUT à trois entrées.

-Nous souhaitons considérer le scénario de conception pour réaliser le décodeur 8:256 utilisant
FPGA.

En utilisant l'architecture CLB présentée dans la dernière figure présentée, le décodeur


8:256 peut être réalisé.
Mais il a besoin de nombreuses LUT, pour réaliser la logique avec 256 lignes de sortie, il lui
faut 3x256 LUT, soit 768 LUT.
La sortie unique peut être extraite du « y » ou du « x »
La sortie est une sortie non enregistrée.

Bloc IO :

Structure de base du bloc IO

-Les blocs IO sont utilisés pour communiquer avec le monde extérieur. Le bloc IO de base
La structure est illustrée dans la figure suivante.

 L'IO peut être configuré pour transférer les données du monde extérieur vers le tableau
configurable.

-Les données sont transférées du port d'entrée vers PAD et via le tampon d'entrée vers CLB.

 Les données peuvent être transférées du CLB vers le monde extérieur via le tampon de
sortie,

-La validation du tampon peut être contrôlée par le multiplexeur programmable.


Structure de bloc d'E/S de base utilisée par Altera

-Dans le scénario pratique, il est nécessaire d'avoir des entrées et des sorties enregistrées, et
dans de telles circonstances, le bloc IO peut avoir plusieurs registres dans le chemin d'entrée et
de sortie.

-Le bloc IO pour le FPGA Altera est illustré dans la figure , dans la diapositive précédente

Le bloc IO utilise la logique d'entrée enregistrée et la logique de sortie enregistrée.


Exemple : nous voulons enregistrer une sortie programmable 'q_out' en utilisant le bloc IO,
comme le montre la figure suivante
La fonction logique tmp_sig et b_in est implémentée en utilisant le CLB, et la sortie du CLB
est donnée au data_out1 du registre.

IO configuré comme sortie enregistrée

-Exemple : nous voulons enregistrer une entrée programmable 'a_in' en utilisant le bloc IO,
comme le montre la figure suivante.

L'entrée enregistrée est générée au niveau de Data In 1 et est transmise au tableau CLB.
La ligne de couleur rouge indique la programmation du bloc IO comme bloc d'entrée avec
l'entrée enregistrée pour générer le signal « tmp_sig » comme entrée enregistrée.
IO configuré comme entrée enregistrée

-Exemple : Un RTL VHDL synthétisable pour l'entrée enregistrée et la sortie enregistrée est
donné comme suit :

Bloc RAM (BRAM):

-La BRAM est une mémoire embarquée, et le FPGA se compose de :

Le BRAM monoport
Le BRAM double port (PORT A et PORT B)

-Selon l'architecture du périphérique FPGA, chaque BRAM se compose d'un nombre de cellules
RAM statiques.
Parmi elles, les quelques cellules sont utilisées pour la configuration de la mémoire et le
reste est utilisé pour le stockage des données.

-Les BRAM sont utilisées pour le stockage interne des données, pour concevoir des FIFO, des
tampons, des piles et peuvent être utilisées pour stocker les données nécessaires aux FSM
(Finite State Machines).

-Chaque BRAM a l'horloge et l'activation, la lecture et l'écriture de l'horloge, et chaque BRAM est
synchrone.

-Si nous considérons la BRAM à deux ports, alors les deux ports peuvent être utilisés de manière
interchangeable et peuvent être contrôlés pour l'opération de lecture-écriture synchrone.

-La structure BRAM à port unique et à double port est illustrée dans la figure suivante

Un exemple de RTL VHDL synthétisable d'une BRAM à port unique de taille 16X2 utilisant le
composant BRAM est donné comme suit :
Blocs DSP et multiplicateurs

-Pour la conception informatique élevée et pour les performances améliorées, les FPGA
modernes disposent de ressources dédiées sous forme de multiplicateurs et de blocs DSP.

-Les principales applications DSP sont le filtrage, la compression, la FFT, la DFT, l'encodage et le
décodage des flux d'entrée.

-La figure suivante donne des informations sur le bloc DSP dédié et peut être utilisée
efficacement pour concevoir certains algorithmes de traitement DSP comme la multiplication et
l'accumulation (MAC).
Comme le montre la figure, le bloc DSP possède le registre d'entrée, le multiplicateur, le
MAC, le bloc de sommation et le registre de sortie.
Pour améliorer les performances de conception, le bloc DSP dispose de registres pipeline.

Bloc DSP

Architecture du bloc multiplicateur.


Ceci est utilisé pour effectuer la multiplication de nombres signés, non signés et à
virgule flottante.

Ressources de routage et normes d’E/S

P-our le routage local à l'intérieur du CLB et pour le routage global entre les CLB, différents

types de ressources de routage sont utilisés.


-Les interconnexions des appareils sont disposées sous forme de lignes horizontales et
verticales.

-Les lignes d'interconnexion sont des lignes simples, doubles et longues.

Des lignes d'une seule longueur sont utilisées au sein du CLB et sont utilisées pour les
distances les plus courtes

routage.

 Connectez les matrices de commutation PSM (Programmable Switch Matrix) qui sont
situées à chaque intersection d'une ligne et d'une colonne de CLB.

Ligne double longueur, comme chaque ligne est deux fois supérieure à la ligne simple
longueur, elles sont utilisées pour acheminer deux CLB

 Une ligne double longueur passe devant deux CLB avant d'entrer dans une matrice de
commutation.

 Les lignes double longueur sont regroupées par paires avec les matrices de
commutation décalées de sorte que chaque ligne passe par une matrice de commutation à
chaque autre emplacement CLB de cette ligne ou colonne.

De longues lignes sont utilisées comme ressource de routage pour la puce FPGA complète

 Exécutez toute la longueur ou la largeur du tableau

 Les entrées CLB peuvent être pilotées à partir d'un sous-ensemble des lignes longues
adjacentes ; Les sorties CLB sont acheminées vers les lignes longues via des tampons à 3 états
ou des lignes interconnectées de longueur unique.
Scénarios pratiques et lignes directrices :

Réinitialiser la stratégie

-La plupart du temps, les concepteurs ne savent pas s'ils doivent utiliser la réinitialisation
synchrone ou les réinitialisations asynchrones dans la conception.

Réinitialisation synchrone

-Les réinitialisations synchrones sont recommandées dans la plupart des applications car la
logique de réinitialisation fait partie du chemin de données et la réinitialisation est
échantillonnée sur le front actif de l'horloge.

-La logique dans le chemin de données du registre utilisant la réinitialisation synchrone est
illustrée dans la figure ci-dessous :

-Le RTL utilisant VHDL pour la conception utilisant la réinitialisation synchrone est décrit comme
suit :
-En utilisant la stratégie de réinitialisation synchrone, les problèmes sont filtrés et illustrés ci-
dessous dans la figure :
Réinitialisation asynchrone :

-Le signal de réinitialisation asynchrone est échantillonné à tout moment quel que soit le front
d'horloge actif.

-Dans la stratégie de réinitialisation asynchrone, la logique de réinitialisation ne fait pas partie


du chemin de données.

-Lors de la conception à l'aide de réinitialisations asynchrones, le concepteur doit prendre en


charge l'assertion de réinitialisation et la désaffirmation de réinitialisation.

Le temps de récupération et de suppression de la réinitialisation joue un rôle important


dans ce type de stratégie.
Le temps de récupération de réinitialisation est le temps minimum requis pendant lequel le
signal de réinitialisation doit être actif avant l'arrivée du front d'horloge actif.
Si à une heure et une réinitialisation changent, alors le registre passe à l'état métastable.
Pour éviter cela, la réinitialisation asynchrone peut être synchronisée en interne à l'aide du
synchroniseur de niveau à deux étages.

-La figure ci-dessous donne des informations sur le temps de récupération de réinitialisation. Si
le signal de réinitialisation arrive avant le front actif de l’horloge et reste stable, alors le timing
est respecté.
-La figure ci-dessous donne des informations sur la violation de synchronisation lorsque le signal
de réinitialisation modifie le front d'horloge. La conception passe à l’état métastable.

-Le temps de suppression de la réinitialisation est le temps requis pour l'annulation du signal de
réinitialisation.

La figure ci-dessous montre la séquence de synchronisation pour la suppression de la


réinitialisation. La réinitialisation asynchrone peut être synchronisée en interne à l'aide du
niveau à deux niveaux.

-La réinitialisation asynchrone peut être synchronisée en interne à l'aide du niveau à deux
étages comme indiqué dans la figure ci-dessous:
-Le synchroniseur à deux étages est utilisé pour générer le signal de réinitialisation asynchrone
vers le registre

-Il utilise l'horloge comme « clk » et le signal de réinitialisation comme « master_reset ».

-Pendant le fonctionnement normal, le synchroniseur à deux étages génère le « 1 » logique à


l'entrée de réinitialisation du registre.

-Pendant la durée de réinitialisation valide, l'entrée « master_reset » est active basse et le


synchroniseur de niveau génère la sortie active basse pour réinitialiser le registre.

Conceptions asynchrones et synchrones :

-Dans les conceptions asynchrones, comme le signal d'horloge n'est pas commun à tous les
registres, le retard cumulé ralentit les performances de la conception.

-Dans la plupart des scénarios pratiques, il n'est pas recommandé d'utiliser les conceptions
asynchrones.

-La conception asynchrone utilisant des bascules JK et une séquence de synchronisation est
illustrée dans la figure ci-dessous

-Comme le montre cette figure, pour obtenir la sortie « q-out », il faut un retard de 4 fois le
retard de propagation de la bascule unique.
-Dans les conceptions synchrones, toutes les bascules sont déclenchées sur le même front
d'horloge

-Le délai global est égal au délai de propagation d'une simple bascule.

-La conception synchrone du compteur gris 2 bits est illustrée dans la figure ci-dessous, et les
deux registres utilisent la même source d'horloge pilotée par l'horloge principale.

Résumé :

Voici les points clés pour résumer ce cours:

-Les SPLD sont utilisés pour la conception de conceptions à petit nombre de portes.

-Les SPLD sont classés comme PROM, PAL et PLA.

-Les CPLD sont utilisés pour réaliser des conceptions à nombre de portes modéré avec de
meilleures performances de synchronisation.
-Les FPGA sont programmés par le programme utilisateur sur le terrain.

-L'architecture FPGA se compose de CLB, d'IOB, de ressources de routage, de ressources de


synchronisation et d'interconnexions programmables.

-Les FPGA modernes comprennent les CLB, les IOB, les ressources de routage, les ressources de
synchronisation, les interconnexions programmables, les blocs DSP, les multiplicateurs, le
processeur, etc.

Vous aimerez peut-être aussi