Menu
Coddy logo textTech

Récapitulatif - Défi sur les opérateurs

Fait partie de la section Fondamentaux du Journey Verilog de Coddy — leçon 29 sur 90.

challenge icon

Défi

Complétez le code en écrivant les expressions correctes pour chaque tâche. Ce défi couvre tous les opérateurs de ce chapitre.

Ce qu'il faut faire :

  1. Logical : Vérifiez si value1 et value2 sont tous les deux non nuls (non-zero), et stockez le résultat dans logic_out
  2. Reduction : Vérifiez si tous les bits (bits) de vector sont à 1, et stockez le résultat dans reduction_out
  3. Shift : Décalez data vers la gauche (left) de 2 bits, et stockez le résultat dans shift_out
  4. Concatenation : Combinez high et low dans une valeur de 8 bits, et stockez le résultat dans concat_out
  5. Conditional : Stockez la valeur la plus grande entre `a` et `b` dans cond_out

Essayez vous-même

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
    // Logique
    value1 = 4'd6;
    value2 = 4'd0;
    logic_out = ______;   // Vérifie si value1 et value2 sont tous les deux non nuls
    
    // Réduction
    vector = 4'b1111;
    reduction_out = ______;   // Check if all bits of vector are 1
    
    // Shift
    data = 8'b00001111;
    shift_out = ______;   // Décale data de 2 bits vers la gauche
    
    // Concaténation
    high = 4'b1010;
    low = 4'b1100;
    concat_out = ______;   // Combine high et low en une valeur de 8 bits
    
    // Conditionnel
    a = 4'd7;
    b = 4'd12;
    cond_out = ______;   // Stocke le plus grand de `a` et `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

Toutes les leçons de Fondamentaux