Главная страница  Автономные управляющие системы 

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 [ 25 ] 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40

3.8.12. Приоритеты в булевых уравнениях

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

Приоритет

Оператор

Компаратор

(отрицание)

(логическое НЕ)

(сложение)

(вычитание)

(равно?)

(неравно?)

<

(меньше чем)

<=

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

>

(больше чем)

>=

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

&

(AND)

&

(NAND)

(XOR)

(XNOR)

(OR)

(NOR)

3.8.13. Примитивы

В системе MAX+PLUS II есть разнообразные примитивные функции для проектирования электрических схем Поскольку логические операторы, порты и некоторые объявления языка AHDL заменяют примитивы в файлах TDF, написанных на языке AHDL, примитивы языка AHDL являются подмножеством примитивов, которые имеются для файлов графического проекта (GDF-файл), как будет показано ниже

В файлах TDF нет необходимости использования прототипов функций языка AHDL для примитивов Однако путем включения в ваш TDF-файл прототипа функции разработчик может переопределить порядок вызова входов примитива

38l3t ПРИтИВЫ БУФЕРОВ

CARRY LCELL (MCELL) CASCADE SOFT EXP TRI

GLOBAL (SCLK)

Примитив CARRY (перенос)

Прототип функции: FUNCTION CARRY (in) RETURNS (out) ;

Примитив Carry определяет логику переноса на выход (carry-out) для одной функции и действует как перенос на вход (carry-in) для другой функции Функция переноса (carry) осуществляет логику быстрого переноса по цепочке для таких функций, как сумматоры и счетчики Примитив carry поддерживается только для устройств семейства FLEX 8000 Для других устройств он игнорируется

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

Вы можете позволить компилятору автоматически вставлять и убирать CARRY во время синтеза логики, для этого нужно выбрать опцию логики с переносом по цепочке Carry Chain или стиль синтеза логики, который включает эту опцию

Примитив CASCADE (каскад)

Прототип функции FUNCTION CASCADE (in) RETURNS (out),

Буфер CASCADE определяет функцию каскадного выхода из логической схемы И (AND) или ИЛИ (OR) и действует как входной каскад для другой логической схемы И или ИЛИ. Функция входного каскада позволяет организовать каскадный процесс, который представляет собой быстрый выход, расположенный на каждой комбинационной логической ячейке и участвующий в операции ИЛИ или И с выходом соседней комбинационной логической ячейки в устройстве С помощью примитива CASCADE логическая ячейка И или ИЛИ, которая управляет примитив CASCADE и логическая ячейка И или ИЛИ, которая управляется примитивом CASCADE, помещаются в одном устройстве, причем первый символ после проведения над ним логической операции И или ИЛИ переходит во второй символ Примитив CASCADE поддерживается только для устройств семейства FLEX 8000 Для других устройств он игнорируется

При использовании примитива CASCADE, нужно соблюдать следующие правила

♦ примитив CASCADE может формировать сигнал или управляться одной единственной схемой И или ИЛИ,

♦ инверсии логической схемы ИЛИ (OR) рассматривается как схема И (AND) и наоборот Логическими эквивалентами схем И (AND) являются BAND, BNAND и NOR Логическими эквивалентами схем ИЛИ (OR) являются BOR, BNOR, and NAND,

♦ два примитива CASCADE не могут формировать сигнал для одной и той же логической схемы,

♦ примитив CASCADE не может формировать сигнал для логической схемы XOR,

♦ примитив CASCADE не может формировать сигнал для примитива вывода OUTPUT или OUTPUTC или регистра,

♦ в соответствии с правилами Де Моргана (De Morgan) об инверсии для каскадированных логических схем И или ИЛИ нужно, чтобы все примитивы в каскадированной цепочке были одного и того же типа Каскадированная логическая схема И (AND) не может формировать сигнал для каскадированной схемы ИЛИ (OR) и наоборот

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

Вы можете позволить компилятору автоматически вставлять и убирать примитивы CASCADE во время синтеза логики, для этого нужно выбрать опцию логики с переносом по цепочке Cascade Chain или стиль синтеза логики, который включает эту опцию

Примитив ЕХР (расширитель)

Прототип функции FUNCTION ЕХР (in) RETURNS (out),

Расширительный буфер ЕХР определяет необходимость дополнительного места при вычислении произведения в проекте Произведение из расширителя в устройстве инвертируется

Примитив ЕХР поддерживается только семейством устройств MAX5000/EPS464 и МАХ 7000 В других устройствах он рассматривается как логическая схема НЕ (NOT) Для каждого отдельного устройства нужно ознакомиться с его техническим паспортом, чтобы



узнать, как конкретное устройство использует логические ячейки и расширительные буферы для вычисления произведений.

Будет или нет использоваться расширитель для произведения, зависит от полярности логики, требуемой вычисляемыми функциями Например, если буфер ЕХР питает две логические схемы И (AND) (т е логическое умножение), а вторая схема И имеет инвертированный вход, то примитив EXR питающий инвертированный вход, во время логического синтеза убирается, создавая, таким образом, положительную логику Примитив ЕХР, питающий неинвертирован-ный вход, не убирается, и для реализации логики используется расширитель для произведения Обычно логический синтезатор определяет, куда вставлять и откуда убирать буферы Фирма Altera рекомендует, чтобы только опытные разработчики использовали примитив ЕХР в своих проектах

В устройствах, содержащих много логических блоков (LAB), выход буфера ЕХР может формировать сигнал только в пределах одного LAB Примитив ЕХР дублируется для каждого LAB, где он требуется Если проект содержит много расширительных буферов, логический синтезатор может преобразовать их в буферы LCELL, чтобы сбалансировать использование расширителя для произведения и логической ячейки

Не используйте примитивы ЕХР для создания намеренной задержки или асинхронного импульса Задержка этих элементов изменяется с температурой, напряжением питания и при процессах изготовления устройства, поэтому может возникнуть режим состязания и получится ненадежная схема

Примитив GLOBAL (глобальный)

Прототип функции FUNCTION GLOBAL (in) RETURNS (out).

Буфер GLOBAL указывает, что сигнал (signal) должен использовать глобальный синхронный сигнал Clock, сигналы Clear, Preset или Output Enable вместо сигналов, сгенерированных внутренней логикой или поступающих через обычные выводы вход/выход (I/O) Глобальные сигналы используются в различных семействах устройств в соответствии с их синхронизацией

Если входной вывод формирует сигнал непосредственно на вход Примитива GLOBAL, то выход примитива GLOBAL может быть использован, чтобы формировать сигнал на входы Clock, Clear, Preset или Output Enable к примитиву Должно существовать непосредственное соединение от выхода GLOBAL ко входу регистра или буфера TR1 Если буфер GLOBAL формирует сигнал Output Enable буфера TRI, может потребоваться логическая схема НЕ (NOT)

Один единственный вход может проходить через GLOBAL при формировании сигнала для регистров и сигналов Clock, Clear или Preset или вход буфера TRI для сигнала Output Enable

Глобальные синхросигналы распространяются быстрее, чем асинхронные (array) сигналы, и могут освобождать ресурсы устройства для реализации другой логики Для осуществления синхронизации части или всего проекта следует использовать примитив GLOBAL Для того чтобы проверить, имеют ли регистры глобальную синхронизацию, нужно просмотреть файл отчета Report File обрабатываемого проекта

Если ваш проект устройства МАХ 5000 сочетает асинхронный режим работы и режим с глобальной синхронизацией, а модуль компилятора Fitter не может выбрать подходящий, проблема может быть решена удалением буфера GLOBAL Если аналогичная проблема встретится вам в проекте МАХ 7000, замените асинхронный режим режимом с глобальной синхронизацией В качестве

альтернативы использованию примитива GLOBAL разработчик может предоставить компилятору возможность автоматически выбирать, каким будет существующий сигнал проекта, глобальным Clock, Clear, Preset или Output Enable, посредством команды Logic Synthesis.

Примитив LCELL

Прототип функции FUNCTION LCELL (in) RETURNS (out) ,-

Буфер LCELL выделяется для логической ячейки проекта. Буфер LCELL вырабатывает истинное значение и дополнение логической функции и делает их доступными для всей логики устройства

Для обратной совместимости с более ранними версиями системы MAX+PLUS II имеется буфер MCELL, функционально такой же, как и буфер LCELL В новых проектах следует использовать только буфер LCELL

Буфер LCELL всегда занимает одну логическую ячейку Он не удаляется из проекта во время логического синтеза

Не используйте примитивы LCELL для создания задержки или асинхронного импульса Задержка этих элементов изменяется с температурой, напряжением питания и в процессе изготовления изделия, поэтому могут возникнуть режимы состязаний

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

Примитив SOFT

Прототип функции FUNCTION SOFT (in) RETURNS (out).

Буфер SOFT устанавливает, что логическая ячейка может понадобиться в Проекте При обработке проекта процессором логический синтезатор исследует логику, управляющую примитивом и определяет, нужна ли логическая ячейка Если нужна, то буфер SOFT преобразуется в LCELL, в противном случав, SOFT удаляется

Если компилятор показывает, что проект слишком сложный, разработчик можете редактировать проект, вставляя буферы SOFT для предотвращения расширения логики Например, разработчик может добавить буфер SOFT в комбинаторный выход макрофункции для резвязки двух комбинаторных цепей Разработчик может также включить логическую опцию SOFT Buffer insertion в стили логического синтеза по умолчанию в проект, чтобы компилятор вставлял буферы SOFT автоматически

Примитив TRi

Прототип функции FUNCTION TRI (in, ое) RETURNS (out);

Примитив TRI представляет собой трехстабильный буфер с сигналами входным, выходным и Output Enable (Отпирание выхода) Если Уровень сигнала Output Enable высокий, выход будет управляться входом При низком уровне сигнала Output Enable выход переходит в состояние высокого импеданса, что позволяет использовать 1/0 как входной вывод По умолчанию сигнал Output Enable устанавливается в значение VCC

Если сигнал Output Enable буфера TRI подсоединяется к VCC или логической функции, которая будет минимизировать до тождест-



венной единицы, буфер TRI может быть преобразован в буфер SOFT во время логического синтеза

При использовании буфера TRI нужно соблкздать следующие правила

♦ буфер TRI может управлять только одним выводом BIDIR или BIDIRC Разработчики должны использовать вывод BIDIR или BIDIRC, если после буфера TRI применяется обратная связь Если буфер TRI формирует сигнал на логику, он должен также формировать сигнал для BIDIR или BIDIRC Если он формирует сигнал на вывод BIDIR или BIDIRC, он не может формировать сигнал на какие-либо другие выходы,

♦ если сигнал Output Enable не привязывается к VCC, буфер TRI должен формировать сигнал на вывод OUTPUT OUTPUTC, BIDIR или BIDIRC Внутренние сигналы могут не иметь третьего состояния

Примитивы FLIPFLOP (ждущий мультивибратор) и LATCH (триггер-защелка)

DFF SRFF DFFE SRFFE JKFF TFF JKFFE TFFE LATCH

Примитивы Latch описывают D-триггер (триггер-защелка), управляемый уровнями тактовых сигналов

Когда входной сигнал разрешения D-триггера ENA (Latch Enable) имеет высокий уровень, D-триггер пропускает сигнал от D к Q Если вход ENA имеет низкий уровень, сохраняется состояние Q, несмотря на входной сигнал D

Для устройств, не поддерживающих сигнал Latch Enable, логический синтез генерирует логические уравнения, содержащие D-триггеры с сигналами Latch Enable Эти логические уравнения корректно эмулируют логику, заданную в вашем проекте

Все ждущие мультивибраторы (Flipflop) переходят в рабочее состояние по положительному перепаду сигнала

Примитив LATCH

Прототип функции FUNCTION LATCH (D, ENA) RETURNS (Q),

Входы

Выход

Qo = уровень 0 перед тактовым импульсом

Примитив DFF (D-триггер типа Fhpflop) Прототип функции FUNCTION DFF (D, CLK, CLRN, PRN) RETURNS (Q),

Входы

Выход

CLRN

Запрещенное состояние

Примитив DFFE

Прототип функции FUNCTION DFFE (D, CLK, CLRN, PRN, ENA) RETURNS (Q),

Входы

Выход

CLRN

Illegal

Qo = уровень Q перед тактовым импульсом

Примитив TFF (Триггер Т-типа, Flipflop) Прототип функции- FUNCTION TFF (Т CLK, CLRN, PRN) RETURNS (О),

Входы

Выход

CLRN

Illegal

Toggle

Qo = уровень Q перед тактовым импульсом Примитив TFFE

Прототип функции FUNCTION TFFE (Т, CLK, CLRN, PRN, ENA) RETURNS (Q),

Входы

Выход

CLRN

Illegal

Toggle

Примитив JKFF (Триггер JK-типа, Flipflop) Прототип функции: FUNCTION JKFF (J, K, CLK, CLRN, PRN) RETURNS (Q),

Входы

Выход

CLRN

Illegal

Toggle

Oo = уровечь 0 перед тактовым импульсом

Oo = уровень О перед тактовым имп>лнсом



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 [ 25 ] 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40

© 2000 - 2021 ULTRASONEX-AMFODENT.RU.
Копирование материалов разрешено исключительно при условии цититирования.