18 Temmuz 2013 Perşembe

VHDL İF-ELSE KOMUTU

VHDL İF-ELSE KOMUTU



Bu makalede sizlere Vhdl programlama dilinde İf-Else kontrol yapılarından bahsedeceğim


İF-ELSE


Tanım:


Açıklamada, bir veya daha fazla ilgili koşulların değerine bağlı olarak yürütme bir veya durdurur.

Tanımlama

VHDL İF-ELSE KOMUTU
If diğer sıralı tabloların koşullu yürütme kontrol eder. En az bir Boole durumda (eğer anahtar sözcüğünden sonra belirtilen) içerir. Kalan koşulları else-if maddesi ile belirlenir. Başka madde daha sonra else-if doğru olarak kabul edilir. Bunlardan herhangi bir gerçek olarak döner veya kontrol edilmesi için daha fazla koşullar vardır.
Koşulları kadar  tek tek değerlendirilir. Bir durumdur sonra doğru olduğunda o fıkra sonra belirtilen tabloların dizisi yürütülür. Hiçbir koşul o zaman kontrol if sonra bir sonraki açıklamaya geçirilir.
Açıklamada sık sık else-if ne de başka bir madde de (örneğin 1) destekliyorsa,-daha sonra açıklamada, adlı bir basitleştirilmiş şeklinde kullanılabilir eğer.
Bir durum toplantı, bazı ifadeler yürütülecek neden gerektiğini, ancak yerine başka eylemler yapılmalıdır bu durumda, başka bir madde (örneğin 2) kullanılır.
Farklı iç içe koşullar (örneğin 3) kontrol edilmesi olduğunda else-if madde kullanılır. Bu öncelik koşulları ve sinyaller için de kullanılabilir.
If ifadeleri (örneğin 4) iç içe olabilir.



Örnekler

Örnek 1
I1: if Status_Signal = hold
      then A1: Outputs <= 'X';
    end if I1;


Atama durumu Status_Signal = beklemeye doğrudur sadece gerçekleştirilecektir. Aksi takdirde, son izleyen deyim I1 idam edilecektir.
Örnek 2

function
 AND_FUNC (x, y: in Bit) return Bit is
begin
  I2: if x = '1' and y = '1'
        then return '1';
      else return '0';
      end if I2;
end 
AND_FUNC;

Değişkenler x ve y hem '1 eşit olduğunda ', işlev değeri '1 döner'. Aksi takdirde, '0 'döndürülür.
Örnek 3

Signal Code_of_Operation : Bit_Vector(1 downto 0);I3: if Code_of_Operation(1) = '1'
      then F := Operand_1 + Operand_2;
    elsif Code_of_Operation(0) = '1'
      then F := Operand_1 - Operand_2;
      else F := "00000000";
    end if I3;

Bu örnekte, Code_of_Operation en bit sayısı 1 bit sayısı 0 daha yüksek bir önceliğe sahiptir. Bit sayısı 1 '1 'bir değere sahip olduğunda, o zaman iki işlenen eklenir. Eğer değilse (yani '0 '), sonra bit sayısı 0 kontrol edilir. Bu '1 'ise, o zaman iki işlenen çıkarılır. Aksi takdirde, Code_of_Operation iki bit '0 'olduğu zaman, F sinyali tamamen sıfırlı atanır.
Örnek 4
if Status = RUN
  then
    if Code_of_Operation = CONC
      then
        F := Operand_1 & Operand_2 ;
      else
        F := "00000000";
    end if;
  Output_1 <= F;  
end if
;

Ifadeler eğer Yerleştirme yasal, ancak deyimi seviyeleri karıştırmamak için dikkatli olmalıdır.

Önemli Notlar

  • If ifadeleri ile en tipik hatalardan biri deyimi sonunda, end if ve if boşluk atlamak ve endif olarak yazmaktadır.
  • if bir mimari eş zamanlı ifadeler bölümünde kullanılamaz sıralı bir ifadedir. Bir sinyal için yeni bir değer atama belirli bir durumu etkilenir gerekiyorsa, o zaman bir koşullu sinyal ataması (sırayla süreç veprosedürler içinde kullanılamaz olan) kullanılmalıdır.





0 yorum:

Yorum Gönder