Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Industrial programming >> VHDL

Maîtriser std_logic en VHDL : États, résolution et analyse de forme d'onde

En VHDL, le type std_logic est la pierre angulaire pour représenter un bit unique sur un fil physique. Contrairement au type integer simple utilisé dans les tutoriels précédents, std_logic offre un ensemble de valeurs plus riche qui modélise le comportement réel des signaux numériques plus fidèlement.

Alors qu'une broche numérique porte habituellement soit un niveau logique haut ('1') soit un niveau logique bas ('0'), un signal physique peut aussi apparaître dans des états d'impédance haute, faible, ou indéfinis. Le type std_logic capture toutes ces possibilités, en faisant le type le plus fréquemment employé en conception VHDL.

Cet article fait partie de la série Tutoriels VHDL de Base.

Voici la liste complète des valeurs qu'un signal std_logic peut prendre :

'1'Logique 1
'0'Logique 0
'Z'Impédance haute
'W'Signal faible ; 0 ou 1 indéterminé
'L'0 faible (pull-down)
'H'1 faible (pull-up)
'-'Ne pas se soucier (don't care)
'U'Non initialisé
'X'Inconnu (pilotes multiples)

Dans la plupart des tutoriels, nous nous concentrerons sur les valeurs primaires '1' et '0', et occasionnellement 'U' et 'X' pour souligner les erreurs de conception. Les états restants sont des fonctionnalités avancées utiles pour modéliser des protocoles comme I²C ou créer des bus tri-state.

Quand plusieurs processus pilotent le même signal std_logic, le langage utilise une fonction de résolution pour déterminer la valeur résultante. Ce mécanisme empêche les erreurs de compilation ou d'exécution en simulation et est défini par une table de résolution, comme montré ci-dessous.

U X 0 1 Z W L H -
U X X 1 1 1 1 1 X 1
U X 0 X 0 0 0 0 X 0
U U U U U U U U U U
U X X X X X X X X X
U X 0 1 Z W L H X Z
U X 0 1 W W W W X W
U X 0 1 L W L W X L
U X 0 1 H W W H X H
U X X X X X X X X -

Exercice

Ce tutoriel vidéo démontre comment déclarer des signaux std_logic et les visualiser dans une simulation de forme d'onde.

Le code VHDL final produit dans cet exercice est montré ci-dessous :

library ieee;
use ieee.std_logic_1164.all;

entity T10_StdLogicTb is
end entity;

architecture sim of T10_StdLogicTb is
  signal Signal1 : std_logic := '0';
  signal Signal2 : std_logic;
  signal Signal3 : std_logic;
begin
  process is
  begin
    wait for 10 ns;
    Signal1 <= not Signal1;
  end process;
  
  -- Driver A
  process is
  begin
    Signal2 <= 'Z';
    Signal3 <= '0';
    wait;
  end process;
  
  -- Driver B
  process(Signal1) is
  begin
    if Signal1 = '0' then
      Signal2 <= 'Z';
      Signal3 <= 'Z';
    else
      Signal2 <= '1';
      Signal3 <= '1';
    end if;
  end process;
end architecture;

La fenêtre de forme d'onde dans ModelSim après avoir appuyé sur run et zoomé dans la timeline :

Maîtriser std_logic en VHDL : États, résolution et analyse de forme d onde

La forme d'onde avec le curseur placé sur l'autre partie du cycle de signal répétitif :

Maîtriser std_logic en VHDL : États, résolution et analyse de forme d onde

Analyse

Cet exercice illustre la fonction de résolution VHDL en action. En inspectant la forme d'onde plutôt qu'en se fiant uniquement à la sortie textuelle, nous obtenons une vue plus claire de comment plusieurs drivers interagissent sur un signal std_logic.

Signal1 est basculé par un unique processus, donc sa valeur alterne proprement entre '0' et '1'. Les signaux pilotés par le Driver A et le Driver B se résolvent selon la table affichée précédemment.

SignalDriver ADriver BRésultat
Signal2'Z''Z''Z'
Signal2'Z''1''1'
Signal3'0''Z''0'
Signal3'0''1''X'

Maîtriser std_logic en VHDL : États, résolution et analyse de forme d onde

À retenir

Allez au tutoriel suivant »

VHDL

  1. Principaux goulets workflow impression 3D & solutions éprouvées
  2. Problèmes Courants du Système de Refroidissement Auto & Comment les Diagnostiquer
  3. Débloquer les données IoT : comment le Business Rules Management pilote la valeur d'entreprise
  4. Implémentation d'une liste chainée dynamique en VHDL avec types protégés et pointeurs d'accès
  5. Exploiter les procédures in-process pour un design FSM VHDL plus propre
  6. Maîtriser les fonctions VHDL : Guide pratique pour un design efficace
  7. Guide sécurité palan moteur : Bonnes pratiques pour le lieu de travail
  8. Principales causes d'accidents de grue et comment les prévenir
  9. Applications Industrielles Clés de l'Alliage A286 : Haute Résistance et Résistance à la Corrosion