Приоритеты логических и арифметических операторов 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Приоритеты логических и арифметических операторов



Операнды, разделенные логическими и арифметическими операторами и компараторами вычисляются в соответствии с правилами приоритетов, приведенными ниже (приоритет 1 - наивысший). Операции одинакового приоритета оцениваются слева направо. С помощью скобок () можно менять порядок вычислений.

Таблица 8. Приоритеты логических и арифметических операторов и компараторов

Приоритет: Оператор/Компаратор:  
  - (минус)
  ! (НЕ)
  + (сложение)
  - (вычитание)
  == (равно)
  != (не равно)
  < (меньше чем)
  <= (меньше чем или равно)
  > (больше чем)
  >= (больше чем или равно)
  & (И)
  !& (И-НЕ)
  $ (Исключающее ИЛИ)
  !$ (Исключающее ИЛИ-НЕ)
  # (ИЛИ)
  !# (ИЛИ-НЕ)

Прототипы логических функций

Примитивы

MAX+PLUS II обеспечивает большое многообразие примитивных функций для разработки схем. Так как AHDL и VHDL логические операторы, порты и некоторые операторы замещают примитивы в AHDL и VHDL файлах, то примитивы являются подмножеством их, доступных для GDF файлов, как показано ниже.

Примитив - один из основных функциональных блоков, применяющийся для проектирования схем с помощью программы MAX+PLUS II. Примитивы используются в графических файлах (.gdf), текстовых файлах (.tdf), и VHDL файлах (.vhd).

Символы примитивов для графического редактора поставляются в директории \maxplus2\max2lib\prim, созданной во время инсталляции.

Прототипы функций встроены в программу MAX+PLUS II.

Массивы примитивов

Массив примитивов - это примитив, который представляет несколько идентичных примитивов. Вы можете использовать примитивные массивы для создания более компактных GDF или OrCAD Schematic файлов путем ввода единственного примитива, который экстрактор списков связей компилятора переведет в несколько примитивов.

Вы можете создать примитивный массив двумя способами:

· Если все порты символа (pinstub) примитива соединяются с шинами, состоящими из n членов, примитив переводится в массив n индивидуальных примитивов. Каждый индивидуальный узел шины соединяется с соответствующим портом символа каждого индивидуального примитива в массиве. Например

Рис. 1. Массив примитивов (вариант 1)

В этом примере примитивный массив создается при соединении трех шин A[0..2], B[0..2], и C[0..2] с двумя выводами INPUT, выводом OUTPUT и вентилем AND2.

Во время обработки компилятор переводит этот примитивный массив в 6 выводов INPUT, 3 вывода OUTPUT и 3 вентиля AND2 следующим образом:

 

Один AND2 вентиль соединяется с узлами A0, B0, и C0.

Один AND2 вентиль соединяется с узлами A1, B1, и C1.

Один AND2 вентиль соединяется с узлами A2, B2, и C2.

Входные выводы A0, A1, и A2 соединяются с узлами A0, A1, и A2, соответственно.

Входные выводы В0, В1, и В2 соединяются с узлами В0, В1, и В2, соответственно.

Выходные выводы С0, С1, и С2 соединяются с узлами С0, С1, и С2, соответственно.

Примитивы выводов INPUT, INPUTC, OUTPUT, OUTPUTC, BIDIR, или BIDIRC, которым даны шинные имена переводятся в массив примитивов. Вы не можете использовать перечислимое имя шины для обозначения примитива вывода.

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

Рис. 2. Массив примитивов (вариант 2)

Для создания массива примитивов необходимо обозначить все используемые узлы и шины, за исключением тех случаев, где имена узлов и шин не обязательны:

· Одиночный узел, который соединяется с примитивным массивом.

· Шинный проводник, который соединяется с примитивным массивом, если не меньше одного сегмента сети, которая содержит этот проводник, явно обозначено перед любыми точками соединения или, если сеть соединяется с выводом с шинным именем. Например,

Рис. 3. Массив примитивов (вариант 3)

Вы не можете вводить присваивания для проб и ресурсов символов примитивов, которые используются для создания примитивных массивов. Обратитесь в раздел Принципы работы с присваиваниями.

Проба - уникальное имя, связанное с любым узлом, например, вход или выход примитива, мегафункции или макрофункции, которое можно использовать вместо полного иерархического имени узла в любом месте MAX+PLUS II. Таким образом пробное имя обеспечивает быструю идентификацию узла.

Примитивы буферов

CARRY OPNDRN

CASCADE SOFT

EXP TRI

GLOBAL (SCLK) WIRE (только GDF)

LCELL (MCELL)

Примитивы триггеров и защелок

DFF SRFF

DFFE SRFFE

JKFF TFF

JKFFE TFFE

LATCH

Примитивы/Порты входов и выходов

BIDIR или INOUT BIDIRC (только GDF)

INPUT или IN INPUTC (только GDF)

OUTPUT или OUT OUTPUTC(толькоGDF)

Логические примитивы

AND NOR

BAND (только GDF) NOT

BNAND (только GDF) OR

BNOR (только GDF) VCC (только GDF)

BOR (только GDF) XNOR

GND (только GDF) XOR

NAND

Другие примитивы (только GDF)

CONSTANT

PARAM

Title Block

Прототипы функций для примитивов в TDF файлах не нужны. Однако Вы можете переопределить порядок вызова входов примитива, вводя оператор Function Prototype в Ваш TDF.

Макрофункции

MAX+PLUS II предлагает свыше 300 макрофункций.

Имена шинных макрофункций оканчиваются на букву В. Они функционально идентичны с соответствующими не шинными макрофункциями, но имеют сгруппированные входные и/или выходные выводы.

Для просмотра схемы или AHDL файла содержащего макрофункцию, укажите символ макрофункции в графическом редакторе или имя макрофункции в текстовом редакторе и выберите Hierarchy Down (меню File).

Категории макрофункций:

Сумматоры Триггеры-защелки

АЛУ Умножители

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

Компараторы Генераторы четности

Конвертеры Быстрые умножители

Счетчики Регистры

Декодеры Сдвиговые регистры

Цифровые Регистры хранения

фильтры

EDAC SSI функции

Шифраторы Элементы ввода/вывода

Делители частоты



Поделиться:


Последнее изменение этой страницы: 2017-02-05; просмотров: 137; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 13.58.121.131 (0.013 с.)