KWALIFIKACJA ELM2 - TEST WIEDZY NR 9

PYTANIE NR 18.
Rozważ następujący fragment kodu w języku VHDL:
entity AND_GATE is
port(
    A : in STD_LOGIC;
    B : in STD_LOGIC;
    Z : out STD_LOGIC
);
end AND_GATE;

architecture AND_GATE_ARCH of AND_GATE is
begin
    Z <= A and B;
end AND_GATE_ARCH;
Jakie jest zadanie tego fragmentu kodu?
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
W architekturze przypisanie
Z <= A and B;
opisuje funkcję logiczną, w której wyjście jest w stanie '1' tylko wtedy, gdy oba wejścia A i B są '1'. Taka tablica prawdy odpowiada bramce AND, więc kod definiuje (opisuje) bramkę AND.

Pełne wyjaśnienie:

W VHDL blok entity opisuje interfejs układu: jakie ma wejścia i wyjścia. W pokazanym fragmencie są to dwa wejścia A i B typu STD_LOGIC oraz jedno wyjście Z typu STD_LOGIC.

O zachowaniu układu decyduje część architecture. Kluczowa jest linia:

Z <= A and B;

Jest to równoległe przypisanie sygnału (opis logiki kombinacyjnej), a operator and w VHDL odpowiada koniunkcji logicznej. Oznacza to, że:

  • gdy A='1' i B='1', wtedy Z='1',
  • w pozostałych kombinacjach wejść Z będzie '0' (dla standardowego rozumienia bramki AND w logice binarnej).

Dlatego odpowiedź "Definiuje bramkę AND." jest poprawna: kod opisuje działanie bramki AND (dwuwejściowej), a nie tylko jej nazwę.

Pozostałe odpowiedzi są niepoprawne z powodu innego zachowania:

  • "Definiuje bramkę OR." wymagałaby operatora or (wyjście '1', gdy co najmniej jedno wejście jest '1').
  • "Definiuje bramkę NOT." dotyczy negacji jednego sygnału (typowo jedno wejście), np. Z <= not A;.
  • "Definiuje bramkę XOR." odpowiada alternatywie wykluczającej i w VHDL byłoby to zwykle Z <= A xor B; (wyjście '1' tylko dla różnych wejść).

Wskazówka egzaminacyjna: nawet jeśli nazwy modułów sugerują funkcję, zawsze rozstrzygaj po wyrażeniu w architekturze (operatorach logicznych i zależnościach), bo nazwy mogą być mylące lub celowo nieinformatywne.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
Entity opisuje interfejs modułu: jego nazwy portów, kierunki (in/out) i typy sygnałów. Dzięki temu wiadomo, jakie sygnały można podłączyć do układu z zewnątrz. W pytaniu entity definiuje wejścia A, B oraz wyjście Z.
Architecture opisuje działanie (implementację) modułu zadeklarowanego w entity. To w architekturze zapisuje się zależności logiczne i strukturę układu. W przykładzie architektura zawiera jedno przypisanie współbieżne, które determinuje funkcję bramki.
To przypisanie współbieżne tworzy logikę kombinacyjną: wyjście Z jest wynikiem operatora and dla wejść A i B. W logice binarnej Z przyjmuje '1' tylko wtedy, gdy jednocześnie A='1' i B='1'.
O funkcji decyduje operator w wyrażeniu. W kodzie użyto and, czyli koniunkcji. Gdyby to była bramka OR, w architekturze pojawiłoby się wyrażenie z or. Sama deklaracja portów (dwa wejścia i jedno wyjście) pasuje do wielu bramek.
Nie. Nazwa może podpowiadać, ale w realnych projektach bywa myląca (np. po refaktoryzacji). Na egzaminie i w praktyce należy analizować treść architektury, czyli to, jak wyznaczane jest wyjście. Najpewniejsza jest analiza operatorów i zależności sygnałów.
Typowy zapis logiki XOR dla dwóch wejść to przypisanie z operatorem xor, np. Z <= A xor B;. XOR daje '1' dla różnych wartości wejść (A='1',B='0' lub A='0',B='1'). To inne zachowanie niż AND.
Bramka NOT neguje pojedynczy sygnał, więc zwykle ma jedno wejście. W VHDL można użyć operatora not, np. Z <= not A;. Jeśli w entity są dwa wejścia, to odpowiedź "NOT" zwykle nie pasuje, bo nie ma czego negować jednoznacznie.
Logika kombinacyjna jest opisywana wyrażeniami zależnymi bezpośrednio od wejść (np. przypisania współbieżne). Logika sekwencyjna zwykle używa procesu z zegarem i warunku typu if rising_edge(clk). W pytaniu brak zegara i procesu, więc to układ kombinacyjny.
Najczęstsze są: mylenie operatorów and/or/xor, czytanie tylko deklaracji portów bez sprawdzenia architektury oraz sugerowanie się nazwą modułu. Pomaga nawyk: zawsze wskazać linijkę, która tworzy funkcję (tu: Z <= A and B;).
Przećwicz tablice prawdy dla AND/OR/NOT/XOR i naucz się ich odpowiedników w VHDL: and, or, not, xor. Rozwiązuj krótkie przykłady: rozpoznaj bramkę po jednej linii wyrażenia oraz sprawdź wynik w prostej symulacji.
info

Statystycznie 71% uczniów zna prawidłową odpowiedź. średnio łatwe

Według specjalistów z branży: "W architekturze przypisanie Z &lt;= A and B; opisuje funkcję logiczną, w której wyjście jest w stanie '1' tylko wtedy, gdy oba wejścia A i B są '1'."

Źródła:

  • IEEE Standard VHDL Language Reference Manual, IEEE Std 1076-2008 (VHDL-2008), rozdziały dot. konstrukcji entity/architecture oraz operatorów logicznych
  • IEEE Standard for Standard Logic System, IEEE Std 1164-1993 (typ STD_LOGIC i logika wielowartościowa), sekcje dot. definicji typu i operatorów
  • Ashenden P.J., "The Designer's Guide to VHDL", 3rd edition, rozdziały wprowadzające: entity/architecture, przypisania współbieżne, operatory logiczne

Materiały:

  • Podręcznik do podstaw logiki cyfrowej (tablice prawdy, bramki)
  • Wprowadzenie do VHDL (entity/architecture, sygnały, operatory logiczne)
  • Dokumentacja narzędzia do syntezy/symulacji używanego na zajęciach (np. rozdział o VHDL i operatorach)

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego