Искусство схемотехники. Том 2 (Изд.4-е)
Шрифт:
Некоторые другие незнакомые функции. Существует много других комбинационных схем средней степени интеграции, представляющих несомненный интерес. Например, в семействе КМОП есть схема — «мажоритарная логика», которая говорит, что возбуждена большая часть входов. Имеется также двоично-десятичное устройство дополнения до 9, назначение которого не требует пояснений. Существует схема «барабан-сдвигатель», которая сдвигает входное число на n (задаваемое) разрядов и может наращиваться до любой длины.
8.15. Реализация произвольных таблиц истины
К счастью, большинство из проектов цифровых схем не состоит из стряпни безумных устройств на вентилях
Мультиплексоры в качестве реализаций обобщенных таблиц истинности. Нетрудно видеть, что n– входовый мультиплексор может быть использован для генерации любой таблицы истинности на n входов без применения каких-либо внешних компонентов, если просто на их входы подать соответствующие высокие и низкие уровни. Схема на рис. 8.40 говорит, является ли входное 3-разрядное двоичное число простым.
Рис. 8.40.
Не столь очевидно, что мультиплексор на n входов с помощью только одного инвертора может быть использован для генерации таблицы истинности на 2n входов. Например, рис. 8.41 показывает схему, которая определяет имеет или нет данный месяц года 31 день, где месяц (от 1 до 12) задается 4-битовым входом.
Хитрость в том, чтобы заметить, что для данного состояния адресных битов, прикладываемых к мультиплексору, выход (как функция оставшегося входного бита) должен быть равен H, L, А0 или А'0; соответственно вход мультиплексора связывается с логическим высоким, логическим низким, А или А'0.
Рис. 8.41.
Упражнение 8.23. Схема на рис. 8.41. Составьте таблицу, показывающую, имеет ли данный месяц 31 день, с двоичной адресацией месяца. Сгруппируйте месяцы в пары согласно старшим значащим 3-м битам адреса. Для каждой пары обозначение выхода Q («31 день») зависит от младшего значащего адресного бита А0. Сравните с рис. 8.41. Наконец, напрягитесь и проверьте, что схема делает на самом деле, если заданный месяц имеет 31 день.
Забавное примечание: оказывается, что данную таблицу истинности можно реализовать только с одним вентилем «исключающее или», если использовать для несуществующих месяцев знак X (любое значение)! Попытайтесь сделать это самостоятельно. Это даст вам возможность приобрести опыт в составлении карт Карно.
Дешифраторы как обобщенные таблицы истинности. Дешифраторы также позволяют упростить комбинационную логику, особенно в тех случаях, когда нужно получить несколько одновременно действующих выходных сигналов. В качестве примера попробуем составить схему преобразования двоично-десятичного кода в код с избытком 3. Таблица истинности для такого преобразования имеет вид:
Мы
Заметим, что в этой схеме выходные биты не являются взаимно исключающими. Аналогичную схему можно использовать в качестве устройства для задания рабочих циклов в стиральной машине: при каждом состоянии входа выполняются различные функции (подача воды, заполнение, вращение барабана и т. д.). Вскоре вы увидите, каким образом вырабатывается последовательность двоичных кодов, следующих через равные промежутки времени. Индивидуальные выходы дешифратора носят название «минтермы» и соответствуют позициям на карте Карно.
Рис. 8.42. Преобразование кодов на уровне минтермов: преобразование двоично-десятичного кода в код с избытком 3 (устаревший код, сохранившийся с 1-го издания книги).
ПЗУ и программируемая логика. Эти ИС позволяют вам программировать их внутренние связи. В этом смысле они фактически являются устройствами с памятью и будут рассматриваться позднее, вместе с триггерами, регистрами и т. п. Однако после программирования они являются строго комбинационными, хотя существуют также последовательностные программируемые логические устройства (см. разд. 8.27), они так полезны, что будут обсуждаться сейчас.
ПЗУ. ПЗУ (постоянное запоминающее устройство) содержит битовый образ (обычно 4 или 8 разрядов, параллельный выход) для каждого конкретного адреса, приложенного ко входу. Например, 1Кx8 ПЗУ выдает восемь выходных бит на каждое из 1024 входных состояний, определяемых 10-разрядным входным адресом (рис. 8.43).
Рис. 8.43.
Любая комбинационная таблица истинности может быть запрограммирована в ПЗУ, обеспечивающем достаточное число входных линий (адреса). Например, ПЗУ 1Кx8 можно использовать для реализации умножителя 4x4; в этом случае ограничение на «ширину» (8 разрядов), не действует (так как имеется 10 разрядов).
ПЗУ (а также программируемые логические устройства) являются энергонезависимым устройством, т. е. хранимая информация остается даже тогда, когда питание пропадает. ПЗУ подразделяются на несколько типов, в зависимости от их метода программирования: а) «Масочно-программируемые ПЗУ» имеют свое битовое содержание, созданное во время изготовления. б) «Программируемые ПЗУ» (ППЗУ) программируются пользователем: ПЗУ имеют тонкие перемычки, которые могут пережигаться (подобно предохранителям) посредством подачи адреса и управляющих сигналов; они обладают высоким быстродействием (25–50 нс), относительно большим потреблением (биполярные 0,5–1 Вт), размерами от малых до средних (от 32x8 до 8Кx8). «Стираемые программируемые ПЗУ» (СППЗУ) хранят свои биты как заряды на плавающих МОП-вентилях; информация в них может стираться посредством облучения их интенсивным ультрафиолетовым светом в течение нескольких минут (они имеют прозрачное кварцевое стекло); выполняются по n– МОП и КМОП-технологии и значительно медленнее (200 нc) при низком потреблении (частично в режиме хранения), имеют достаточно большой размер (8Кx8 и 128Кx8). Современные КМОП СППЗУ достигают быстродействия биполярных ПЗУ (35 нс). Известен вариант — «однократно-программируемый» (ОКП), он содержит идентичный кристалл, но не имеет кварцевого окна для экономии и простоты, г) «Электрические стираемые программируемые ПЗУ» (ЭСППЗУ) подобны СППЗ, но могут программироваться и стираться электрически прямо в схеме с использованием стандартных напряжений питания (+5 В).