Скачиваний:
196
Добавлен:
08.06.2016
Размер:
635.39 Кб
Скачать
    1. Встроенные оценочные функции

В AHDL встроены следующие предопределенные оценочные функции, которые не нужно определять в операторах Define:

  • USED, которую можно использовать для контроля того, использовался ли порт, например, в операторе If Generate или Parameters. USED принимает имя порта в качестве входа и возвращает значение FALSE, если порт не используется.

  • CEIL, которая возвращает наименьшее целое число большее вещественного числа. Хотя эта операция применима ко всем арифметическим выражениям, она имеет смысл только для LOG2 и DIV, в которых результат может быть вещественным.

  • FLOOR, которая возвращает наибольшее целое число меньшее вещественного числа. Хотя эта операция применима ко всем арифметическим выражениям, она имеет смысл только для LOG2 и DIV, в которых результат может быть вещественным.

Примеры.

CEIL(LOG2(255)) = 8

FLOOR(LOG2(255)) = 7

Использованный статус протестирован в операторе Assert:

USED(aconst) == # 0 USED(AVALUE)

    1. Логические выражения

Логические выражения состоят из операндов, разделенных логическими и арифметическими операторами и компараторами и дополнительно сгруппированы с помощью круглых скобок. Выражения используются в булевых уравнениях также как и в других операторах таких как Case и If Then.

Логическое выражение может быть одним из следующих:

  1. Операнд

Например, a, b[5..1], 7, VCC

  1. Подставляемая ссылка на логическую функцию

Например, out[15..0] = 16dmux(q[3..0]);

  1. Префиксный оператор (! или -), применяемый к логическому выражению

Например, !c

  1. Два логических выражения, разделенных бинарным оператором

Например, d1 $ d3

  1. Логическое выражение, заключенное в круглые скобки

Например, (!foo & bar)

Вы можете именовать логические операторы и компараторы в файлах AHDL для облегчения ввода присваиваний ресурсов и для интерпретации раздела Equations в файле отчета. За дополнительной информацией обратитесь к 4.9.2

      1. Операторы логических функций

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

Таблица 5. Логические операторы языка AHDL

Оператор

Пример

Описание

!

!tob

дополнение до 1

NOT

NOT tob

&

bread & butter

И

AND

bread AND butter

!&

a[3..1] !& b[5..3]

И-НЕ

NAND

a[3..1] NAND b[5..3]

#

trick # treat

ИЛИ

OR

trick OR treat

!#

c[8..5] !# d[7..4]

ИЛИ-НЕ

NOR

c[8..5] NOR d[7..4]

$

foo $ bar

Исключающее ИЛИ

XOR

foo XOR bar

!$

x2 !$ x4

Исключающее ИЛИ-НЕ

XNOR

x2 XNOR x4

Каждый оператор представляет двухвходовый логический вентиль, за исключением оператора NOT (!), который является префиксом инвертирования одного узла. Вы можете использовать или имя или символ для представления логического оператора.

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

Вы можете позволить компилятору заменить И операторы и все компараторы в булевых выражениях на lpm_add_sub и lpm_compare функции, включая логическую опцию Use LPM for AHDL Operators.

Соседние файлы в папке Минина 2014
  • #
    08.06.2016338.77 Кб291113PV1.pdf
  • #
    08.06.2016635.39 Кб196ahdl.doc
  • #
    08.06.20167.32 Кб22Digital term.vi
  • #
    08.06.201651 б22L8.asv
  • #
    08.06.201645 б22L8.m
  • #
    08.06.201613.4 Кб24temp. analis.vi
  • #
    08.06.201616.62 Кб23temp. control.vi