close

Вход

Забыли?

вход по аккаунту

?

Отчет лр 3

код для вставкиСкачать
Министерство образования и науки РФ
РГРТУ
Кафедра АСУ
Отчет по лабораторной работе №3:
«Примитивы триггеров и цифровые устройства на их основе»
Выполнила студентка
гр. 936 Васильева А. О.
Проверил:
Холопов С.И.
Рязань 2012
Примитив D-триггера dffe описывается следующим прототипом
функции:
FUNCTION DFFE (D, CLK, CLRN, PRN, ENA)
RETURNS(Q).
Таблица истинности данного триггера имеет вид:
Входы
Выходы
CLRN
PRN
ENA
D
CLK
Q
L
H
X
X
X
L
H
L
X
X
X
H
L
L
X
X
X
Illegal
H
H
L
X
X
Qo
H
H
H
L
L
H
H
H
H
H
H
H
X
X
L
Qo
Программа именованного экземпляра D-триггера может быть записана
следующим образом:
TITLE "D-TRIGGER";
SUBDESIGN DTR
(
data, clock : INPUT;
out : OUTPUT;
)
VARIABLE
a_trig : dffe;
BEGIN
a_trig.d=data;
a_trig.clk=clock;
a_trig.clrn=vcc;
a_trig.prn=vcc;
a_trig.ena=vcc;
out=a_trig.q;
END;
Результат симуляции:
Указанный примитив можно использовать при построении более
сложных цифровых структур, например, регистров. При построении 4-х
разрядного регистра в программе следует предусмотреть использование
четырех однотипных триггеров, причем включить их следует
последовательно (выход предыдущего триггера должен быть подключен к
входу следующего).
Программа, реализующая указанную структуру, будет иметь приведенный
ниже вид.
TITLE "REGD-TRIGGER***";
SUBDESIGN regdtr
(
data, clock, resetn, setn, oe : INPUT;
a, b, c, d : OUTPUT;
)
VARIABLE
dt1, dt2, dt3, dt4 : dffe;
BEGIN
dt1.d=data # d;
dt1.clk=clock;
dt1.clrn=resetn;
dt1.prn=setn;
dt1.ena=oe;
a=dt1.q;
dt2.d=a;
dt2.clk=clock;
dt2.clrn=resetn;
dt2.prn=setn;
dt2.ena=oe;
b=dt2.q;
dt3.d=b;
dt3.clk=clock;
dt3.clrn=resetn;
dt3.prn=setn;
dt3.ena=oe;
c=dt3.q;
dt4.d=c;
dt4.clk=clock;
dt4.clrn=resetn;
dt4.prn=setn;
dt4.ena=oe;
d=dt4.q;
END;
Временная диаграмма:
Задание примитивов триггеров может осуществляться и без их
объявления. Рассмотрим пример программной реализации Т-триггера,
использующей указанный метод. Примитив Т-триггера описывается
следующим образом.
Примитив TFF (Триггер Т-типа, Flipflop)
Прототип функции: FUNCTION TFF (T, CLK, CLRN, PRN)
RETURNS(Q);
Входы
CLK
X
X
X
PRN
CLRN
T
L
H
X
H
L
X
L
L
X
H
H
L
H
H
H
H
H
L
X
Toggle – переключательный (счетный) режим.
Программа для описания Т-триггера без его объявления имеет вид:
TITLE "T-trigger";
SUBDESIGN ttr
(
clock : INPUT;
outa : OUTPUT;
)
BEGIN
outa=tff(vcc,clock,vcc,vcc);
END;
Временная диаграмма:
Выходы
Q
H
L
Illegal
Qo
Toggle
Qo
На основе нескольких Т-триггеров можно построить двоичный
счетчик. Программа для его реализации имеет вид:
SUBDESIGN Sttr
(
clock, setn, resetn : INPUT;
tt1, tt2, tt3, tt4: OUTPUT;
)
BEGIN
tt1=tff(vcc,clock,resetn,setn);
tt2=tff(tt1,clock,resetn,setn);
tt3=tff(tt1&tt2,clock,resetn,setn);
tt4=tff(tt1&tt2&tt3,clock,resetn,setn);
END;
Сформируем счетчик – делитель на 14
Программа, полученная на основе модификации предыдущей, будет
иметь вид:
SUBDESIGN sttr
(
clock, setn, resetn : INPUT;
tt1, tt2, tt3, tt4, R : OUTPUT;
)
BEGIN
tt1=tff(vcc,clock,R,setn);
tt2=tff(tt1,clock,R,setn);
tt3=tff(tt1&tt2,clock,R,setn);
tt4=tff(tt1&tt2&tt3,clock,R,setn);
R=!(!tt1& tt2 & tt3 & tt4);
END;
Временная диаграмма:
Дополним структуру счетчика схемами дешифрации. Выделим
состояния счетчика: 0, 5, 8, 12. В этом случае изменения в последней
программе будут следующими.
SUBDESIGN sttr
(
clock, setn, resetn : INPUT;
tt1, tt2, tt3, tt4,t1,t2,t3,t4: OUTPUT;
)
BEGIN
tt1=tff(vcc,clock,resetn,setn);
tt2=tff(tt1,clock,resetn,setn);
tt3=tff(tt1 & tt2,clock,resetn,setn);
tt4=tff(tt1 & tt2 & tt3,clock,resetn,setn);
t1=!tt1 & !tt2 & !tt3 & !tt4;
t2=tt1 & !tt2 & tt3 & !tt4;
t3=!tt1 & !tt2 & !tt3 & tt4;
t4=!tt1 & !tt2 & tt3 & tt4;
END;
Временная диаграмма:
Если в программу внести дополнительные изменения, можно
сформировать стробы от первого импульса до каждого из следующих
импульсов.
SUBDESIGN sttr
(
clock, setn, resetn : INPUT;
tt1, tt2, tt3, tt4,t1,t2,t3,t4, st1, st2, st3: OUTPUT;
)
BEGIN
tt1=tff(vcc,clock,resetn,setn);
tt2=tff(tt1,clock,resetn,setn);
tt3=tff(tt1 & tt2,clock,resetn,setn);
tt4=tff(tt1 & tt2 & tt3,clock,resetn,setn);
t1=!tt1 & !tt2 & !tt3 & !tt4;
t2=tt1 & !tt2 & tt3 & !tt4;
t3=!tt1 & !tt2 & !tt3 & tt4;
t4=!tt1 & !tt2 & tt3 & tt4;
st1=srff(t1,t2,clock,vcc,vcc);
st2=srff(t1,t3,clock,vcc,vcc);
st3=srff(t1,t4,clock,vcc,vcc);
END;
Временная диаграмма:
Вывод: мы ознакомились с принципами работы примитивов в программе
Quartus II.
Документ
Категория
Компьютеры, Программирование
Просмотров
15
Размер файла
222 Кб
Теги
отчет_лр_3
1/--страниц
Пожаловаться на содержимое документа