Menu
Coddy logo textTech

Özet - Operatör Meydan Okuması

Coddy'nin Verilog Journey'sinin Temeller bölümünün bir parçası — ders 29 / 90.

challenge icon

Görev

Her görev için doğru ifadeleri yazarak kodu tamamlayın. Bu meydan okuma, bu bölümdeki tüm operatörleri kapsamaktadır.

Neler yapmalı:

  1. Mantıksal: Hem value1 hem de value2 değerlerinin sıfır olmadığını kontrol edin ve sonucu logic_out içinde saklayın
  2. İndirgeme: vector değişkeninin tüm bitlerinin 1 olup olmadığını kontrol edin, sonucu reduction_out içinde saklayın
  3. Kaydırma: data değerini 2 bit sola kaydırın, sonucu shift_out içinde saklayın
  4. Birleştirme: high ve low değerlerini 8 bitlik bir değerde birleştirin, sonucu concat_out içinde saklayın
  5. Koşullu: `a` ve `b` değerlerinden büyük olanı cond_out içinde saklayın

Kendin dene

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
    // Mantıksal
    value1 = 4'd6;
    value2 = 4'd0;
    logic_out = ______;   // Hem value1 hem de value2'nin sıfır dışı olup olmadığını kontrol edin
    
    // İndirgeme (Reduction)
    vector = 4'b1111;
    reduction_out = ______;   // Check if all bits of vector are 1
    
    // Shift
    data = 8'b00001111;
    shift_out = ______;   // data'yı 2 bit sola kaydırın
    
    // Birleştirme (Concatenation)
    high = 4'b1010;
    low = 4'b1100;
    concat_out = ______;   // high ve low değerlerini 8 bitlik bir değerde birleştirin
    
    // Koşullu
    a = 4'd7;
    b = 4'd12;
    cond_out = ______;   // `a` ve `b` arasından daha büyük olanı saklayın
    
    $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

Temeller bölümündeki tüm dersler