ПЛИС Altera. Проектирование комбинационных схем

ПЛИС Altera. Проектирование комбинационных схем

Постановка задачи

В прошлой серии статей, посвященных программируемой логике Intel PSG (Altera), рассказывалось как создать простую цифровую схему на базе ПЛИС:

В качестве примера была спроектирована схема из трех базовых логических элементов: «И», «ИЛИ» и «НЕ». Эти элементы работали абсолютно независимо друг от друга, и схема в целом не имела какой-либо практической ценности. Как создать что-то более полезное?

Задача

Для начала необходимо определиться с функционалом: какую задачу будет решать новая схема?

Предлагаю спроектировать схему дешифратора для одноразрядного семисегментного цифрового индикатора. Эта схема будет преобразовывать четырехразрядное двоичное число в сигналы управления семисегментным индикатором.

Почему выбрано именно четырехразрядное число?

Один семисегментный индикатор можно использовать для отображения десятичного числа в диапазоне от нуля до девяти. Если взять двоичное число меньшей разрядности, например три бита, то с его помощью можно будет закодировать максимум 23 = 8 значений.

Так как отсчет мы будем вести от нуля, то максимальное десятичное число, которое можно закодировать с помощью трех бит, будет равно 7. Очевидно этого мало. А 24 позволяет закодировать 16 цифр, что даже больше чем требуется. На один семисегментный индикатор не возможно вывести число больше 9 и этот факт необходимо будет учесть при проектировании дешифратора.

Таким образом определен вход схемы — это четырехразрядный вход дешифратора. Определимся с числом выходов.

Семисегментный индикатор состоит из семи параллельно соединенных светодиодов. Каждый сегмент — это отдельный светодиод. Все диоды соединяются между собой либо положительным выводом, анодом, либо отрицательным — катодом. Внешний вид семисегментного индикатора PART-LED-7SEG-DIG-RED-075 представлен на рисунке ниже.

Семисегментный индикатор PART-LED-7SEG-DIG-RED-075

Большинство индикаторов, выпускаемых в настоящее время, помимо сегментов используемых для отображения цифр снабжаются десятичной точкой, для разделения нескольких идущих подряд разрядов. Таким образом число светодиодов в таких индикаторах равняется восьми. Соответственно, для управления каждым из восьми светодиодов требуется отдельный выход. Поэтому число выходов проектируемой схемы будет равняться восьми.

Проектирование цифровых схем на ПЛИС Intel PSG (Altera) выполняется в фирменной IDE — Quartus II. Процесс скачивания, установки данной IDE и создания проекта описан в статье ПЛИС Altera. Часть 1: установка и настройка среды разработки.

Проектирование принципиальной схемы

Как уже говорилось выше, семисегментный индикатор представляет собой восемь (с учетом десятичной точки) соединенных параллельно светодиодов. В качестве примера ниже приведена схема из технического описания на индикатор Oasistek TOS-5161AMR-N (аналогичен PART-LED-7SEG-DIG-RED-075).

Схема индикатора Oasistek TOS-5161AMR-N

Каждый светодиод является отдельным сегментом индикатора. Для удобства отдельные светодиоды обозначают буквами латинского алфавита от A до G, плюс DP (Decimal Point — десятичная точка). Соответствующим образом обозначены сегменты на рисунке ниже.

Сегменты индикатора Oasistek TOS-5161AMR-N

Схема будет выводить на индикатор десятичные цифры. Для отображения каждой цифры требуется свой уникальный набор сегментов. Например: для вывода цифры 1 необходимо использовать только сегменты «B» и «C». Цифра 2 может быть отображена с помощью сегментов «A», «B», «G», «E» и «D». Цифра 3 — «A», «B», «G», «C», «D». И так далее. На иллюстрации ниже изображены наборы сегментов для отображения всех десятичных цифр. Под каждой из цифр приводится соответствующий ей четырехбитный двоичный код.

Наборы сегментов для отображения десятичных цифр

Таким образом выходам схемы можно присвоить следующие названия: Sa, Sb, Sc, Sd, Se, Sf, Sg и DP. Имена входов — I0, I1, I2, I3, где цифра указывает на номер разряда двоичного кода.

Для управления входами схемы предлагаю использовать четырехконтактный DIP-переключатель, который будет подавать напряжение логической единицы — 3,3В. Выходы схемы будут соединены с сегментным индикатором через токоограничительные резисторы на 82-680 Ом.

Для фиксации I0-I3 входов схемы на уровне логического ноля при разомкнутых контактах выключателя необходима слабая подтяжка входов к земле через резисторы на 10-47 кОм.

Принципиальная схема устройства приводится на рисунке ниже.

Принципиальная схема дешифратора семисегментного индикатора

Здесь CTRL-CPLD-EPM570 — отладочная плата на базе Altera (Intel PSG) MAX II EPM570. Она подробно описывается в статье ПЛИС Altera. Часть 4: доработка схемы и плата CTRL-CPLD-EPM570, в разделе «Плата CTRL-CPLD-EPM570».

Номера выводов платы на схеме соответствуют номерам выводов CTRL-CPLD-EPM570.

Примечание

Часть выводов MAX II EPM570 на плате CTRL-CPLD-EPM570 имеет специальное назначение и поэтому не может использоваться в схеме управления сегментным индикатором. Выводы 90, 88, 64, 62, 43, 42, 41, 40, 39, 37, 25, 24, 23, 22, 14, 12, задействованные для подключения кнопки RESET, блока светодиодов, тактовых генераторов, питания ПЛИС, программатора, не используются в этом проекте.

Для устройства не обязательно использовать именно CTRL-CPLD-EPM570, можно использовать любую другую плату на любой серии ПЛИС Altera (Intel PSG), поддержка которой имеется в Quartus II тринадцатой версии. Например платы на базе ПЛИС MAX II, MAX V, Cyclone III, Cyclone IV и Cyclone V с любым числом логических элементов.

Для загрузки конфигурации в ПЛИС потребуется программатор. Подойдет недорогой клон Altera USB Blaster совместимый с драйверами оригинального программатора. Например изображенный на фотографии ниже.

Клон программатора Altera USB Blaster

Итого, для сборки устройства потребуются программатор, плата с ПЛИС, семисегментный индикатор, набор выключателей, резисторов и проводов.

Список необходимых компонентов

Компонент

Назначение

Отладочная плата ПЛИС Altera EPM570 (CTRL-CPLD-EPM570)

Плата с ПЛИС MAX II EPM570 для реализации цифровой схемы

Программатор ПЛИС (совместимый с Altera USB Blaster)

Загрузка конфигурации в ПЛИС

Беспаечная макетная плата Т-170

Сборка схемы без пайки

DIP-переключатель, четырёхконтактный

Подача логических уровней на входы дешифратора

Индикатор семисегментный — цифра, красный, 0.56», общий катод

Отображение десятичной цифры

Резистор металлопленочный 100 Ом, 1%, 0.25 Вт

Токоограничительные резисторы для сегментов индикатора

Резистор металлопленочный 10 кОм, 1%, 0.25 Вт

Подтягивающие резисторы на входах дешифратора

Провода вилка-розетка и вилка-вилка, L=10 см

Соединительные провода

Совет

Для проекта подойдёт любая отладочная плата на ПЛИС Altera (Intel PSG) серий MAX II, MAX V, Cyclone III, Cyclone IV или Cyclone V, поддерживаемая Quartus II 13-й версии.