Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Схемотехника / Схемотехника(1) / Laba3_схемотехника

.doc
Скачиваний:
24
Добавлен:
10.12.2013
Размер:
41.98 Кб
Скачать

Федеральное агентство по образованию РФ

Пермский Государственный Технический Университет

Кафедра АТ

«Проектирование комбинационных схем, программирование ПЛИС и анализ размещения схемы на кристалле»

Вариант

Выполнили: студенты гр. ЭВТ-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, работает в соответствии с условиями поставленной перед нами задачи.

Соседние файлы в папке Схемотехника(1)