Булеві оператори, що використовують not

Оператор НЕ є префіксом інвертора. Поведінка оператора НЕ залежить від операнда, на який він впливає.

З оператором НЕ можна використовувати три типи операндів:

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 - найвищий). Операції однакового пріоритету оцінюються зліва направо. За допомогою дужок () можна змінювати порядок обчислень.

Мегафункція - складний або високорівнева будівельний блок, який можна використовувати спільно з примітивами вентилів і тригерів і / або з макрофункції старого типу в файлах проекту.

Altera поставляє бібліотеку мегафункцій, включаючи функції з бібліотеки параметрізуемих модулів (LPM) версії 2.1.0, в директорії \ maxplus2 \ max2lib \ mega_lpm, створеної під час інсталяції.

Бібліотека параметрізуемих функцій (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, створеної під час інсталяції.

Нижче наводиться опис найбільш часто вживаних мегафункцій. Повні відомості по всім мегафункціям можна знайти в системі допомоги (меню Help, команда Megafunctions / LPM).

lpm_and (вентиль І)

Altera рекомендує використовувати примітиви вентилів І чи їх оператори замість lpm_and для більш легкої реалізації і поліпшення часу компіляції. Проте lpm_and можуть бути корисні при необхідності мати параметрізуемих входи.

WITH (LPM_WIDTH, LPM_SIZE)

Прості вентилі lpm_and використовують приблизно одну логічну осередок на вентиль.

MAX + PLUS II пропонує понад 300 макрофункцій.

Імена шинних макрофункцій закінчуються на букву В. Вони функціонально ідентичні з відповідними НЕ шинними макрофункції, але мають згруповані вхідні та / або вихідні висновки.

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

Конвертери Швидкі умножители

Декодери Зсувні регістри

Цифрові Регістри зберігання

Схожі статті