Помощь в написании студенческих работ
Антистрессовый сервис

Разработка и отладка программы на языке AHDL

РефератПомощь в написанииУзнать стоимостьмоей работы

Длительность упругих колебаний ключей зависит от их конструкции, обычно она лежит в диапазоне 1…10 мс. Такой сигнал нельзя вводить в цифровое устройство, т.к. он может создать множество ложных переключений. Проверим работоспособность фильтра в среде MAX+PLUS II. Для этого построим временные диаграммы его импульсной (рисунок 14) и переходной (рисунок 15) характеристик. Семисегментный индикатор… Читать ещё >

Разработка и отладка программы на языке AHDL (реферат, курсовая, диплом, контрольная)

На рисунке 11, к проекту фильтра plis высоких частот подключаются модули: pkdk, reg, filter, dkabs, btn, 7seg. Опишем программную реализацию каждого из них.

(pkdk) — преобразователь работает таким образом: оценивается старший разряд, если он отрицательный, то знаковая часть остается, а остальная часть числа инвертируется, а ко всему числу прибавляется 1, в противном случае число записывается также.

IF in[width -1] THEN.

out[] = (in[width-1], !in[width -2.0])+1; - антидребезговое устройство.

(btn).

Ввод логических сигналов от механических ключей — одно из типовых действий, позволяющее оператору воздействовать на цифровое устройство. Механические ключи (кнопки) имеют упругость, их коммутация — сложный процесс. После первого соударения контактов происходит ряд упругих отскоков, называемых дребезгом контактов, поэтому вместо однократного перепада напряжения ключи создают целую серию импульсов.

Длительность упругих колебаний ключей зависит от их конструкции, обычно она лежит в диапазоне 1…10 мс. Такой сигнал нельзя вводить в цифровое устройство, т.к. он может создать множество ложных переключений [4, стр. 117].

Для получения «очищенного» от дребезга контактов сигнала принимают специальные меры — программные или схемные. Программные методы вводят паузу между каждым нажатием ключа и использованием формируемого ключом сигнала. В схемных методах борьбы с дребезгом контактов используются свойства триггеров. С помощью триггеров выходное напряжение ключа очищается от паразитных колебаний и превращается в стандартный логический сигнал. При изменении состояния ключа возникают упругие отскоки от контактов. Первое же соударение приводит триггер в соответствующее состояние, а при отскоке ключа, когда он находится в воздухе, оба входа триггера получают пассивные сигналы логической единицы (высокие напряжения от цепочек «источник-резистор»), т. е. триггер попадает в режим хранения уже установленного правильного состояния. [3, стр. 118].

Избавиться от дребезга кнопки можно, применяя следующую схему, изображенную на рисунке 12:

Антидребезговая схема. 5].

Рисунок 12. Антидребезговая схема. 5].

Сигнал с дребезгом, поступающий от кнопки на инвертор DD1 (рисунок 13). Далее поступает с выхода инвертора на тактовый вход триггера DD2, одновременно на информационный вход подается логическая единица (VCC), и последующее изменение сигнала на тактовом входе не приведет к изменению состояния триггера. На выходе DD2 получаем единичный импульс, который после некоторой задержки сбрасывает триггер, после чего формируется импульс astart, по длительности превосходящий время дребезга кнопки. Затем astart поступает на тактовый вход триггера DD3, на информационный вход так же, как и на предыдущий триггер, подается VCC. На выходе DD3 формируется единица, которая поступает последовательно на информационный вход триггера DD4, к тактовому входу которого подключается сигнал синхронизации clk. И на выходе снова получаем единицу, которая по цепи ОС попадает на инвертор DD5 и затем сбрасывает DD3. Синхронизаторы одиночных импульсов вырабатывают под воздействием асинхронного входного сигнала импульс, принадлежащий тактовой последовательности ТИ. Такой импульс может понадобиться для запуска устройства, реализации пошагового режима его работы и т. д. Привязка одиночного импульса к тактовой системе обязательна для правильного его восприятия синхронными цифровыми устройствами. При реализации синхронизаторов следует организовать следующие процессы: разрешить прохождение очередного целого импульса ТИ на вход схемы и затем снять это разрешение после прохождения всего одного импульса [4].

Рисунок 13. Формирование сигнала без дребезга. 5].

(reg8, reg16) — параллельные регистры на основе reg.

tr[width-1.0]: dffe;

BEGIN.

tr[]. (clk, clrn, ena)=(clk,!reset, ce);

tr[]. d = data[];

out[] = tr[]. q;

(7seg) -семисегментный индикатор. Преобразует входные 4-разрядные данные в 7-разрядные в выходные. Программно реализуется с помощью таблицы истинности.

TABLE.

i[3.0]=>a, b, с, d, e, f, g;

(filtr) реализован на основе библиотечной функции lpm_mult в соответствии с транспонированной формой II:

LPM_WIDTHA = widthx, разрядность данных, пoступающих на вход А.

LPM_WIDTHB = maxwkb, разрядность данных, пoступающих на вход В.

LPM_WIDTHP = widthp — ska1, разрядность результата умножения.

LPM_WIDTHS = widths, разрядность результата суммирования.

LPM_REPRESENTATION = «SIGNED», работает со знаковыми или числами по модулю.

LPM_PIPELINE = 2, вeличина задержки.

INPUT_A_IS_CONSTANT = «NO», на вход, А не подается константа.

INPUT_B_IS_CONSTANT = «YES», на вход В подается константа.

USE_EAB = «OFF», порт ЕАВ не используется.

MAXIMIZE_SPEED = 6 максимальная скoрость вычисления Затем пoдаются управляющие сигналы. Указывается, какие данные подаются на вход того или иного блока. Согласно транспонированной форме фильтра вхoдные данные умножаются на коэффициенты b1- b4.

blockx*.dataa[] = datax[]; на вход данных, А блока* подаются входные данные.

blockх*.datаb[] = kb*;на вход В подается константа коэффициент b*.

Согласно правой части транспонированной формы выходные данные умножаются на коэффициенты а1. Коэффициент а1 используется для сдвига вправо.

blockу*.dataa[] = datay[]; на вход данных, А блока* подаются выхoдные данные.

blocky*.datab[] = ka*;на вход В пoдается константа коэффициент а*.

(dkabs) модуль дополнительного кода. Оценивается старший разряд, если он отрицательный, то число инвертируется, и прибавляется 1.

if data[width-1] then out[] = (!data[width-1.0])+1;

else out[] = data[];

Проверим работоспособность фильтра в среде MAX+PLUS II. Для этого построим временные диаграммы его импульсной (рисунок 14) и переходной (рисунок 15) характеристик.

Переходная характеристика фильтра.

Рисунок 14. Переходная характеристика фильтра.

Импульсная характеристика фильтра.

Рисунок 15. Импульсная характеристика фильтра.

На построенных временных диаграммах изображены сигналы управления clk, sync, готовности данных, f_dis — входа антидребезговой схемы, ha — hg, la — lg сигналы с выхода семисегментного преобразователя, а также входные и выходные данные.

Показать весь текст
Заполнить форму текущей работой