Projektujemy bramkę NAND


W tym artykule zaprojektujemy bramkę NAND. Napisanie takiej bramki nie zajmie nam więcej niż minutę.

Zadanie postawione w tytule jest bardzo proste. Załóżmy, że chcemy zaprojektować 2-wejściową bramkę NAND.
Tabela prawdy takiej bramki wygląda następująco

A B Y
0 0 1
0 1 1
1 0 1
1 1 0

Tak jak zawsze zacznijmy od szkicu naszego pliku vhd.

library IEEE;
use IEEE.STD_LOGIC_1164.all;
 
entity NAND_GATE is
    port(
      -- TUTAJ OPISZEMY WYPROWADZENIA UKŁADU);
end NAND_GATE;
 
architecture Behavioral of NAND_GATE is
begin
    --TUTAJ OPISZEMY ZACHOWANIE UKŁADU
end Behavioral;

Bramkę NAND można napisać na wiele różnych sposobów. Ja przedstawię dwa z nich:

  • za pomocą przypisania ciągłego
  • za pomocą procesu

Za pomocą przypisania ciągłego

W tym sposobie i każdym kolejnym musimy ustawić oczywiście wejścia i wyjście naszej bramki. Znajdą się one w bloku entity

entity NAND_GATE is
    port(
        A,B : IN STD_LOGIC;
        Y   : OUT STD_LOGIC );
end NAND_GATE;

Kolejnym krokiem jest napisanie architektury projektu

architecture Behavioral of NAND_GATE is
begin
    Y <= not (A and B);
end Behavioral;

Czyli po prostu zanegowany iloczyn logiczny sygnałów A i B.

Cały kod projektu wygląda następująco:

library IEEE;
use IEEE.STD_LOGIC_1164.all;
 
entity NAND_GATE is
    port(
        A,B : IN STD_LOGIC;
        Y   : OUT STD_LOGIC );
end NAND_GATE;
 
architecture Behavioral of NAND_GATE is
begin
    Y <= not (A and B);
end Behavioral;


Przebieg Symulacji

Za pomocą procesu

Tutaj musimy jedynie w architekturze dodać dodać process, który będzie reagował na zmianę sygnałów A i B

architecture Behavioral of NAND_GATE is
begin
	process(A,B)
	begin
		Y <= not (A and B);
	end process;
end Behavioral;

Widzimy, że na liście czułości umieściliśmy oby dwa sygnału wejściowe. Jest to o tyle konieczne, że teraz bramka będzie reagować na zmiany obu sygnałów. Natomiast gdyby na liście czułości był wyłącznie sygnał A np.

process(A)
begin
    Y <= not (A and B);
end process;

to uzyskalibyśmy zmiany na wyjściu tylko razem ze zmianą sygnału A.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

Rating*