Cours_FPGA_2009
description
Transcript of Cours_FPGA_2009
Circuits Logiques Programmables J. KHALLAAYOUNE, INPT-RABAT26/10/2009 1
Circuits Logiques Programmables
Ce document a été fabriqué par PDFmail (Copyright RTE Software)http://www.pdfmail.com
Circuits Logiques Programmables J. KHALLAAYOUNE, INPT-RABAT26/10/2009 2
PAL PAL Programmable Logic ArrayProgrammable Logic Array
• Réseau de portes ET, OU, NON
• PAL n*r*k§ k fonctions logiques
§ n variables d ’entrée
§ r termes produits
§ composition : n inverseurs, r portes ET, k portes OU
• Différents types de PAL§ réseau ET fixe, réseau OU programmable
§ réseau ET programmable, réseau OU fixe
§ réseau ET programmable, réseau OU programmable
Ce document a été fabriqué par PDFmail (Copyright RTE Software)http://www.pdfmail.com
Circuits Logiques Programmables J. KHALLAAYOUNE, INPT-RABAT26/10/2009 3
PAL PAL Programmable Logic ArrayProgrammable Logic Array
A
B
C
TermeProduit
TermeProduit
TermeProduit
TermeProduit
Connexion Programmable (Flash EPROM)
5 Volt 5 Volt 5 Volt 5 Volt
Ce document a été fabriqué par PDFmail (Copyright RTE Software)http://www.pdfmail.com
Circuits Logiques Programmables J. KHALLAAYOUNE, INPT-RABAT26/10/2009 4
PAL PAL Programmable Logic ArrayProgrammable Logic Array
A
B
C
F1
F2
F3
F1 = AB + A ’B ’C + A ’B ’
F2 = A ’B ’C + BC + A ’B ’
F3 = AB + A ’B ’
= connexion
Ce document a été fabriqué par PDFmail (Copyright RTE Software)http://www.pdfmail.com
Circuits Logiques Programmables J. KHALLAAYOUNE, INPT-RABAT26/10/2009 5
PAL CombinatoirePAL Combinatoire
Macro-Cellule
Ce document a été fabriqué par PDFmail (Copyright RTE Software)http://www.pdfmail.com
Circuits Logiques Programmables J. KHALLAAYOUNE, INPT-RABAT26/10/2009 6
PAL SynchronePAL Synchrone
Macro-Cellule
Ce document a été fabriqué par PDFmail (Copyright RTE Software)http://www.pdfmail.com
Circuits Logiques Programmables J. KHALLAAYOUNE, INPT-RABAT26/10/2009 7
PAL Combinatoire et SynchronePAL Combinatoire et Synchrone
Ce document a été fabriqué par PDFmail (Copyright RTE Software)http://www.pdfmail.com
Circuits Logiques Programmables J. KHALLAAYOUNE, INPT-RABAT26/10/2009 8
Macro-Cellule
PAL22V10PAL22V10
Ce document a été fabriqué par PDFmail (Copyright RTE Software)http://www.pdfmail.com
Circuits Logiques Programmables J. KHALLAAYOUNE, INPT-RABAT26/10/2009 9
PAL22V10PAL22V10
Ce document a été fabriqué par PDFmail (Copyright RTE Software)http://www.pdfmail.com
Circuits Logiques Programmables J. KHALLAAYOUNE, INPT-RABAT26/10/2009 10
CPLD CPLD Complex Programmable Logic DeviceComplex Programmable Logic Device
E/S E/SMatrice d’Interconnexion
Bloc Logique
Bloc Logique
Bloc Logique
Macro-Cellule
Macro-Cellule
Macro-Cellule
Ce document a été fabriqué par PDFmail (Copyright RTE Software)http://www.pdfmail.com
Circuits Logiques Programmables J. KHALLAAYOUNE, INPT-RABAT26/10/2009 11
Max7000 (7064)Max7000 (7064)
PIA (Programmable Interconnect Array) permet de connecter les macrocells entres elles
Ce document a été fabriqué par PDFmail (Copyright RTE Software)http://www.pdfmail.com
Circuits Logiques Programmables J. KHALLAAYOUNE, INPT-RABAT26/10/2009 12
Avantages et inconvAvantages et inconvéénients des architectures CPLDnients des architectures CPLD
Avantages :
• Vitesse de fonctionnement prédictible• Routage aisé et automatique
(ressources abondantes)• Outils de développement simples
et économiques• Capacité logique équivalente :
De 4 à 20 PALs 22V10
Inconvénients :• Consommation non négligeable
due principalement à la grande charge capacitive imposée aux buffers d’entrée :Chaque buffer doit pouvoir piloter :
Nbre_termes_produits_par macro_cellule X Nbre_macro_cellules X 2
• Complexité limitée à quelques centaines de bascules
• Possibilités limitées d’évolution du design après avoir figé le brochage
D Q
D Q
D Q
Ce document a été fabriqué par PDFmail (Copyright RTE Software)http://www.pdfmail.com
Circuits Logiques Programmables J. KHALLAAYOUNE, INPT-RABAT26/10/2009 13
FPGA FPGA Field Programmable Gate ArrayField Programmable Gate Array
BlocLogique
BlocLogique
BlocLogique
BlocLogique
BlocLogique
BlocLogique
BlocLogique
BlocLogique
BlocLogique
BlocLogique
BlocLogique
BlocLogique
BlocLogique
BlocLogique
BlocLogique
BlocLogique
BlocLogique
BlocLogique
BlocLogique
BlocLogique
BlocLogique
BlocLogique
BlocLogique
BlocLogique
BlocLogique
BlocLogique
BlocLogique
BlocLogique
BlocLogique
BlocLogique
BlocLogique
BlocLogique
BlocLogique
BlocLogique
BlocLogique
BlocLogique
E/S E/S
E/S
E/S
Ce document a été fabriqué par PDFmail (Copyright RTE Software)http://www.pdfmail.com
Circuits Logiques Programmables J. KHALLAAYOUNE, INPT-RABAT26/10/2009 14
FPGA Xilinx anciennes gFPGA Xilinx anciennes géénnéérationsrationsBlocs d'entrée/sortie (IOB)Blocs bi-directionnels comprenant :Buffers, bascules et latch d'entrée,buffer tri-state et bascule de sortie…
Blocs de logiqueconfigurables (CLB)comprenant logique combinatoireet registres.Chaque CLB peut également être configuré en ALU cascadable 2 bits,ou en mémoire synchrone,simple ou double port ultra rapide1 CLB = 1Slice
Réseau d'interconnexionshierarchisé programmable- Longues lignes verticales poursignaux de contrôle- Longues lignes horizontales pour bus de données- Interconnexions générales- Interconnexions directes - Arbres d’horloges
Ce document a été fabriqué par PDFmail (Copyright RTE Software)http://www.pdfmail.com
Circuits Logiques Programmables J. KHALLAAYOUNE, INPT-RABAT26/10/2009 15
Architectures Virtex et SpartanArchitectures Virtex et Spartan--IIII
2 x 2 Digital Delay Locked Loop (DLL)et 2 x 2 buffers d’horloges (BUFG)
I/O Blocs d’entrée/sortie
(IOBs)répartis en 8 banques
Blocs de LogiqueConfigurables(CLB) de capacité double1 CLB = 2 Slices
Banque 0 Banque 1
Banque 2
Banque 3
Block SelectRAM(4 Kbits/bloc,Double port)
ü Le coeur de logique de Virtex et Spartan-II s’alimente en 2.5V
ü Les différentes banques d’I/Os peuvent être alimentées en 2.5 ou 3.3v
ü I/Os compatibles 5v (si Vcco = 3.3v)
Ce document a été fabriqué par PDFmail (Copyright RTE Software)http://www.pdfmail.com
Circuits Logiques Programmables J. KHALLAAYOUNE, INPT-RABAT26/10/2009 16
Architecture VirtexArchitecture Virtex--EE
I/O Blocs d’entrée/sortie
(IOBs)répartis en 8 banques
Modes différentiels (LVDS)
ü Le coeur de logique de Virtex-E et Spartan-II-E s’alimente en 1.8V
ü Les différentes banques d’I/Os peuvent être alimentées en 1.5, 1.8, 2.5 ou 3.3v
ü I/Os non directement compatibles 5v
2 x 4 Digital Delay Locked Loop (DLL)et 2 x 2 buffers d’horloges
Blocs de LogiqueConfigurables(CLB) de capacité double1 CLB = 2 Slices
Block SelectRAM(4 Kbits/bloc,Double port)
Banque 0 Banque 1
Banque 2
Banque 3
Ce document a été fabriqué par PDFmail (Copyright RTE Software)http://www.pdfmail.com
Circuits Logiques Programmables J. KHALLAAYOUNE, INPT-RABAT26/10/2009 17
Architecture VirtexArchitecture Virtex--IIII
ü Le coeur de logique de Virtex-II s’alimente en 1.5V
ü Les différentes banques d’I/Os peuvent être alimentées en 1.5, 1.8, 2.5 ou 3.3v
I/O Blocs d’entrée/sortie
répartis en 8 banques
De 4 à 12 DCM (Digital Clock Managers) et 8 x 2 buffers d’horloges
Banque 0 Banque 1
Blocs de LogiqueConfigurables1 CLB = 4 Slices
Block SelectRAM(18 Kbits/bloc,Double port)
Multiplieurs dédiés 18x18 signés
Banque 2
Banque 3
Ce document a été fabriqué par PDFmail (Copyright RTE Software)http://www.pdfmail.com
Circuits Logiques Programmables J. KHALLAAYOUNE, INPT-RABAT26/10/2009 18
Familles FPGA XILINXFamilles FPGA XILINX
15K 50K 200K 600K 1M 3.2M 15K 50K 200K 600K 1M 3.2M 8M8M
VirtexVirtex--EE 11 composants11 composants
SpartanSpartan--IIII 6 composants6 composants
VirtexVirtex--IIII 11 composants11 composants
VirtexVirtex 9 composants9 composants
SpartanSpartan--IIEIIE 8 composants8 composants
Ce document a été fabriqué par PDFmail (Copyright RTE Software)http://www.pdfmail.com
Circuits Logiques Programmables J. KHALLAAYOUNE, INPT-RABAT26/10/2009 19
En rEn réésumsuméé ququ’’est ce quest ce qu’’un FPGA XILINX ?un FPGA XILINX ?
• Un FPGA peut être comparé à un ASIC « en kit »• Différentes familles permettent d’effectuer le choix idéal pour le design envisagé, en fonction de la densité et de la performance souhaitée.
• Toutes les familles de FPGA Xilinx disposent en particulier de ressources logiques organisées en SLICES :
• Ressources de logique combinatoire et registres en grand nombre• Ressources spécifiques pour implémentation de fonctions arithmétiques• Possibilités de bus « tri-state » internes• Mémoire distribuée (Slices) et blocs de RAM dédiée
• D’autres éléments indispensable sont également disponibles :• Blocs d’entrée/sortie bi-directionnels équipés de bascules et permettant différents standards de communication (LVTTL, LVCMOS, LVDS sur les familles les plus évoluées…)• Arbres de distribution d’horloges• Ressources de routage hiérarchisées : interconnexions directes, générales, longues lignes horizontales (bus internes) et verticales (signaux de contrôle).
Ce document a été fabriqué par PDFmail (Copyright RTE Software)http://www.pdfmail.com
Circuits Logiques Programmables J. KHALLAAYOUNE, INPT-RABAT26/10/2009 20
Structure SimplifiStructure Simplifiéée du Slicee du Slice
ð Chaque slice dispose de quatre sorties• Deux sorties de registres
+ deux sorties combinatoires• Deux BUFTs (buffers tri-state) sont
associés à chaque CLB. Ils sont accessibles par chacune des sorties du CLB
ð Les fonctions combinatoires et bascules sont utilisables indépendament
ð Une logique arithmétique dédiée permet l’implémentation optimisée de fonctions telles que :• Additionneurs, soustracteurs,
comparateurs, accumulateurs…• Mais aussi de multiplieurs,
multiplieurs/accumulateurs…
LUT Carry D QCE
PRE
CLR
LUT CarryD QCE
PRE
CLR
LUT CarryD
QCE
PRE
CLR
LUT Carry DQCE
PRE
CLR
Macro-Cellule
Macro-Cellule
Ce document a été fabriqué par PDFmail (Copyright RTE Software)http://www.pdfmail.com
Circuits Logiques Programmables J. KHALLAAYOUNE, INPT-RABAT26/10/2009 21
Structure SimplifiStructure Simplifiéée du Slicee du Slice
ð Chaque slice dispose de quatre sorties• Deux sorties de registres
+ deux sorties combinatoires• Deux BUFTs (buffers tri-state) sont
associés à chaque CLB. Ils sont accessibles par chacune des sorties du CLB
ð Les fonctions combinatoires et bascules sont utilisables indépendament
ð Une logique arithmétique dédiée permet l’implémentation optimisée de fonctions telles que :• Additionneurs, soustracteurs,
comparateurs, accumulateurs…• Mais aussi de multiplieurs,
multiplieurs/accumulateurs…
LUT Carry D QCE
PRE
CLR
LUT CarryD QCE
PRE
CLR
LUT CarryD
QCE
PRE
CLR
LUT Carry DQCE
PRE
CLR
Ce document a été fabriqué par PDFmail (Copyright RTE Software)http://www.pdfmail.com
Circuits Logiques Programmables J. KHALLAAYOUNE, INPT-RABAT26/10/2009 22
BasculeBascule
ð Toutes les bascules sont configurables en Latch transparent
ð Polarité programmable pour tous les signaux de contrôle : horloge, enable, set et reset.
ð SET et RESET synchrones ou asynchrones
ð Les signaux de contrôle sont communs pour les 2 bascules d’un même slice, mais peuvent être de polarité différente
ð Validation de l’horloge sur toutes les bascules des CLBs et IOBs. (Evite l’insertion de délais de logique combinatoire et de routage)
D Q
CK
01D
CE
CK
SET (synchrone ou asynchrone)
RESET (synchrone ou asynchrone)
Ce document a été fabriqué par PDFmail (Copyright RTE Software)http://www.pdfmail.com
Circuits Logiques Programmables J. KHALLAAYOUNE, INPT-RABAT26/10/2009 23
Table LookTable Look--Up (LUT)Up (LUT)
DOUT
DECOD4 --> 16
ENABLE
CE0
DELAI
CE1
CE15
MUX16 ==> 1
Générateur de fonction F ou G
F1F2F3F4
Eléments mémoire
initialisés à la configuration
ð Les générateurs de fonction à quatre entrées sont en fait des tables de vérité de 16 bits (LUT).
ð La combinaison des entrées commande un multiplexeur de 16 vers 1.
ð Il s’agit donc bien d’un fonctionnement purement combinatoire.
Ce document a été fabriqué par PDFmail (Copyright RTE Software)http://www.pdfmail.com
Circuits Logiques Programmables J. KHALLAAYOUNE, INPT-RABAT26/10/2009 24
Table LookTable Look--Up (LUT)Up (LUT)ð Chaque LUT permet de réaliser une fonction combinatoire pouvant avoir
jusqu’à 4 entrées.
ð Aussi appelées Générateurs de Fonctions (FGs): La complexité des fonctions combinatoires est limitée seulement par le nombre d’entrées
ð Le délai est constant quelle que soit la fonction implémentée.
Combinatorial Logic
AB
CD
F
A B C D F
0 0 0 0 00 0 0 1 00 0 1 0 00 0 1 1 10 1 0 0 10 1 0 1 1
. . .1 1 0 0 01 1 0 1 01 1 1 0 01 1 1 1 1
Ce document a été fabriqué par PDFmail (Copyright RTE Software)http://www.pdfmail.com
Circuits Logiques Programmables J. KHALLAAYOUNE, INPT-RABAT26/10/2009 25
MMéémoire distribumoire distribuéée e àà éécriture synchronecriture synchrone
ADRF ou G
4DIN
WR_EN
CK
DECOD4 --> 16
ENABLE
CE0
DELAI
CE1
CE15
DOUTMUX16 --> 1
Générateur de fonction F ou Gð Un dispositif de registres
d’entrée et de signaux de contrôle permettent de transformer les LUTs enmémoire de 16 bits, à écriture synchrone
ð Nombre de slices occupés suivant la taille de la mémoire :16 Octets = 4 Slices 64 Octets = 16 Slices 256 Octets = 64 Slices
ð La combinaison des entrées commande un multiplexeur de 16 vers 1 pour la lecture.
ð Les chemins d’écriture et de lecture sont totalement indépendants.
Ce document a été fabriqué par PDFmail (Copyright RTE Software)http://www.pdfmail.com
Circuits Logiques Programmables J. KHALLAAYOUNE, INPT-RABAT26/10/2009 26
INT(3)
INT(2)
INT(1)
INT(0)
ADR(3)ADR(2)ADR(1)ADR(0)DIN(2)
WRCK
ADR(3)ADR(2)ADR(1)ADR(0)DIN(1)
WRCK
ADR(3)ADR(2)ADR(1)ADR(0)DIN(0)
WRCK
ADR(3)ADR(2)ADR(1)ADR(0)DIN(0)
WRCK
DOUT(3)
DOUT(2)
DOUT(1)
DOUT(0)
A3A2A1A0DWEWCLK RAM16x1S
O
GENE/UA6 A3A2A1A0DWEWCLK RAM16x1S
O
GENE/UA2
A3A2A1A0DWEWCLK RAM16x1S
O
GENE/UA5 A3A2A1A0DWEWCLK RAM16x1S
O
GENE/UA1
A3A2A1A0DWEWCLK RAM16x1S
O
GENE/UA4 A3A2A1A0DWEWCLK RAM16x1S
O
GENE/UA0
READ_B
A3A2A1A0DWEWCLK RAM16x1S
O
GENE/UA7 A3A2A1A0DWEWCLK RAM16x1S
O
GENE/UA3ADR(3)ADR(2)ADR(1)ADR(0)DIN(2)
WRCK
ADR(3)ADR(2)ADR(1)ADR(0)DIN(1)
WRCK
ADR(3)ADR(2)ADR(1)ADR(0)DIN(0)
WRCK
ADR(3)ADR(2)ADR(1)ADR(0)DIN(0)
WRCK
DOUT(7)
DOUT(6)
DOUT(5)
DOUT(4)
INT(7)
INT(6)
INT(5)
INT(4)
Exemple: MExemple: Méémoire distribumoire distribuéée e 16 Octets = 4 Slices16 Octets = 4 Slices
Ce document a été fabriqué par PDFmail (Copyright RTE Software)http://www.pdfmail.com
Circuits Logiques Programmables J. KHALLAAYOUNE, INPT-RABAT26/10/2009 27
INT(3)
INT(2)
INT(1)
INT(0)
ADR(3)ADR(2)ADR(1)ADR(0)DIN(3)
WRCK
ADR(3)ADR(2)ADR(1)ADR(0)DIN(2)
WRCK
ADR(3)ADR(2)ADR(1)ADR(0)DIN(1)
WRCK
ADR(3)ADR(2)ADR(1)ADR(0)DIN(0)
WRCK
DOUT(3)
DOUT(2)
DOUT(1)
DOUT(0)
A3A2A1A0DWEWCLK RAM16x1S
O
GENE/UA6 A3A2A1A0DWEWCLK RAM16x1S
O
GENE/UA2
A3A2A1A0DWEWCLK RAM16x1S
O
GENE/UA5 A3A2A1A0DWEWCLK RAM16x1S
O
GENE/UA1
A3A2A1A0DWEWCLK RAM16x1S
O
GENE/UA4 A3A2A1A0DWEWCLK RAM16x1S
O
GENE/UA0
READ_B
A3A2A1A0DWEWCLK RAM16x1S
O
GENE/UA7 A3A2A1A0DWEWCLK RAM16x1S
O
GENE/UA3ADR(3)ADR(2)ADR(1)ADR(0)DIN(7)
WRCK
ADR(3)ADR(2)ADR(1)ADR(0)DIN(6)
WRCK
ADR(3)ADR(2)ADR(1)ADR(0)DIN(5)
WRCK
ADR(3)ADR(2)ADR(1)ADR(0)DIN(4)
WRCK
DOUT(7)
DOUT(6)
DOUT(5)
DOUT(4)
INT(7)
INT(6)
INT(5)
INT(4)
Exemple: MExemple: Méémoire distribumoire distribuéée e 16 Octets = 4 Slices16 Octets = 4 Slices
SLICESLICE
SLICESLICE
SLICESLICE
SLICESLICE
Ce document a été fabriqué par PDFmail (Copyright RTE Software)http://www.pdfmail.com
Circuits Logiques Programmables J. KHALLAAYOUNE, INPT-RABAT26/10/2009 28
Exemple: MExemple: Méémoire distribumoire distribuéée e 16 Octets = 4 Slices16 Octets = 4 Slices
library IEEE; use IEEE.std_logic_1164.all;
entity MEMO_TRI is -- Module mémoire synchrone 16 x 8 bits. port ( ADR : in std_logic_vector(3 downto 0);
DIN : in std_logic_vector(7 downto 0);WR, READ_B, CK : in std_logic;DOUT : out std_logic_vector(7 downto 0));
end MEMO_TRI;
architecture ARCHI of MEMO_TRI issignal INT : std_logic_vector(7 downto 0); component RAM16x1s
port ( A3, A2, A1, A0, D, WE, WCLK : in std_logic;O : out std_logic);
end component;beginGENE : for I in DIN'range generateUA : RAM16x1S port map (
A3 => ADR(3), A2 => ADR(2), A1 => ADR(1), A0 => ADR(0),D => DIN(I), WE => WR, WCLK => CK, O => INT(I));DOUT(I) <= INT(I) when READ_B ='0' else 'Z'; -- sortie 3 états
end generate;end ARCHI;
Ce document a été fabriqué par PDFmail (Copyright RTE Software)http://www.pdfmail.com
Circuits Logiques Programmables J. KHALLAAYOUNE, INPT-RABAT26/10/2009 29
MMéémoire distribumoire distribuéée double porte double port
ð En séparant les adresses de lecture et celles d’écriture, il est possible de lire à une adresse pendant une écriture à une adresse indépendante.
ð Dans ce cas, deux générateurs de fonctions sont utilisés pour une mémoire double port de 16 bits.
ð 16 Octets = 8 slices
Générateur de fonction F ou G
DOUT
DECOD4 --> 16
ENABLE
CE0
DELAI
CE1
CE15
MUX16 --> 1
Adr F4
DIN
WR_EN
CKAdr G
4
Ce document a été fabriqué par PDFmail (Copyright RTE Software)http://www.pdfmail.com
Circuits Logiques Programmables J. KHALLAAYOUNE, INPT-RABAT26/10/2009 30
Registres Registres àà ddéécalage de longueur programmablecalage de longueur programmable
ð Par la mise en cascade des 16 éléments de mémorisation, la LUT peut être utilisée en registre à décalage (DASR).
ð Le nombre de coups d’horloge de retard est programmable dynamiquement entre 1 et 16.
ð Les primitives Xilinx de registres à décalage implémentés en LUTs sont baptisées SRL16.
ð Ces primitives sont en principe automatiquement inférées par les outils de synthèse.Note : Les bascules des SRL ne peuvent pas être resettées
DOUT
DIN
CE
CK
MUX16 --> 1
Générateur de fonction F ou G
Adr4
DELAI
Ce document a été fabriqué par PDFmail (Copyright RTE Software)http://www.pdfmail.com
Circuits Logiques Programmables J. KHALLAAYOUNE, INPT-RABAT26/10/2009 31
Exemple de LUT utilisExemple de LUT utiliséés en Shift Registers en Shift Register
ð Les SRL16 peuvent être utilisés pour créer des retards (NOPs)q Cet exemple utilise 64 LUTs (32 slices) au lieu de 576 flip-
flops (288 slices)
12 Cycles
64Operation A
4 Cycles 8 Cycles
Operation B
3 Cycles
Operation C
64
12 Cycles
Equilibrage des retards sur les deux voies
9 Cycles
Operation D - NOP
Ce document a été fabriqué par PDFmail (Copyright RTE Software)http://www.pdfmail.com
Circuits Logiques Programmables J. KHALLAAYOUNE, INPT-RABAT26/10/2009 32
Structure SimplifiStructure Simplifiéée du Slicee du Slice
ð Chaque slice dispose de quatre sorties• Deux sorties de registres + deux sorties combinatoires• Deux BUFTs (buffers tri-state) sont
associés à chaque CLB. Ils sont accessibles par chacune des sorties du CLB
ð Les fonctions combinatoires et bascules sont utilisables indépendament
ð Une logique arithmétique dédiée permet l’implémentation optimisée de fonctions telles que :• Additionneurs, soustracteurs,
comparateurs, accumulateurs…• Mais aussi de multiplieurs,
multiplieurs/accumulateurs…
LUT Carry D QCE
PRE
CLR
LUT CarryD QCE
PRE
CLR
LUT CarryD
QCE
PRE
CLR
LUT Carry DQCE
PRE
CLR
Ce document a été fabriqué par PDFmail (Copyright RTE Software)http://www.pdfmail.com
Circuits Logiques Programmables J. KHALLAAYOUNE, INPT-RABAT26/10/2009 33
Logique arithmLogique arithméétique (Fast Carry)tique (Fast Carry)Logique programmable et fonctions arithmétiques :Approche Xilinx : • Un dispositif spécialisé de calcul
et de propagation de retenue est associé à chaque générateur de fonction.
• Un slice peut donc être configurécomme une ALU 2 bits.
• La propagation de retenue s’effectue du bas vers le haut, entre Slices voisins
• Temps de propagation de la retenue entre 2 Slices :VIRTEX-E - 7 : ~ 50 ps / bit
• Temps de propagation de la retenue pour un additionneur ou soustracteur 32 bits :
50 ps x 32 = 1,6 ns S0 = f (A0, B0, CIN)
S1 = f (A1, B1, CIN)
S2 = f (A2, B2, CIN)
S3 = f (A3, B3, CIN)
S15 = f (A15, B15, CIN)
A0B0
A1B1
A2B2
A3B3
A15B15
Fonction de 3 entrées
CIN
COUT
CIN
COUT
CIN
CIN
COUT
COUT
COUT
CIN
1 slice
1 slice
Ce document a été fabriqué par PDFmail (Copyright RTE Software)http://www.pdfmail.com
Circuits Logiques Programmables J. KHALLAAYOUNE, INPT-RABAT26/10/2009 34
Logique arithmLogique arithméétique (Fast Carry)tique (Fast Carry)Addition/soustraction avec le même nombre de slices
S0 = f (A0, B0, CIN, ADD_SUB)
S1 = f (A1, B1, CIN, ADD_SUB)
S2 = f (A2, B2, CIN, ADD_SUB)
S3 = f (A3, B3, CIN, ADD_SUB)
S15 = f (A15, B15, CIN, ADD_SUB)
A0B0
A1B1
A2B2
A3B3
A15B15
Fonction de 4 entrées
CIN
COUT
CIN
COUT
CIN
CIN
COUT
COUT
COUT
CIN
ADD_SUB
Ce document a été fabriqué par PDFmail (Copyright RTE Software)http://www.pdfmail.com
Circuits Logiques Programmables J. KHALLAAYOUNE, INPT-RABAT26/10/2009 35
Logique arithmLogique arithméétique (Fast Carry)tique (Fast Carry)library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity DEMO isPort ( A, B : in std_logic_vector(13 downto 0);
ADD_SUB : in std_logic;--clk : in std_logic;S : out std_logic_vector(13 downto 0));
end DEMO;
architecture Behavioral of DEMO isSignal DIFFERENCE, SOMME: std_logic_vector(13 downto 0);begin
SOMME <= A + B;DIFFERENCE <= A - B;S <= SOMME when ADD_SUB = '1' else DIFFERENCE;
--S <= (A + B) when ADD_SUB = '1' else (A - B);
--process(clk)--begin--if rising_edge(clk) then -- if ADD_SUB = '1' then S <= (A + B);-- else S <= (A - B);-- end if;--end if;--end process;
end Behavioral;
Ce document a été fabriqué par PDFmail (Copyright RTE Software)http://www.pdfmail.com
Circuits Logiques Programmables J. KHALLAAYOUNE, INPT-RABAT26/10/2009 36
Logique arithmLogique arithméétiquetiqueImplémentation d’un accumulateur en addition/soustraction
A0B0
A1B1
A2B2
A3B3
A15B15
CIN
COUT
CIN
COUT
CIN
CIN
COUT
COUT
COUT
CIN
ADD_SUB
D QECCK
D QECCK
D QECCK
D QECCK
D QECCK
1 slice
1 slice
CLOCKVALIDATION
ADD_SUB = 1:A = A + B
ADD_SUB = 0:A = A - B
Ce document a été fabriqué par PDFmail (Copyright RTE Software)http://www.pdfmail.com
Circuits Logiques Programmables J. KHALLAAYOUNE, INPT-RABAT26/10/2009 37
Multiplexeurs dMultiplexeurs déédidiééss
ð En outre, chaque Slice dispose de multiplexeurs dédiés permettant d’augmenter la capacité logique sans avoir recours aux ressources de routage.
Voir MUXF5, MUXF6,…
Ce document a été fabriqué par PDFmail (Copyright RTE Software)http://www.pdfmail.com
Circuits Logiques Programmables J. KHALLAAYOUNE, INPT-RABAT26/10/2009 38
Multiplexeurs dMultiplexeurs déédidiééss
library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity muxN_1 is generic(N: integer := 8);Port ( Din : in std_logic_vector(N-1 downto 0);
sel : in integer range 0 to N-1;S : out std_logic);
end muxN_1;
architecture Behavioral of muxN_1 is
begin
S <= Din(sel);
end Behavioral;
Ce document a été fabriqué par PDFmail (Copyright RTE Software)http://www.pdfmail.com
Circuits Logiques Programmables J. KHALLAAYOUNE, INPT-RABAT26/10/2009 39
Multiplexeurs dMultiplexeurs déédidiéés: 8 s: 8 àà 11
LUT1Din0
Din1
Sel0
LUT2Din2
Din3
Sel0
MUXF5
G = Din0 Sel0\ + Din1 Sel1
F = Din2 Sel0\ + Din3 Sel1
LUT1Din4
Din5
Sel0
LUT2Din6
Din7
Sel0
MUXF5
G = Din4 Sel0\ + Din5 Sel1
F = Din6 Sel0\ + Din7 Sel1
MUXF6Sel1
Sel1
Sel2
SLICE1SLICE1
SLICE2SLICE2
SS
Ce document a été fabriqué par PDFmail (Copyright RTE Software)http://www.pdfmail.com
Circuits Logiques Programmables J. KHALLAAYOUNE, INPT-RABAT26/10/2009 40
Fonctions Fonctions éévoluvoluéées de traitement du signales de traitement du signal
• Blocs de mémoire synchrone simple et double port :
• Blocs de 4 Kbits : sur familles Virtex, Virtex-E, Spartan-II et Spartan-II-E.
• Blocs de 18 Kbits : sur famille Virtex-II
• Ces blocs de mémoire permettent d’implémenter efficacement des FIFOs, des lignes à retard digitales, mais aussi des fonctions séquentielles complexes et rapides (ex : machines d’états, séquenceurs…)
• Multiplieurs câblés 18x18 bits signés : sur famille Virtex-II
Ce document a été fabriqué par PDFmail (Copyright RTE Software)http://www.pdfmail.com
Circuits Logiques Programmables J. KHALLAAYOUNE, INPT-RABAT26/10/2009 41
Fonctions Fonctions éévoluvoluéées de traitement du signales de traitement du signal
ü Le coeur de logique de Virtex-II s’alimente en 1.5V
ü Les différentes banques d’I/Os peuvent être alimentées en 1.5, 1.8, 2.5 ou 3.3v
I/O Blocs d’entrée/sortie
répartis en 8 banques
De 4 à 12 DCM (Digital Clock Managers) et 8 x 2 buffers d’horloges
Banque 0 Banque 1
Blocs de LogiqueConfigurables1 CLB = 4 Slices
Block SelectRAM(18 Kbits/bloc,Double port)
Multiplieurs dédiés 18x18 signés
Banque 2
Banque 3
Ce document a été fabriqué par PDFmail (Copyright RTE Software)http://www.pdfmail.com
Circuits Logiques Programmables J. KHALLAAYOUNE, INPT-RABAT26/10/2009 42
Architecture dArchitecture d’’un Blocs de RAM simple portun Blocs de RAM simple port
Diagramme simplifié de la configuration simple port(4 Kbits/bloc pour Spartan II, Virtex, ...)
DECOD
ENABLE
MATRICEMEMOIRE
CONFIGURABLE
4Kx12Kx21Kx4512x8
256x16
ADDR
8 à 12 bits
WE
EN
DI1 à 16 bits
CERST
REG
MUX
DO1 à 16
RST(Reset synchrone)
CLK DELAI
Ce document a été fabriqué par PDFmail (Copyright RTE Software)http://www.pdfmail.com
Circuits Logiques Programmables J. KHALLAAYOUNE, INPT-RABAT26/10/2009 43
Architecture dArchitecture d’’un Blocs de RAM simple portun Blocs de RAM simple port
Diagramme simplifié de la configuration simple port(18 Kbits/bloc pour Virtex-II )
DECOD
ENABLE
MATRICEMEMOIRE
CONFIGURABLE
16Kx18Kx24Kx42Kx91Kx18512x36
ADDR
9 à 14 bits
WE
EN
DI1 à 36 bits
CESET/RST
REG
MUX
DO1 à 36
RST ou SSR(Synchronous Set Reset)
CLK DELAI
Ce document a été fabriqué par PDFmail (Copyright RTE Software)http://www.pdfmail.com
Circuits Logiques Programmables J. KHALLAAYOUNE, INPT-RABAT26/10/2009 44
Block Select RAMBlock Select RAM (simple ou double port entr(simple ou double port entréées et sorties ses et sorties sééparparéées)es)
ð Mémoire à écriture et lecture synchrones, par blocs de 4 ou 18Kbits suivant les familles
ð Double port par construction• Chaque port (A et B) supporte les écritures et
lectures synchrones.• Horloges indépendantes sur les deux ports
ð Set/Reset synchrone de l’étage de sortieð Entrée de validation des opérations de lecture
et d’écriture (ENA et ENB)
ð Contenu initialisé pendant la configuration• Permet l’implémentation de machines d’états,
séquenceurs…
ð Supportent les bits de parité• 1 bit de parité par octet
DI
ADDR
WEENRST DOCLK
RAMB4_S#
DIA
ADDRA
WEAENARSTA DOACLKA
DIB
ADDRB
WEBENBRSTB DOBCLKB
RAMB4_S#_S#
Ce document a été fabriqué par PDFmail (Copyright RTE Software)http://www.pdfmail.com
Circuits Logiques Programmables J. KHALLAAYOUNE, INPT-RABAT26/10/2009 45
Block Select RAMBlock Select RAM (simple ou double port entr(simple ou double port entréées et sorties ses et sorties sééparparéées)es)
DI
ADDR
WEENRST DOCLK
RAMB4_S#
DIA
ADDRA
WEAENARSTA DOACLKA
DIB
ADDRB
WEBENBRSTB DOBCLKB
RAMB4_S#_S#
ð Configuration indépendante des largeurs de bus sur chacun des deux ports
Autres familles Virtex-II
4K x 1 16K x 12K x 2 8K x 21K x 4 4K x 4512 x 8 2K x 9256 x 16 1K x 18
512 x 36
ð Conversion automatique et instantannée de largeur de bus, sérialiseurs, paraléliseurs…
Ex1 : Port A organisé en 8 bits, Port B en 16 bits : RAMB4_S8_S16 (Spartan-II)
Ex2 : Port A organisé en 4 bits, Port B en 18 bits :RAMB16_S4_S18 (Virtex-II)
Ce document a été fabriqué par PDFmail (Copyright RTE Software)http://www.pdfmail.com
Circuits Logiques Programmables J. KHALLAAYOUNE, INPT-RABAT26/10/2009 46
RAMB4_S16_S16WEENRST
CLKVCC, ADDR<6:0>
DI<31:16>
GND, ADDR<6:0>DI<15:0>
DO<31:16>
DO<15:0>
WEAENARSTA DOA<15:0>
CLKAADDRA<7:0>DIA<15:0>
Organisation 256 x 16
WEBENBRSTB DOB<15:0>CLKB
ADDRB<7:0>DIB<15:0>
Organisation 256 x 16
Block Select RAM Block Select RAM : CONFIGURATION 128 x 32: CONFIGURATION 128 x 32
Ce document a été fabriqué par PDFmail (Copyright RTE Software)http://www.pdfmail.com
Circuits Logiques Programmables J. KHALLAAYOUNE, INPT-RABAT26/10/2009 47
Block Select RAMBlock Select RAM Utilisation en machines dUtilisation en machines d’é’états, stats, sééquenceursquenceurs……
ð Utilisé en mode ROM (dévalidation des cycles d’écriture) un bloc de RAM peut implémenter très efficacement des machines d’états et/ou séquenceurs.
ð Exemples :• Configuration 512 x 8 :
§ 32 états, 4 entrées + 3 sorties§ 16 états, 5 entrées + 4 sorties
• Les signaux RST et EN peuvent être utilisés pour augmenter le nombre d’entrées disponible
DI
ADDR
WEENRST DOCLK
RAMB4_S8ENTREES
ENABLE
SET/RESET
CLOCK
ETATSETSORTIES
REBOUCLAGE DES ETATS ENCODES EN BINAIRE
Exemple de fichier NCF d’initialisation de la mémoire à la configuration:
INST U1_BRAM INIT_00 = 282828285c281d28282828285c351d28282828285c281d28282828285c351d00;INST U1_BRAM INIT_01 = 284040402840404028404040284040402840404028404040284040402840401d;INST U1_BRAM INIT_02 = 6835683568686868683568356868682835283528282828283528352828282828;……...INST U1_BRAM INIT_0f = f4d4f4d4d49cd4f4d4d4d4d4d4d4d4d400000000d4d4d4d4d4d4d4d4d4d4d4d4;
Ce document a été fabriqué par PDFmail (Copyright RTE Software)http://www.pdfmail.com
Circuits Logiques Programmables J. KHALLAAYOUNE, INPT-RABAT26/10/2009 48
Distribution dDistribution d’’horlogeshorloges
IPAD(dédié)
BUFG
Arbre d’horloge disposant de connexions directes vers toutes les bascules et autres éléments
séquentiels
w L’utilisation d’un BUFG impose le choix des broches d’entrée spécifiques.
Délai de distribution de l’horloge
(lié à la taille du FPGA)
Ce document a été fabriqué par PDFmail (Copyright RTE Software)http://www.pdfmail.com
Circuits Logiques Programmables J. KHALLAAYOUNE, INPT-RABAT26/10/2009 50
Distribution dDistribution d’’horloges: DLL et DMChorloges: DLL et DMC
Suivant les familles, des fonctions hardware de haut niveau sontdisponibles :
• Digital Delay Locked Loop (DLL) : sur familles Virtex, Virtex-E, Spartan-II et Spartan-II-E.
• Les DLL permettent de multiplier et/ou diviser les fréquences d’horloge, de générer des horloges multi-phases, de compenser le délai interne de propagation…
• Digital Clock Manager (DCM) : sur famille Virtex-II.• Les DCM permettent entre autres la synthèse de fréquence, le réglage statique ou dynamique de phase des horloges…
Ce document a été fabriqué par PDFmail (Copyright RTE Software)http://www.pdfmail.com
Circuits Logiques Programmables J. KHALLAAYOUNE, INPT-RABAT26/10/2009 51
DLL DLL DelayDelay--Locked LoopLocked Loop
Ce document a été fabriqué par PDFmail (Copyright RTE Software)http://www.pdfmail.com
Circuits Logiques Programmables J. KHALLAAYOUNE, INPT-RABAT26/10/2009 52
Distribution dDistribution d’’horloges: DLL et DMChorloges: DLL et DMC
• 4 sorties de DLL sont utilisables simultanément, parmi les 6 disponibles
• La sortie LOCKED passe à ‘1’ pour indiquer que la DCM est verrouillée
• Rapports de division pour la sortie CLKDV : 1.5, 2, 2.5, 3, 4, 5, 8 ou 16
ð Attribut à placer dans le fichier UCF : INST U1 CLKDV = 2.5;
• L’entrée d’horloge doit être stable pour que la DLL fonctionne correctement. Tout changement de la fréquence d’entrée doit etre accompagné d’un Reset de la DCM, afin de provoquer une séquence de remise en phase (indépendament de l’état de la sortie LOCKED).
• En VHDL, les DLL doivent etre instanciées avec les composants associés (IBUFG, BUFG)
Ce document a été fabriqué par PDFmail (Copyright RTE Software)http://www.pdfmail.com
Circuits Logiques Programmables J. KHALLAAYOUNE, INPT-RABAT26/10/2009 53
Code VHDL pour lCode VHDL pour l’’utilisation de CLKDLLutilisation de CLKDLLlibrary IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
library UNISIM;
use UNISIM.VComponents.all;
entity HORLOGE is
Port ( ICK : in std_logic;
CK : out std_logic);
end HORLOGE;
architecture Behavioral of HORLOGE is
signal CLKIN, CLK0, CLKFB, GND : std_logic;
begin
GND <= '0';
U1 : IBUFG port map (I => ICK, O => CLKIN);
U2 : CLKDLL port map (
CLKIN => CLKIN, CLKFB => CLKFB, RST => GND, CLK0 => CLK0, CLK90 => open,
CLK180 => open, CLK270 => open, CLK2X => open, CLKDV => open, LOCKED => open );
U3 : BUFG port map (I => CLK0, O => CLKFB);
CK <= CLKFB;
end Behavioral;
IBUFG BUFGCLKDLL
CLKIN
CLKFB
RST
CLK0CLK90
CLK180CLK270
CLK2X
CLKDV
LOCKED
ICK CK
HORLOGE
Ce document a été fabriqué par PDFmail (Copyright RTE Software)http://www.pdfmail.com
Circuits Logiques Programmables J. KHALLAAYOUNE, INPT-RABAT26/10/2009 54
Distribution dDistribution d’’horloges: DLL et DMChorloges: DLL et DMC
• Digital Delay Locked Loop :
• Exemple d’utilisation en multiplieur de fréquence par 4
Multiplication de fréquence : 33MHz x 4
CLKIN CLK0CLK90
CLKFB CLK180CLK270
CLK2X
CLKDV
RST LOCKED
IBUFG
BUFG
33MHZ
66MHZCLKIN CLK0
CLK90CLKFB CLK180
CLK270
CLK2X
CLKDV
RST LOCKED
BUFG
132MHZ
BUFG non indispensable en Virtex-ESi le 66 MHZ n’est pas utilisé dans le design
Ce document a été fabriqué par PDFmail (Copyright RTE Software)http://www.pdfmail.com
Circuits Logiques Programmables J. KHALLAAYOUNE, INPT-RABAT26/10/2009 55
Blocs dBlocs d’’entrentréée/sortie: IOBe/sortie: IOB
Toutes les familles présentent au minimum les caractéristiques suivantes d’IOB :
ð Etage de sortie :• Sortie directe ou à registre avec signal
de validation d’horloge• Contrôle Tri-state direct ou à registre
ð Etage d’entrée :• Entrée directe et par l’intermédiaire d’un
registre
ð Tous les registres sont intialisés à la fin de la configuration.• Valeur par défaut : 0
ð Entrée SET et RESET synchrone ou asynchrone pour tous les registres
TRITRI_ENABLE
OUTOUT_ENABLE
IN IN_Q
CLK IN_ENABLE
PAD
IBUF
OBUFEC
EC
EC
MULTIPEXEURS STATIQUES(sélection définie pendant la configuration)
Ce document a été fabriqué par PDFmail (Copyright RTE Software)http://www.pdfmail.com
Circuits Logiques Programmables J. KHALLAAYOUNE, INPT-RABAT26/10/2009 56
Fonctions Fonctions éévoluvoluéées de traitement du signales de traitement du signal
ü Le coeur de logique de Virtex-II s’alimente en 1.5V
ü Les différentes banques d’I/Os peuvent être alimentées en 1.5, 1.8, 2.5 ou 3.3v
I/O Blocs d’entrée/sortie
répartis en 8 banques
De 4 à 12 DCM (Digital Clock Managers) et 8 x 2 buffers d’horloges
Banque 0 Banque 1
Blocs de LogiqueConfigurables1 CLB = 4 Slices
Block SelectRAM(18 Kbits/bloc,Double port)
Multiplieurs dédiés 18x18 signés
Banque 2
Banque 3
Ce document a été fabriqué par PDFmail (Copyright RTE Software)http://www.pdfmail.com
Circuits Logiques Programmables J. KHALLAAYOUNE, INPT-RABAT26/10/2009 57
Blocs dBlocs d’’entrentréée/sortie: IOBe/sortie: IOB
TRITRI_ENABLE
OUTOUT_ENABLE
IN IN_Q
CLK IN_ENABLE
PAD
IBUF
OBUFEC
EC
EC
MULTIPEXEURS STATIQUES(sélection définie pendant la configuration)
Le fait de disposer de bascules d’entrée, de sortie et de contrôle tri-state permet de maîtriser les délais de sortie et temps de setup pour les entrées, indépendament de la position géographique des IOBs, et quelle que soit la qualité du routage.
Ce document a été fabriqué par PDFmail (Copyright RTE Software)http://www.pdfmail.com
Circuits Logiques Programmables J. KHALLAAYOUNE, INPT-RABAT26/10/2009 58
Blocs dBlocs d’’entrentréée/sortie: IOBe/sortie: IOB
TRITRI_ENABLE
OUTOUT_ENABLE
IN IN_Q
CLK IN_ENABLE
PAD
IBUF
OBUFEC
EC
EC
MULTIPEXEURS STATIQUES(sélection définie pendant la configuration)
Réglage du slew rate :
INST “NOM_IO” FAST; # defaut = slow
Réglage de la sortance :
INST “NOM_IO” DRIVE = 24; défaut = 12
Choix du standart d’entrée/sortie :
INST “NOM_IO” IO_STANDARD = SSTL2_II; # défaut = LVTTL
Ce document a été fabriqué par PDFmail (Copyright RTE Software)http://www.pdfmail.com
Circuits Logiques Programmables J. KHALLAAYOUNE, INPT-RABAT26/10/2009 59
Blocs dBlocs d’’entrentréée/sortie: IOBe/sortie: IOB
• 16 standards supportés par Spartan-II
• LVDS, BLVDS et LVPECLsupportés par SPARTAN-IIE et Virtex-E
• Les entrées VREF permettent de définir unetension de seuil d’entréepersonnalisée pour chacunedes 8 banques d’IOs.
• Chaque banque dispose deson propre VCCO.
Ce document a été fabriqué par PDFmail (Copyright RTE Software)http://www.pdfmail.com
Circuits Logiques Programmables J. KHALLAAYOUNE, INPT-RABAT26/10/2009 60
Ressources de RoutageRessources de Routage
ð Parmi les différentes ressources de routage :• Interconnexions directes entre éléments voisins : charge capacitive très
faible, délai de routage quasiment nul.• Arbres d’horloges : charge capacitive relativement importante, mais délai
réduit grâce aux buffers spécialisés (BUFG), et skew limité à +/- 100 ps.• Tous les arbres d’horloges peuvent accéder à l’entrée d’horloge des
éléments clockés (Bascules, Blocs de RAM synchrones…) avec un délai uniforme sur toute la surface de la puce.
• Longues lignes horizontales : optimisées pour la distribution des bus de données. Sont accédées directement par les buffers Tri-state (BUFT).
• Longues lignes verticales : optimisées pour la distribution des signaux de controle, en particulier pour les fonctions logiques distribuées en colonnes (compteurs, opérateurs arithmétiques, banques de registres…)
• Interconnexions générales : nombreuses et souples, permettent de connecter virtuellement deux points quelconques du FPGA, avec un délai d’interconnexion lié à la mise en série d’éléments RC.
Ce document a été fabriqué par PDFmail (Copyright RTE Software)http://www.pdfmail.com
Circuits Logiques Programmables J. KHALLAAYOUNE, INPT-RABAT26/10/2009 61
Interconnexions GInterconnexions Géénnééralesrales
ð Les interconnexions générales sont constituées de courtes lignes métalliques qui peuvent être reliées entre elles par l’intermédiaire de matrices de switches (elles mêmes constituées de transistors rendus passants ou non, suivant le routage).
ð Les interconnexions générales agissent comme des séries de liaisons R-C :• Les transistors des matrices de switches ont un effet résistif• Les pistes métalliques ont une capacité parasite• Le cumul de ces deux effets résistifs et capacitifs induit un délai dans la
connexion ainsi routée.• Plus grand sera le nombre de matrices de switches traversées, plus
important sera le délai sur la liaison.
ð En familles SPARTAN-II/E et VIRTEX /E, certaines matrices de switches disposent de buffers, afin de réduire l’impact des effets R-C. Sur VIRTEX-II, toutes les matrices de switches sont bufferisées.
Ce document a été fabriqué par PDFmail (Copyright RTE Software)http://www.pdfmail.com
Circuits Logiques Programmables J. KHALLAAYOUNE, INPT-RABAT26/10/2009 62
Interconnexions GInterconnexions Géénnééralesrales
SwitchSwitchmatrixmatrix
SwitchSwitchmatrixmatrix
SwitchSwitchmatrixmatrix
SwitchSwitchmatrixmatrix
SwitchSwitchmatrixmatrix
SwitchSwitchmatrixmatrix
SwitchSwitchmatrixmatrix
SliceSlice
SliceSlice
SliceSlice SliceSlice
SliceSlice SliceSlice
CapacitCapacitééparasiteparasite
T0 = 0 nsT0 = 0 ns
T1 = X nsT1 = X ns T2 = Y nsT2 = Y ns
T3 = Z nsT3 = Z ns
InterconnexionInterconnexiondirectedirecte
Ce document a été fabriqué par PDFmail (Copyright RTE Software)http://www.pdfmail.com
Circuits Logiques Programmables J. KHALLAAYOUNE, INPT-RABAT26/10/2009 63
Bus de donnBus de donnéées internes et signaux de controlees internes et signaux de controle
SliceSlice
SliceSlice
SliceSlice SliceSlice
SliceSlice SliceSlice
Longues lignes Longues lignes horizontaleshorizontales
Buffers TriBuffers Tri--statestate
Longues lignes verticalesLongues lignes verticales
Ce document a été fabriqué par PDFmail (Copyright RTE Software)http://www.pdfmail.com
Circuits Logiques Programmables J. KHALLAAYOUNE, INPT-RABAT26/10/2009 64
Ressources de routage hiRessources de routage hiéérarchisrarchisééeses
Propagation des données
Signauxde
contrôle
MSB
Bus de données
LSB
MSB
Bus de données
LSB
Entrées/sorties auxiliaires et signaux de contrôle
Entrées/sorties auxiliaires et signaux de contrôle
Ce document a été fabriqué par PDFmail (Copyright RTE Software)http://www.pdfmail.com