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 » Fonctionnalités Performance Consommation Fiabilité Prix du produit

Présentations similaires


Présentation au sujet: "Problématique « utilisation » Fonctionnalités Performance Consommation Fiabilité Prix du produit"— 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 » Miniaturisation Intégration SIP Intégration 3D Nouvelles technologies Rendement Variabilité Coûts de fabrication Fonctionnalités Performance Consommation Fiabilité Prix du produit Problématiques « fabrication » Problématiques « utilisation » Problématiques « conception »

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

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

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 SenderT1 IVLCT2 IQUANTT3 IDCTT T1 T3T2 T T1 T3T2 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 » Comment faire pour tirer le meilleur bénéfice de lintégration? ABSTRACTION & AUTOMATISATION Design productivity

11 Exemple: registre 16 bits 15 lignes de VHDL 96 portes logiques 384 transistors 768 segments

12 Un exemple dabstraction… 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é, labstraction permet de décrire plus simplement des choses compliquées… Outils CAO pour automatiser le passage dun niveau dabstraction à un autre Outils de synthèse Attention: ce nest pas magique… Vérification: outils de simulation, etc.

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

14 Problématiques « conception » Miniaturisation Intégration SIP Intégration 3D Nouvelles technologies Rendement Variabilité Coûts de fabrication Fonctionnalités Performance Consommation Fiabilité Prix du produit Problématiques « fabrication » Problématiques « utilisation » 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 Consommation des circuits intégrés -> Application Processor dun SE en activité: 100 nW 100 uw 100 mw Consommation des circuits intégrés -> Processor dun PC en activité: 1 W 10 W 100 W

18 QUIZZ Capacité des batteries de téléphone portable 10 mAh 100 mAh mAh Semiconductors Techno providers Asia Europe US Quest-ce quune 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 dun 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 Processeur Multimédia … F = 500 MHz P = 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 dabstraction du composant BibliothèqueTechnologique OK Outil de Simulation Cibles Matérielles

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

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

25 Fondeur Flot de Conception Silicium Processeur Multimédia … F = 500 MHz P = 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 dabstraction du circuit BibliothèqueTechnologique OK Outil de Simulation

26 Flot de Conception Silicium Principaux acteurs de la CAO En réalité, cest une trentaine doutils nécessaires…

27 Programmation du FPGA Flot de Conception FPGA Processeur Multimédia … F = 500 MHz P = 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 dabstraction du composant BibliothèqueTechnologique OK Outil de Simulation

28 Flot de Conception FPGA Les fabricants de FPGA fournissent leurs propres outils CAO…

29 Flot de Conception générique Processeur Multimédia … F = 500 MHz P = 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 dabstraction du composant BibliothèqueTechnologique OK Outil de Simulation Cibles Matérielles

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

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

32 CLK D Q latch Q ff

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

34 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

35 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

36 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

37 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é dun 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 dadresse 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 dadresse de la RAM, plutôt ram_addr or RamAddr (VHDL insensible à la casse). Utiliser clk pour les signaux dhorloge Sil y a plusieurs horloges, utiliser clk comme préfixe pour tous les signaux dhorloge clk4m, clk8m Même nom pour tous les signaux dhorloge 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 dadresse de la RAM, plutôt ram_addr or RamAddr (VHDL insensible à la casse). Utiliser clk pour les signaux dhorloge Sil y a plusieurs horloges, utiliser clk comme préfixe pour tous les signaux dhorloge clk4m, clk8m Même nom pour tous les signaux dhorloge 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 dadresse de la RAM, plutôt ram_addr or RamAddr (VHDL insensible à la casse). Utiliser clk pour les signaux dhorloge Sil y a plusieurs horloges, utiliser clk comme préfixe pour tous les signaux dhorloge clk4m, clk8m Même nom pour tous les signaux dhorloge 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, sil 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, sil 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 dhorloge

49 Horloges et reset Une seule horloge globale Eléments séquentiels: Flip-flops sensibles sur front montant dhorloge 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 dhorloge 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 (mclk, rst) begin if rst='1' then q '0'); elsif mclk'event and mclk='1' then q <= q+1; end if; end process; clk25 <= q(0); clk190 <= q(17); clk3 <= q(23); process (mclk, rst) begin if rst='1' then q '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 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' then retard1 <= entree; retard2 <= retard1; retard3 <= retard2; end if; end process; sortie <= retard1 and retard2 and (not retard3); 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);

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 » 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 Sassurer que les registres sont initialisés par un même reset Eviter les conditions sur les RESET

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


Télécharger ppt "Problématique « utilisation » Fonctionnalités Performance Consommation Fiabilité Prix du produit"

Présentations similaires


Annonces Google