
- •1. Плис. Основные понятия, области использования.
- •2. Комбинаторные схемы.
- •3. Логические элементы и, или, не и т.Д. И схемы на их основе
- •4. Шифратор и дешифратор. Реализация на логических элементах.
- •5. Триггеры.
- •Типы триггеров rs-триггеры rs-триггер асинхронный
- •Rs-триггер синхронный
- •Rs-триггер двухступенчатый со сложной логикой
- •D-триггеры
- •D-триггер синхронный
- •6. Схемы с элементами памяти.
- •7. Синхронные и асинхронные входы триггеров.
- •11. Описание логических выражений. Реализация в виде схем и текстового описания.
- •1.3.9 Булевы выражения
- •1.3.9.1 Логические операторы
- •1.3.9.1.1 Булевы операторы, использующие not
- •1.3.9.1.2 Булевы операторы, использующие and, nand, or, nor, xor, и xnor
- •1.3.9.4 Приоритеты булевых операторов и компараторов
- •1.3.10 Логические функции
- •1.3.10.1 Мегафункции/lpm
- •1.3.10.2 Макрофункции
- •14. Реализация счетчика на языке ahdl.
- •17. Процесс создания и отладки программ для плис.
1.3.10 Логические функции
1.3.10.1 Мегафункции/lpm
MAX+PLUS II предлагает большое разнообразие мегафункций, включаяLPMфункции а такжепараметризуемыефункции. Ниже приводится список мегафункций.
Вентили
| |
lpm_and |
lpm_inv |
lpm_bustri |
lpm_mux |
lpm_clshift |
lpm_or |
lpm_constant |
lpm_xor |
lpm_decode |
mux |
busmux |
|
Арифметические компоненты
| |
lpm_abs |
lpm_counter |
lpm_add_sub |
lpm_mult |
lpm_compare |
|
Запоминающие компоненты
| |
csfifo |
lpm_ram_dq |
csdpram |
lpm_ram_io |
lpm_ff |
lpm_rom |
lpm_latch |
lpm_dff |
lpm_shiftreg |
lpm_tff |
Другие функции
| |
clklock |
pll |
ntsc |
|
Функции Мегаядра
| |
a16450 |
a8255 |
a6402 |
fft |
a6850 |
rgb2ycrcb |
a8237 |
ycrcb2rgb |
a8251 |
|
Мегафункция - сложный или высокоуровневый строительный блок, который можно использовать совместно с примитивами вентилей и триггеров и/или с макрофункциями старого типа в файлах проекта.
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])
Порты :
ВХОДЫ
Имя порта |
Необходим |
Описание |
Комментарии |
data[][] |
Да |
Вход данных в вентиль И |
Размер порта LPM_SIZE x LPM_WIDTH |
ВЫХОДЫ
Имя порта |
Необходим |
Описание |
Комментарии |
result[] |
Да |
Побитовое И. |
Размер порта LPM_WIDTH. |
Параметры:
Параметр |
Тип |
Необходим |
Описание |
LPM_WIDTH |
Целый |
Да |
Ширина портов data[][] и result[]. Количество AND вентилей. |
LPM_SIZE |
Целый |
Да |
Количество входов в каждый AND вентиль. Количество входных шин. |
Каждый вентиль И имеет следующую функцию:
Входы |
Выходы |
data[LPM_SIZE-1]_[LPM_WIDTH-1] |
result[LPM_WIDTH-1] |
0XXX... |
0 |
X0XX... |
0 |
XX0X... |
0 |
... |
... |
1111... |
1 |
Используемый ресурс:
Простые вентили lpm_and используют приблизительно одну логическую ячейку на вентиль.