Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Булевы операторы, использующие NOT ⇐ ПредыдущаяСтр 3 из 3
Оператор НЕ является префиксом инвертора. Поведение оператора НЕ зависит от операнда, на который он воздействует. С оператором НЕ можно использовать три типа операндов:
1. Если операнд - одиночный узел, GND, или VCC, выполняется одиночная инверсия. Например, ! a означает, что сигнал проходит через инвертор. 2. Если операнд - группа узлов, то каждый член группы проходит через инвертор. Например, шина! a[4..1] интерпретируется как (! a4, ! a3, ! a2, ! a1). 3. Если операнд - число, он трактуется как двоичное число и каждый его бит инвертируется. Например, ! 9 интерпретируется как! B" 1001", то есть B" 0110". Булевы операторы, использующие AND, NAND, OR, NOR, XOR, и XNOR С бинарными операторами существует пять сочетаний операндов. Каждое из этих сочетаний интерпретируется различно:
1. Если оба операнда - одиночные узлы или константы GND и VCC, оператор выполняет логическую операцию над двумя элементами. Например, (a & b). 2. Если оба операнда - группы узлов, оператор действует на соответствующие узлы каждой группы, выполняя побитовые операции между группами. Группы должны иметь одинаковый размер. Например, (a, b, c) # (d, e, f) интерпретируется как (a # d, b # e, c # f). 3. Если один операнд - одиночный узел, GND, или VCC, а другой группа узлов, одиночный узел или константа дублируется для создания группы такого же размера как другой оператор. Затем выражение трактуется как групповая операция. Например, a & b[4..1] интерпретируется как (a & b4, a & b3, a & b2, a & b1). 4. Если оба операнда - числа, то более короткое число расширяется с учетом знака для согласования с размером другого числа и трактуется затем как групповая операция. Например, в выражении (3 # 8), 3 и 8 преобразуются в двоичные числа B" 0011" и B" 1000", соответственно. Результатом будет B" 1011". 5. Если один операнд - число, а другой узел или группа узлов, то число разделяется на биты для согласования с размером группы и выражение рассматривается как групповая операция. Например, в выражении (a, b, c) & 1, 1 преобразуется к B" 001" и выражение становится (a, b, c) & (0, 0, 1). Результатом будет (a & 0, b & 0, c & 1).
Выражение, которое использует VCC как операнд, интерпретируется в зависимости от выражения, которое использует 1 как операнд. Например, в первом выражении, 1 - число в знакорасширенном формате. Во втором выражении, узел VCC дублируется. Затем каждое выражение трактуется как групповая операция.
(a, b, c) & 1 = (0, 0, c) (a, b, c) & VCC = (a, b, c) Приоритеты булевых операторов и компараторов Операнды, разделенные логическими и арифметическими операторами и компараторами вычисляются в соответствии с правилами приоритетов, приведенными ниже (приоритет 1 - наивысший). Операции одинакового приоритета оцениваются слева направо. С помощью скобок () можно менять порядок вычислений.
Логические функции Мегафункции/LPM MAX+PLUS II предлагает большое разнообразие мегафункций, включая LPM функции а также параметризуемые функции. Ниже приводится список мегафункций.
Мегафункция - сложный или высокоуровневый строительный блок, который можно использовать совместно с примитивами вентилей и триггеров и/или с макрофункциями старого типа в файлах проекта. Altera поставляет библиотеку мегафункций, включая функции из библиотеки параметризуемых модулей (LPM) версии 2.1.0, в директории \maxplus2\max2lib\mega_lpm, созданной во время инсталляции. Для просмотра файла, содержащего логику мегафункции, укажите символ мегафункции в графическом редакторе или ее имя в текстовом редакторе и выберите Hierarchy Down (меню File).
Библиотека параметризуемых функций (LPM) - технологически-независимая библиотека логических функций, параметризуемая для достижения масштабируемости и адаптируемости. Altera реализовала параметризуемые модули (называемые также параметризуемые функции) из LPM в версии 2.1.0, которые предлагают архитектурно-независимый ввод проекта для всех, поддерживаемых MAX+PLUS II устройств. Компилятор включает встроенную поддержку компиляции LPM для функций, используемых во входных файлах (схемном, AHDL, VHDL, и EDIF).
Параметризуемая функция - логическая функция, использующая параметры для достижения масштабируемости, адаптируемости и эффективной реализации в кремнии.
Мегафункции Мегаядра - предварительно проверенные HDL файлы для сложных функций системного уровня, которые можно приобрести у Altera. Они оптимизированы под архитектуры FLEX 10K, FLEX 8000, FLEX 6000, MAX 9000, и MAX 7000 устройств. Мегафункции Мегаядра состоят из нескольких файлов. Файл для последующего синтеза используется для реализации проекта (подгонки) в заданном устройстве. Кроме этого прилагаются VHDL или Verilog HDL функциональные модели для проектирования и отладки со стандартными EDA средствами моделирования. Altera поставляет библиотеку мегафункций, включая любые приобретаемые мегафункции Мегаядра в директории \maxplus2\max2lib\mega_lpm, созданной во время инсталляции. Если Ваш код доступа для мегафункции Мегаядра содержит разрешение просмотра источника файла проекта, Вы можете просмотреть его, указывая символ мегафункции в графическом редакторе или имя в текстовом редакторе и выбирая Hierarchy Down (меню File). Ниже приводится описание наиболее часто применяемых мегафункций. Полные сведения по всем мегафункциям можно найти в системе помощи (меню Help, команда Megafunctions/LPM).
lpm_and (вентиль И)
Altera рекомендует использовать примитивы вентилей И или их операторы вместо lpm_and для более легкой реализации и улучшения времени компиляции. Тем не менее lpm_and могут быть полезны при необходимости иметь параметризуемые входы.
Прототип функции
FUNCTION lpm_and (data[LPM_SIZE-1..0][LPM_WIDTH-1..0]) WITH (LPM_WIDTH, LPM_SIZE) RETURNS (result[LPM_WIDTH-1..0])
Порты:
ВХОДЫ
ВЫХОДЫ
Параметры:
Каждый вентиль И имеет следующую функцию:
Используемый ресурс:
Простые вентили lpm_and используют приблизительно одну логическую ячейку на вентиль. Макрофункции MAX+PLUS II предлагает свыше 300 макрофункций. Имена шинных макрофункций оканчиваются на букву В. Они функционально идентичны с соответствующими не шинными макрофункциями, но имеют сгруппированные входные и/или выходные выводы. Для просмотра схемы или AHDL файла, который содержит логику макрофункции, укажите символ макрофункции в графическом редакторе или имя макрофункции в текстовом редакторе и выберите Hierarchy Down (меню File).
Категории макрофункций:
Сумматоры Защелки АЛУ Умножители Буферы Мультиплексоры Компараторы Генераторы четности Конвертеры Быстрые умножители Счетчики Регистры Декодеры Сдвиговые регистры Цифровые Регистры хранения фильтры EDAC SSI функции Шифраторы Элементы ввода/вывода Делители частоты
Популярное: |
Последнее изменение этой страницы: 2016-05-30; Просмотров: 994; Нарушение авторского права страницы