Preservare i bit di riporto
Fa parte della sezione Progettazione e verifica RTL del percorso Verilog di Coddy. Lezione 6 di 38.
La larghezza del segnale determina quali bit possono essere rappresentati. Rendi esplicita l’intenzione aritmetica estendendo gli operandi prima di un’operazione. La somma di due valori senza segno a 8 bit può richiedere nove bit per il risultato; assegnando solo otto bit si mantengono gli otto bit meno significativi e si perde il riporto.
Estratto pertinente; le dichiarazioni e i collegamenti circostanti sono forniti nella sfida.
wire [8:0] total;
assign total = {1'b0,a} + {1'b0,b};Ciascun operando è esplicitamente largo nove bit, corrispondenti alla somma completa.
Scegli la larghezza del risultato richiesta ed estendi gli operandi prima dell’aritmetica.
Sfida
MedioSomma a e b senza segno a 8 bit senza perdere il riporto. Restituisci la somma completa a 9 bit in total. Estendi esplicitamente entrambi gli operandi a nove bit. Colonne di output: total. Tutti i valori di stimolo sono valori binari noti.
Completa design.v e conserva i nomi e le porte del modulo. 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 è necessario 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 terminati da una nuova riga.
Provalo tu
module dut (input [7:0] a, input [7:0] b, output [8:0] total);
// Sostituisci questo segnaposto con il tuo progetto.
assign total = 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 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