La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Problématique « utilisation »

Présentations similaires


Présentation au sujet: "Problématique « utilisation »"— Transcription de la présentation:

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

2 Problématique « fabrication »
Miniaturisation Intégration SIP Intégration 3D Nouvelles technologies Rendement Variabilité Coûts de fabrication

3 Problématique « conception »
Problématiques « fabrication » Miniaturisation Intégration SIP Intégration 3D Nouvelles technologies Rendement Variabilité Coûts de fabrication Problématiques « utilisation » Fonctionnalités Performance Consommation Fiabilité Prix du produit Problématiques « conception »

4 Problématique « conception »
Fonctionnalités / Partitionnement Performance / Consommation / Surface Variabilité Fiabilité Programmation / Debug Vérification / Test Coûts de conception “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.” Capteurs Process

5 Variabilité – Ring Oscillator
Cpt Compteur n Activation Commande Horloge Résultat Commande Oscillateur

6 Problématique « conception »
Fonctionnalités / Partitionnement Performance / Consommation / Surface Variabilité Fiabilité Programmation / Debug Vérification / Test Coûts de conception Exemple: techniques TMR

7 Problématique « conception »
Fonctionnalités / Partitionnement Performance / Consommation / Surface Variabilité Fiabilité Programmation / Debug Vérification / Test Coûts de conception 3 2 1 T1 T3 T2 T4 3 2 1 T1 T3 T2 T4 Sender T1 IVLC T2 IQUANT T3 IDCT T4

8 Problématique « conception »
Fonctionnalités / Partitionnement Performance / Consommation / Surface Variabilité Fiabilité Programmation / Debug Vérification / Test Coûts de conception

9 Problématique « conception »
Fonctionnalités / Partitionnement Performance / Consommation / Surface Variabilité Fiabilité Programmation / Debug Vérification / Test Coûts de conception

10 Problématique « conception »
Design productivity Comment faire pour tirer le meilleur bénéfice de l’intégration? ABSTRACTION & AUTOMATISATION

11 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 is begin process(data_in, clock) if (clock='1' and clock'event) then data_out <= data_in; end if; end process; end behv; 15 lignes de VHDL ∼ 96 portes logiques ∼ 768 segments ∼ 384 transistors

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

13 Problématiques « conception »
Problématiques « fabrication » Miniaturisation Intégration SIP Intégration 3D Nouvelles technologies Rendement Variabilité Coûts de fabrication Problématiques « utilisation » Fonctionnalités Performance Consommation Fiabilité Prix du produit Problématiques « conception » Fonctionnalités / Partitionnement Performance / Consommation / Surface Variabilité Fiabilité Programmation / Debug Vérification / Test Coûts de conception

14 Problématiques « conception »
Problématiques « fabrication » Miniaturisation Intégration SIP Intégration 3D Nouvelles technologies Rendement Variabilité Coûts de fabrication Problématiques « utilisation » Fonctionnalités Performance Consommation Fiabilité Prix du produit Problématiques « conception » Fonctionnalités / Partitionnement Performance / Consommation / Surface Variabilité Fiabilité Programmation / Debug Vérification / Test Coûts de conception

15 « Lois de l’évolution »

16 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

17 QUIZZ Complexité de ces circuits au début des années 1970
100 1 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

18 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

19 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?

20 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?

21 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?

22 Flot de Conception générique CIN
Cahier des charges / Spécifications du composant Processeur Multimédia F = 500 MHz P = 1 Watt Description VHDL OK Outil de Simulation Synthèse Logique Cibles Matérielles Bibliothèque Technologique Description Logique Synthèse Physique Outils de CAO Le passage de la description comportementale à la description structurelle s’appelle la « synthèse logique ». Le passage du niveau structurel au niveau « masques » s’appelle la « synthèse physique ». Au niveau masque, on parle aussi de niveau « physique ». Description comportementale = description fonctionnelle. Description Physique Niveau d’abstraction du composant

23 Cibles matérielles Cibles matérielles Logic Standard Logic ASIC PLD
Gate Arrays Cell-Based IC Full Custom IC SPLD (PLA) CPLD FPGA SPLD Simple Programmable Logic Device CPLD Complex PLD (Programmable Logic Device) FPGA Field Programmable Gate Array

24 HDL: Cibles matérielles
Logic Standard Logic ASIC PLD Gate Arrays Cell-Based IC Full Custom IC SPLD (PLA) CPLD FPGA SPLD Simple Programmable Logic Device CPLD Complex PLD (Programmable Logic Device) FPGA Field Programmable Gate Array

25 Flot de Conception Silicium
Cahier des charges / Spécifications du circuit Processeur Multimédia F = 500 MHz P = 1 Watt Description VHDL OK Outil de Simulation Synthèse Logique Fondeur Bibliothèque Technologique Description Logique Synthèse Physique Outils de CAO Le passage de la description comportementale à la description structurelle s’appelle la « synthèse logique ». Le passage du niveau structurel au niveau « masques » s’appelle la « synthèse physique ». Au niveau masque, on parle aussi de niveau « physique ». Description comportementale = description fonctionnelle. Description Physique Niveau d’abstraction du circuit

26 Flot de Conception Silicium
Principaux acteurs de la CAO Le passage de la description comportementale à la description structurelle s’appelle la « synthèse logique ». Le passage du niveau structurel au niveau « masques » s’appelle la « synthèse physique ». Au niveau masque, on parle aussi de niveau « physique ». Description comportementale = description fonctionnelle. En réalité, c’est une trentaine d’outils nécessaires…

27 Flot de Conception FPGA
Cahier des charges / Spécifications du composant Processeur Multimédia F = 500 MHz P = 1 Watt Description VHDL OK Outil de Simulation Synthèse Logique Programmation du FPGA Bibliothèque Technologique Description Logique Synthèse Physique Outils de CAO Le passage de la description comportementale à la description structurelle s’appelle la « synthèse logique ». Le passage du niveau structurel au niveau « masques » s’appelle la « synthèse physique ». Au niveau masque, on parle aussi de niveau « physique ». Description comportementale = description fonctionnelle. Description Physique Niveau d’abstraction du composant

28 Flot de Conception FPGA
Les fabricants de FPGA fournissent leurs propres outils CAO… Le passage de la description comportementale à la description structurelle s’appelle la « synthèse logique ». Le passage du niveau structurel au niveau « masques » s’appelle la « synthèse physique ». Au niveau masque, on parle aussi de niveau « physique ». Description comportementale = description fonctionnelle.

29 Flot de Conception générique
Cahier des charges / Spécifications du composant Processeur Multimédia F = 500 MHz P = 1 Watt Description VHDL OK Outil de Simulation Synthèse Logique Cibles Matérielles Bibliothèque Technologique Description Logique Synthèse Physique Outils de CAO Le passage de la description comportementale à la description structurelle s’appelle la « synthèse logique ». Le passage du niveau structurel au niveau « masques » s’appelle la « synthèse physique ». Au niveau masque, on parle aussi de niveau « physique ». Description comportementale = description fonctionnelle. Description Physique Niveau d’abstraction du composant

30 VHDL Entretien d’embauche! Retour sur les notions de base
Circuit logique Latch / Flip-Flop Compteur Instanciation Testbench MEF Gestion du Reset / Clock Entretien d’embauche!

31 Latch vs Flip Flop (CMOS)
Quand CK=1, transparent Quand CK=0, mémoire CK D Q CK CK CK CK CK D Q CK CK CK CK CK CK

32 CLK D Qlatch Qff

33 Latch vs Flip Flop (HDL)
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.

34 Latch vs Flip Flop (HDL)
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. Surface Latch< Surface Flip-flop

35 Latch vs Flip Flop (HDL)
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. Surface Latch< Surface Flip-flop Les Flip flops permettent de synchroniser la logique combinatoire

36 Latch vs Flip Flop (HDL)
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. Surface Latch< Surface Flip-flop Les Flip flops permettent de synchroniser la logique combinatoire Latches peu compatibles avec les outils de DFT

37 Latch vs Flip Flop (HDL)
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. Surface Latch< Surface Flip-flop Les Flip flops permettent de synchroniser la logique combinatoire Latches peu compatibles avec les outils de DFT La plupart des outils CAO optimisent mal les timings en présence de latches, pire, peuvent passer à côté d’un chemin critique…

38 Logic Design Objectif: concevoir un composant SYNTHETISABLE
Règles de design Naming Vendor independence IEEE standard types Commentaires IP Reuse Design synchrone Partitionnement RTL

39 Règles de « nommage » (Naming)
Respecter les spécifications!

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

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

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

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

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;

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 circuit

46 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 Nommer le testbench ’nom_du_bloc'_TB.

47 Horloges et reset Une seule horloge globale

48 Horloges et reset Une seule horloge globale
Eléments séquentiels: Flip-flops sensibles sur front montant d’horloge

49 Horloges et reset Une seule horloge globale
Elé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

50 Horloges et reset Une seule horloge globale
Elé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

51 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) then port_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.

52 Horloges et reset Eviter les « gated-clocks »
Technology-specific (cf. Power…) Glitches, skew, violation de contraintes de hold, testabilité process(clk, rst) begin if rst='1' then retard1 <= '0'; retard2 <= '0'; retard3 <= '0'; elsif clk'event and clk='1' then retard1 <= entree; retard2 <= retard1; retard3 <= retard2; end if; end process; sortie <= retard1 and retard2 and (not retard3); 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.

53 Horloges et reset Eviter les « gated-clocks »
Technology-specific (cf. Power…) Glitches, skew, violation de contraintes de hold, testabilité

54 Horloges et reset Eviter les « gated-clocks » Exemple de solution
Technology-specific (cf. Power…) Glitches, skew, violation de contraintes de hold, testabilité Exemple de solution XILINX DCM DCM

55 Horloges et reset Eviter les RESET générés en interne
S’assurer que les registres sont initialisés par un même reset Eviter les conditions sur les RESET

56 Partitionnement du design
Avantages d’un bon partitionnement Facilite la synthèse: optimisation, vitesse de synthèse, etc. Reuse  Mieux…


Télécharger ppt "Problématique « utilisation »"

Présentations similaires


Annonces Google