Схемотехника / Схемотехника(1) / Laba3_схемотехника
.docФедеральное агентство по образованию РФ
Пермский Государственный Технический Университет
Кафедра АТ
«Проектирование комбинационных схем, программирование ПЛИС и анализ размещения схемы на кристалле»
Вариант
Выполнили: студенты гр. ЭВТ-04
Проверил: ассистент Белоглазов А.А.
Пермь, 2006
Цель работы: освоение проектирования комбинационных схем с привлечением платы лабораторного стенда, анализ размещения схемы устройства на кристалле с использованием редактора конфигурации БИС системы MAX+plusII.
Задание: В данной работе рассмотрим дешифратор для семисегментного индикатора, который, в зависимости от комбинации сигналов на 4 входных линиях, формирует код выборки сегментов на семи выходных линиях. Активным значением сигнала на выходной линии (при котором зажигается сегмент) является уровень "1". Работу выполнить на учебном стенде с динамическим 3-х разрядным 7-сегментным индикатором.
Листинг программы:
TITLE "7-Digit Indicator Decoder";
INCLUDE "d_ind7.inc";
SUBDESIGN decode7
(
di[3..0] : INPUT;
a, b, c, d, e, f, g : OUTPUT;
clk : INPUT;
en[1..3] : OUTPUT;
)
VARIABLE
ind : d_ind7;
BEGIN
ind.clk = clk;
ind.(a2, b2, c2, d2, e2, f2, g2) = B"0000000";
ind.(a3, b3, c3, d3, e3, f3, g3) = B"0000000";
en[1..3] = ind.(en1, en2, en3);
(a, b, c, d, e, f, g) = ind.(a, b, c, d, e, f, g);
TABLE
!di[] => ind.(a1, b1, c1, d1, e1, f1, g1);
H"0" => B"1111110";
H"1" => B"0110000";
H"2" => B"1101101";
H"3" => B"1111001";
H"4" => B"0110011";
H"5" => B"1011011";
H"6" => B"1011111";
H"7" => B"1110000";
H"8" => B"1111111";
H"9" => B"1111011";
H"A" => B"1110111";
H"B" => B"0011111";
H"C" => B"1001110";
H"D" => B"0111101";
H"E" => B"1001111";
H"F" => B"1000111";
END TABLE;
END;
Вывод: Загрузив нашу программу в ПЛИС, мы убедились, что программы действительно реализует дешифратор для семисегментного индикатора.
Индивидуальное задание
Задание: Разработать логическое устройство, реализующее разность двух 4-х разрядных операндов А=А3А2A1A0 и В=В3В2B1B0. Операнд А вводится переключателями Sw4-Sw1, операнд В - переключателями Sw8-Sw5. Результат выводится на светодиоды Led4-Led1 и на 3-ем сегменте 3-х сегментного 7-ми разрядного индикатора. Отрицательный результат выводиться на 2-ом сегменте 3-х сегментного 7-ми разрядного индикатора и на светодиоде Led5.
Листинг программы:
TITLE "7-Digit Indicator Decoder";
INCLUDE "d_ind7.inc";
SUBDESIGN decode8
(
y[3..0] : INPUT;
z[3..0] : INPUT;
a, b, c, d, e, f, g : OUTPUT;
clk : INPUT;
q[3..0] : output;
en[1..3] : OUTPUT;
)
VARIABLE
ind : d_ind7;
BEGIN
ind.clk = clk;
ind.(a1, b1, c1, d1, e1, f1, g1)= B"0000000";
ind.(a2, b2, c2, d2, e2, f2) = B"000000";
en[1..3] = ind.(en1, en2, en3);
(a, b, c, d, e, f, g) = ind.(a, b, c, d, e, f, g);
IF !y<!z THEN ind.g2=vcc;
else ind.g2=gnd;
end if;
!q[]=!y[]-!z[];
TABLE
!q[] => ind.(a3, b3, c3, d3, e3, f3, g3);
H"0" => B"1111110";
H"1" => B"0110000";
H"2" => B"1101101";
H"3" => B"1111001";
H"4" => B"0110011";
H"5" => B"1011011";
H"6" => B"1011111";
H"7" => B"1110000";
H"8" => B"1111111";
H"9" => B"1111011";
H"A" => B"1110111";
H"B" => B"0011111";
H"C" => B"1001110";
H"D" => B"0111101";
H"E" => B"1001111";
H"F" => B"1000111";
END TABLE;
END;
Вывод: По результатам испытаний написанная нами программа на языке AHDL, работает в соответствии с условиями поставленной перед нами задачи.