Fixed-Point Designer

Modéliser et optimiser vos algorithmes virgule fixe et virgule flottante

 

Fixed-Point Designer™ offre des types de données et des outils pour l'optimisation et l'implémentation d’algorithmes virgule fixe et virgule flottante sur hardware embarqué. Il comprend des types de données virgule fixe et virgule flottante, ainsi que des paramètres numériques spécifiques à la cible. Avec Fixed-Point Designer, vous pouvez réaliser une simulation en virgule fixe exacte au bit près tout en tenant compte de la cible. Vous pouvez alors tester et déboguer les effets de la quantification comme les débordements et les pertes de précision avant d'implémenter le design sur du hardware.

Fixed-Point Designer propose des outils et applications permettant d'analyser les algorithmes double précision et de les convertir en algorithmes virgule flottante de précision réduite ou virgule fixe. Des outils d'optimisation vous permettent de sélectionner des types de données pour répondre aux exigences en précision numérique et aux contraintes du hardware cible. Pour une implémentation efficace, vous pouvez remplacer les constructions de design exigeant des calculs complexes par des patterns optimaux pour du hardware, comme des lookup tables compressées.

Vous pouvez générer du code C et HDL de production directement à partir de vos modèles en virgule flottante ou virgule fixe.

En savoir plus :

Exploration des types de données

Explorez les types de données virgule flottante et virgule fixe pour analyser le compromis sur la précision numérique.

Spécification en virgule fixe

Spécifiez les propriétés virgule fixe de votre design en fonction de votre application comme la longueur des mots et la mise à l'échelle en spécifiant l’emplacement du point binaire ainsi que la pente et le biais. Contrôlez les détails tels que les modes d'arrondi et de débordement.

Spécifier un type de données virgule fixe et toutes ses propriétés, comme le mode d'arrondi.

Simulation en virgule flottante

Émulez le comportement du hardware cible pour les nombres à virgule flottante dénormalisés, comme le flush-to-zero, dans la simulation et la génération de code. Simulez des données en virgule flottante de précision limitée avec le type de données demi-précision fp16 dans MATLAB® et Simulink®.

Instrumentation et visualisation

Collectez des données de simulation et des statistiques avec une instrumentation automatique à l'échelle du modèle. Collectez des données de dynamique pour explorer et analyser vos designs. Utilisez les visualisations pour optimiser votre design et utiliser de manière efficace les ressources hardware.

Visualiser la dynamique des signaux et les données d'histogramme.

Analyse des dynamiques dérivées

Dérivez la dynamique des signaux en vous basant sur une analyse mathématique de votre design et déterminez les pires dynamiques ou cas extrêmes sans avoir à créer de bancs d'essai de simulation exhaustifs. L'utilisation de dynamiques dérivées permet de vous assurer que votre design empêche ou gère tous les cas possibles de débordement.

Dériver les dynamiques sur la base des dynamiques du design.

Typage automatique des données

Quantifiez et optimisez vos designs avec des types de données virgule fixe et virgule flottante.

Quantification en virgule fixe

Explorez différents types de données virgule fixe et leurs effets de quantification sur le comportement numérique de votre système avec un processus guidé. Observez la plage dynamique des variables utilisées dans votre design et assurez-vous que l’algorithme se comporte de façon cohérente dans les représentations en virgule flottante et en virgule fixe après conversion.

Convertir un modèle virgule flottante avec Fixed-Point Tool.

Quantification en virgule flottante

Convertissez automatiquement un design double précision en design simple précision, et analysez les effets de la représentation en virgule flottante de précision limitée et de la quantification en simple précision.

Conversion automatique avec le convertisseur simple précision.

Optimisation des types de données

Itérez automatiquement sur différentes configurations en virgule fixe pour choisir les types de données hétérogènes optimaux tout en respectant les contraintes de tolérance sur le comportement numérique de votre système. L'optimisation a pour but de minimiser la largeur binaire totale en utilisant des types de données virgule fixe pour un design efficace.

Implémentation embarquée

Explorez des compromis d'implémentation et optimisez vos designs avec des algorithmes embarqués efficaces.

Approximation des fonctions et compression des lookup tables

Approximez des fonctions mathématiques complexes (comme sqrt et exp) ou des sous-systèmes complexes avec une lookup table optimale. Compressez les lookup tables existantes pour réduire l'utilisation de la mémoire en optimisant les points de données et les types de données.

Génération de code exact au bit près

Assurez une conformité au bit près sur l'ensemble du processus de Model-Based Design, de la simulation à la génération de code, y compris pour l'accélération et les simulations Processor-in-the-loop et Software-in-the-loop. Analysez et vérifiez les algorithmes virgule fixe d'après des représentations exactes au bit près. Générez du code efficace à partir de designs de précision réduite, y compris ceux incluant des types de données demi-précision.

Vérifier le comportement exact au bit près du code généré dans un simulateur.

Blocs matriciels optimisés pour le HDL

Accédez à une bibliothèque virgule fixe HDL contenant des blocs Simulink qui modélisent des design patterns pour les systèmes d'équations linéaires et les opérations matricielles principales, comme la décomposition QR, pour une implémentation hardware efficace sur FPGA. Générez du code HDL pour les designs qui intègrent ces blocs en utilisant HDL Coder™.

Bloc de bibliothèque qui fournit un design pattern optimisé pour le HDL pour la décomposition QR.

Tests et débogage

Analysez, testez et déboguez le comportement numérique de vos algorithmes.

Détection des débordements et des pertes de précision

Identifiez, tracez et déboguez rapidement les sources de débordement, les pertes de précision et les dynamiques ou précisions inutiles, et comparez votre design au comportement idéal en virgule flottante. La conformité au bit près de votre modèle et de votre code maximise de nombreux avantages du Model-Based Design, vous permettant de détecter les erreurs très tôt dans le processus.

Tracer la cause d'un débordement.

Test des cas numériques extrêmes

Générez des valeurs à virgule fixe et à virgule flottante numériquement riches, comme les valeurs proches des limites et les nombres dénormalisés, pour tester les cas extrêmes de vos algorithmes et en assurer la cohérence numérique. Générez des combinaisons de signaux de dimensions et de complexités variables, comprenant des données de types entier, virgule flottante ou virgule fixe.

Générer des données de test avec les API du générateur de données.

Nouveautés

Fixed-Point Tool amélioré

Explorez les plages de signaux dans vos designs et convertissez vos modèles Simulink avec l’optimisation des types de données

Optimisation de lookup tables

Modifiez vos lookup tables de manière itérative et compressez-les par lots, exécutez l’optimisation des lookup tables en parallèle

Optimisation du type de données

Amélioration comprenant la spécification des types de données connus et de la marge de sécurité en tant que contraintes supplémentaires

Préversion de test

Concevez, simulez et générez du code pour des types de données demi-précision dans Simulink

Bibliothèque virgule fixe

Bibliothèque de blocs Simulink pour les opérations mathématiques et les opérations matricielles efficaces en hardware

Reportez-vous aux notes de version pour en savoir plus sur ces fonctionnalités et les fonctions correspondantes.