Shift aritmetici a destra
Fa parte della sezione Progettazione e verifica RTL del percorso Verilog di Coddy. Lezione 8 di 38.
Uno scorrimento aritmetico a destra usa >>> e replica il bit di segno quando il suo operando sinistro è signed. Uno scorrimento logico a destra usa >> e riempie con zeri. Per un valore dispari negativo, lo scorrimento aritmetico a destra non equivale alla divisione integer che tronca verso zero.
Estratto pertinente; le dichiarazioni e i collegamenti circostanti sono forniti nella sfida.
reg signed [7:0] value;
value = -3;
$display("%0d", value >>> 1);Il risultato è meno due perché l’estensione del segno mantiene l’interpretazione negativa in complemento a due.
Usa un operando sinistro signed con >>> quando è richiesta l’estensione del segno.
Sfida
MedioShift aritmetico a destra di un valore signed a 8 bit di una quantità da 0 a 7. Restituisci il risultato y a 8 bit signed. I valori negativi vengono riempiti con il loro bit di segno. Colonne di output: y. Tutti i valori di stimolo sono valori binari noti.
Completa design.v e conserva i nomi dei moduli e le porte. Il file testbench.v bloccato fornisce le modifiche degli ingressi e stampa le uscite una volta stabilizzate. Sceglie uno scenario usando un argomento del simulatore come +CASE=1; non è richiesto alcun input standard. Non aggiungere stampe, ritardi o istruzioni di terminazione della simulazione al design. L’output previsto è una riga di valori decimali per ogni osservazione, separati da uno spazio e terminati da un a capo.
Provalo tu
module dut (input signed [7:0] value, input [2:0] amount, output signed [7:0] y);
// Sostituisci questo segnaposto con il tuo progetto.
assign y = 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