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

3.2. Атрибуты

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

1) Slast_value (прошлое значение S) – предыдущее значение, которое сигнал S имел непосредственно перед последним изменением S. Относится к тому же самому типу, что и S. Может исползоваться для проверки, не изменился ли сигнал (if S/=S’last_value).

2) Sstable(T) – тип Boolean. Атрибут имеет истинное значение, если сигнал S стабилен в течение последних T единиц времени. Если T=0, атрибут записывается как S’stable.

3) Sdelayed(T) есть значение, которое сигнал S имел на T единиц ранее. Относится к тому же самому типу, что и S.

4) Sevent, тип Boolean, принимает истинное значение, если только что произошло изменение сигнала S.

Эти атрибуты полезны для обнаружения изменений сигналов и детального времени моделирования.

3.3. Процедуры и функции

В языке VHDL описание функции осуществляется как в обычных языках программирования. Указывается имя функции и, если необходимо, входные параметры. Функция имеет оператор возврата с определенным типом возвращаемого аргумента.

Функция может быть описана, например, следующим образом:

function Is_zero(n: Integer) return Boolean is

-- описание типов, переменных, констант, подпрограмм

begin

-- последовательные операторы

if n=0 then return True;

else return False;

end if;

end;

Возвращаемое значение может быть определено в виде выражения либо вычислено через соответствующую последовательность операторов.

Язык VHDL предусматривает также описание процедур. Процедура может иметь как внутренние, так и внешние параметры. В остальном описание процедуры аналогично описанию функции. Ниже показан пример описания процедуры:

procedure Count(Incr : Boolean; big : out Bit; num : inout Integer) is

-- описание типов, переменных, констант, подпрограмм

begin

if Incr then

num := num+1;

end if;

if num > 101 then

big := ‘1’;

else

big := ‘0’;

end if;

end

В списке параметров указываются и входные и выходные параметры. За списком параметров следует раздел описания.

3.4. Библиотеки и пакеты

VHDL-библиотека (library) – это место, где компилятор VHDL хранит информацию об отдельном варианте проекта, включая промежуточные файлы, используемые при анализе, моделировании и синтезе в рамках данной разработки. Место библиотеки в файловой системе компьютера зависит от реализации. Для очередного VHDL-проекта компилятор автоматически создает библиотеку под именем «work» и использует ее.

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

Помещенные в пакет сигналы являются «глобальными» и доступны любому VHDL-объекту, использующему этот пакет. Типы и константы, упомянутые в пакете, известны в любом файле, использующем этот пакет.

Проект может «использовать» тот или иной пакет, если в начало файла, относящегося к данному проекту, помещено предложение use (use clause). Например, чтобы воспользоваться всеми определениями пакета, содержащего стандарт IEEE 1164, нам следует написать:

use ieee.std_logic_1164.all;

Здесь ieee – это имя библиотеки, ранее введенное предложением library. В этой библиотеке файл с именем std_logic_ll64” содержит желаемые определения. Приставка all велит компилятору использовать все определения этого файла. Вместо all можно написать имя какого-то одного элемента, когда необходимо использовать только его определение, например:

use ieee.std_logic_1164.std_ulogic;