- •Аннотация
- •1.1. Прототип модуля
- •1.2. Структура иерархического проекта
- •1.3. Иерархическое описание накапливающего сумматора.
- •Variable tr[8..1] : dff;
- •Variable tr[9..1] : dff;
- •Include "rg_a.Inc";
- •Include "add.Inc";
- •Include "rg_out.Inc";
- •Variable
- •2. Проектирование схем двоично-десятичной арифметики.
- •2.1. Двоично-десятичное представление схем.
- •2.2. Двоично-десятичный сумматор
- •Variable
- •2.2. Двоично-десятичный вычитатель
- •Variable
- •2.3. Двоично-десятичные счетчики
- •3.1. Способы задания абстрактных автоматов.
- •3.2. Описание работы автоматов на языке ahdl
- •Init, Working, Waiting, Resuming, Ending.
- •Variable
- •3.3. Проектирование счетчиков на базе абстрактных автоматов
- •Variable
- •4. Проектирование типовых схемотехнических узлов
- •Дешифратора
- •Считается, что одновременно может быть нажата только одна кнопка клавиатуры.
- •Variable
- •4.2. Схемы вычисления функций
- •4.3. Счетчики расхода, пробега
- •Variable
- •Variable
- •Include "t210.Inc";
- •Variable
- •4.4. Узлы обработки сигналов локаторов
- •Include "t210.Inc";
- •Variable
- •4.5. Часы, счетчики времени, календари
- •Variable
- •Variable
- •4.6. Частотомеры
- •Variable
- •4.7. Умножители
- •Input_b_is_constant)
- •5 Проектирование схем с магистральным вводом выводом данных
- •5.1 Правила работы с магистралью, арбитр.
- •Variable
- •5.2 Подготовка временных диаграмм.
- •5.3. Пример сумматора с магистральным вводом-выводом данных.
- •Variable
Variable
FSM : MACHINE WITH STATES
(INIT,WORKING,WAITING,RUMING,ENDING);
BEGIN
FSM.(clk,RESET)=(CLK,ABAP);
CASE FSM IS
WHEN INIT=>
IF START==0
THEN FSM=INIT;
ELSE FSM=WORKING;
END IF;
WHEN WORKING=> Work=VCC;
IF START==0
THEN FSM=WAITING;
ELSE FSM=WORKING;
END IF;
WHEN WAITING=> Work=VCC; End_work=VCC;
IF START==0
THEN FSM=ENDING;
ELSE FSM=RUMING;
END IF;
WHEN RUMING=>
IF START==0
THEN FSM=WAITING;
ELSE FSM=WORKING;
END IF;
WHEN ENDING => End_work=VCC;
FSM=WAITING;
END CASE;
END;
В результате моделирования автомата МУРА получается временная диаграмма работы автомата, представленная на рис 3.2.1.
Рис 3.2.1. Временная диаграмма работы автомата МУРА.
3.3. Проектирование счетчиков на базе абстрактных автоматов
С помощью абстрактных автоматов удобно описывать работу счетчиков. Для этого достаточно описать автомат МУРА, у которого число состояний определяется диапазоном работы счетчика. Что касается выходных сигналов автомата - то они определяются типом счетчика (прямой, рекурсивный, двоично-десятичный, работающий в диапазоне и т.д.). Разделение номеров состояний и соответствующих им выдаваемых сигналов очень сильно упрощает описание работы «хитрых» счетчиков.
Рассмотрим пример двоично-десятичного счетчика, считающего в диапазоне от 8 до 15.
Счетчик имеет входной тактовый сигнал clk и выходной двоично-десятичный сигнал OUT[4..0].
Соответствующий счетчику автомат имеет 8 состояний, каждому из которых поставлено в соответствие выдаваемое двоично-десятичное число.
Описание такого автомата-счетчика на языке AHDL имеет следующий вид:
SUBDESIGN C8_15
( clk : INPUT;
OUT[4..0] : OUTPUT;)
Variable
FSM : MACHINE WITH STATES
(S8,S9,S10,S11,S12,S13,S14,S15);
BEGIN
FSM.clk=CLK;
TABLE
FSM => OUT[], FSM;
S8 => B"01000", S9;
S9 => B"01001", S10;
S10 => B"10000", S11;
S11 => B"10001", S12;
S12 => B"10010", S13;
S13 => B"10011", S14;
S14 => B"10100", S15;
S15 => B"10101", S8;
END TABLE;
END;
В процессе своей работы автомат последовательно, по кругу, ходит по циклу состояний S8->S9->S10->S11->S12->S13->S14->S15->S8->S9…
Для каждого состояния определён свой, индивидуально выдаваемый код. Поэтому для изменения работы счётчика достаточно перекодировать таблицу выдаваемых значений.
В результате моделирования вышеописанного счётчика получается временная диаграмма, приведённая на рисунке 3.3.1.
Рис 3.3.1. Временная диаграмма работы двоично-десятичного счетчика.
4. Проектирование типовых схемотехнических узлов
Рассмотрим стандартные подходы при проектировании радиоэлектронных устройств, примеры которых встречаются в курсовых работах.
4.1. Матричные дешифраторы клавиатуры
Матричные дешифраторы клавиатуры позволяют организовать ввод данных с различных клавиатур, используя минимальное количество шин.
Типовая структурная схема включения дешифратора и клавиатуры приведена на рис 4.1.1.
Матрица
клавиатуры
А4 А8
А3 А7
А6 А2
А5 А1