Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Схематехника ЭВМ. Лабораторный практикум.docx
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
1.18 Mб
Скачать

Указания к работе: Создание проекта с блоками на ahdl – языке

  1. Изучите структурную схему лабораторной установки и разработайте ее функциональную и структурную схему;

  2. Создайте новый проект в пакете QUARTUS II (см. п. 1 лабораторной работы №1), включая конфигурацию кристалла и проекта внутрисистемной программы ПЛИС;

  3. Создайте в проекте новый файл схемы для основной схемы устройства (см. п. 4 лабораторной работы №1);

  4. Разработайте в основном файле проекта схему контроллера клавиатуры (рис. 22). Выполните привязку ножек ПЛИС. Обратите внимание, что сигналы шины D[7..0] – код клавиши. Формат кода: младшие 4 бита – код строки, старшие 4 бита код столбца.

  5. Создайте в проекте новый AHDL-файл для преобразователя скан-кода клавиатуры в двоичный код символа: File|New->Design File->AHDL File…Присвойте ему название SCAN_TO_DATA.tdf. В контекстном меню выберете Insert Template|Subdesign Section

  6. В файле реализуйте с помощью таблицы истинности следующую схему преобразования:

Нажатая клавиша

Скан-код клавиши

Преобразованный код

0

0001 0100

0000 0000

1

0001 0011

0000 0001

2

0010 0011

0000 0010

3

0011 0011

0000 0011

4

0001 0010

0000 0100

5

0010 0010

0000 0101

6

0011 0010

0000 0110

7

0001 0001

0000 0111

8

0010 0001

0000 1000

9

0011 0001

0000 1001

Для реализации преобразователя наберите код блока:

SUBDESIGN SCAN_TO_DATA

(

SCAN_CODE[7..0] : INPUT;

DATA_CODE[7..0] : OUTPUT;

)

BEGIN

TABLE

SCAN_CODE=>DATA_CODE;

b"00010100" => b"00000000"; -- кнопка 0

b"00010011" => b"00000001"; -- кнопка 1

b"00100011" => b"00000010"; -- кнопка 2

b"00110011" => b"00000011"; -- кнопка 3

b"00010010" => b"00000100"; -- кнопка 4

b"00100010" => b"00000101"; -- кнопка 5

b"00110010" => b"00000110"; -- кнопка 6

b"00010001" => b"00000111"; -- кнопка 7

b"00100001" => b"00001000"; -- кнопка 8

b"00110001" => b"00001001"; -- кнопка 9

END TABLE;

END;

  1. Добавьте созданный преобразователь в основную схему в виде блока ( см. л.р. №2 п.7). Аналогично определите интерфейс блока и подключите его к сканеру клавиатуры.

  2. Создайте в проекте новый AHDL-файл дешифратора для 7-сегментного индикатора: File|New->Design File->AHDL File…Присвойте ему название B_TO_S.tdf. (от Byte to 7 segment)В файле наберите код блока:

SUBDESIGN b_to_s

(b[7..0], bln : input;

sL[7..0],sH[7..0] : output;)

BEGIN

IF bln==0 THEN

sL[]=0;

sH[]=0;

ELSE

TABLE

b[3..0] => sL[];

b"0000" => b"00111111";

b"0001" => b"00000110";

b"0010" => b"01011011";

b"0011" => b"01001111";

b"0100" => b"01100110";

b"0101" => b"01101101";

b"0110" => b"01111101";

b"0111" => b"00000111";

b"1000" => b"01111111";

b"1001" => b"01101111";

b"1010" => b"01110111";

b"1011" => b"01111100";

b"1100" => b"00111001";

b"1101" => b"01011110";

b"1110" => b"01111001";

b"1111" => b"01110001";

END TABLE;

TABLE

b[7..4] => sH[];

b"0000" => b"00111111";

b"0001" => b"00000110";

b"0010" => b"01011011";

b"0011" => b"01001111";

b"0100" => b"01100110";

b"0101" => b"01101101";

b"0110" => b"01111101";

b"0111" => b"00000111";

b"1000" => b"01111111";

b"1001" => b"01101111";

b"1010" => b"01110111";

b"1011" => b"01111100";

b"1100" => b"00111001";

b"1101" => b"01011110";

b"1110" => b"01111001";

b"1111" => b"01110001";

END TABLE;

END IF;

END;

Блок работает с сигналами:

Bln - сигнал выключения индикатора (blank);

b[] – входная шина отображаемых данных;

sL[],sH[] – выходные шины с кодом для 7-сегментного индикатора.

Обратите внимание, что для отображения байта на индикаторе требуется два знакоместа (0..FF). Таким образом дешифратор для слова формирует два изображения на выходах sL (младший символ) и sH (старший символ).

  1. Для отображения данных на виртуальном индикаторе из библиотеки SYM в файле проекта схему подключения индикаторов (рис. 23)

Рисунок 12. Схема блока индикации

  1. Скомпилируйте проект и запрограммируйте ПЛИС через программу Win_PLD. Убедитесь в нормальном функционировании схемы.

  2. Приведите в отчете схему всего устройства. Составьте описание принципа работы устройства.

  3. Приведите в отчете соответствие скан кода клавиш, двочного кода числа и кода семисегментного индикатора в виде таблицы:

Скан-код (наименование сигнала)

Двоичный код (наименование сигнала)

Код семисегментного индикатора (наименование сигнала)

  1. Контрольное задание. Дополните созданную схему контроллером ИЖК. Продублируйте вывод изображения нажатой клавиши на жидкокристаллический дисплей.

  2. Приведите в отчете доработанную схему устройства.

  3. Оформите отчет в соответствии с действующими требованиями.