Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Altera / MAX+PLUS II - AHDL.doc
Скачиваний:
139
Добавлен:
10.12.2013
Размер:
7.02 Mб
Скачать

3.7.5 Операторы сравнения

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

Таблица 3.6 Операторы сравнения, используемые в логических выражениях

Оператор

Пример

Описание

== (логический)

addr[19..4] == H”B800”

Проверка на равенство

!= (логический)

b1 != b3

Проверка на не равенство

< (арифметический)

fame[] < power[]

Меньше

<= (арифметический)

money <= power[]

Меньше либо равно

> (арифметический)

love[] > money[]

Больше

=> (арифметический)

delta[] >= 0

Больше либо равно

С помощью логических операторов сравнения можно сравнивать как отдельные узлы и группы, так и числа, не содержащие символов X (don’t care). При сравнении следует помнить о том, что сравниваемые группы должны быть одинаковой длины. Если в случае сравнения условие сравнения выполняется, то возвращается «Лог. 1» (VCC), если нет – «Лог. 0» (GND).

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

Вы можете вместо операторов сравнения использовать функцию lpm_compare из библиотеки параметризированных модулей. Для получения более подробной информации по этому вопросу см. раздел «Assigning an Individual Logic Option or Synthesis Style» в помощи MAX+PLUS II.

3.7.6 Приоритеты логических операторов и операторов сравнения

Действия над операндами, разделенными арифметическими или логическими операторами, выполняются в порядке, определённом их приоритетами. Приоритет какой-либо части выражения можно изменить, заключив его в круглые скобки. В таблице 3.7 приведены приоритеты всех логических операторов.

Таблица 3.7 Приоритеты логических операторов

Приоритет

Оператор

1

- (указание на отрицательное число)

1

! (инверсия)

2

+ (сложение)

2

- (вычитание)

3

== (проверка на равенство)

3

!= (проверка на не равенство)

3

< (меньше)

3

<= (меньше либо равно)

3

> (больше)

3

=> (больше либо равно)

4

& (логическое И)

4

!& (И-НЕ)

5

$ (логическое исключающее ИЛИ)

5

!$ (исключающее ИЛИ-НЕ)

6

# (логическое ИЛИ)

6

!# (логическое ИЛИ-НЕ)

Множество арифметических операторов, разрешенных для использования в логических выражениях, является подмножеством множества всех арифметических операторов.

3.8 Мегафункции

Мегафункции MAX+PLUS II это набор логических функций, включенных в библиотеку параметризированных модулей (LPM – Library of Parameterized Modules). Функции, входящие в составLPMможно использовать в своих проектах.LPM-функции находятся в подкаталоге \maxplus2\max2lib\mega_lpm. Кроме того, в этом же каталоге расположены файлы прототипов для всех мегафункций.

Любые мегафункции могут быть использованы в проектах. На этапе компиляции MAX+PLUS IIанализирует логику работы устройства, и автоматический «выбрасывает» ненужные элементы, могущие снизить быстродействие.

В таблице 3.8 приведены все мегафункции MAX+PLUS II.

Таблица 3.8 Мегафункции MAX+PLUS II

Тип

Имя

Описание

Вентили

Lpm_and

Элемент «И»

Lpm_bustri

Тристабильный буфер

Lpm_clshift

Комбинационный сдвиговый модуль

Lpm_constant

Constant Generator

Lpm_decode

Декодер

Lpm_inv

Инвертор

Lpm_mux

Мультиплексор

Lpm_or

Элемент «ИЛИ»

Lpm_xor

Элемент «Исключающее ИЛИ»

Арифметические компоненты

Lpm_abs

Абсолютное значение

Lpm_add_sub

Элемент сложения (сумматор)/вычитания

Lpm_decode

Элемент сравнения

Lpm_counter

Счетчик

Lpm_mult

Элемент умножения

Элементы памяти

Lpm_dff

D-триггер

Lpm_latch

Защелка

Lpm_ram_dq

Синхронная или асинхронная память с раздельными портами ввода и вывода

Lpm_ram_io

Синхронная или асинхронная память одним портом ввода/вывода

Lpm_rom

Синхронный или асинхронный модуль ROM

Lpm_tff

T-триггер

Csdpram

Cycle-shared RAM

csfifo

Cycle-shared FIFOбуфер

Другие

a6502

Микропроцессор 6502

ntcs

NTSC генератор

pll

Детектор переднего и заднего фронтов сигналов

Соседние файлы в папке Altera