Table of Contents
En permettant aux concepteurs de spécifier le comportement matériel en utilisant des langages de haut niveau tels que C, C++ ou SystemC, HLS comble l'écart entre le développement d'algorithmes et la mise en œuvre du matériel. Ce changement élimine une grande partie des descriptions manuelles, sujettes aux erreurs, des niveaux de transfert de registre (RTL), permettant une accélération du temps de mise en marché, une exploration plus facile de l'espace de conception et une meilleure collaboration entre les ingénieurs logiciels et le matériel.
Comprendre la synthèse de haut niveau (SCH)
La synthèse de haut niveau est un processus de conception automatisé qui interprète une description algorithmique écrite en langage de haut niveau et produit une implémentation matérielle au niveau RTL, typiquement en VHDL ou Verilog. Le code d'entrée décrit le calcul prévu sans spécifier le moment, la pipeline ou l'allocation des ressources. L'outil HLS planifie ensuite les opérations à travers les cycles d'horloge, répartit les unités fonctionnelles (adders, multiplicateurs, blocs de mémoire) et lie les variables aux registres ou aux mémoires.
Pour les processeurs DSP, les descriptions algorithmiques comprennent souvent des boucles imbriquées, des opérations matricielles, des structures de filtres (FIR, IIR), des papillons FFT et une péréquation adaptative. Les outils HLS peuvent automatiquement faire des boucles de pipelines, des itérations de déroulement et des tranches DSP de levier (unités multipliées à accumulation) trouvées dans les FPGA et les ASIC modernes.
Flux de travail traditionnel de la conception RTL par rapport à HLS
Dans le flux de travail conventionnel RTL, un ingénieur DSP commence par une spécification système, écrit un modèle de haut niveau (souvent en MATLAB ou Python), puis traduit manuellement ce modèle en RTL. Cette traduction nécessite une expertise matérielle profonde et est intensive en main-d'oeuvre. Chaque changement à l'algorithme nécessite une révision du code RTL, introduisant souvent des erreurs et nécessitant une revérification.
Avec HLS, le même ingénieur peut mettre en œuvre directement le modèle de haut niveau après vérification fonctionnelle. L'outil HLS gère la traduction et fournit des commentaires sur les performances, la zone et la puissance. Si l'algorithme change, le concepteur met à jour le code de haut niveau et resynthèses. L'outil permet d'explorer différentes microarchitectures (p. ex., entièrement parallèles par rapport aux ressources partagées) permettant une analyse rapide des compromis.
Principaux avantages de l'utilisation de HLS dans la conception du DSP
L'adoption de HLS dans la conception de processeurs DSP est guidée par plusieurs avantages quantifiables qui vont au-delà de simples gains de productivité. Chaque avantage aborde directement un point de douleur dans le développement matériel traditionnel.
Accélération du développement et réduction du temps de mise en marché
La rédaction et la vérification de RTL pour un grand algorithme DSP peuvent prendre des semaines ou des mois. HLS réduit cela à des jours en automatisant la création de RTL synthétisant. Par exemple, un FFT de 1024 points peut être spécifié dans quelques dizaines de lignes de code C; l'outil HLS a automatiquement capté le calcul et le map à l'architecture cible. Cette vitesse est critique sur les marchés où les cycles de produits sont mesurés en mois, comme l'électronique grand public et l'infrastructure de télécommunications.
Amélioration de la productivité et mise sur l'optimisation de l'algorithme
Les concepteurs peuvent consacrer plus de temps à affiner les algorithmes de traitement des signaux plutôt qu'à gérer le moment du matériel. Parce que HLS sépare le comportement de l'implémentation, les ingénieurs peuvent tester et optimiser les algorithmes à un niveau élevé, puis laisser l'outil générer du matériel. Cette séparation facilite également une meilleure réutilisation : un modèle C/C++ bien écrit peut servir à la fois la simulation logicielle et la synthèse matérielle, réduisant ainsi la duplication des efforts.
Exploration spatiale de conception
Les outils HLS permettent une exploration rapide de l'espace de conception. Par exemple, un filtre FIR peut être mis en place en tant que tableau systolique entièrement parallèle ou en tant que moteur MAC série. L'outil HLS rapporte l'utilisation des ressources et le moment de chaque variante, permettant au concepteur de choisir le meilleur compromis sans réécriture manuelle de RTL. Cette capacité est inestimable pour les systèmes DSP où coexistent des contraintes de puissance et de temps réel.
Une meilleure réutilisabilité et une meilleure transférabilité
Une description DSP de haut niveau est intrinsèquement plus portable dans les familles FPGA ou les technologies ASIC que RTL. Lorsqu'il s'agit de cibler un nouvel appareil, le concepteur doit simplement re-synthétiser le même code C/C++ avec des contraintes mises à jour. De plus, les bibliothèques de fonctions DSP réutilisables (p. ex., générateurs de filtres, bibliothèques FFT, modules de modulation) peuvent être maintenues sous une forme de haut niveau et partagées entre les projets, assurant ainsi la cohérence et réduisant les coûts de maintenance.
Erreurs manuelles réduites et vérification améliorée
Le codage manuel RTL est sujet à des erreurs hors-par-un dans les machines d'état, des décrochages de pipelines incorrects ou des données mal alignées. HLS génère RTL à partir d'un modèle algorithmique vérifié, réduisant ainsi de façon significative ces erreurs. L'outil HLS fournit également RTL-co-simulation qui contre-vérifie le RTL généré par rapport au testbench C d'origine.
Incidence sur le flux de travail de conception du processeur DSP
L'intégration des outils HLS a remodelé chaque étape du développement du processeur DSP, de la spécification à la vérification finale. Les sous-sections suivantes détaillent les changements les plus importants au flux de travail.
Co-conception du prototypage précoce et du logiciel de matériel
Avec HLS, des prototypes matériels peuvent être construits dès que l'algorithme est stable. Le RTL généré peut être synthétisé pour un tableau d'évaluation FPGA, permettant des tests en temps réel des chaînes de traitement de signaux des mois avant la mise à disposition du silicium final. Ce prototypage précoce permet la co-conception de logiciels matériels : le logiciel système peut s'intégrer à l'accélérateur matériel réel, découvrir des problèmes d'interface ou des erreurs de latence tôt.
Optimisation itérative par des modifications de haut niveau
Pour réduire la latence, le concepteur ajoute des directives sur les pipelines et des resynthèses. Pour réduire la surface, ils réduisent le facteur de déroulement ou partagent des unités fonctionnelles. Chaque itération prend des minutes (pas des jours). Cette boucle de rétroaction rapide encourage une optimisation agressive qui serait prohibitivement coûteuse dans RTL. Par exemple, un processeur de bande de base de communication pourrait être optimisé pour le débit dans un passage et pour la puissance dans un autre, donnant ainsi de multiples implémentations qui peuvent être comparées quantitativement.
Développement collaboratif entre équipes de logiciels et de matériel
Les ingénieurs logiciels qui comprennent les algorithmes DSP peuvent écrire le modèle fonctionnel; les ingénieurs matériels se concentrent sur le réglage des contraintes et l'accord de microarchitecture. Cette compréhension partagée réduit la mauvaise communication et garantit que le matériel final correspond vraiment à l'intention de l'algorithme. En pratique, les équipes utilisent souvent une approche -dual-track: le logiciel maintient le modèle de simulation, tandis que le matériel utilise HLS pour générer RTL à partir de la même base de code.
Pipeline automatisée et partage des ressources
Les outils HLS permettent automatiquement de capter ces boucles pour obtenir un débit élevé. Par exemple, dans un filtre FIR, l'outil peut planifier des opérations multi-accumulation pour atteindre un intervalle d'initiation cible. De même, le partage des ressources – où plusieurs opérations partagent un seul multiplicateur – est automatisé, réduisant la zone tout en maintenant le taux de données requis. Ce niveau d'optimisation est fastidieux et est sujet à erreur lorsqu'il est fait manuellement.
Défis et limites du SPH pour le PSD
Malgré ses avantages, HLS n'est pas une panacée. Les concepteurs doivent comprendre ses limites pour éviter les pièges dans les conceptions DSP de production.
Prévisibilité du rendement et qualité des résultats
La qualité des résultats de HLS, mesurés par fréquence, surface et puissance de l'horloge, dépend fortement de l'outil et des directives fournies. Pour certaines structures de contrôle irrégulières ou arithmétique de précision arbitraire, les RTL générés peuvent être moins efficaces que les RTL codés à la main. Les concepteurs expérimentés de RTL peuvent souvent concevoir un chemin de données plus optimisé pour les boucles critiques.
Courbe d'apprentissage et maturité des outils
L'adoption de HLS nécessite l'apprentissage d'un nouvel ensemble de contraintes, de pragmes et de mécanismes de rapport. Les ingénieurs doivent comprendre comment leurs cartes de code de haut niveau au matériel — ce qui les construit va inférer des souvenirs, comment les boucles sont programmées, et comment les interfaces sont synthétisées. La courbe d'apprentissage est raide pour les concepteurs habitués à la RTL pure.
Zone et puissance hors-bord
Le processus de reliure automatisé peut introduire des multiplexeurs supplémentaires ou des fichiers de registres qui ne sont pas strictement nécessaires. De même, la consommation d'énergie dynamique peut être plus élevée en raison de la bascule inutile. Cependant, les outils modernes HLS offrent des directives d'optimisation de la puissance (p. ex., insertion de la commande d'horloge, isolement de l'opérande) pour atténuer cette situation.
Débogue et complexité de la vérification
Bien que HLS réduise le nombre d'erreurs de codage manuel, le débogage du RTL généré peut être plus difficile. Le concepteur doit faire une carte inverse des signaux RTL pour revenir au code C original afin de comprendre le comportement inattendu. La modélisation au niveau transactionnel et l'aide de la co-simulation RTL, mais ils ajoutent de la complexité au flux de vérification.
Intégration des SPH dans les flux de SPD modernes fondés sur les SPGFP et l'ASIC
Pour les conceptions FPGA, Xilinx Vitis HLS (anciennement Vivado HLS) permet aux concepteurs de compiler du code C/C++ dans l'IP qui peut être utilisé dans les conceptions de blocs Vivado. L'outil prend en charge une large gamme de fonctions de bibliothèque DSP, y compris les opérations FFT, filtres et matrices. De même, Intel FPGA HLS (maintenant partie intégrante de l'Intel oneAPI) fournit un flux similaire pour les appareils Intel. Ces outils permettent automatiquement d'inférer des tranches DSP et d'utiliser des primitives spécifiques au fournisseur pour obtenir des performances optimales.
Pour les conceptions ASIC, HLS est souvent utilisé en conjonction avec la synthèse logique et les flux de conception physique. Des outils comme Cadence Stratus HLS[ et Siemens EDA Catapult HLS[ sont largement déployés dans des projets DSP à volume élevé, comme dans les processeurs sans fil de bande de base, les codecs vidéo et le traitement des signaux radar.
Une tendance émergente est l'utilisation d'outils HLS open-source pour l'éducation et le prototypage rapide. UCLA=s LegUp et Xilinx=s open-source HLS basé sur LLVM sont des exemples, bien qu'ils n'aient pas la maturité des offres commerciales.
Références externes et lectures complémentaires
- Xilinx Vitis HLS Official Documentation[ – guide complet d'utilisation de HLS pour les conceptions FPGA DSP.
- )?Résumé de haut niveau pour le traitement numérique des signaux : une enquête , (accès aux EIE)[ – une enquête académique détaillée sur les techniques HLS et leur application au DSP.
- Intel FPGA HLS Compiler – Solution IntelS HLS pour l'accélération DSP et AI.
- ─ Défis de synthèse de haut niveau et meilleures pratiques (conception et amp; réutilisation) – des idées pratiques pour surmonter les obstacles à l'adoption des SPH.
Orientations futures pour le HLS dans la conception des processeurs DSP
L'évolution de HLS continue de repousser les limites de ce qui peut être automatisé. Plusieurs tendances vont renforcer encore le rôle de HLS dans les flux de travail de conception DSP.
Apprentissage automatique–HLS guidé
Les recherches récentes mettent en œuvre l'apprentissage automatique pour prédire l'ensemble optimal de directives HLS pour un design et une cible donnés. Les modèles d'apprentissage renforcé peuvent explorer l'espace de directive plus efficacement que les méthodes de force brute ou heuristique, ce qui donne des implémentations presque optimales.
Intégration avec l'IA Generative
Des modèles génériques sont en cours d'étude pour traduire directement les descriptions en langage naturel des algorithmes DSP en entrées HLS synthésimables. Bien que expérimental, cela pourrait abaisser la barrière d'entrée plus loin, permettant aux ingénieurs d'algorithmes de décrire les spécifications de filtre ou les tailles FFT en anglais simple et recevoir une implémentation matérielle synthésimable.
Croissance des écosystèmes de SPH à source ouverte
Comme les groupes universitaires et industriels contribuent davantage, les outils HLS de source ouverte seront mis au point et constitueront une plateforme d'expérimentation et de personnalisation, en particulier pour les architectures DSP spécialisées comme l'informatique approximative ou le traitement stochastique.
Meilleur soutien pour les PSD de précision mixte
Les algorithmes DSP utilisent de plus en plus l'arithmétique de précision mixte (p. ex., point flottant pour le contrôle, point fixe pour le chemin de données). Les futurs outils HLS traiteront automatiquement la conversion de type et le réglage de précision, réduisant ainsi l'effort manuel requis aujourd'hui.
Intégration sans couture avec le matériel défini par logiciel
La frontière entre le logiciel et le matériel est floue. Des outils comme Xilinx Vitis permettent déjà une base de code unique pour fonctionner sur les processeurs et la logique programmable. Futur HLS étendra ce concept, permettant la reconfiguration dynamique des blocs DSP en fonction des conditions d'exécution – un pas vers un traitement vraiment -elasticique du signal.
Conclusion
Les avantages – développement accéléré, amélioration de la productivité, exploration de l'espace de conception, réutilisation et erreurs réduites – sont substantiels et bien documentés dans la pratique industrielle et la recherche universitaire. Bien que des défis comme la prévisibilité de la performance, la maturité des outils et la complexité de la vérification demeurent, les progrès continus réduisent l'écart avec le RTL codé à la main. Pour l'ingénieur DSP, l'acceptation de HLS n'est plus une question de savoir si, mais plutôt comment l'intégrer au mieux dans un environnement de conception déjà complexe. L'avenir, avec l'optimisation guidée par la machine et l'intégration plus stricte des logiciels, promet de faire de HLS un outil encore plus indispensable dans l'arsenal du processeur DSP.