problématique « utilisation » fonctionnalités performance consommation fiabilité prix du...
TRANSCRIPT
Problématique « utilisation »
FonctionnalitésPerformanceConsommationFiabilitéPrix du produit
Problématique « fabrication »
MiniaturisationIntégration SIPIntégration 3DNouvelles technologiesRendementVariabilitéCoûts de fabrication
Problématique « conception »
MiniaturisationIntégration SIPIntégration 3DNouvelles technologiesRendementVariabilitéCoûts de fabrication
FonctionnalitésPerformanceConsommationFiabilitéPrix du produit
Problématiques « fabrication »
Problématiques « utilisation »
Problématiques « conception »
Problématique « conception »
Fonctionnalités / PartitionnementPerformance / Consommation / SurfaceVariabilitéFiabilitéProgrammation / DebugVérification / TestCoûts de conception
Capteurs Process
“The root cause of variability in bulk CMOS technology is mainly RDF, random dopant fluctuations, i.e. variations in the exact number and position of dopant atoms in the channel of the transistor.”
Variabilité – Ring Oscillator
Commande
Compteur
n
Cpt
Activation
Horloge
OscillateurCommande
Résultat
𝐹= 𝐶𝑝𝑡∗𝑓ℎ𝑜𝑟𝑙𝑜𝑔𝑒𝑁𝑏_𝑐𝑦𝑐𝑙𝑒𝑠𝑎𝑐𝑡𝑖𝑣𝑎𝑡𝑖𝑜𝑛
Problématique « conception »
Fonctionnalités / PartitionnementPerformance / Consommation / SurfaceVariabilitéFiabilitéProgrammation / DebugVérification / TestCoûts de conception
Exemple: techniques TMR
Problématique « conception »
Fonctionnalités / PartitionnementPerformance / Consommation / SurfaceVariabilitéFiabilitéProgrammation / DebugVérification / TestCoûts de conception
SenderT1
IVLCT2
IQUANTT3
IDCTT4
3 2
0 1
T1
T3T2
T4
3 2
0 1
T1
T3T2
T4
Problématique « conception »
Fonctionnalités / PartitionnementPerformance / Consommation / SurfaceVariabilitéFiabilitéProgrammation / DebugVérification / TestCoûts de conception
-1000
0
1000
2000
3000
4000
5000
6000
7000
8000
9000
0 5 10 15 20 25 30 35 40
Threshold
Threshold
0,00%
10,00%
20,00%
30,00%
40,00%
50,00%
60,00%
70,00%
80,00%
90,00%
100,00%
0
10
20
30
40
50
60
70
80
90
100
0 2 4 6 8 10 12 14 16
FIFO
mon
itori
ng
Thro
ughp
ut (
KB/s
)
Time (s)Throughput IVLC FIFO IQ FIFO IDCT FIFO
REF
Problématique « conception »
Fonctionnalités / PartitionnementPerformance / Consommation / SurfaceVariabilitéFiabilitéProgrammation / DebugVérification / TestCoûts de conception
Problématique « conception »
Comment faire pour tirer le meilleur bénéfice de l’intégration?
ABSTRACTION & AUTOMATISATION
Design productivity
Exemple: registre 16 bits
library ieee ;use ieee.std_logic_1164.all;entity dff isport(data_in:in std_logic_vector(15 downto 0);clock:in std_logic;data_out:out std_logic_vector(15 downto 0));end dff; architecture behv of dff isbegin process(data_in, clock) begin if (clock='1' and clock'event) then data_out <= data_in;end if; end process;end behv;
15 lignes de VHDL
∼ 96 portes logiques
∼ 384 transistors
∼ 768 segments
Un exemple d’abstraction…
Registre simple16 bits…
◦ Description VHDL 15 lignes de code
◦ Portes logiques 96 portes logiques
◦ Circuit électrique 384 transistors
◦ Dessin des masques 768 « segments »
En résumé, l’abstraction permet de décrire plus simplement des choses compliquées…
Outils CAO pour automatiser le passage d’un niveau d’abstraction à un autre
◦ Outils de synthèse
◦ Attention: ce n’est pas magique…
◦ Vérification: outils de simulation, [email protected] 12
Problématiques « conception »
MiniaturisationIntégration SIPIntégration 3DNouvelles technologiesRendementVariabilitéCoûts de fabrication
FonctionnalitésPerformanceConsommationFiabilitéPrix du produit
Problématiques « fabrication »
Problématiques « utilisation »
Problématiques « conception »
Fonctionnalités / PartitionnementPerformance / Consommation / SurfaceVariabilitéFiabilitéProgrammation / DebugVérification / TestCoûts de conception
Com
plex
ité (
log)
1982 1992 2002 2012
Processeurs
CAO
Technologies
Batteries
Evolut
ion d
es be
soins
(algo
rithm
es)
Com
plex
ité (
log)
1982 1992 2002 2012
Processeurs
CAO
Technologies
Batteries
Evolut
ion d
es be
soins
(algo
rithm
es)
« Lois de l’évolution »
Com
plex
ité (
log)
1982 1992 2002 2012
Processeurs
CAOTechnologies
Batteries
Evolut
ion d
es be
soins
(algo
rithm
es)
Com
plex
ité (
log)
1982 1992 2002 2012
Processeurs
CAOTechnologies
Batteries
Evolut
ion d
es be
soins
(algo
rithm
es)
QUIZZ
Tendance actuelle sur le marché de la microélectronique◦ Application?◦ Technologie?
Performance des circuits intégrés -> fréquence:◦ MHz◦ GHz◦ THz
Complexité des circuits intégrés -> nombre de transistors◦ 1 000 000◦ 10 000 000◦ 100 000 000◦ 1 000 000 000
QUIZZ
Complexité de ces circuits au début des années 1970◦ 100◦ 1 000 ◦ 100 000
Consommation des circuits intégrés -> Application Processor d’un SE en activité:◦ 100 nW◦ 100 uw◦ 100 mw
Consommation des circuits intégrés -> Processor d’un PC en activité:◦ 1 W◦ 10 W◦ 100 W [email protected] 17
QUIZZ
Capacité des batteries de téléphone portable◦ 10 mAh◦ 100 mAh◦ 1 000 mAh
Semiconductors Techno providers◦ Asia◦ Europe◦ US
Qu’est-ce qu’une entreprise Fabless?◦ Une entreprise qui ne conçoit pas ses circuits◦ Une entreprise qui ne produit pas ses circuits
QUIZZ
Quel est le nœud technologique le plus avancé en production◦ 45 nm◦ 32/28 nm◦ 22/20 nm
Quel sera le prochain nœud technologique?
Que représente cette dimension?
QUIZZ
Quels sont les deux problèmes majeurs dans les technologies récentes?
Quelles est la différence entre la dérive technologique, et la variabilité?
Quelles sont les nouvelles pistes technologiques de la CMOS?
Quelles sont les perspectives potentielles post-CMOS?
QUIZZ
Quelle est la partie prépondérante dans la phase de conception d’un CIN / SIN?◦ Design◦ Vérification
Pour un CIN programmable, la partie logicielle est-elle réalisée pendant la conception ou après la fabrication du circuit?
Flot de Conception générique CIN
Processeur Multimédia…F = 500 MHzP = 1 Watt…
Cahier des charges / Spécifications du
composant Description VHDL
Description Logique
Description Physique
Synthèse Logique
Synthèse Physique
Outils de CAO
Niveau d’abstraction du composant
Bib
lioth
èq
ue
Tech
nolo
giq
ue
OK
OK
OK
Outil de Simulation
Outil de Simulation
Outil de Simulation
CiblesMatériell
es
Cibles matérielles
Logic
StandardLogic
ASIC
Cell-BasedIC
Full CustomIC
PLDGate
Arrays
SPLD(PLA)
CPLD FPGA
SPLD Simple Programmable Logic DeviceCPLD Complex PLD (Programmable Logic Device)FPGA Field Programmable Gate Array
Cibles matériell
es
HDL: Cibles matérielles
Logic
StandardLogic
ASIC
Cell-BasedIC
Full CustomIC
PLDGate
Arrays
SPLD(PLA)
CPLD FPGA
SPLD Simple Programmable Logic DeviceCPLD Complex PLD (Programmable Logic Device)FPGA Field Programmable Gate Array
Cibles matériell
es
Fondeur
Flot de Conception Silicium
Processeur Multimédia…F = 500 MHzP = 1 Watt…
Cahier des charges / Spécifications du circuit
Description VHDL
Description Logique
Description Physique
Synthèse Logique
Synthèse Physique
Outils de CAO
Niveau d’abstraction
du circuit
Bib
lioth
èq
ue
Tech
nolo
giq
ue
OK
OK
OK
Outil de Simulation
Outil de Simulation
Outil de Simulation
Flot de Conception Silicium
Principaux acteurs de la CAO
En réalité, c’est une trentaine d’outils nécessaires…
Programmation du FPGA
Flot de Conception FPGA
Processeur Multimédia…F = 500 MHzP = 1 Watt…
Cahier des charges / Spécifications du
composant Description VHDL
Description Logique
Description Physique
Synthèse Logique
Synthèse Physique
Outils de CAO
Niveau d’abstraction du composant
Bib
lioth
èq
ue
Tech
nolo
giq
ue
OK
OK
OK
Outil de Simulation
Outil de Simulation
Outil de Simulation
Flot de Conception FPGA
Les fabricants de FPGA fournissent leurs propres outils CAO…
Flot de Conception générique
Processeur Multimédia…F = 500 MHzP = 1 Watt…
Cahier des charges / Spécifications du
composant Description VHDL
Description Logique
Description Physique
Synthèse Logique
Synthèse Physique
Outils de CAO
Niveau d’abstraction du composant
Bib
lioth
èq
ue
Tech
nolo
giq
ue
OK
OK
OK
Outil de Simulation
Outil de Simulation
Outil de Simulation
CiblesMatériell
es
VHDL
Retour sur les notions de base◦ Circuit logique◦ Latch / Flip-Flop◦ Compteur◦ Instanciation◦ Testbench◦ MEF◦ Gestion du Reset / Clock
Entretien
d’embauche!
Latch vs Flip Flop (CMOS)
CK
CK
CK
CK
D Q
CK
CK
CK
CK
D QCK
CK
CK
CK
Quand CK=1, transparentQuand CK=0, mémoire
Latch vs Flip Flop (HDL)
1) Un codage inapproprié peut entrainer la génération de latches à la place de flip flops ("if" and "case" incomplete statements). A éviter clairement, les latches sont plus sensibles aux glitches.
Latch vs Flip Flop (HDL)
1) Un codage inapproprié peut entrainer la génération de latches à la place de flip flops ("if" and "case" incomplete statements). A éviter clairement, les latches sont plus sensibles aux glitches.
2) Surface Latch< Surface Flip-flop
Latch vs Flip Flop (HDL)
1) Un codage inapproprié peut entrainer la génération de latches à la place de flip flops ("if" and "case" incomplete statements). A éviter clairement, les latches sont plus sensibles aux glitches.
2) Surface Latch< Surface Flip-flop
3) Les Flip flops permettent de synchroniser la logique combinatoire
Latch vs Flip Flop (HDL)
1) Un codage inapproprié peut entrainer la génération de latches à la place de flip flops ("if" and "case" incomplete statements). A éviter clairement, les latches sont plus sensibles aux glitches.
2) Surface Latch< Surface Flip-flop
3) Les Flip flops permettent de synchroniser la logique combinatoire
4) Latches peu compatibles avec les outils de DFT
Latch vs Flip Flop (HDL)
1) Un codage inapproprié peut entrainer la génération de latches à la place de flip flops ("if" and "case" incomplete statements). A éviter clairement, les latches sont plus sensibles aux glitches.
2) Surface Latch< Surface Flip-flop
3) Les Flip flops permettent de synchroniser la logique combinatoire
4) Latches peu compatibles avec les outils de DFT
5) La plupart des outils CAO optimisent mal les timings en présence de latches, pire, peuvent passer à côté d’un chemin critique…
Logic Design
Objectif: concevoir un composant SYNTHETISABLE
Règles de design◦ Naming◦ Vendor independence◦ IEEE standard types◦ Commentaires
IP ReuseDesign synchrone Partitionnement RTL
Règles de « nommage » (Naming)
Respecter les spécifications!Nommage explicite:
◦ signaux, ports, fonctions et paramètres. Exemple: pas ra pour le bus d’adresse de la RAM, plutôt
ram_addr or RamAddr (VHDL insensible à la casse).
Règles de « nommage » (Naming)
Respecter les spécifications!Nommage explicite:
◦ signaux, ports, fonctions et paramètres. Exemple: pas ra pour le bus d’adresse de la RAM, plutôt
ram_addr or RamAddr (VHDL insensible à la casse).
Utiliser clk pour les signaux d’horloge◦ S’il y a plusieurs horloges, utiliser clk comme préfixe
pour tous les signaux d’horloge clk4m, clk8m
◦ Même nom pour tous les signaux d’horloge pilotés par le même signal
Règles de « nommage » (Naming)
Respecter les spécifications!Nommage explicite:
◦ signaux, ports, fonctions et paramètres. Exemple: pas ra pour le bus d’adresse de la RAM, plutôt
ram_addr or RamAddr (VHDL insensible à la casse).
Utiliser clk pour les signaux d’horloge◦ S’il y a plusieurs horloges, utiliser clk comme préfixe
pour tous les signaux d’horloge clk4m, clk8m
◦ Même nom pour tous les signaux d’horloge pilotés par le même signal
Pour les signaux actifs sur niveau bas, on suffixe avec underscore x (toto_x).
Règles de « nommage » (Naming)
Respecter les spécifications!Nommage explicite:
◦ signaux, ports, fonctions et paramètres. Exemple: pas ra pour le bus d’adresse de la RAM, plutôt
ram_addr or RamAddr (VHDL insensible à la casse).
Utiliser clk pour les signaux d’horloge◦ S’il y a plusieurs horloges, utiliser clk comme préfixe
pour tous les signaux d’horloge clk4m, clk8m
◦ Même nom pour tous les signaux d’horloge pilotés par le même signal
Pour les signaux actifs sur niveau bas, on suffixe avec underscore x (toto_x).
Pour les bus, toujours le même ordre, ◦ plutôt (y downto x)
Règles de « nommage » (Naming)
Utiliser le même nom ou des noms similaires pour les ports/signaux aux différents niveaux hiérarchiques ◦ Exemple: a => a; ou a => a_int;
Règles de « nommage » (Naming)
Utiliser le même nom ou des noms similaires pour les ports/signaux aux différents niveaux hiérarchiques ◦ Exemple: a => a; ou a => a_int;
Utiliser:◦ en ou enab pour signaux enable, s’il y en a
plusieurs, préfixer tous ces signaux avec en ou enab
◦ Rst ou reset pour tous les resets du circuit
Règles de « nommage » (Naming)
Utiliser le même nom ou des noms similaires pour les ports/signaux aux différents niveaux hiérarchiques ◦ Exemple: a => a; ou a => a_int;
Utiliser:◦ en ou enab pour signaux enable, s’il y en a
plusieurs, préfixer tous ces signaux avec en ou enab
◦ Rst ou reset pour tous les resets du circuitNommer le testbench ’nom_du_bloc'_TB.
Horloges et reset
Une seule horloge globaleEléments séquentiels: Flip-flops sensibles
sur front montant d’horloge
Horloges et reset
Une seule horloge globaleEléments séquentiels: Flip-flops sensibles
sur front montant d’horloge CIN “synchrones”
◦ Dès l’écriture du VHDL (penser synthèse)◦ Avantages:
Optimisation du timing Aléas / glitches, états ‘X’ Test
Horloges et reset
Une seule horloge globaleEléments séquentiels: Flip-flops sensibles
sur front montant d’horloge CIN “synchrones”
◦ Dès l’écriture du VHDL (penser synthèse)◦ Avantages:
Optimisation du timing Aléas / glitches, états ‘X’ Test
Partitionnement “intelligent”◦ Facilite analyse et optimisation du timing et
test
Horloges et reset
Eviter les « gated-clocks »◦ Technology-specific (cf. Power…)◦ Glitches, skew, violation de contraintes de
hold, testabilité
clk_int<= port_en_1 and clk;
p1:process (rst,clk_int,port_en_1, port_in_1)begin
if rst='1' then port_out_1<='0';elsif rising_edge(clk_int) thenport_out_1<=port_in_1;end if;
end process;
WARNING:PhysDesignRules:372 - Gated clock. Clock net clk_int is sourced by a combinatorial pin. This is not good design practice. Use the CE pin to control the loading of data into the flip-flop.
Horloges et reset
Eviter les « gated-clocks »◦ Technology-specific (cf. Power…)◦ Glitches, skew, violation de contraintes de
hold, testabilité
process (mclk, rst)begin
if rst='1' then q <= (others => '0');elsif mclk'event and mclk='1' then q <= q+1;end if;
end process;
clk25 <= q(0);clk190 <= q(17);clk3 <= q(23);
WARNING:Route:455 - CLK Net:pulse may have excessive skew because 4 CLK pins and 0 NON_CLK pins failed to route using a CLK template.WARNING:Route:455 - CLK Net:U1/q<17> may have excessive skew because 1 CLK pins and 1 NON_CLK pins failed to route using a CLK template.
process(clk, rst)begin
if rst='1' then retard1 <= '0';retard2 <= '0';retard3 <= '0';
elsif clk'event and clk='1' thenretard1 <= entree;retard2 <= retard1;retard3 <= retard2;
end if;
end process;
sortie <= retard1 and retard2 and (not retard3);
Horloges et reset
Eviter les « gated-clocks »◦ Technology-specific (cf. Power…)◦ Glitches, skew, violation de contraintes de
hold, testabilité
Horloges et reset
Eviter les « gated-clocks »◦ Technology-specific (cf. Power…)◦ Glitches, skew, violation de contraintes de
hold, testabilitéExemple de solution
XILINX DCM
DCM
Horloges et reset
Eviter les RESET générés en interneS’assurer que les registres sont initialisés
par un même reset Eviter les conditions sur les RESET
Partitionnement du design
Avantages d’un bon partitionnement◦ Facilite la synthèse: optimisation, vitesse de
synthèse, etc.◦ Reuse
Mieux…