Ссылочные типы и динамические объекты в VHDL


Помимо статических (объявленных в процессе, блоке или пакете и создающихся в начале моделирования) и локальных (объявленных в подпрограмме) объектов VHDL обеспечивает возможность для управляемого создания и удаления объектов.

Для этих целей используются ссылки (переменные access-type), аналогично указателям в других языках, при этом с ссылочным типом могут объявляться только переменные. Для создания динамического объекта используется аллокатор (new), который выделяет память для объекта указанного типа, а также позволяет инициализировать экземпляр типа при помощи агрегата.

Пример использования ссылок приведен ниже:

— объявление ссылки (access)
type bounds is access rect;

variable a,b : bounds;

— создание объекта
a := new rect;

— создание и инициализация
a := new rect ‘(0, 0, 100, 100);
— операции с объектом
a.left := 0;
— освобождение объекта, созданного динамически
deallocate (a);

Выделенная динамически память не будет освобождаться автоматически, ее надо освобождать явно при помощи деаллокатора (deallocate). Ссылочные типы полезны, когда необходимо контролировать время жизни объекта явно, либо если объект требует значительных ресурсов для создания и его время жизни не ограничено одной подпрограммой.


Комментарии запрещены.




Статистика