Die Schaltung: Eine LED die über Taster angeschaltet wird

Hier ist der komplette VHDL-Code für unsere Schaltung:

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;

entity SimpleLed is
    port (
        button : in  std_logic;  -- Eingang für den Button
        led    : out std_logic   -- Ausgang für die LED
    );
end SimpleLed;

architecture behavior of SimpleLed is
begin
    led <= button;  -- Wenn button = '1', dann led = '1', sonst led = '0'
end behavior;

Erklärung des Codes:

  • library IEEE; use IEEE.STD_LOGIC_1164.ALL;: Das ist wie das Einbinden von Werkzeugen, die VHDL braucht, um mit digitalen Signalen („0“ und „1“) zu arbeiten.
  • entity SimpleLed: Hier definieren wir die „Schnittstelle“ unserer Schaltung:
    • button : in std_logic: Der Button ist ein Eingang („in“), der ein Signal vom Typ std_logic (entweder „0“ oder „1“) liefert.
    • led : out std_logic: Die LED ist ein Ausgang („out“), der ein Signal vom Typ std_logic ausgibt.
  • architecture behavior: Hier sagen wir, wie die Schaltung funktioniert:
    • led <= button;: Dies ist die Verbindung. Wenn der Button „1“ ist (gedrückt), wird die LED „1“ (an). Wenn der Button „0“ ist (nicht gedrückt), wird die LED „0“ (aus).

Was passiert, wenn der Code läuft?

Der FPGA „lauscht“ ständig auf das Signal vom Button. Sobald du den Button drückst, gibt der Button ein „1“-Signal aus, und der FPGA schickt dieses „1“ sofort an die LED, sodass sie leuchtet. Lässt du den Button los, wird das Signal zu „0“, und die LED geht aus.

Wie bringt man den Code auf das FPGA-Board?

Dieses Minimalmodul ist im Tutorial Vivado/Vitis zum Test für die Installation der IDE enthalten. Dort ist auch erklärt, wie man die Signale des Moduls mit realen Signalen des FPGAs verknüpft.

Normalerweise sollte man ein FPGA zuvor noch testen. Das kann man optional in der Lektion TestSimpleLed machen.

Weiter zu TestSimpleLed.