Alcune particolari strutture di circuiti sono spesso utilizzate per realizzare circuiti più complessi. In questa pagina sono descritti alcuni di questi blocchi, che a loro volta formati da porte logiche.
Il termine MSI (Medium Scale Integration) indica circuiti integrati che contengono qualche decina di porte logiche o poche centinaia.
I decoder sono una famiglia piuttosto ampia e variegata di componenti che vengono utilizzati per convertire un codice binario in una sua versione "decodificata". Ovviamente tale definizione è piuttosto generica...
Verranno qui descritti solo i decoder da N a 2N (N-to-2N), a volte indicati come binari. Questi dispositivi convertono N bit in ingresso, da considerarsi come numero binario An An-1... A2 A1 A0, a 2N bit in uscita in modo tale una sola delle uscita sia 1.
Per esempio la figura seguente mostra il funzionamento di un decoder 2-to-4:
Si noti la presenza di un ingresso di abilitazione (enable) che, quando basso, azzera tutte le uscite, indipendentemente dal valore di S1 ed S0. Per descrivere questo comportamento si usa spesso l'espressione: ingresso di abilitazione attivo alto.
La tabella di verità è la seguente:
EN | A1 | A0 | Y0 | Y1 | Y2 | Y3 |
---|---|---|---|---|---|---|
0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 1 | 0 | 0 | 0 | 0 |
0 | 1 | 0 | 0 | 0 | 0 | 0 |
0 | 1 | 1 | 0 | 0 | 0 | 0 |
1 | 0 | 0 | 1 | 0 | 0 | 0 |
1 | 0 | 1 | 0 | 1 | 0 | 0 |
1 | 1 | 0 | 0 | 0 | 1 | 0 |
1 | 1 | 1 | 0 | 0 | 0 | 1 |
A volte, per rendere più compatta la tabella viene introdotto il simbolo X, con il significato di "qualunque valore". La tabella si riduce come di seguito:
EN | A1 | A0 | Y0 | Y1 | Y2 | Y3 |
---|---|---|---|---|---|---|
0 | X | X | 0 | 0 | 0 | 0 |
1 | 0 | 0 | 1 | 0 | 0 | 0 |
1 | 0 | 1 | 0 | 1 | 0 | 0 |
1 | 1 | 0 | 0 | 0 | 1 | 0 |
1 | 1 | 1 | 0 | 0 | 0 | 1 |
Tra le variazioni più frequenti abbiamo decoder con l'ingresso di Enable attivo basso: solo quando l'Enable è basso il decoder attiva una delle uscite, in funzione degli ingressi. Quello di seguito mostrato sono i simboli MIL e IEC di un decoder 4-to-16 con ingresso di Enable attivo basso, come riconoscibile dal simbolo di negazione. A volte (non in questo caso) un ingresso attivo basso è indicato come EN.
A volte anche le uscite sono "attive basse", in pratica negate rispetto alla tabella precedente.
Un esempio di codice VHDL relativo ad un decoder 2-to-4 senza ingresso di Enable:
library IEEE;
use IEEE.STD_LOGIC_1164.all;
entity decoder is
port(a : in STD_LOGIC_VECTOR(1 downto 0);
Q : out STD_LOGIC_VECTOR(3 downto 0)
);
end decoder;
architecture bhv of decoder is
begin
process(a)
begin
case a is
when "00" => b <= "0001";
when "01" => b <= "0010";
when "10" => b <= "0100";
when "11" => b <= "1000";
when others => b <= "0000";
end case;
end process;
end bhv;
Esaminare i fogli tecnici dei decoder 74HC139, 74HC138, 74HC154. Prestare attenzione a:
Esaminare i vari decoder presenti in Deeds ed in particolare quello indicato come 138 like. Alla pagina www.digitalelectronicsdeeds...comb.html sono presenti due esempi.
Un encoder è un circuito MSI con 2N ingressi ed N uscite: le uscite indicano in binario quale è l'unico ingresso che vale 1. Dalla descrizione si comprende che è "il contrario" di un decoder, anche se molto meno utilizzato.
Presenta un problema: cosa succede se più di un ingresso vale 1? La soluzione nel seguente esercizio
Esaminare il comportamento dell'encoder con priorità (Priority Encoder) 74CH147 consultando i fogli tecnici e simulandolo con Deeds
Un multiplexer è un circuito dotato di:
Vediamo ora alcuni esempi, tutti relativi ad un multiplexer a quattro vie (quattro ingressi dati, due ingressi di selezione, un'uscita
L'uscita coincide con il valore presente all'ingresso dati selezionato dagli ingressi di selezione, evidenziato in figura dalla freccia arancione.
Di seguito i simboli MIL e IEC:
Un altro simbolo molto usato è il seguente:
Un esempio di codice VHDL:
library IEEE;
use IEEE.STD_LOGIC_1164.all;
entity MUX4 is
port (A, B, C, D, SEL0, SEL1: in bit;
Z: out bit);
end MUX4;
architecture ARC2 of MUX4 is
begin
P2: process (A, B, C, D, SEL0, SEL1)
begin
case (SEL0 & SEL1) is
when "00" => Z <= A;
when "01" => Z <= B;
when "10" => Z <= C;
when "11" => Z <= D;
when others => Z <= 0;
end case;
end process P2;
end ARC2;
Esaminare i vari multiplexer presenti in Deeds. In particolare fare il seguente esercizio: www.digitalelectronicsdeeds...MUX_2_1
Esaminare i fogli tecnici del 74HC253
Dal nome si intuisce che è il componente "contrario" di un Multiplexer.
Dalla pagina www.digitalelectronicsdeeds.com...labtopics fare i seguenti esercizi:
Spesso lo stesso componente è indicato come decoder/demultiplexer. Motivare questa doppia denominazione dello stesso componente.
Pagina creata nell'ottobre 2020
Ultima modifica: 25 ottobre 2021
Appunti scolastici - Versione 0.1026 - Agosto 2024
Copyright 2012-2024, Vincenzo Villa (https://www.vincenzov.net)
Creative Commons | Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)