fpganedir.com'da ara

fpganedir mail

ALLOCATOR

Daha sonra erişilmek üzere değişkenler ve anonim nesneler oluşturan işlemlerdir.

new alttip_gösterimi
new tanımlayıcı_ifade

NOT:

Örnek:

type T1 is array (0 to7) of Natural;
type T_access is access T1;
variable z : T_access;
...
z := new T1; -- T1 değeri (0, 0, 0, 0, 0, 0, 0, 0) olarak sıfırlanıyor.

Allocator kullanarak, Table tipinde (0, 0, 0, 0, 0, 0, 0, 0) varsayılan değeriyle yeni bir nesne oluşturuluyor.

Örnek:

z := new BIT_VECTOR(1 to 3);  -- İlk değeri ('0','0','0') olacak şekilde, bit_vector tipinde yeni bir nesne oluşturuluyor.

Örnek: 

type Rec1 is record
        test_zaman : time;
        test_deger : Bit_Vector (0 to 3);
end record test_record;

type Access_Rec is access Rec1;
variable X,Y : Access_Rec;
X := new Rec1'(30 ns, B"1100"); -- aggregate ile record yerleştirmesi (allocation)
Y := new Rec1;
Y.test_zaman := 30 ns;
Y.test_deger := B"1100";

Örnekteki gibi, oluşturulan nesnelere ilk değer ataması yapılabilir. “X” için yapılan allocator’da aggregate yöntemi kullanılmıştır. “Y” için olana ise doğrudan atama işlemi uygulanmıştır. Bu iki farklı nesne değerlerine bakıldığında birbirlerinin benzeridirler.

Örnek:

type Access_BV is access Bit_Vector (3 downto 0);
variable Pointer1, Pointer2 : AccBV;
Pointer1
:= new Bit_Vector (3 downto 0);
Pointer2 := Pointer1;

Pointer1 adında yeni bir nesne oluşturuluyor ve Pointer2 değişkeni de buna yönlendiriliyor. Dolayısıyla sadece bir nesne oluşturulmuş oluyor.

DETAYLI AÇIKLAMA

Her allocator kullanımında bir nesne ve o nesneye erişim için bir pointer oluşturulur. Oluşturulan nesnenin tipi alt tip gösterimi ile ya da tanımlayıcı ifade kullanarak belirlenir.

Allocator ile dizi şeklinde bir nesne oluşturulacaksa, o dizi kısıtlanmış olmalıdır. Kısıtlama işlemi belli bir aralık verilerek yapılabilir.

Yerleştirilmiş (allocated) bir nesnenin değişken değerini başka bir değişkene kopyalamak yeni nesne oluşturnak demek değildir. Bu durumda her iki değişken de aynı nesneye işaret eder.  

 

Anasayfa | Fpga | VHDL | VHDL Sözlüğü | Embedded Sistem | Android | Sayısal Tasarım | Simulasyon | PCB | Örnekler | Forum | İletişim
Copyright © 2010-2013 FPGAnedir. All Rights Reserved.