Menu
Coddy logo textTech

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.

challenge icon

Sfida

Medio

Shift 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;
endmodule
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Progettazione e verifica RTL

Esercitati da solo: Compilatore Verilog online