Как известно при нажатии кнопок, при контакте возникает дребезг, и вместо нужного простого перехода из нуля в единицу одной ступенькой возникает сигнал в несколько скачков как показано на рисунке 3.2.1

Рис 3.2.1 Сигнал включения с дребезгом и без дребезга
Антидребезговая защита была реализована в модуле antibounce. Принцип его работы, основан на счетчике и одном триггере защелке. При возникновении дребезга счетчик начинает считать до определенной константы в программе она названа delay т.е. задержка и если по истечении счета на входе по прежнему стоит единица то триггер защелка перещелкивается и возникает переключение, смотри рис 3.2.2.

Рис 3.2.2 Схема антидребезгового устройства
Счетчик реализован с посредством макрофункции Lpm_counter. Встроенная в среду макрофункция Lpm_counter, есть ни что иное, как счетчик с задаваемыми пределами и параметрами, созданная для облегчения процесса разработки подобных устройств.
3.2.1,1 Встроенная макрофункция – счетчик lpm_counter
Двоичный счетчик с возможностью прямого и обратного счета и синхронного и асинхронного сброса. Lpm_counter описывается как переменная в разделе VARIABLE. Форма описания счетчика следующая:
Имя_счетчика : lpm_counter WITH STATES (Параметры счетчика);
Например
COUNTER : lpm_counter WITH (lpm_width=4);
Таблица 3.2.1 Параметры счетчика
| Параметры счетчика | Тип | Обязательный | Описание |
| LPM_WIDTH | Целочисленный | Да | Ширина счетчика(число битов на выходе) |
| LPM_DIRECTION | Строковый | Нет | Устанавливается в прямом “UP” или обратном “DOWN” направлении идет счет, по умолчанию стоит прямой. |
| LPM_MODULUS | Целочисленный | Нет | Установка максимума счета, если параметр не усыновлен то счет не ограничен. |
| LPM_AVALUE | Целочисленный/Строковый | Нет | Ограничивает максимум счета 32 битами во избежания перегрузки счетчика, когда поведение счетчика не определено при переполнении |
| LPM_SVALUE | Целочисленный/Строковый | Нет | Постоянное значение означает что нагрузка включается по переднему фронту clock когда sset или sconst в “1”. Этот параметр должен быть использован если sconst используется |
| LPM_HINT | Строковый | Нет | Позволяет с большой точностью перевести текстовый файл из AHDL в VHDL. По умолчанию не используется. |
| LPM_TYPE | Строковый | Нет | Связывает LPM_имя с VHDL графическим файлом |
| CARRY_CNT_EN | Строковый | Нет | Принимает значения “SMART”, “ON”, “OFF”. При включении lpm_counter функция cnt_en передает сигнал через несущую цепочку. В некоторых случаях, этот параметр используется как параметр установки появления изменения в скорости, но при желании это можно выключить. По умолчанию стоит “SMART”, который сохраняет лучшие отношение между скоростью и размером. |
| LABWIDE_SCLR | Строковый | Нет | Принимает значения “ON”,”OFF” или не используется. По умолчанию стоит “NO”. Он позволяет выключить использование LAB-ширины sclr особенно при использовании устройств на базе FLEX 6000. Уменьшает использование случайных библиотек, и таким образом даёт возможность использовать высшей логики плотнее, когда SCLR не используется в LAB. |
Таблица 3.2.2 Таблица истинности lpm_counter
| Входы | Выходы | Функции | |||||||||
| aclr | aset | aload | clk_en | clock | Sclr | sset | sload | cnt_en | updoun | q[] | |
| 1 | x | x | x | x | x | x | x | x | x | 000… |
|
| 0 | 1 | x | x | x | x | x | x | x | x | 111… | |
| 0 | 1 | x | x | x | x | x | x | x | x | LPM_AVALUE | Асинхр. установка значений |
| 0 | 0 | 1 | x | x | x | x | x | x | x | data[] | Асинхр. загрузка данных |
| 0 | 0 | 0 | 0 | x | x | x | x | x | x | q[] | Текущее значение |
| 0 | 0 | 0 | 1 | ò | 1 | x | x | x | x | 000… | Синхронный сброс |
| 0 | 0 | 0 | 1 | ò | 0 | 1 | x | x | x | 111… | Синхронная установка |
| 0 | 0 | 0 | 1 | ò | 0 | 1 | x | x | x | LPM_SVALUE | Синхронная установка значении для LPM_SVALUE |
| 0 | 0 | 0 | 1 | ò | 0 | 0 | 0 | 0 | 0 | q[] | Текущее значение |
| 0 | 0 | 0 | 1 | ò | 0 | 0 | 1 | x | x | data[] | Синхронная загрузка данных |
| 0 | 0 | 0 | 1 | ò | 0 | 0 | 0 | 1 | 1 | q[]+1 | Счет в прямом направл. |
| 0 | 0 | 0 | 1 | ò | 0 | 0 | 0 | 1 | 0 | q[]-1 | Счет в обратном направл. |
Дата: 2019-12-22, просмотров: 351.