HDL Coder

Principales fonctionnalités

  • Code VHDL et Verilog indépendant de la cible et synthétisable
  • Prise en charge de la génération de code pour les fonctions MATLAB, les System objects et les blocs Simulink
  • Prise en charge des machines à états finis de Mealy et de Moore, et implémentations de la logique de contrôle avec Stateflow
  • L’assistant graphique HDL Workflow Advisor pour la programmation des cartes d’application Xilinx et Altera
  • Partage de ressources et retiming pour des compromis surface/vitesse
  • Traçabilité code/modèle et modèle/code pour la norme DO-254
  • Intégration du code existant
Generating HDL code from MATLAB or Simulink with HDL Coder.
Génération de code HDL à partir de MATLAB ou Simulink avec HDL Coder. Vous pouvez générer un code VHDL et Verilog à partir des fonctions MATLAB, des modèles Simulink ou d’une combinaison des deux.

Génération du code HDL

HDL Coder permet de générer un code HDL synthétisable pour les implémentations sur FPGA et ASIC en seulement quelques étapes :

  • Modélisation de votre design à l’aide d‘une combinaison de code MATLAB, de blocs Simulink et de diagrammes Stateflow.
  • Optimisation des modèles pour satisfaire les objectifs de surface/vitesse.
  • Génération de code HDL à l’aide du HDL Workflow Advisor intégré pour MATLAB et Simulink.
  • Vérification du code généré à l’aide de HDL Verifier™

Génération de Code HDL à partir de MATLAB

Dans HDL Coder, l’interface HDL Workflow Advisor convertit automatiquement le code MATLAB virgule flottante en virgule fixe et génère le code VHDL et Verilog synthétisable. Cela vous permet de modéliser votre algorithme avec un haut niveau d’abstraction à l’aide des constructions MATLAB et des System objects, tout en fournissant la possibilité de générer un code HDL optimisé pour l’implémentation matérielle. HDL Coder dispose d’une bibliothèque d’éléments logiques prêts à l’emploi, comme des compteurs et des timers, écrits en code MATLAB.

Génération de code HDL à partir de Simulink

L’assistant HDL Workflow Advisor génère un code VHDL et Verilog à partir de Simulink et de Stateflow. Grâce à Simulink, vous pouvez modéliser votre algorithme à l’aide d’une bibliothèque de plus de 2 00 blocs, dont les diagrammes Stateflow. Cette bibliothèque offre des fonctions complexes, comme le décodeur de Viterbi, la FFT, les filtres CIC et FIR pour modéliser les systèmes de traitement du signal et de communication, et générer du code HDL.

HDL Coder Workflow Advisor for Simulink.
L’assistant HDL Workflow Advisor de HDL Coder pour Simulink. Vous pouvez générer du code HDL afin de programmer des FPGA Xilinx et Altera en établissant une connexion directe à Xilinx ISE et Altera Quartus II.

Optimisation du code HDL

Dans MATLAB ou Simulink, vous pouvez optimiser le code HDL pour atteindre les objectifs surface/vitesse, grâce au pipelining distribué, à la sérialisation et au partage de ressources. Dans MATLAB, vous pouvez utiliser des optimisations de boucle avancées, comme la sérialisation et le déroulement de boucle, pour un design MATLAB qui comprend des boucles for et des opérations matricielles. Vous pouvez mapper des variables persistantes de tableau ou de matrice en code MATLAB vers des blocs RAM. Dans Simulink, vous pouvez implémenter des designs multicanaux et des techniques de sérialisation communes au traitement du signal et aux applications multimédia.

HDL Workflow Advisor for MATLAB.
L’assistant HDL Workflow Advisor pour MATLAB fournit des options d’optimisation, comme le mappage en RAM, le pipelining, le partage de ressources et le déroulement de boucle.
Area-speed optimization.
Optimisation surface/vitesse. Le remplacement de quatre multiplicateurs par un seul réduit la surface du design et multiplie le débit binaire par quatre.

Automatisation du design FPGA

L’assistant HDL Workflow Advisor dans HDL Coder automatise le processus d’implémentation des algorithmes MATLAB et des modèles Simulink dans les FPGA Xilinx et Altera. HDL Workflow Advisor intègre toutes les étapes du processus de design FPGA :

  • Vérification du modèle Simulink pour la compatibilité avec la génération de code HDL
  • Génération de code HDL, d’un test bench HDL et d’un modèle de cosimulation
  • Synthèse et analyse du timing via l’intégration avec Xilinx ISE et Altera Quartus II
  • Estimation des ressources employées dans le design
  • Rétro-annotation du modèle Simulink avec le timing du chemin critique
Back annotating a Simulink model with critical path timing.
Rétro-annotation d’un modèle Simulink avec le timing du chemin critique. L’assistant HDL Workflow Advisor met en évidence le timing du chemin critique dans Simulink pour aider à identifier les goulots d’étranglement et améliorer les performances du design.

Vous pouvez visualiser un rapport de timing post-synthèse et rétro-annoter le modèle Simulink pour identifier les goulots d’étranglements en terme de contrainte de timing. Cette intégration aux outils de synthèse permet des itérations de design rapides et réduit significativement la durée du cycle de design FPGA.

Vérification du code HDL

HDL Coder génère des test benches VHDL et Verilog pour une vérification rapide du code HDL généré. Vous pouvez personnaliser un test bench HDL à l’aide de plusieurs options qui appliquent des stimuli au code HDL. De plus, vous pouvez générer des fichiers script pour automatiser le processus de compilation et de simulation de votre code dans les simulateurs HDL.

HDL Coder fonctionne avec HDL Verifier pour générer deux types de modèles de cosimulation :

  • Le modèle de cosimulation HDL pour la cosimulation du code HDL entre Simulink et un simulateur HDL, comme Cadence Incisive ou Mentor Graphics ModelSim et Questa
  • Le modèle de cosimulation FPGA-In-the-Loop (FIL) pour vérifier votre design avec Simulink et une carte FPGA
Automatically generated FGPA-in-the-loop (FIL) model for video sharpening.
Modèle FPGA-In-the-Loop (FIL) généré automatiquement pour un algorithme vidéo d’amélioration de la définition. La simulation FIL permet une exploration du design sur votre équipement matériel.

Documentation et traçabilité du code HDL

HDL Coder documente le code généré dans un rapport HTML contenant le code HDL, des  hyperliens et une table des fichiers HDL générés. Les hyperliens du code HDL permettent d’accéder à l’algorithme MATLAB ou aux blocs Simulink correspondants qui ont généré le code.

HDL Coder prend en charge la traçabilité du code pour les applications critiques tenues au respect de normes (DO-254 notamment) en vous permettant d’accomplir ce qui suit :

  • Accéder au code MATLAB à partir du code HDL généré
  • Naviguer entre les blocs Simulink et le code HDL généré pour une traçabilité bidirectionnelle
  • Insérer des commentaires et descriptions réalisés par l’utilisateur pour améliorer la lisibilité du code
Code Generation Report in MATLAB, which lets you navigate to MATLAB code from generated VHDL and Verilog code
Rapport de génération du code dans MATLAB vous permettant d’accéder au code MATLAB à partir du code VHDL et Verilog généré.

L’utilisation de Simulink Verification and Validation™ avec HDL Coder permet d’embarquer des exigences système sous forme de commentaires dans le code HDL généré à partir de Simulink ou de Stateflow. Ainsi, vous êtes en mesure d’obtenir une transparence totale tout au long du processus de design, des exigences système jusqu’au code HDL généré.

HDL Code Generation Report in Simulink, which lets you navigate between model and generated HDL code.
Rapport de génération du code HDL dans Simulink permettant de naviguer entre le modèle et le code HDL généré.

Optimisez rapidement les performances de votre design avec HDL Coder

Visionner le webinar