- •Аннотация
- •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
RG[3..0],RP: DFF;
BEGIN
RG[].CLK=CLK&B;
RP.CLK=!CLK;
RG[].CLRN=RN;
CASE RG[].Q IS
WHEN 9 => RG[].D=0; RP.D=B"1";
WHEN OTHERS => RG[].D=RG[].Q+1; RP.D=B"0";
END CASE;
Q[] = RG[].Q;
P=RP.Q;
END;
Счетчик имеет следующие входные и выходные сигналы:
CLK – тактовый вход;
RN - вход сброса по «0»;
B - вход переноса из младшей тетрады;
P - выход переноса в старшую тетраду;
Q[3..0]- выход счетчика.
Счётчик работает по классической схеме. Когда он досчитывает до кода «9» в оператореCASE организуется обнуление счетчика на следующем такте. В том же операторе организуется появление на один такт сигнала логической единицы на выходе переноса старшего разряда, который формируется на выходе триггера переноса RP.
Основной счетчика расхода сформирован на базе трех двоично-десятичных счетчиков T210. Данный проект имеет иерархическую организацию. Его компонент - модуль T210 имеет соответствующий INCLUDE файл "T210.INC".
Ниже представлено описание счётчика расхода
Include "t210.Inc";
SUBDESIGN D3
( CLK :INPUT;
Q0[3..0],Q1[3..0],Q2[3..0],P:OUTPUT;
)
Variable
T210A,T210B,T210C: T210;
BEGIN
T210A.CLK=CLK;
T210B.CLK=CLK;
T210C.CLK=CLK;
T210A.RN=VCC;
T210B.RN=VCC;
T210C.RN=VCC;
Q0[]=T210A.Q[];
Q1[]=T210B.Q[];
Q2[]=T210C.Q[];
T210A.B=VCC;
T210B.B=T210A.P;
T210C.B=T210B.P & T210A.P;
P=T210B.P;
END;
Счетчик расхода имеет следующие входные и выходные сигналы:
CLK – тактовый вход;
P - контрольный выход переноса;
Q0[3..0]- выход младшей тетрады счетчика;
Q1[3..0]- выход средней тетрады счетчика;
Q2[3..0]- выход старшей тетрады счетчика;
В представленном описании модули T210 введены как переменные, имеющие имена T210A,T210B,T210C. Соответствующими уравнениями организована синхронная работа трёх двоично-десятичных счётчиков T210. Для этого в проект введены цепи согласования переноса между младшими и старшими тетрадами.
Общее схема счетчика расхода, построенная на основе вышеописанных модулей представлена на рис 4.3.2. А её временная диаграмма работы на рис 4.3.3.
Рис 4.3.2.Общая схема счетчика расхода.
Схема счётчика расхода имеет следующие входные и выходные сигналы
B[3..0] - код дозы;
C - входной импульс отсчёта;
CLC - тактовый сигнал опорной временной сетки.
CR[3..0] – выход счетчика дозы (служебный сигнал);
QS – выход триггера управления (служебный сигнал);
Q0[3..0] - выход младшей тетрады счетчика;
Q1[3..0] - выход средней тетрады счетчика;
Q2[3..0] - выход старшей тетрады счетчика;
QS – выход триггера управления.
При поступления сигнала входного импульса отсчёт C, в управляющий триггер DFF записывается код «1», который открывает проход тактовых импульсов с входа CLC на вход счётчика дозы T210 и вход главного счётчика d3.
Как только счётчик дозы отсчитает количество импульсов равное коду , на выходе компаратора comp3 появиться сигнал логического «0», который сбросит управляющий триггер в состояние логического «0» и тем самым прекратит процесс счёта вплоть до появления очередного импульса на входе импульсов отсчёта C.
Таким образом, значение главного счётчика d3 будет последовательно увеличиваться квантами величиной, определяемой кодом B[3..0].
Рис 4.3.3. Временная диаграмма работы счетчика расхода,
На временной диаграмме видно, что значения счётчика дозы, выдаваемое на выходы Q0[3..0], Q1[3..0], Q2[3..0] последовательно увеличиваются на «7», последовательно принимая значения 0, 7, 14, 21 и т.д.