Fixed-Point Designer

 

Fixed-Point Designer

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

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.

Un type de données virgule fixe et ses propriétés.

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.

Visualisation de la dynamique des signaux.

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.

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.

Le Fixed-Point Tool.

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.

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.

Simulation au bit près.

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 décomposition QR complexe en burst

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.

Détection et débogage des débordements.

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.

API du générateur de données.

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