Présentation

VHDL (VHSIC Hardware Description Language) est un langage standard de l'IEEE (IEEE 1076) utilisé pour décrire la structure et le comportement des systèmes électroniques numériques. A l'origine développé pour le département américain de la Défense et du 8217;s programme VHSIC, VHDL a évolué en une pierre angulaire de la conception numérique moderne. Dans le secteur automobile, l'adoption de VHDL s'accélère à mesure que les véhicules deviennent de plus en plus dépendants de systèmes électroniques complexes qui contrôlent tout, du moment du moteur aux caractéristiques de conduite autonomes.

Les systèmes embarqués automobiles gèrent aujourd'hui des fonctions critiques telles que le contrôle de stabilité électronique, le régulateur de vitesse adaptatif, l'assistance au maintien des voies et la logique avancée de déploiement des coussins gonflables. Toute défaillance de ces systèmes pourrait avoir des conséquences catastrophiques. VHDL permet aux ingénieurs de créer des modèles précis de logique numérique, de les simuler dans un large éventail de conditions et de découvrir des défauts potentiels avant de s'engager dans le matériel physique.

Le rôle de la VHDL dans les systèmes embarqués automobiles

Les véhicules modernes contiennent des dizaines d'unités de commande électronique (ECU) qui communiquent sur des réseaux tels que CAN, LIN, FlexRay et Ethernet. Ces ECU sont construits avec une logique numérique complexe mise en œuvre dans des circuits intégrés spécifiques à l'application (ASIC) ou des tableaux de portes programmables sur le terrain (FPGA). VHDL est le langage de choix pour concevoir les portions numériques de ces appareils car il supporte la modélisation abstraite, la simulation détaillée du calendrier et la synthèse vers le matériel réel.

Systèmes critiques de contrôle automobile

VHDL est utilisé pour concevoir la logique numérique pour une large gamme de sous-systèmes automobiles:

  • Le contrôle du groupe motopropulseur: Les unités de gestion du moteur (UM) se basent sur des conceptions basées sur VHDL pour le timing de l'injection de carburant, la commande d'allumage et la logique de recyclage des gaz d'échappement.
  • Systèmes de freinage: Les systèmes de freinage antiblocage (ABS) et le contrôle électronique de stabilité (ESC) utilisent VHDL pour mettre en place des machines d'état critique pour la sécurité, des interfaces de capteurs et des boucles de commande de vérin.
  • Les systèmes avancés d'assistance au conducteur (ADAS):[ Le traitement de la vision, le traitement des signaux radar et la fusion des données lidar impliquent souvent des circuits numériques à grande vitesse conçus en VHDL. Ces modules doivent satisfaire à des exigences strictes en temps réel et de tolérance aux défauts.
  • Déploiement de sacs gonflables: Les circuits de tir de squib, les algorithmes de détection des accidents et la logique diagnostique sont mis en œuvre en utilisant VHDL pour assurer un déploiement fiable en millisecondes.
  • Infodivertissement et connectivité:[ Bien que moins critiques pour la sécurité, ces systèmes bénéficient toujours de VHDL’s capacité à gérer des interfaces série à grande vitesse, des contrôleurs de mémoire et des moteurs de chiffrement.

Débit de conception avec VHDL

Le flux de conception typique basé sur la VHDL pour les systèmes automobiles suit ces étapes:

  1. Spécification:[ Les exigences sont saisies, souvent liées à des objectifs de sécurité ISO 26262.
  2. Conception de la RTL: Les ingénieurs écrivent le code VHDL au niveau de transfert-registre (RTL) décrivant le comportement prévu.
  3. Simulation: Les simulations fonctionnelles et de chronométrage vérifient l'exactitude des tests par rapport aux bancs de test qui modélisent les entrées réelles, y compris les scénarios d'injection de faille.
  4. Vérification formelle:[ Les techniques mathématiques prouvent que la conception satisfait aux propriétés de sécurité (p. ex., “ le coussin gonflable ne doit pas se déployer lorsque le véhicule est stationnaire”).
  5. Synthèse: Le code VHDL est compilé dans une liste de points de connexion ciblée sur une technologie ASIC ou FPGA.
  6. Simulation postsynthèse et analyse du moment :[ S'assure que la mise en oeuvre physique respecte les contraintes de temps dans les pires conditions.
  7. Prototypage et validation:[ La conception est testée sur des émulateurs à base de FPGA ou dans du silicium.

La forte typographie, le modèle de concordance et le soutien à la conception hiérarchique permettent de la faire particulièrement pour les projets automobiles où plusieurs équipes développent des blocs IP distincts qui doivent s'intégrer sans heurt. De plus, la normalisation du langage et du langage et du langage assure la portabilité des différents outils et technologies de fonderie de l'EDA, un avantage clé pour les fournisseurs automobiles qui travaillent souvent avec de multiples partenaires semi-conducteurs.

Considérations de sécurité dans la conception de la LHDV

La sécurité dans l'électronique automobile est guidée par la norme ISO 26262, qui définit les niveaux d'intégrité de sécurité automobile (ASIL) A à D, l'ASIL D étant la norme la plus stricte. VHDL soutient directement le développement de matériel critique en matière de sécurité par plusieurs mécanismes.

Vérification formelle

La simulation traditionnelle ne peut exercer qu'une infime fraction de toutes les combinaisons d'entrées possibles. La vérification formelle utilise des preuves mathématiques pour vérifier de façon exhaustive qu'un modèle VHDL adhère aux propriétés de sécurité spécifiées. Par exemple, prouver qu'un arbitre n'accorde jamais deux demandes simultanément, ou qu'une machine d'état n'entre jamais dans un état invalide. Des outils tels que OneSpin, Cadence JasperGold et Siemens Questa Formal peuvent être appliqués aux modèles VHDL pour obtenir la couverture requise pour la certification ASIL D. En intégrant des affirmations formelles directement dans le code VHDL (en utilisant PSL ou SVA), les ingénieurs documentent les exigences de sécurité qui peuvent être vérifiées automatiquement.

Tolérance des fautes et redondance

Une approche commune pour assurer la sécurité dans les systèmes automobiles est la redondance. VHDL permet la mise en œuvre de redondance triple modulaire (TMR), où trois modules identiques exécutent le même calcul et un électeur sélectionne la sortie majoritaire. De même, la duplication avec comparaison (DWC) utilise deux modules et un comparateur; tout mauvais ajustement déclenche une transition en état de sécurité. VHDL’s génère des instructions et l'instantanement des composants rendent simple d'invoquer une logique redondante sans code répétitif, tout en permettant un placement et un routage indépendants dans la conception physique.

Détection et correction d'erreurs

Les éléments de mémoire (flippes, SRAM, fichiers de registres) sont vulnérables aux perturbations à un seul événement (EVP) causées par les rayonnements cosmiques ou les particules alpha. Les modèles VHDL peuvent incorporer des codes de correction d'erreurs (ECC) tels que les codes de Hamming ou CRC pour l'intégrité des données. Pour les chemins de données critiques pour la sécurité, les ingénieurs peuvent mettre en œuvre des contrôles de parité ou des contrôles cycliques de redondance (CRC) dans VHDL. De nombreux ECU automobiles comprennent également une logique d'auto-test (BIST) intégrée décrite dans VHDL, qui vérifie périodiquement la santé des blocs de mémoire et de logique pendant le fonctionnement.

Chronomètres de veille et machines à état sûr

Un minuteur de veille est un mécanisme de sécurité simple mais efficace : un compteur doit être réinitialisé régulièrement par la logique principale ; s'il s'écoule, une défaillance est supposée et le système entre dans un état sûr. VHDL peut modéliser des minuteurs de veille avec des paramètres précis de synchronisation, et la machine de sécurité peut être conçue pour désactiver les actionneurs, engager un mode de limp-home, ou arrêter gracieusement.

Respect des exigences de l'ASIL

Pour atteindre la conformité ASIL D, le processus de conception de la LHDV doit comprendre :

  • Éviter les défauts systématiques (normes de codage, examens de conception).
  • Détection systématique des défauts (simulation, vérification formelle).
  • Détection aléatoire des défauts (ECC, BIST, redondance).
  • Détection des défauts à double point (surveillance des mécanismes de sécurité).

Le support de VHDL’s pour les génériques et les configurations permet aux équipes de paramétrer les mécanismes de sécurité (p. ex. nombre de modules redondants, force ECC) et de réutiliser la même base de code pour différents niveaux ASIL dans une famille de produits.

Défis et solutions en matière de fiabilité

Au-delà de la sécurité, les systèmes automobiles doivent fonctionner de façon fiable pendant plus de 15 ans de service dans des conditions difficiles : températures de -40°C à +150°C, vibrations extrêmes, humidité et interférence électromagnétique (IME).

Interférence électromagnétique (IME)

La simulation VHDL avec des données parasitaires rétro-annotées de la disposition peut prédire l'impact de l'heure du bruit d'alimentation et de la tension croisée. Les ingénieurs peuvent ensuite ajuster les forces de l'entraînement, ajouter des blindages ou insérer des cellules de retard dans la conception VHDL pour réduire la sensibilité. De plus, les modèles VHDL du réseau de distribution d'électricité aident à simuler des baisses de tension qui pourraient causer des erreurs logiques.

Variations de température et de tension

La simulation de la synchronisation peut être exécutée à plusieurs angles PVT (processus, tension, température) pour vérifier que les temps de configuration et de maintien sont respectés dans toutes les conditions. Pour les trajectoires critiques de la mission, les ingénieurs peuvent concevoir des circuits de synchronisation adaptatifs dans VHDL, tels que des régulateurs de tension dynamiques ou des oscillateurs à compensation de température.

Mécanismes de vieillissement et de dépannage

Au fil du temps, l'électromigration, l'injection à chaud et l'instabilité de la température négative (NBTI) dégradent les performances des transistors. Les modèles comportementaux VHDL peuvent intégrer des effets sur le vieillissement en ajustant les délais et les paramètres de fuite. Bien que ce domaine soit une recherche active, certains outils EDA offrent une simulation du vieillissement qui utilise des testbenches VHDL pour estimer une conception et la fiabilité à vie.

Effets d'un événement unique (SEE)

Comme on l'a vu dans le cadre de la sécurité, les EVP sont une préoccupation de fiabilité, en particulier dans les altitudes supérieures ou à proximité des sources nucléaires. Les conceptions VHDL pour l'automobile doivent inclure des flops durcis (par exemple, les serrures DICE) ou une logique de lavage pour la mémoire de configuration dans les FPGA.

Conception de l'essai (DFT)

La fiabilité ne peut être assurée sans la capacité de tester l'appareil fabriqué. VHDL est utilisé pour insérer des chaînes de balayage, des contrôleurs de balayage de bordure (JTAG) et des auto-tests (BIST) intégrés. Ces structures DFT permettent aux équipements de test automatique (ATE) de détecter les défauts de fabrication et de fournir des diagnostics de terrain.

Meilleures pratiques pour VHDL dans les applications automobiles

Les recommandations ci-dessous s'harmonisent avec les normes de l'industrie telles que la norme ISO 26262 et les lignes directrices de la MISRA C (qui ont inspiré des règles similaires pour la VHDL).

Normes de codage et lignes directrices en matière de conception

Un style de codage cohérent réduit l'erreur humaine et facilite les révisions de code. Adopter ou créer un guide de style VHDL qui comprend :

  • Utilisation de std logic[ et std logic vector[ plutôt que bit/bit vector pour une meilleure simulation des états inconnus et à haute impédance.
  • Logique de réinitialisation explicite : assurez-vous que toutes les flip-flops ont une réinitialisation synchrone ou asynchrone, et que la politique de réinitialisation est documentée.
  • Évitez de mélanger les horloges montantes et tombantes dans le même processus pour éviter la métastabilité.
  • Utilisation des instructions assert pour les vérifications d'exécution qui peuvent être désactivées pendant la synthèse.
  • Utilisation limitée des valeurs ‘X’ et ‘Z’; gestion de la métastabilité clairement définie.

De nombreux organismes font référence à la norme de codage Aldec VHDL ou aux lignes directrices MISRA pour les logiciels critiques en matière de sécurité, les étendant aux langages de description du matériel.

Simulation et bancs d'essai

La simulation est la méthode principale pour vérifier la justesse fonctionnelle.

  • Élaborer un banc d'essai complet comprenant des tests dirigés, des stimuli aléatoires et des cas d'angle.
  • Utilisez des outils de couverture de code (toggle, branche, condition, FSM) pour mesurer l'exhaustivité des tests.
  • Effectuer l'injection de défauts : simuler des perturbations à un seul événement, des défauts bloqués et des violations de la chronologie pour vérifier que les mécanismes de sécurité détectent et réagissent.
  • Utiliser VHDL’s “after” clauses et génération de formes d'onde pour modéliser le calendrier réaliste des entrées.
  • Intégrer avec un pipeline d'intégration continue (IC) qui exécute des simulations de régression sur chaque commit.

Vérification formelle

Il est de plus en plus nécessaire de procéder à une vérification formelle des systèmes ASIL D. Les meilleures pratiques sont les suivantes :

  • Définir les propriétés formelles (affirmations, hypothèses, points de couverture) pour toutes les exigences de sécurité. Par exemple, une affirmation que “brake n et whrall p ne sont jamais simultanément actifs.”
  • Utilisez une approche en couches : prouver les propriétés de niveau bloc d'abord, puis prouver l'interconnexion et l'intégration de haut niveau.
  • Combiner vérification formelle et simulation dynamique pour gérer des conceptions complexes qui sont trop grandes pour une preuve exhaustive.
  • Archiver les résultats officiels dans le cadre du dossier de certification. OneSpin Solutions et d'autres fournisseurs d'EDA fournissent des outils qui produisent des rapports de conformité adaptés aux audits ISO 26262.

Techniques de redondance

Pour concevoir des systèmes redondants en VHDL, suivez les lignes directrices suivantes :

  • Utilisez des instructions generate pour créer plusieurs instances d'un module avec un code minimal de duplication. Paramètrez le nombre de voies via un générique.
  • Séparer la logique électeur/comparateur des modules redondants pour permettre une synthèse et un placement indépendants.
  • Concevoir l'électeur lui-même comme étant sûr de ses erreurs : utiliser le triple votant dans une approche TMR pour éviter un seul point d'échec.
  • Inclure des fonctions diagnostiques qui permettent au système de signaler le module qui n'est pas d'accord (utile pour les tests et la maintenance en ligne).

Documentation et traçabilité

La certification exige une traçabilité complète, des exigences du système jusqu'au code VHDL et aux résultats de vérification.

  • Intégrer des références aux exigences dans les commentaires de la VHDL (p. ex., & #8211; REQ-1234: CRC activé pour l'en-tête des messages).
  • Maintenir une matrice de traçabilité des exigences (TMR) qui relie chaque entité de la LHDV à ses objectifs de sécurité.
  • Utiliser le contrôle de version (Git, SVN) avec des étiquettes signées pour les candidats de sortie.
  • Génération automatique de documentation à partir de la source VHDL à l'aide d'outils comme Doxygen avec filtres VHDL.

Conclusion

VHDL reste un langage fondamental pour la conception de matériel numérique dans l'industrie automobile. Sa capacité à modéliser une logique complexe, à simuler des conditions extrêmes et à soutenir la vérification formelle rend indispensable pour répondre aux exigences de sécurité (ISO 26262) et de fiabilité des véhicules modernes. En adoptant des normes de codage rigoureuses, une simulation étendue avec injection de défauts, une vérification formelle et une redondance systématique, les ingénieurs peuvent créer des systèmes numériques qui fonctionnent correctement pour la durée de vie d'une voiture, même dans des conditions défavorables.

L'avenir de VHDL dans l'automobile semble prometteur : la norme IEEE 1076-2019 ajoute un meilleur support pour les génériques, les paquets et les noms externes, rendant la vérification encore plus efficace. Parallèlement, la poussée vers les architectures zonales et les plateformes de calcul centralisées (contrôleurs de domaine, ordinateurs de conduite autonomes) nécessitera des conceptions VHDL encore plus sophistiquées pour les interconnexions à grande vitesse, les moteurs de sécurité et les moniteurs de sécurité.

Pour plus de détails, consultez la norme ISO 26262 pour la sécurité fonctionnelle et l'article Semi-ingénierie sur la sécurité automobile et la vérification HDL pour des informations supplémentaires. La combinaison de VHDL avec des outils formels et des architectures tolérantes aux défauts continuera de conduire l'industrie automobile vers des niveaux plus élevés d'autonomie et de sécurité.