Porte AND, OR e NOT
Fa parte della sezione Fondamenti del percorso Verilog di Coddy. Lezione 40 di 90.
Questa lezione tratta le tre porte logiche più basilari: AND, OR e NOT. Queste porte costituiscono le fondamenta della progettazione della logica digitale.
Porta AND
La porta AND restituisce 1 solo quando tutti gli ingressi sono 1.
Tabella di verità (2 ingressi):
| a | b | out |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 0 |
| 1 | 0 | 0 |
| 1 | 1 | 1 |
Primitiva di porta Verilog:
and(out, a, b);Equivalente con assegnazione continua:
assign out = a & b;Porta OR
La porta OR restituisce 1 quando almeno un ingresso è 1.
Tabella della verità (2 ingressi):
| a | b | out |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 1 |
Primitiva di porta Verilog:
or(out, a, b);Equivalente con assegnamento continuo:
assign out = a | b;Porta NOT
La porta NOT restituisce l'opposto del suo unico input. È anche chiamata invertitore.
Tabella della verità:
| a | out |
|---|---|
| 0 | 1 |
| 1 | 0 |
Primitiva di porta Verilog:
not(out, a);Equivalente con assegnazione continua:
assign out = ~a;Ingressi multipli
Le porte AND e OR possono avere più di 2 ingressi:
and(out, a, b, c); // AND a 3 ingressi (out = a & b & c)
or(out, x, y, z, w); // OR a 4 ingressiLe porte NOT hanno sempre esattamente 1 ingresso.
Esempio di codice
module and_or_not (
input a, b,
output and_out,
output or_out,
output not_out
);
and(and_out, a, b); // porta AND
or(or_out, a, b); // porta OR
not(not_out, a); // porta NOT (invertitore)
endmoduleSfida
Aggiungi le primitive delle porte mancanti in base alle attività.
Cosa fare:
- Crea una porta AND con output
and_resulte inputpeq - Crea una porta OR con output
or_resulte inputpeq - Crea una porta NOT con output
not_resulte inputp
Provalo tu
module gates_challenge (
input p,
input q,
output and_result,
output or_result,
output not_result
);
// TODO: Aggiungi una porta AND (and_result = p & q)
// TODO: Aggiungi una porta OR (or_result = p | q)
// TODO: Aggiungi una porta NOT (not_result = ~p)
endmoduleQuesta lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Fondamenti
1Introduzione
Cos'è VerilogHardware e software a confrontoIl tuo primo moduloCommentiLivelli di astrazione della progettazione4Operatori - Parte 1
Operatori aritmeticiOperatore moduloOperatori di confrontoRiepilogo - Matematica sempliceOperatori bitwise7Assegnazioni e porte
Assegnazione continuaAssegnazioni con operatoriPrimitive di porte integratePorte AND, OR e NOTPorte XOR e XNORRiepilogo: circuito con porte logiche10Decisioni
Istruzione ifIf-ElseRiepilogo - Comparatore sempliceIstruzione caseCasex e casezRiepilogo - Progettazione di una ALU5Operatori Parte 2
Operatori logiciOperatori di riduzioneOperatori di scorrimentoOperatore di concatenazioneOperatore condizionaleRiepilogo - Sfida sugli operatori3Sistema numerico
Rappresentazione binariaNumeri con dimensione specificataNumeri senza dimensione specificataNumeri negativiValori speciali X e ZRiepilogo - Formati numerici6Moduli
Struttura di un moduloPorte di input e outputPorte InoutIstanziazione di un moduloMappatura delle porte per nomeMappatura delle porte per ordineRiepilogo - Costruire un modulo9Blocchi procedurali
Blocco alwaysBlocco initialLista di sensibilitàAssegnazione bloccanteAssegnazione non bloccanteRiepilogo: always vs initial12Progetto Multiplexer
Progettazione di un mux da 2 a 1Progettazione di un mux da 4 a 1Esercitati da solo: Compilatore Verilog online