Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Industrial programming >> VHDL

VHDLs std_logic meistern: Zustände, Resolution, Wellenform-Analyse

In VHDL ist std_logic der Eckpfeiler für ein einzelnes Bit auf einer physischen Leitung. Im Gegensatz zum simplen integer aus früheren Tutorials bietet std_logic einen reicheren Wertevorrat, der reales digitales Signalverhalten genauer abbildet.

Während ein digitaler Pin meist High ('1') oder Low ('0') führt, kann ein physisches Signal auch High-Impedanz, schwach oder undefiniert sein. std_logic erfasst all diese Möglichkeiten – meistgenutzter Typ im VHDL-Design.

Teil der Basic VHDL Tutorials Serie.

std_logic Werte

'1'Logik 1
'0'Logik 0
'Z'High Impedanz
'W'Schwaches Signal; unbestimmt 0 oder 1
'L'Schwaches 0 (Pulldown)
'H'Schwaches 1 (Pullup)
'-'Don't Care
'U'Uninitialisiert
'X'Unbekannt (mehrere Treiber)

Fokus in Tutorials: '1', '0', gelegentlich 'U', 'X' für Fehlererkennung. Rest: Fortgeschritten (I²C, Tri-State Busse).

Mehrere Prozesse treiben dasselbe std_logic Signal → Sprache nutzt Resolution Function für Ergebniswert. Verhindert Compile-/Runtime-Fehler in Simulation. Definiert durch Resolutionstabelle:

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 -

Übung

Video: std_logic Signale deklarieren, in Wellenform simulieren visualisieren.

Finaler VHDL-Code der Übung:

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;

  -- Treiber A
  process is
  begin
    Signal2 <= 'Z';
    Signal3 <= '0';
    wait;
  end process;

  -- Treiber B
  process(Signal1) is
  begin
    if Signal1 = '0' then
      Signal2 <= 'Z';
      Signal3 <= 'Z';
    else
      Signal2 <= '1';
      Signal3 <= '1';
    end if;
  end process;
end architecture;

ModelSim Wellenform nach Run, Zoom in Timeline:

VHDLs std_logic meistern: Zustände, Resolution, Wellenform-Analyse

Wellenform mit Cursor auf anderem Teil des Zyklus:

VHDLs std_logic meistern: Zustände, Resolution, Wellenform-Analyse

Analyse

Übung demonstriert VHDL Resolution Function in Aktion. Wellenform-Inspektion gibt klareren Blick auf Multi-Driver-Interaktion als Textoutput.

Signal1 wird von single Prozess getoggelt → sauber '0'/'1'. Signale mit Treiber A & B.resolve per Tabelle.

SignalTreiber ATreiber BErgebnis
Signal2'Z''Z''Z'
Signal2'Z''1''1'
Signal3'0''Z''0'
Signal3'0''1''X'
VHDLs std_logic meistern: Zustände, Resolution, Wellenform-Analyse

Merksätze

Nächstes Tutorial »

VHDL

  1. Top 3D-Druck-Workflow-Flaschenhälse & bewährte Lösungen
  2. Häufige Kühlsystemprobleme & Diagnose
  3. IoT-Daten freisetzen: Wie Business Rules Management Enterprise Value treibt
  4. Dynamische verkettete Liste in VHDL mit Protected Types und Access-Pointern
  5. In-Prozess-Prozeduren für saubere VHDL-FSM-Entwürfe nutzen
  6. Impure Functions in VHDL nutzen: FSM-Lesbarkeit und Wartbarkeit steigern
  7. VHDL-Funktionen meistern: Praktischer Leitfaden für effizientes Design
  8. Motorhebezeug-Sicherheitsleitfaden: Best Practices für den Arbeitsplatz
  9. Hauptursachen für Kranunfälle & wie man sie verhindert
  10. Schlüsselindustrielle Anwendungen der Legierung A286: Hohe Festigkeit & Korrosionsbeständigkeit