Accelerating the pace of engineering and science

Fixed-Point Designer

Principales fonctionnalités

  • Spécification des types de données à virgule fixe dans MATLAB, Simulink et Stateflow
  • Simulation accélérée exacte au bit près d'algorithmes virgule fixe
  • Conversion automatique de la virgule flottante en virgule fixe en fonction de la dynamique des données
  • Comparaison des résultats en virgule flottante et en virgule fixe
  • Remplacement des types de données à virgule fixe par le type double ou simple précision
  • Support de la génération de code C, HDL et PLC
Using Fixed-Point Designer to specify and view data types and scaling for MATLAB, Simulink, and Stateflow.
Fixed-Point Designer permet de spécifier et d’afficher les mises à l’échelle et les types de données pour MATLAB, Simulink et Stateflow.

Spécification en virgule fixe

Fixed-Point Designer permet de spécifier l’ensemble des propriétés en virgule fixe de votre code MATLAB, de vos modèles Simulink et de vos diagrammes Stateflow. Cet outil offre un contrôle intégral de la définition du signe des données, de la longueur des mots et de la mise à l’échelle. Il prend en charge des longueurs de mots spécifiques à l’application allant de 1 bit à 128 bits ou plus. Les mises à l'échelle par emplacement du point binaire et par pente et biais arbitraires requises par les capteurs et les actionneurs sont également supportées. Vous pouvez contrôler les détails des opérations mathématiques, comme la manière dont sont gérés les arrondis et les dépassements de capacité.

Simulink model demonstrating the effect of limited range and precision on a signal.
Modèle Simulink illustrant l'effet d'une plage et d'une précision limitées sur un signal, comme indiqué sur l'affichage (en haut à droite). La boîte de dialogue des paramètres (en haut à gauche) permet un contrôle complet des paramètres de bloc, y compris de tous les attributs relatifs à la virgule fixe (exemple).

Pour pouvoir effectuer des calculs en virgule fixe, Fixed-Point Designer propose un grand nombre de fonctions comme les opérations mathématiques et binaires, les opérations sur les tableaux et les matrices, les implémentations CORDIC et les fonctions trigonométriques.

Avec Fixed-Point Designer, vous pouvez contrôler l’arithmétique en virgule fixe. Dans MATLAB, les variables à virgule fixe peuvent soit partager un ensemble unique d’attributs arithmétiques, soit disposer de leurs propres attributs arithmétiques.

A data-type-independent FIR filter algorithm in MATLAB.
Algorithme de filtre FIR indépendant du type de données dans MATLAB (il fournit à la fois une réponse en virgule flottante et une réponse en virgule fixe). Le graphique permet de comparer le signal de sortie de la structure originale en virgule flottante et celui de l’algorithme implémenté (types de données avec une longueur de mot de 16 bits et utilisant la longueur fractionnaire proposée). Les deux signaux se superposent (à gauche) et les différences sont de l’ordre de 10-6 (à droite). Voir l’exemple.

Processus de conception exact au bit près

Fixed-Point Designer fournit une conformité au bit près tout au long du processus utilisant la conception par modélisation. La réponse d'un algorithme virgule fixe est exacte au bit près pour toutes les formes de simulation et de génération de code, y compris l'accélération et les tests software-in-the-loop. L'analyse et la vérification d'un algorithme virgule fixe reposent sur les représentations exactes au bit près. La conformité au bit près maximise les avantages de la conception par modélisation, tels que la possibilité de détecter des erreurs au début du processus, lorsque leur correction est plus simple et moins coûteuse.

Using the Simulation Data Inspector to compare floating-point simulation to fixed-point simulation.
Utilisation de Simulation Data Inspector pour comparer les résultats d’une simulation en virgule flottante et ceux d’une simulation en virgule fixe. Voir un exemple.

Une fois qu’une conception a été configurée avec des types de données en virgule fixe, vous pouvez simuler son comportement pour étudier les compromis d’implémentation (limitation de dynamique ou précision) pour les systèmes embarqués en virgule fixe.

Les outils de Fixed-Point Designer vous permettent d’accéder à ces valeurs et de modifier les types de données des signaux, en optimisant la précision tout en vérifiant que leur dynamique est couverte. Vous pouvez indiquer la dynamique des types de données à l'aide des valeurs minimum et maximum du modèle, des résultats de simulation, ou des résultats dérivés des valeurs minimum et maximum. Dans les modèles Simulink, vous pouvez verrouiller les types de données en sortie pour éviter qu’ils soient modifiés.

Fixed-point simulation of a fuel rate control system designed using Simulink and Stateflow.
Simulation en virgule fixe d’un système de contrôle de débit de carburant conçu avec Simulink et Stateflow. L’outil vous permet de trouver un compromis entre la dynamique et la précision pour les données des modèles Simulink (en bas).

Conversion de virgule flottante en virgule fixe

Fixed-Point Designer propose des outils d’analyse permettant la conversion efficace d’une conception en virgule flottante vers une conception en virgule fixe. Les outils vous permettent d'enregistrer les valeurs de données minimum et maximum des données et de signaler le moment où le dépassement de capacités se produit pendant les opérations en virgule fixe. La fonctionnalité de remplacement des types de données vous permet d’analyser un algorithme en virgule fixe en échangeant les types de données virgule fixe et virgule flottante. Avec cette analyse, vous pouvez observer la plage dynamique des variables utilisées dans votre conception et vous assurer que l’algorithme se comporte de façon cohérente dans les représentations en virgule flottante et virgule fixe.

Dans MATLAB, vous pouvez utiliser l’application Fixed-Point Converter pour collecter les valeurs minimale et maximale enregistrées via une simulation ou une analyse de la dynamique, et obtenir des propositions de types de données. Un histogramme est généré pour chaque variable nommée et intermédiaire, et pour chaque expression dans votre code. Vous pouvez utiliser cet histogramme pour optimiser les longueurs de mot et de fraction pour vos variables à virgule fixe. À l’aide de l’application Fixed-Point Converter, vous pouvez remplacer toute fonction non prise en charge par la conversion en virgule fixe par une fonction qui s’en rapproche via la table de recherche.

Fixed-Point Converter app showing range of proposed data type and percentage of simulation values.
Histogramme généré par l’application Fixed-Point Converter illustrant la dynamique du type de données proposé et le pourcentage de valeurs de simulation couvert par ce type de données. Vous pouvez utiliser cette application pour instrumenter votre code en vue d’enregistrer les signaux pour collecter les valeurs minimale et maximale, pour tracer un histogramme à partir de la simulation, et pour obtenir les types de données proposés.

Dans le cas des modèles Simulink, vous pouvez convertir automatiquement une conception en virgule flottante réalisée dans Simulink, Stateflow et les outils « System Toolbox », y compris Communications System Toolbox et DSP System Toolbox, en une conception en virgule fixe, à l’aide de l’outil Fixed-Point Tool. Vous pouvez également écrire le script du processus de conversion à l’aide de l’interface de commande en ligne de Fixed-Point Tool.

Évaluation de la dynamique pour la conversion virgule flottante en virgule fixe (méthode analytique)
L’outil Fixed-Point Tool de Fixed-Point Designer permet d’évaluer la dynamique d’un signal soit en relevant les informations nécessaires lors d’une simulation, soit en la déduisant de manière analytique.

Fixed-Point Designer offre des fonctionnalités de débogage qui vous permettent de basculer vers une représentation de votre modèle en virgule flottante pour effectuer un test de performance, identifier les erreurs de modélisation et déterminer les valeurs minimum et maximum idéales. Fixed-Point Designer prend en charge les processus basés sur MATLAB ou Simulink, ainsi que les processus intégrés basés à la fois sur MATLAB et Simulink, avec les blocs MATLAB Function.

Utilisez Fixed-Point Tool pour collecter et afficher les dynamiques de variables au sein d’un bloc MATLAB Function et obtenir des propositions de types de données pour les variables en fonction de ces informations.

Simulation accélérée

Fixed-Point Designer vous permet d'accélérer les algorithmes virgule fixe par la génération de fichier MEX. L’outil utilise pour cela la fonction fiaccel afin de convertir votre code MATLAB en fonction MEX, ce qui permet de réduire le délai d’exécution de vos algorithmes en virgule fixe.

Code showing how to accelerate a numerical filter fixed-point algorithm.
Code illustrant la méthode pour accélérer un algorithme de filtre numérique en virgule fixe à l’aide de la fonction fiaccel .

Génération de code

À l’aide de Fixed-Point Designer et de MATLAB Coder ou Embedded Coder®, vous pouvez générer du code C avec des variables entières uniquement à partir de votre code MATLAB en virgule fixe. Vous pouvez ensuite identifier les problèmes potentiels concernant les types de données grâce à un rapport HTML. Ce rapport met en évidence le code MATLAB nécessitant un codage en simple précision, en double précision ou des opérations coûteuses en virgule fixe.

Fixed-point MATLAB code for a FIR filter and efficient C code generated using MATLAB Coder with Fixed-Point Designer.
Code MATLAB en virgule fixe pour un filtre FIR (en haut) et code C efficace généré à l’aide de MATLAB Coder avec Fixed-Point Designer (en bas).

À l’aide de Fixed-Point Designer et de Simulink Coder ou Embedded Coder, vous pouvez générer du code C avec des variables entières uniquement à partir de vos modèles Simulink en virgule fixe et de vos diagrammes Stateflow.

Model incorporating wide integer and fixed-point operations and generated multiword C code.
Modèle qui incorpore des opérations sur de grands entiers et des opérations en virgule fixe (en haut), et code C généré multi-mots (en bas). La génération d’un tel code est normalement déclenchée en utilisant des paramètres ou des signaux avec des types de données plus larges que le type C « long ».

Le code généré est en conformité au bit près avec votre modèle, ce qui permet à votre conception de se comporter exactement comme lors de la simulation. Le code généré prend automatiquement en charge tous les détails de l'implémentation des modèles en virgule fixe, comme les ajustements de mise à l'échelle, l'arrondi et les calculs avancés en virgule fixe. Vous pouvez générer un code pour des signaux et des paramètres avec des tailles de mot allant de 1 à 128 bits. Vous pouvez utiliser le code généré pour une grande variété d'applications, y compris une simulation accélérée, un prototypage rapide et le déploiement en production. Avec Model Advisor, vous pouvez configurer vos modèles en virgule fixe de manière à les rendre plus efficaces et à optimiser le code généré.

En utilisant Fixed-Point Designer et HDL Coder, vous pouvez générer du code Verilog® et VHDL® synthétisable au bit près à partir de votre code MATLAB, de vos modèles Simulink et de vos diagrammes Stateflow en virgule fixe.

Comment intégrer MATLAB dans votre workflow de développement en...

Visionner le webinar