Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
PROGRAMMIRUEMYE_TsIFROVYE_USTROJSTVA.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
4.86 Mб
Скачать
  1. Задание начальных значений массиву на языке vhdl. Ассоциирование.

Начальные значения объектам типа массив могут задаваться тремя способами.

Прямое определение - начальные значения элементов могут задаваться списком, в котором первое значение соответствует первому элементу массива, а каждое последующее — последующему элементу.

Агрегатирование – агрегаты могут использоваться для задания значений нескольким переменным или сигналам одновременно. Это определение имеет следующий синтаксис:

(namel, name2,...,name_n)<=name_aggregate

Ассоциирование. Выполняется ассоциирование значения индекса со значением элемента, т. е. сопоставление элементу с указанным индексом заданного значения элемента. Это определение имеет следующий синтаксис: ({index_values=>element_value),...); где index_value — может представлять:

□ простое выражение;

□ интервал (в этом случае все элементы, индексы которых попадают в этот интервал, будут иметь одно и то же значение);

□ список значений индексов;

□ others (в этом случае все элементы, индексы которых не вошли ни в одно из предыдущих определений, будут иметь указанное значение), others должно быть последним в списке.

Если задается список значений индексов, то его элементы отделяются друг от друга вертикальной чертой.

Например:

type synbol is ( ‘а', 't', 'd', 'h', cr);

type state is range 0 to 2

type matrix is array (state, symbol) of state;

constant n_state:matrix:=(0=>( 'a'=>l, 'd'=> 2. others =>0),

l=>('a’|'h'=>2, others=>0),

2=>('a' to 'h"=>l, others=>2));

  1. Задание начальных значений массиву на языке vhdl. Агрегаты.

Начальные значения объектам типа массив могут задаваться тремя способами:

Прямое определение - начальные значения элементов могут задаваться списком, в котором первое значение соответствует первому элементу массива, а каждое последующее — последующему элементу.

Ассоциирование. Выполняется ассоциирование значения индекса со значением элемента, т. е. сопоставление элементу с указанным индексом заданного значения элемента.

Агрегаты. Могут использоваться для задания значений нескольким переменным или сигналам одновременно. Это определение имеет следующий синтаксис:

(namel, name2.....name_n)<=name_aggregate

Например, пусть имеются четыре переменных типа bit и переменная типа bit_vector длины 4. Для того чтобы присвоить переменным значения элементов этого вектора, можно выполнить следующее действие: (z_flag, n_flag, v_flag, c_flag)<=flag_reg;

  1. Атрибуты данных типа массив языка vhdl.

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

А' left (N) - Левая граница массива по указанному измерению N

A' right (N) - Правая граница массива по указанному измерению N

A' low(N) - Нижняя граница массива по указанному измерению N

A'hight(N) - Верхняя граница массива по указанному измерению N

A'range(N) - Интервал индекса массива по указанному измерению N

A’reverse__range(N) - Интервал индекса массива по указанному измерению в обратном порядке

A'length(N) - Длина интервала индекса массива по указанному измерению N

Например:

type A is array( 1 to 4, 31 downto 0) оf boolean,

A'left(l)=l;

A’low(l)=l;

A'right(2)=0;

A'hight(2)=31;

A'range(l) is 1 to 4,

A'range(2) is 0 to 31;

A'length(1)=4; A'length(2)=32;

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