Problématique « utilisation » Fonctionnalités Performance Consommation Fiabilité Prix du...

Preview:

Citation preview

Problématique « utilisation »

FonctionnalitésPerformanceConsommationFiabilitéPrix du produit

Pascal.Benoit@univ-montp2.fr 1

Problématique « fabrication »

MiniaturisationIntégration SIPIntégration 3DNouvelles technologiesRendementVariabilitéCoûts de fabrication

Pascal.Benoit@univ-montp2.fr 2

Problématique « conception »

Pascal.Benoit@univ-montp2.fr 3

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

Pascal.Benoit@univ-montp2.fr 4

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

Pascal.Benoit@univ-montp2.fr 5

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

Pascal.Benoit@univ-montp2.fr 6

Exemple: techniques TMR

Problématique « conception »

Fonctionnalités / PartitionnementPerformance / Consommation / SurfaceVariabilitéFiabilitéProgrammation / DebugVérification / TestCoûts de conception

Pascal.Benoit@univ-montp2.fr 7

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

Pascal.Benoit@univ-montp2.fr 8

-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

Pascal.Benoit@univ-montp2.fr 9

Problématique « conception »

Pascal.Benoit@univ-montp2.fr 10

Comment faire pour tirer le meilleur bénéfice de l’intégration?

ABSTRACTION & AUTOMATISATION

Design productivity

Exemple: registre 16 bits

Pascal.Benoit@univ-montp2.fr 11

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, etc.Pascal.Benoit@univ-montp2.fr 12

Problématiques « conception »

Pascal.Benoit@univ-montp2.fr 13

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 »

Pascal.Benoit@univ-montp2.fr 15

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

Pascal.Benoit@univ-montp2.fr 16

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 Pascal.Benoit@univ-montp2.fr 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

Pascal.Benoit@univ-montp2.fr 18

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?

Pascal.Benoit@univ-montp2.fr 19

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?

Pascal.Benoit@univ-montp2.fr 20

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?

Pascal.Benoit@univ-montp2.fr 21

Flot de Conception générique CIN

Pascal.Benoit@polytech.univ-montp2.fr 22

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

Pascal.Benoit@univ-montp2.fr 23

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

Pascal.Benoit@univ-montp2.fr 24

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

Pascal.Benoit@polytech.univ-montp2.fr 25

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

Pascal.Benoit@polytech.univ-montp2.fr 27

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

Pascal.Benoit@polytech.univ-montp2.fr 29

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

Pascal.Benoit@univ-montp2.fr 30

Entretien

d’embauche!

Latch vs Flip Flop (CMOS)

Pascal.Benoit@univ-montp2.fr 31

CK

CK

CK

CK

D Q

CK

CK

CK

CK

D QCK

CK

CK

CK

Quand CK=1, transparentQuand CK=0, mémoire

Pascal.Benoit@univ-montp2.fr 32

CLK

D

Qlatch

Qff

Latch vs Flip Flop (HDL)

Pascal.Benoit@univ-montp2.fr 33

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)

Pascal.Benoit@univ-montp2.fr 34

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)

Pascal.Benoit@univ-montp2.fr 35

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)

Pascal.Benoit@univ-montp2.fr 36

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)

Pascal.Benoit@univ-montp2.fr 37

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

Pascal.Benoit@univ-montp2.fr 38

Règles de « nommage » (Naming)

Respecter les spécifications!

Pascal.Benoit@univ-montp2.fr 39

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).

Pascal.Benoit@univ-montp2.fr 40

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

Pascal.Benoit@univ-montp2.fr 41

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).

Pascal.Benoit@univ-montp2.fr 42

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)

Pascal.Benoit@univ-montp2.fr 43

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;

Pascal.Benoit@univ-montp2.fr 44

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

Pascal.Benoit@univ-montp2.fr 45

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.

Pascal.Benoit@univ-montp2.fr 46

Horloges et reset

Une seule horloge globale

Pascal.Benoit@univ-montp2.fr 47

Horloges et reset

Une seule horloge globaleEléments séquentiels: Flip-flops sensibles

sur front montant d’horloge

Pascal.Benoit@univ-montp2.fr 48

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

Pascal.Benoit@univ-montp2.fr 49

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

Pascal.Benoit@univ-montp2.fr 50

Horloges et reset

Eviter les « gated-clocks »◦ Technology-specific (cf. Power…)◦ Glitches, skew, violation de contraintes de

hold, testabilité

Pascal.Benoit@univ-montp2.fr 51

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é

Pascal.Benoit@univ-montp2.fr 52

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é

Pascal.Benoit@univ-montp2.fr 53

Horloges et reset

Eviter les « gated-clocks »◦ Technology-specific (cf. Power…)◦ Glitches, skew, violation de contraintes de

hold, testabilitéExemple de solution

Pascal.Benoit@univ-montp2.fr 54

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

Pascal.Benoit@univ-montp2.fr 55

Partitionnement du design

Avantages d’un bon partitionnement◦ Facilite la synthèse: optimisation, vitesse de

synthèse, etc.◦ Reuse

Pascal.Benoit@univ-montp2.fr 56

Mieux…

Recommended