Riepilogo - Sfida sugli operatori
Fa parte della sezione Fondamenti del percorso Verilog di Coddy. Lezione 29 di 90.
Sfida
Completa il codice scrivendo le espressioni corrette per ciascuna attività. Questa sfida copre tutti gli operatori di questo capitolo.
Cosa fare:
- Logico: Verifica se sia
value1siavalue2sono diversi da zero e memorizza il risultato inlogic_out - Riduzione: Verifica se tutti i bit di
vectorsono 1 e memorizza il risultato inreduction_out - Shift: Sposta
dataa sinistra di 2 bit e memorizza il risultato inshift_out - Concatenazione: Combina
highelowin un valore a 8 bit e memorizza il risultato inconcat_out - Condizionale: Memorizza il maggiore tra `a` e `b` in
cond_out
Provalo tu
module operator_challenge;
reg [3:0] value1, value2;
reg logic_out;
reg [3:0] vector;
reg reduction_out;
reg [7:0] data;
reg [7:0] shift_out;
reg [3:0] high, low;
reg [7:0] concat_out;
reg [3:0] a, b;
reg [3:0] cond_out;
initial begin
// Lógico
value1 = 4'd6;
value2 = 4'd0;
logic_out = ______; // Comprueba si tanto value1 como value2 son distintos de cero
// Reducción
vector = 4'b1111;
reduction_out = ______; // Check if all bits of vector are 1
// Shift
data = 8'b00001111;
shift_out = ______; // Desplaza data 2 bits a la izquierda
// Concatenación
high = 4'b1010;
low = 4'b1100;
concat_out = ______; // Combina high y low en un valor de 8 bits
// Condicional
a = 4'd7;
b = 4'd12;
cond_out = ______; // Almacena el mayor de `a` y `b`
$display("6 && 0 = %d", logic_out);
$display("&4'b1111 = %d", reduction_out);
$display("00001111 << 2 = %b", shift_out);
$display("{1010, 1100} = %b", concat_out);
$display("max(7, 12) = %d", cond_out);
$finish;
end
endmoduleTutte le lezioni di Fondamenti
1Introduzione
Cos'è VerilogHardware e software a confrontoIl tuo primo moduloCommentiLivelli di astrazione della progettazione4Operatori - Parte 1
Operatori aritmeticiOperatore moduloOperatori di confrontoRiepilogo - Matematica sempliceOperatori bitwise7Assegnazioni e porte
Assegnazione continuaAssegnazioni con operatoriPrimitive di porte integratePorte AND, OR e NOTPorte XOR e XNORRiepilogo: circuito con porte logiche10Decisioni
Istruzione ifIf-ElseRiepilogo - Comparatore sempliceIstruzione caseCasex e casezRiepilogo - Progettazione di una ALU5Operatori Parte 2
Operatori logiciOperatori di riduzioneOperatori di scorrimentoOperatore di concatenazioneOperatore condizionaleRiepilogo - Sfida sugli operatori3Sistema numerico
Rappresentazione binariaNumeri con dimensione specificataNumeri senza dimensione specificataNumeri negativiValori speciali X e ZRiepilogo - Formati numerici6Moduli
Struttura di un moduloPorte di input e outputPorte InoutIstanziazione di un moduloMappatura delle porte per nomeMappatura delle porte per ordineRiepilogo - Costruire un modulo9Blocchi procedurali
Blocco alwaysBlocco initialLista di sensibilitàAssegnazione bloccanteAssegnazione non bloccanteRiepilogo: always vs initial12Progetto Multiplexer
Progettazione di un mux da 2 a 1Progettazione di un mux da 4 a 1Esercitati da solo: Compilatore Verilog online