Porte logiche

Le porte logiche sono dispositivi digitali elementari con almeno un ingresso ed, in genere, una sola uscita. La descrizione sintetica può essere data in forma grafica oppure algebrica oppure tabellare oppure ancora testuale. In questa pagina presento una carrellata (parziale) che consiglio di imparare a memoria.

Le porte fondamentali sono due: NAND o, in alternativa, NOR. Da ciascuna di esse possono essere derivate tutte le altre: AND, OR, XOR, XNOR, buffer non invertente e inverter.

Per ciascuna porta troverete di seguito:

AND

L'uscita Q di una porta AND vale 1 solo quando tutti gli ingressi valgono 1. Di seguito è illustrato il caso di due ingressi; sono comuni porte con un numero maggiore di ingressi.

Algebricamente l'uscita Q è descritta da:

I due simboli elettrici più usati, rispettivamente secondo gli standard MIL/ANSI e IEC:

La tabella di verità è la seguente:

A B Q
0 0 0
0 1 0
1 0 0
1 1 1

La codifica VHDL per una porta AND è:

library IEEE;
use IEEE.std_logic_1164.all;

entity ANDGATE is
port (
A : in std_logic;
B : in std_logic;
Q : out std_logic);
end entity ANDGATE;

architecture RTL of ANDGATE is
begin
Q <= A and B;
end architecture RTL;

Una porta AND a tre ingressi ha ovviamente i seguenti simboli e tabella di verità:

NAND  a tre ingressi

A B C Q
0 0 0 0
0 0 1 0
0 1 0 0
0 1 1 0
1 0 0 0
1 0 1 0
1 1 0 0
1 1 1 1

NAND

L'uscita Q di una porta NAND vale 0 solo quando tutti gli ingressi valgono 1. Si noti come il nome N-AND derivi da quello della porta AND premettendo una N (negazione), cosa facilmente comprensibile rileggendo la descrizione appena data.

Di seguito è in genere illustrato il caso di due soli ingressi; sono comuni anche porte con un numero maggiore di ingressi.

Algebricamente l'uscita è descritta da:

Si noti l'analogia con la funzione algebrica che descrive la porta AND, a cui semplicemente è stato aggiunto un trattino che si estende senza interruzioni fino a coprire tutto quanto segue il segno di uguaglianza, dalla variabile A alla variabile B incluse. Tale simbolo identifica una negazione.

I due simboli elettrici più usati, rispettivamente secondo gli standard MIL/ANSI e IEC:

NAND

La differenza rispetto ai simboli della porta AND sono semplicemente la presenza di un cerchietto (MIL/ANSI) o di un triangolo (IEC) sull'uscita. Tale simbolo identifica una negazione.

La tabella di verità è la seguente:

A B Q
0 0 1
0 1 1
1 0 1
1 1 0

In pratica coincide con la tabella di verità della porta AND con le uscire Q invertite.

La codifica VHDL per una porta NAND è:

library IEEE;
use IEEE.std_logic_1164.all;

entity NANDGATE is
port (
A : in std_logic;
B : in std_logic;
Q : out std_logic);
end entity NANDGATE;

architecture RTL of NANDGATE is
begin
Q <= A nand B;
end architecture RTL;

OR

L'uscita Q di una porta OR vale 1 quando almeno un ingresso vale 1.

Di seguito è illustrato il caso di due soli ingressi; sono comuni anche porte con un numero maggiore di ingressi.

Algebricamente l'uscita è descritta da:

I due simboli elettrici più usati, rispettivamente secondo gli standard MIL/ANSI e IEC:

La tabella di verità è la seguente:

A B Q
0 0 0
0 1 1
1 0 1
1 1 1

La codifica VHDL per una porta OR è:

library IEEE;
use IEEE.std_logic_1164.all;

entity ORGATE is
port (
A : in std_logic;
B : in std_logic;
Q : out std_logic);
end entity ORGATE;

architecture RTL of ORGATE is
begin
Q <= A or B;
end architecture RTL;

NOR

L'uscita Q di una porta NOR vale 0 quando almeno un ingresso vale 1. Si noti come il nome N-OR derivi da quello della porta OR premettendo una N (negazione), cosa facilmente comprensibile rileggendo la descrizione appena data.

Di seguito è illustrato il caso di due ingressi; sono comuni porte con un numero maggiore di ingressi.

Algebricamente l'uscita è descritta da:

Si noti l'analogia con la funzione algebrica che descrive la porta OR, a cui semplicemente è stato aggiunto un trattino che si estende senza interruzioni fino a coprire tutto quanto segue il segno di uguaglianza, dalla variabile A alla variabile B incluse. Tale simbolo identifica una negazione.

I due simboli elettrici più usati, rispettivamente secondo gli standard MIL/ANSI e IEC:

 

La differenza rispetto ai simboli della porta OR sono semplicemente la presenza di un cerchietto (MIL/ANSI) o di un triangolo (IEC) sull'uscita. Tale simbolo identifica una negazione.

La tabella di verità è la seguente:

A B Q
0 0 1
0 1 0
1 0 0
1 1 0

In pratica coincide con la tabella di verità della porta OR con le uscire Q invertite.

La codifica VHDL per una porta NOR è:

library IEEE;
use IEEE.std_logic_1164.all;

entity NORGATE is
port (
A : in std_logic;
B : in std_logic;
Q : out std_logic);
end entity NORGATE ;

architecture RTL of NORGATE is
begin
Q <= A nor B;
end architecture RTL;

XOR

L'uscita Q di una porta XOR (eXclusive OR) vale 1 quando uno solo dei due ingressi vale 1.

Non sono disponibili porte XOR con un numero di ingressi diverso da due.

Algebricamente l'uscita è descritta da:

I due simboli elettrici più usati, rispettivamente secondo gli standard MIL/ANSI e IEC:

La tabella di verità è la seguente:

A B Q
0 0 0
0 1 1
1 0 1
1 1 0

La codifica VHDL per una porta XOR è:

library IEEE;
use IEEE.std_logic_1164.all;

entity XORGATE is
port (
A : in std_logic;
B : in std_logic;
Q : out std_logic);
end entity XORGATE ;

architecture RTL of XORGATE is
begin
Q <= A xor B;
end architecture RTL;

XNOR

L'uscita Q di una porta XNOR vale 0 quando uno solo dei due ingressi vale 1. Si noti come il nome X-N-OR derivi da quello della porta XOR inserendo una N (negazione), cosa facilmente comprensibile rileggendo la descrizione appena data.

Non sono disponibili porte XNOR con un numero di ingressi diverso da due.

Algebricamente l'uscita è descritta da:

Si noti l'analogia con la funzione algebrica che descrive la porta XOR, a cui semplicemente è stato aggiunto un trattino che si estende senza interruzioni fino a coprire tutto quanto segue il segno di uguaglianza, dalla variabile A alla variabile B incluse. Tale simbolo identifica una negazione.

I due simboli elettrici più usati, rispettivamente secondo gli standard MIL/ANSI e IEC:

La differenza rispetto ai simboli della porta XOR sono semplicemente la presenza di un cerchietto (MIL/ANSI) o di un triangolo (IEC) sull'uscita. Tale simbolo identifica una negazione.

La tabella di verità è la seguente:

A B Q
0 0 1
0 1 0
1 0 0
1 1 1

In pratica coincide con la tabella di verità della porta XOR con le uscire Q invertite.

La codifica VHDL per una porta XNOR è:

library IEEE;
use IEEE.std_logic_1164.all;

entity XNORGATE is
port (
A : in std_logic;
B : in std_logic;
Q : out std_logic);
end entity XNORGATE ;

architecture RTL of XNORGATE is
begin
Q <= A xnor B;
end architecture RTL;

Buffer non invertente

L'uscita di un buffer non invertente coincide con il valore logico presente all'unico ingresso; da un punto di vista logico si comporta quindi come un semplice filo, ma dal punto di vista elettrico permette di gestire tensioni o correnti diverse tra ingresso ed uscita.

Algebricamente l'uscita è descritta da:

I due simboli elettrici più usati, rispettivamente secondo gli standard MIL/ANSI e IEC:

 

La tabella di verità è la seguente:

A Q
0 0
1 1

La codifica VHDL per un buffer non invertente è:

library IEEE;
use IEEE.std_logic_1164.all;

entity BUFFER is
port (
A : in std_logic;
Q : out std_logic);
end entity BUFFER ;

architecture RTL of BUFFER is
begin
Q <= A;
end architecture RTL;

Inverter

L'uscita di un inverter (porta NOT) vale 0 se l'unico ingresso vale 1, vale 1 se l'ingresso vale 0.

Algebricamente l'uscita è descritta da:

Si noti l'analogia con la funzione algebrica che descrive un buffer non invertente a cui semplicemente è stato aggiunto un trattino che si estende senza interruzioni fino a coprire tutto quanto segue il segno di uguaglianza. Tale simbolo identifica una negazione.

 

I due simboli elettrici più usati, rispettivamente secondo gli standard MIL/ANSI e IEC:

La differenza rispetto ai simboli del buffer non invertente sono semplicemente la presenza di un cerchietto (MIL/ANSI) o di un triangolo (IEC) sull'uscita. Tale simbolo identifica una negazione.

La tabella di verità è la seguente:

A Q
0 1
1 0

In pratica coincide con la tabella di verità di un buffer non invertente con le uscire Q invertite.

La codifica VHDL per un inverter è:

library IEEE;br
use IEEE.std_logic_1164.all;

entity INVERTER is
port (
A : in std_logic;
Q : out std_logic);
end entity INVERTER ;

architecture RTL of INVERTER is
begin
Q <= not A;
end architecture RTL;


Data di creazione di questa pagina: giugno 2020
Ultima modifica: 26 settembre 2020


Licenza "Creative Commons" - Attribuzione-Condividi allo stesso modo 3.0 Unported


Pagina principaleAccessibilitàNote legaliPosta elettronicaXHTML 1.0 StrictCSS 3

Vai in cima