Chapitre 1 : Introduction aux méthodologies de conception et de vérification pour SE 1. Rappel de ce qu est un SE 2. Conception au niveau système (ESL) Méthodologie de conception (codesign logiciel/matériel) Synthèse C à RTL Méthodologie de vérification (fonctionnelle) 1
Système embarqué Systèmes logiciel-matériel servant à résoudre des fonctions et des tâches spécifiques et limitées Opposé à un ordinateur tout usage (general purpose) Embarqué (ou dédié) dans le sens où il fait parti d un système complet qui n est pas nécessairement un ordinateur. Souvent il existe dans une application sans qu on ne le sache vraiment. 2
Une courte liste de systèmes embarqués Freins ABS Caméras numériques Guichets automatiques Système de péage automatique Transmission automatique Systèmes avioniques Chargeurs de piles Caméras vidéo numériques Téléphones cellulaires Téléphones sans file Régulateur de vitesse Disques durs Lecteurs de cartes bancaires Instrumentation électronique Jouets électroniques Télécopieurs écop Identification d empreintes digitales Systèmes d alarmes domestiques Dispositifs médicaux Agendas électroniques Modems Décodeurs MPEG Cartes réseau Commutateurs Systèmes de navigation (GPS) Téléavertisseurs Photocopieurs Jeux vidéos Imprimantes Téléphones satellites Numérisateurs (scanners) Fours micro-ondes Lave-vaisselle Reconnaissance de voix Stéréo Téléconférence éco é ce Téléviseurs Systèmes de chauffage Magnétoscopes et lecteurs DVD Électroménagers Odi Ordinateurs de poches 3
4
Composition d un système embarqué Une partie matérielle utilisée pour la performance Micro-processeur, contrôleurs, coprocesseurs, DSP Mémoires ASIC Interfaces d entrées/sorties Une partie logicielle utilisée pour sa flexibilité Programmes Software Program 5
Contraintes des systèmes embarqués Métriques de conception principales Puissance dissipée Taille Coûts de production et coûts non récurrents Fiabilité Temps de commercialisation (time to market) D autres contraintes existent: tolérance aux pannes, résistance aux chocs et températures, BIST Flexibilité et mises-à-jour Souvent utilisés dans un environnement réactif soumis à des contraintes temps réel. Nécessitent des systèmes haute performance 6
Système sur puce (SoC) Un SoC constitue un circuit complexe qui intègre tous les éléments fonctionnels d un produit sur une même puce. Par exemple, des modules logiciels (DSP), des mémoires, des périphériques, des coprocesseurs matériels (FPGA ou ASIC) et même des modules analogiques ou optoélectroniques tél t peuvent ttous être mis sur un même dé. L objectif est diminuer au minimum le nombre de composants sur une carte pour mettre tout sur une seule puce. 7
Exemple de SoC SDRAM(16Mbits ) Y/C H/V/CLK Y 8bit C 8bit ASB Control Arbiter ADDR: 12bit DATA: 16bit SDRAM Controller for Capture ARM I/F SDRAM Controller Register setting ARM Peripheral Y 8bit C 8bit Y/C H/V Processeur ARM7 Logique dédiée DCT Contrôleur USB Decoder Remap TIC DCT Engine Timer JTAG ARM7TDMI DMA Wrapper DMA DCT RAM DCT RAM 1KByte DCT Quantize/Zigzag Interrupt PIO UART Interrupt 2port P IO 8bit X 2port SIO 1ch 24MHz SCAN to S DRAMC DCT USB PLL PLL SRAM (32KByte) 40MHz for ARM 48MHz for USB ASB Memory Expansion ADDR: 32bit DATA: 32bit ADDR: 31bit DATA: 32bit APB Bridge ASB Control APB ADDR: 32bit DATA: 16bit USB USB EPROM External Bus I/F ASB : AMBA System Bus APB : AMBA Peripheral Bus Sony Digital Camera SOC 8
Qu est-ce que l ESL? ESL D&V
Qu est-ce que l ESL? Des plates-formes multifonction Qui demandent de plus en plus de logiciel et encore plus! et plus et plus SoC (4 processors) Les SoC ont besoin de méthodologies! 10
Approche conventionnelle SOFTWARE FLOW SOFTWARE DESIGN & TEST SYSTEM SPECS PARTITION & PLAN HARDWARE FLOW HARDWARE DESIGN ENTRY/CAPTURE (RTL) SIMULATION FUNCTIONAL RTL TO GATE/ DATAPATH SYNTHESIS (TIMING/ POWER/ TEST INSERTION) FUNCTIONAL TIMING FUNCTIONAL TIMING VERIFICATION PROTOTYPE PHYSICAL DESIGN/ LAYOUT VERIFICATION RULE CHECKS
Codesign logiciel/matériel Simulation Simulation à haut niveau Estimateurs Raffinement du matériel Synthèse matérielle Synthèse des communications Capture de la spécification Partitionnement logiciel matériel Co-simulation et co-vérification Prototypage ou implantation finale Raffinement du logiciel Synthèse logicielle Simulation Vérification formelle ou fonctionnelle Les quatre étapes importantes d une méthode de codesign 12
Flôt de codesign plus détaillé
Modèles plus abstraits que le RTL
Exemple d abstractions
Exploration architecturale Préconise une approche en Y (paradigme): 16
Approche en Y (autre façon de visualiser) 17
Méthodologie de codesign plus complète 1 18 1. Tiré de System-Level Design Techniques for Energy-Efficient Embeded Systems, M. T. Schmitz, B. M. Al-Hashimi, P. Eles, Kluwer, 2004.
Design Space Exploration 19
Allocation des ressources 20
Allocation des ressources (suite) N.B. Tiré de http://www.ida.liu.se/~petel/codesign/ 21
Mapping (équivalent au partitionnement L/M) 22
Partitionnement L/M On partitionne les comportements, on simule, puis on implante la structure en fonction des meilleurs résultats Minimise le nombre d objets à traiter Les objets sont fonctionnels le matériel devient une structure logique, le logiciel sera compilé Spécifications exécutables avec le même langage g facilitent le développement d outils qui serviront à simuler les partitions estimer les performances partitionnement automatique (idéalement) Le profilage est disponible pour une analyse préliminaire i i 23
Partitionnement L/M (détails) Number of times a BB is excuted Number of times Ti and Tj communicates Sw size (data, program, register) Hw execution time Sw execution time Hw area Communication latency between Ti and Tj Tiré de M. Lopez-Vallejo, On the H-S Partitioning Problem:System Modeling and Partitioning Techniques, ACM Trans. On Design Automation of Electronic Systems, Juillet 2003. 24
Mapping (suite) 25
Ordonnancement 26
Ordonnancement (suite) 27
Gestion de l énergie Technique DPM: On met à off les composants lorsque le idle est suffisamment long Technique DVS: On utilise le idle et le slack pour dimunuer la fréquence et le voltage. La tâche prend donc plus de temps à s exécuter mais le temps total pour toute l application reste inchangé. 28
Synthèse du matériel Réf. HLS from Algorithm to Digital Circuit, Chap.3, Springer 29
Synthèse (compilation) du logicielle 30
La vérification 31
Flôt de vérification La vérification fonctionnelle compare un modèle, qui constitue une réalisation de la spécification, avec sa spécification (Bergeron 2003b, Bergeron 2000b) Spécification Simulation Banc d essai Transformation Comparaison MODÈLE SOUS VÉRIFICATION Réalisation Vérification dynamique 32
SCV 33
Architecture vs design vs vérification 34
Testbench par couches 35
Approche en couche OVM 36
Approche en couche OVM 37
Approche en couche OVM 38
Pourquoi générer aléatoirement 39
Couverture Il existe la couverture fonctionnelle et structurelle On va surtout s intéresser à la vérification fonctionnelle: On débute par un plan de vérification (modèle de couverture). On va échantillonner des variables et expressions dans cette couverture 40
Couverture fonctionnelle 41
Couverture fonctionnelle 42
Assertion Assertion: permet la détection d un comportement non souhaitable Exemple pour un FIFO: 43
Défis Défis actuels dans le domaine de la vérification fonctionnelle Réduire temps conception des bancs d essai Réduire temps vérification Améliorer la qualité de la vérification Intégrer nouveaux standards et nouvelles pratiques Maximiser la concurrence conception/vérification Réutilisation 44
Vérification vs TLM La vérification dynamique d un circuit requière l utilisation de métrique pour obtenir une mesure d avancement de la vérification Cependant, l application de métrique complexe sur un système matériel complexe mène au problème d explosion combinatoire Une solution connu est d appliquer une métrique sur une abstraction du système, i.e. une spécification exécutable de haut-niveau. 45
Vérification vs C/C++ Réf. HLS from Algorithm to Digital Circuit, Chap.3, Springer 46
Vérification vs TLM 47
Vérification vs TLM On veut appliquer une métrique fonctionnelle sur une spécification exécutable de façon systématique Le but est en fait de créer un Module d Analyse de la Couverture (MAC) qui servira à évaluer l efficacité d une suite de test 48
Exemple: commutateur ATM Une suite de tests a été développé en utilisant le MAC en utilisant le MAC, nous obtenons un taux de couverture de 100%: - Pour une génération complètement pseudo-aléatoire: 708 transactions - En travaillant avec le MAC: 229 transactions 100 Test 3 Test 2 Test 1 80 Taux de Couverture 60 40 20 0 0 100 200 300 400 500 600 700 Transactions appliquées Sébastien Regimbal, École Polytechnique de Montréal
En résumé Approche proposée p par ESL D&V : Dans le cours on va s intéresser aux points 2à6 50