3.2. Регистр-защелка (lpm_latch)

Altera рекомендует применять модуль lpm_latch только в случае необходимости использования порта aset. В остальных случаях следует применять примитив latch, обеспечивающий более простую реализацию устройства и уменьшающий время компиляции проекта.

Прототип модуля lpm_latch:

function lpm_latch(data[lpm_width-1..0], gate, aclr, aset, aconst)

with (lpm_width, lpm_avalue)

returns (q[lpm_width-1..0]);

Порт aconst помещен в список для совместимости с предыдущими версиями САПР и в новых проектах не должен подключаться.

Входные порты модуля lpm_latch:

Имя порта

Необходимость

Описание

Примечание

data[]

Нет

Входные данные для защелкивания

Разрядность определяется параметром lpm_width. Если не подключен, то, по крайней мере, один из следующих портов должен быть подключен: aset, aclr

gate

Да

Вход сигнала защелкивания. Высокий уровень – регистр "прозрачен"; низкий – данные защелкнуты

aclr

Нет

Вход асинхронного сброса

Значение по умолчанию 0. Устанавливает на всех выходах защелки низкий уровень. Если подключены порты aset и aclr и оба активизированы, то превалирует aclr

aset

Нет

Вход асинхронной установки

Значение по умолчанию 0. Устанавливает на выходах q значения, определенные параметром lpm_avalue, если он инициализирован, и значения 1 в противном случае. Если подключены порты aset и aclr и оба активизированы, то превалирует aclr

Выходные порты модуля lpm_latch:

Имя порта

Необходимость

Описание

Примечание

q[]

Да

Выходы регистра-защелки

Разрядность определяется параметром lpm_width

Параметры модуля lpm_latch:

НЕ нашли? Не то? Что вы ищете?

Параметр

Тип

Необходимость

Описание

lpm_width

Число

Да

Разрядность портов data[] и q[]

lpm_avalue

Число

Нет

Числовая константа, которая загружается в регистр, когда на вход aset подан высокий уровень. Если параметр опущен, то загружаются единицы. Разрядность параметра ограничена 32 битами. Altera рекомендует в AHDL проектах определять эту величину в виде десятичного числа

lpm_hint

Строка

Нет

Для применения в проектах на языке VHDL

lpm_type

Строка

Нет

Для применения в проектах на языке VHDL

Таблица истинности модуля lpm_latch:

Входы

Выходы

aclr

aset

gate

q[lpm_width-1..0]

1

x

x

0

1

x

or lpm_avalue

0

0

1

data[lpm_width-1..0]

0

0

0

q[lpm_width-1..0]

Потребляемые модулем lpm_latch ресурсы: одна логическая ячейка на разряд.

3.3. Двунаправленный буфер с тремя состояниями (lpm_bustri)

Altera рекомендует применять примитив tri вместо lpm_bustri для обеспечения более простой реализации проекта и снижения времени компиляции. Однако lpm_bustri может оказаться полезным при управлении однонаправленными и двунаправленными шинами ввода/вывода.

Прототип модуля lpm_bustri:

function lpm_bustri(data[lpm_width-1..0], enabletr, enabledt)

with (lpm_width)

returns (tridata[lpm_width-1..0], result[lpm_width-1..0]);

Входные порты модуля lpm_bustri:

Имя порта

Необходимость

Описание

Примечание

data[]

Да

Входные данные для шины tridata[]

Разрядность определяется параметром lpm_width. Должна быть подключена или шина data[], или шина result[]. Могут быть подключены обе шины

enabletr

Нет

Высокий уровень обеспечивает прохождение сигнала с шины tridata[] на шину result[]

Требуется, если шина result[] подключена.

Значение по умолчанию 0

enabledt

Нет

Высокий уровень обеспечивает прохождение сигнала с шины data[] на шину tridata[]

Требуется, если шина data[] подключена.

Значение по умолчанию 0

Выходные порты модуля lpm_bustri:

Имя порта

Необходимость

Описание

Примечание

result[]

Нет

Выходы шины tridata[]

Разрядность определяется параметром lpm_width. Должна быть подключена или шина data[], или шина result[]. Могут быть подключены обе шины

Двунаправленные порты модуля lpm_bustri:

Имя порта

Необходимость

Описание

Примечание

tridata[]

Да

Выводы двунаправленной шины

Разрядность определяется параметром lpm_width

Параметры модуля lpm_bustri:

Параметр

Тип

Необхоимость

Описание

lpm_width

Число

Да

Разрядность портов data[], result[] и tridata[]

lpm_hint

Строка

Нет

Для применения в проектах на языке VHDL

lpm_type

Строка

Нет

Для применения в проектах на языке VHDL

1. Подключены входная шина data[lpm_width-1..0], входной порт enabledt и выходная шина tridata[lpm_width-1..0].

2. Подключены входная шина tridata[lpm_width-1..0], входной порт enabletr и выходная шина result[lpm_width-1..0].

3. Подключены все порты: входная шина data[lpm_width-1..0], входной порт enabledt, входной порт enabletr, выходная шина result[lpm_width-1..0] и двунаправленная шина tridata[lpm_width-1..0].

Таблицы истинности модуля lpm_bustri:

Вход

Выход

enabletr

result[lpm_width-1..0]

0

Z

1

tridata[lpm_width-1..0]

Вход

Выход

enabledt

tridata[lpm_width-1..0]

0

Z

1

data[lpm_width-1..0]

Входы

Двунаправленная шина

Выход

enabledt

enabletr

tridata[lpm_width-1..0]

result[lpm_width-1..0]

0

0

Z (вход)

Z

0

1

Z (вход)

tridata[lpm_width-1..0]

1

0

data[lpm_width-1..0]

Z

1

1

data[lpm_width-1..0]

data[lpm_width-1..0]

Потребляемые модулем lpm_bustri ресурсы: одна ячейка ввода/вывода или одна логическая ячейка на разряд.

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8