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
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;
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
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
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 = RUNthen
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