Вход/Регистрация
Искусство схемотехники. Том 2 (Изд.4-е)
вернуться

Хоровиц Пауль

Шрифт:

С целью конкретизации этих идей, давайте рассмотрим оба примера проектирования как последовательностных, так и комбинационных схем, используя язык CUPL.

Пример использования языка CUPL для проектирования преобразователя из 7-сегментного кода в шестнадцатеричный (комбинационная логика). Наступает время, когда вы захотите использовать желаемый БИС-кристалл, который выполняет определенную функцию (например, калькулятор или хронометр), как часть создаваемого вами устройства. Беда в том, что эти БИС-кристаллы обычно имеют выходы для прямого управления 7-сегментным индикатором, который предпочтительней, чем шестнадцатеричные (или двоичные) выходы, которые вы хотите получить. Давайте спроектируем кристалл-шифратор, который преобразует 7-сегментный код обратно в 4-битовый двоичный, такая функция не реализуется как стандартная микросхема (хотя существует дешифратор из семисегментного кода в двоично-десятичный, 74С915).

Входы представляют отдельные сегментные сигналы, которые всегда помечаются символами a — f (рис. 8.76).

Рис. 8.76. Коды 7-сегментного индикатора.

На рис. 8.76 показано, как цифры представляются на 7-сегментном индикаторе. Заметьте, что возможно двоякое представление «9» и «С», оба из которых должны корректно восприниматься вашей логикой. Для ПМЛ мы выбираем X6L8, 20-контактная комбинационная часть которой логически была показана на рис. 8.45.

Рис. 8.77 представляет входное описание на языке CUPL. Здесь сигналы запуска сегментов а — g обозначают входы (положительная логика), а шестнадцатеричные разряды D0-D3 выходы (отрицательная логика). Язык CUPL позволяет определить промежуточные переменные, которые могут быть использованы в выражениях позднее. В этом случае удобно определить очевидные переменные от zero до next через возможные отображения цифры в терминах сегментных входов. Это просто большие термы произведений (И) от входных сегментных переменных, которые вы можете прочесть из изображений цифр на рис. 8.76.

/** Inputs **/

PIN 1 = a; /* segment a */

PIN 2 = b; /* segment b */

PIN 3 = c; /* segment c */

PIN 4 = d; /* segment d */

PIN 5 = e; /* segment e */

PIN 6 = f; /* segment f */

PIN 7 = g; /* segment g */

/** Outputs **/

PIN 19 = !D3; /* msb of hex encode */

PIN 18 = !D2; /* */

PIN 17 = !D1; /* */

PIN 16 = !D0; /* 1sb */

/** Declarations and Intermediate Variable Definitions **/

zero = a & b & c & d & e & f & !g;

one = !a & b & с & !d & !e & !f & !g

two = a & b & !с & d & e & !f & g;

three = a & b & c & d & !e & !f & g;

four = !a & b & с & !d & !e & f & g;

five = a & !b & с & d & !e & f & g;

six = a & !b & c & d & e & f & g;

seven = a & b & с & !d & !e & !f & !g;

eight = a & b & c & d & e & f & g;

nine = a & b & с & !d & !e & f & g

# a & b & c & d & !e & f & g; /* two ways */

hexa = a & b & с & !d & e & f & g;

hexb = !a & !b & c & d & e & f & g;

hexc = !a & !b & !c & d & e & !f & g

# a & !b & !c & d & !e & f & !g; /* two ways */

hexd = !a & b & c & d & e & !f & g;

hexe = a & !b & !c & d & e & f & g;

hexf = a & !b & !c & !d & e & f & g;

/** Logic Equations **/

D3 = eight # nine # hexa # hexb # hexc # hexd # hexe # hexf;

D2 = four # five # six # seven # hexc # hexd # hexe # hexf;

D1 = two # three # six # seven # hexa # hexb # hexe # hexf;

D0 = one # three # five # seven # nine # hexb # hexd # hexf

Рис. 8.77. Спецификация преобразователя 7-сегментного представления в 16-ричное на языке CUPL.

Окончательно каждый двоичный выходной бит записывается как сумма (ИЛИ) цифровых переменных, при которых этот бит устанавливается. Мы используем уровни отрицательной логики, потому что 16L8 представляет матрицу И-ИЛИ-НЕ. Этим заканчивается логическая спецификация для языка.

Упражнение 8.29. Проверьте для себя правильность нашей работы, записав некоторые из отображаемых символов, через заданные нами промежуточные переменные zero-next.

  • Читать дальше
  • 1
  • ...
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: