Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lekz5_massiv.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
121.34 Кб
Скачать

Файл Lekz5_massiv.Doc Лекция № 5 (5-тый курс) Тема: массивы в языке vhdl и проектах криптографических процессоров.

Вопросы по теме:

  1. Вводные замечания и классификация массивов

  2. Предопределенные типы массивов.

  3. Массивы пользователя.

  4. Примеры оформления объявлений пользовательских массивов

  5. Методы и средства для определения массивов (агрегат, сектор)

  6. Инициализация (задание) начальных значений массивов типов bit_vector и std_logic_vector посредством строки бит.

  7. Инициализация (задание) начальных значений символьных типов массивов посредством символьной строки.

  8. Программное формирование значений элементов массивов и доступ к элементам массивов

  9. Пример криптографического процессора, построенного с использованием массивов

1. Вводные замечания и классификация массивов

В информатике Массивом обычно называется некоторый упорядоченный набор данных, имеющих одинаковый тип.

Понятие Массив в информатике также часто формулируют таким образом: Массив – это образование (множество), содержащее набор элементов одного и того же типа.

В литературе, связанной с описанием языка VHDL понятие массив определено следующим образом: Массив – это составной программный объект VHDL проекта, элементы которого имеют одинаковый тип.

Существуют различные виды классификации массивов. Наиболее часто для классификации массивов используются такие классификационные характеристики:

  • Размерность массива;

  • Размер массива;

  • Тип массива (Информационный тип).

  • Программный тип (constant, variable, signal)

По классификационной характеристике размерность массивы (могут быть) подразделяют на:

    • Одномерные;

    • Двухмерные;

    • N – мерные.

Примечание: язык VHDL оперирует только с одномерными и двухмерными массивами.

В одномерном массиве элементы упорядочиваются по одному измерению. Направление упорядочивания может быть возрастающим (to) и убывающим (downto). При возрастающем способе упорядочения номера элементов изменяются в пределах и направлении от 0 до n. При убывающем способе упорядочения номер элементов изменяются в пределах и направлении от n до 0.

В двухмерном массиве элементы упорядочиваются по двум измерениям (по строкам и столбцам). Направление упорядочивания по каждому измерению может быть или возрастающим или убывающим.

Размерность массива часто ассоциируется с количеством индексов, которое содержится в определении массива. Число индексов, указываемое при определении массива, соответствует размерности массива. Т.е. идентификатор одномерного массива в своем определении будет содержать один индекс, двухмерный массив имеет два индекса, трехмерный – три и т.д.

Адрес каждого элемента в массиве (место расположения элемента в массиве) отождествляется с числовым значением индексов. Значение Индекса обычно является натуральным числом (числом типа natural) или числом типа positive.

Что касается классификационной характеристики размер массива, то в языке VHDL массивы подразделяются на:

  • Ограниченные (constrained);

  • Неограниченными (un constrained)

Эта характеристика определяет конструктивное устройство массива с точки зрения объема хранимой в нем информации. Объем хранимой информации (размер массива) определяется как произведение максимальных значений всех индексов массива (N*M*…….*K).

Массив является ограниченным, если в его измерениях (в связанных с размерностью индексах) значения индексов лежат в заранее ограниченных диапазонах, т. е. принимают значения от: 0 to 20, 30 downto 0 .

Массив является неограниченным, если в его измерениях диапазоны изменения значений связанных с ним индексов является явно незаданным, т.е. число элементов в измерении не известно.

Примечание: в VHDL такой массив обычно содержит символы <> .

Заметим, что если пользовательский тип массива является неограниченным, то фактический его размер (конкретные параметры индексов) должен явно задаваться при объявлении программных величин (constant, variable, signal) типа массив.

(**) Относительно классификационной характеристики информационный тип (вид) содержащихся в массиве данных, массивы подразделяются на:

  • Битовые;

  • Целого типа;

  • Вещественные;

  • Символьные (строки символов);

  • Стандартной логики;

  • Signed (Знаковые);

  • Unsigned (Беззнаковые).

Битовые массивы содержат элементы, значения которых могут принимать 0 или 1 (или low или high), т.е. быть битом.

Массивы целого типа содержат элементы, значения каждого из которых может быть только целым числом (integer) , как положительным, так и отрицательным.

Числа типа integer могут изменяться в диапазоне:

-2 147 483 647 до +2 147 483 647

Массивы вещественного типа содержат элементы, каждый из которых может быть вещественным числом, как положительным, так и отрицательным.

Вещественные числа в свою очередь могут быть представлены в естественной форме (содержать целую и дробную части, разделяемые точкой), так и в экспоненциальной форме. Диапазон значений для элементов массива типа Real может изменяться:

-1.0Е38 до +1.0Е38

Символьные массивы (строка символов) содержат элементы, каждый из которых может быть ASCII символом, т.е. каждый элемент строкового массива имеет тип character.

Массивы стандартной логики содержат элементы, каждый из которых может принимать одно из 9 допустимых значений (U, X, 0, 1, Z, W, L, H, - ), т.е. иметь тип std_logic или std_logic_vector.

Знаковые (signed) массивы – содержат элементы, каждый из которых может принимать одно из 9 допустимых значений стандартной логики (std_logic). Обычно эти массивы отождествляются с числами двоичной системы счисления, которые снабжены знаковым разрядом.

Беззнаковые (unsigned) массивы – содержат элементы, каждый из которых может принимать одно из допустимых значений стандартной логики (std_logic). Обычно эти массивы отождествляются с числами двоичной системы счисления, которые не снабжены знаком.

В языке VHDL для массивов используются еще таких две классификационных характеристики (эти характеристики определяют массивы с точки зрения правомочности по отношению к языку VHDL , т.е. с точки зрения введения их в VHDL программу):

    • Предопределенные массивы;

    • Массивы пользователя.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]