Menu
Coddy logo textTech

Riepilogo - Sfida sugli operatori

Fa parte della sezione Fondamenti del percorso Verilog di Coddy. Lezione 29 di 90.

challenge icon

Sfida

Completa il codice scrivendo le espressioni corrette per ciascuna attività. Questa sfida copre tutti gli operatori di questo capitolo.

Cosa fare:

  1. Logico: Verifica se sia value1 sia value2 sono diversi da zero e memorizza il risultato in logic_out
  2. Riduzione: Verifica se tutti i bit di vector sono 1 e memorizza il risultato in reduction_out
  3. Shift: Sposta data a sinistra di 2 bit e memorizza il risultato in shift_out
  4. Concatenazione: Combina high e low in un valore a 8 bit e memorizza il risultato in concat_out
  5. 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
endmodule

Tutte le lezioni di Fondamenti

Esercitati da solo: Compilatore Verilog online