Sfida - Somma limitata
Fa parte della sezione Progettazione e verifica RTL del percorso Verilog di Coddy. Lezione 38 di 38.
Sfida
MedioAccumula il campione a 8 bit signed in q signed sui fronti di salita abilitati, saturando a -128 e 127. Imposta clipped in modo persistente ogni volta che si verifica una saturazione; una volta impostato, rimane tale fino a rst o clear. Entrambi i controlli sincroni azzerano q e clipped e hanno priorità su en. I fronti disabilitati mantengono entrambi i valori. Colonne di output: q, clipped. Tutti i controlli e i dati sono stabili prima di ogni fronte di salita del clock; i risultati vengono osservati dopo.
Completa design.v e conserva i nomi dei moduli e le porte. Il testbench.v bloccato fornisce le variazioni degli ingressi 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 terminazione della simulazione al design. L'output previsto è una riga di valori decimali per ogni osservazione, separati da uno spazio e terminanti con un a capo.
Provalo tu
module dut (input clk, input rst, input clear, input en, input signed [7:0] sample, output reg signed [7:0] q, output reg clipped);
// Sostituisci questo segnaposto con il tuo progetto.
initial q = 0;
initial clipped = 0;
endmoduleTutte 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 richieste2Larghezze e aritmetica con segno
Preservare i bit di riportoConfronti con segnoShift aritmetici a destraOverflow e saturazioneRiepilogo - Differenza con segnoEsercitati da solo: Compilatore Verilog online