Ritardi nei gate
Fa parte della sezione Fondamenti del percorso Verilog di Coddy. Lezione 68 di 90.
Nella lezione precedente, abbiamo visto i ritardi generali, usati così: #10 a = b;. Aspettano prima di eseguire un'istruzione.
In questa lezione trattiamo i ritardi dei gate, specifici delle primitive gate integrate come and, or e not. Un ritardo del gate modella quanto tempo impiega un gate hardware a produrre un'uscita dopo che i suoi ingressi cambiano.
Nei componenti hardware reali, le porte non rispondono istantaneamente. C'è un piccolo ritardo. Quando usi le primitive di porta integrate, puoi aggiungere un ritardo per simulare il tempo di propagazione della porta. L'uscita cambia solo dopo il ritardo specificato.
Differenza tra ritardo generale e ritardo del gate
| Ritardo generale | Ritardo del gate | |
|---|---|---|
| Sintassi | #10 a = b; | and #5 (out, a, b); |
| Posizione | # prima di un'istruzione | # all'interno di una primitiva gate |
| Scopo | Attendere prima di eseguire | Modellare il tempo di propagazione del gate |
Sintassi:
gate_type #(delay) (output, input1, input2, ...);#(delay) specifica quante unità di tempo impiega la porta per rispondere.
Esempio semplice
and #5 (out, a, b);Questa porta AND impiega 5 unità di tempo per modificare la propria uscita dopo che a o b cambia.
Ritardo del gate con più ingressi
nand #8 (out, a, b, c, d); // NAND a 4 ingressi con un ritardo di 8 unità di tempoRegole importanti
| Regola | Spiegazione |
|---|---|
| Il ritardo viene dopo il nome della porta logica | and #5 (out, a, b) |
| Valore del ritardo in unità di tempo | Basato sulla direttiva timescale |
| Tutti gli ingressi influiscono sull'uscita | Qualsiasi modifica a un ingresso attiva il ritardo |
| Non sintetizzabile | I ritardi delle porte logiche servono solo per la simulazione |
Sfida
Aggiungi i ritardi mancanti delle porte a questo modulo. Usa ritardi diversi per ciascuna porta.
Cosa fare:
- Porta AND: ritardo di 5 unità di tempo
- Porta OR: ritardo di 3 unità di tempo
- Porta NOT: ritardo di 2 unità di tempo
Provalo tu
module gate_delay_challenge;
reg a, b;
wire and_out, or_out, not_out;
// TODO: aggiungi una porta AND con un ritardo di 5 unità di tempo (ingressi a, b)
// TODO: aggiungi una porta OR con un ritardo di 3 unità di tempo (ingressi a, b)
// TODO: aggiungi una porta NOT con un ritardo di 2 unità di tempo (ingresso a)
initial begin
$monitor("Time %0t: a=%b, b=%b | and=%b, or=%b, not=%b",
$time, a, b, and_out, or_out, not_out);
a = 1; b = 1;
#10 $finish;
end
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 ALU13Tempi e ritardi
Cosa sono i ritardiRitardi nei gateRitardi nelle assegnazioniDirettiva timescaleGenerazione del clockRiepilogo - Controllo dei tempi5Operatori 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