СПРАВОЧНИК ПО ЯЗЫКУ VHDL


Мобильные конструкции выставочных стендов. Выставочные мобильные стенды и конструкции.

ОПЕРАЦИИ НАД МАССИВАМИ - часть 2


Операция выполняется последовательно над каждым элементом и результатом является массив с элементами, имеющими тот же тип, что и аргументы. Оба массива должны иметь одну и ту же длину и тип. signal Areg,Breg:bit_vector(32 downto 0); type bool_vector is array (natural range <>) of boolean; signal stage_full,required:bool_vector(1 to 24); . . . Areg<=Areg xor Breg; stage_full<=(stage_full(13 to 24) & stage_full(1 to 12)) and required; Ecли массивное значение назначается обьекту , то число элементов в подтипе должно проверяться в процессе моделирования. Если размер неправильный, то моделирование будет остановлено и будет выдано соответствующее сообщение об ошибке. Например, следующее назначение будет вызывать ошибку во время моделирования. Areg <= Areg&Breg; -- ОШИБКА: значение выражения не будет -- переслано в Areg Для того, чтобы быть назначенным массиву данного подтипа или быть связанным с ним массивное значение должно быть корректного базового типа, то есть недостаточно только того, чтобы совпадали типы входящих в массив элементов. signal data_reg:bit6_data(0 to 7); signal address_reg: bit6_address(0 to 7); . . . data_reg<=address_reg; --НЕВЕРНО !! Несмотря на то, что оба сигнала являются массивами элементов, имеющими тип bit6, назначение не допускается. Тем не менее преобразование типов(type conversion) допускается между двумя массивными типами если: массивные типы имеют одинаковое число измерений; элементы имеют одинаковые типы и либо индексы целого типа, либо индексы одинакового перечислительного типа. О двух таких типах говорят, что они тесно связанные (closely related). Таким образом допустимо следующее преобразование типов: data_reg <= bit6_data(address_reg);




Содержание  Назад  Вперед