Добавил:
t.me Установите расширение 'SyncShare' для решения тестов в LMS (Moodle): https://syncshare.naloaty.me/ . На всякий лучше отключить блокировщик рекламы с ним. || Как пользоваться ChatGPT в России: https://habr.com/ru/articles/704600/ || Также можно с VPNом заходить в bing.com через Edge браузер и общаться с Microsoft Bing Chat, но в последнее время они форсят Copilot и он мне меньше нравится. || Студент-заочник ГУАП, группа Z9411. Ещё учусь на 5-ом курсе 'Прикладной информатики' (09.03.03). || Если мой материал вам помог - можете написать мне 'Спасибо', мне будет очень приятно :) Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
z9411_КафкаРС_ЭБВСиС_лаб.docx
Скачиваний:
16
Добавлен:
18.05.2022
Размер:
1.24 Mб
Скачать

Санкт-Петербург 2021

Цель работы: изучение методов создания и использования модулей цифровых

устройств.

Ход работы:

  1. Написать программу для синтеза счетчика:

SUBDESIGN ahdlcnt

(

clock, load, ena, clr, d[7..0] : INPUT;

q[7..0] : OUTPUT;

)

VARIABLE

count[7..0] : DFF;

BEGIN

count[ ].clk = clock;

count[ ].clrn = !clr;

IF load THEN

count[ ].d = d[ ];

ELSIF ena THEN

count[ ].d = count[ ].q + 1;

ELSE

count[ ].d = count[ ].q;

END IF;

q[ ] = count[ ].q;

END;

  1. На основе программы из задания 1 реализовать делитель частоты на 211:

SUBDESIGN delitel

(

clock, load, ena, clrn, prn, d[7..0] : INPUT;

q[7..0], qt, qv, s : OUTPUT;

)

VARIABLE

count[7..0] : DFF;

BEGIN

count[].clk = clock;

count[].clrn = qt;

IF load THEN

count[].d = d[];

ELSIF ena THEN

count[].d = count[].q + 1;

ELSE

count[].d = count[].q;

END IF;

q[] = count[].q;

--D210 = B11010010

s = q[7] & q[6] & !q[5] & q[4] & !q[3] & !q[2] & q[1] & !q[0];

qt = !dff(s,!clock, clrn, prn);

qv = count[7].q;

END;

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

SUBDESIGN cntflg

(

clock, load, ena, dr, s, d[7..0] : INPUT;

q[7..0], a, flg : OUTPUT;

)

VARIABLE

count[7..0] : DFF;

b[7..0] : node;

dt : DFF;

BEGIN

count[ ].clk = clock;

count[ ].clrn = dr;

IF load THEN

count[ ].d = d[ ];

ELSIF ena THEN

count[ ].d = count[ ].q + 1;

ELSE

count[ ].d = count[ ].q;

END IF;

q[ ] = count[ ].q;

b[ ] = count[ ].q;

a= !b7 & !b6 & !b5 & !b4 & b3 & !b2 & !b1 & b0;

flg = dt.q;

dt.d = VCC;

dt.clk = VCC;

dt.prn = s;

dt.clrn = !a;

END;

Вывод: Мы познакомились с особенностями использования модулей и цифровых автоматов и устройств на их основе в Quartus II в процессе синтеза цифровых устройств на программируемых логических интегральных схемах (ПЛИС).