Lehre.EDS_ProgHA2 (Struktur)


Beispielprogramme zur 2. Hausübung

Experimentierprogramm mit Zahlentypen

-- EDS, 2. Hausuebung
-- Beispielprogramm test_zahlentypen.vhd
-- letzte Aenderung: 19.03.2018 durch C. Giesemann
-- Autor: G. Kemnitz


entity test_zahlentypen is end entity;

architecture a of test_zahlentypen is
 type ta is range -2 to 25;
 type tb is range 35 downto 5;
begin
 process
  variable a: ta;
  variable b: tb :=12;
 begin
  report("Anfangswert von a: " & ta'image(a) & 
         " Anfangswert von b: " & tb'image(b));
  a := (ta(b) / 2) - 1; 
  report("(ta(b) / 2) - 1:   " & ta'image(a)); 
  report(ta'image(ta'left));
  wait;
 end process;
end architecture;

GHDL-Kommandofolge zum Ausprobieren

ghdl -a test_zahlentypen.vhd
ghdl -m test_zahlentypen
ghdl -r test zahlentypen

# loeschen ueberfluessiger Dateien:
ghdl --clean

Experimentierprogramm mit Aufzählungstpen

-- EDS, 2. Hausuebung
-- Beispielprogramm test_atyp.vhd
-- letzte Aenderung: 19.03.2018 durch C. Giesemann
-- Autor: G. Kemnitz

entity test_atyp is end entity;

architecture a of test_atyp is
 type t_wtag is (Mo, Di, Mi, Do, Fr, Sa, So);
 type t_z is ('0', 'S', 'D', 'X');
begin
 process
  variable w: t_wtag;
  variable i: integer;
 begin
  report("AW von w:     " & t_wtag'image(w));
  w := Do; i := t_wtag'pos(w);
  report("t_wtag'pos(w):" & integer'image(i));
  report("t_z'val(i-1): " & t_z'image(t_z'val(i-1)));
  i := 0;
  for idx in t_wtag loop -- Ausgabe aller Werte von t_wtag
    report(integer'image(i) & " : " &  t_wtag'image(idx));
    i := i + 1;
  end loop;

  for a in boolean loop  -- Erzeugung Wertetabelle fuer a and b
   for b in boolean loop
   report(boolean'image(a) & " " & boolean'image(b) & " " & boolean'image(a and b));
    end loop;
   end loop; 

  wait;
 end process;
end architecture;
Der Test erfolgt genau wie mit dem ersten Programm, nur mit geändertem Datei- und Entity-Namen.


Autor: gkemnitz, Letzte Änderung: 26.11.2020 16:26:45


 TU Clausthal 2020  Impressum