Rilevamento dei Fronti Campionati
Fa parte della sezione Progettazione e verifica RTL del percorso Verilog di Coddy. Lezione 19 di 38.
Un livello può rimanere alto per molti cicli, mentre un impulso di evento dovrebbe durare un ciclo. Memorizza il livello campionato precedente e confrontalo con quello attuale. Questo rilevatore di fronte presuppone un ingresso già sincronizzato con questo clock; non è un sincronizzatore per il passaggio tra domini di clock.
Estratto pertinente; le dichiarazioni e i collegamenti circostanti sono forniti nella sfida.
previous <= sig;
rising <= sig & ~previous;Il vecchio livello memorizzato genera un singolo impulso alla transizione campionata.
Confronta i livelli campionati attuali e precedenti; usa questo rilevatore solo con un ingresso sincrono.
Sfida
MedioPer un segnale sig già sincrono con clk, produci un impulso registrato di un ciclo a ogni transizione campionata da 0 a 1. Il segnale sincrono rst azzera il livello precedente memorizzato e l’impulso. Un sig alto al primo fronte non di reset produce quindi un impulso. Colonne di output: pulse. Tutti i segnali di controllo e i dati sono stabili prima di ogni fronte di salita del clock; i risultati vengono osservati successivamente.
Completa design.v e mantieni i nomi dei moduli e le porte. Il file testbench.v bloccato fornisce le variazioni degli input e stampa gli output dopo che si sono stabilizzati. Sceglie uno scenario usando un argomento del simulatore come +CASE=1; non è richiesto alcun input standard. Non aggiungere stampe, ritardi o terminazioni della simulazione al design. L’output previsto è una riga di valori decimali per ogni osservazione, separati da uno spazio e terminati da un carattere di nuova riga.
Provalo tu
module dut (input clk, input rst, input sig, output reg pulse);
// Sostituisci questo segnaposto con il tuo progetto.
initial pulse = 0;
endmoduleQuesta lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Progettazione e verifica RTL
1RTL combinatorio affidabile
I valori predefiniti evitano i latchEncoder di prioritàConvalida one-hotDecodifica sicura dei caseRiepilogo - Router delle richieste4RTL Sequenziale con Controllo
Priorità di Reset e EnableContatori SaturantiPipelining di Dati e ValidRilevamento dei Fronti CampionatiRiepilogo - Contatore di Eventi2Larghezze e aritmetica con segno
Preservare i bit di riportoConfronti con segnoShift aritmetici a destraOverflow e saturazioneRiepilogo - Differenza con segnoEsercitati da solo: Compilatore Verilog online