Menu
Coddy logo textTech

Recap - Operator Challenge

Parte de la sección Fundamentos del Journey de Verilog de Coddy. Lección 29 de 90.

challenge icon

Desafío

Completa el código escribiendo las expresiones correctas para cada tarea. Este desafío cubre todos los operadores de este capítulo.

Qué hacer:

  1. Logical: Comprueba si tanto value1 como value2 son distintos de zero y almacena el resultado en logic_out
  2. Reduction: Comprueba si all bits de vector son 1 y almacena el resultado en reduction_out
  3. Shift: Desplaza data 2 bits hacia la izquierda y almacena el resultado en shift_out
  4. Concatenation: Combina high y low en un valor de 8 bits y almacena el resultado en concat_out
  5. Conditional: Almacena el larger de `a` y `b` en cond_out

Pruébalo tú mismo

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 a la izquierda 2 bits
    
    // 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

Todas las lecciones de Fundamentos

Practica por tu cuenta: Compilador de Verilog online