Титульная страница Лабораторный практикум Программа Дополнительно
 Учебное пособие
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 

Учебное пособие -> Глава 9. Основные цифровые логические схемы

 

Глава 9. Основные цифровые логические схемы

 

Интегральные схемы

Вентили производятся и продаются не по отдельности, а в модулях, которые называются интегральными схемами (ИС), или микросхемами. Интегральная ма представляет собой квадратный кусок кремния размером примерно 5x5 мм, на котором располагаются несколько вентилей. Маленькие интегральные схемы обычно помещаются в прямоугольные пластиковые или керамические корпуса размером от 5 до 15 мм в ширину и от 20 до 50 мм в длину. Вдоль длинных сторон располагается два параллельных ряда выводов около 5 мм в длину, которые можно вставлять в разъемы или впаивать в печатную плату. Каждый вывод соединяется с входом или выходом какого-нибудь вентиля, с источником питания или с «землей». Корпус с двумя рядами выводов снаружи и интегральными схемами внутри официально называется корпусом с двусторонним расположением выводов (Dual Inline Package, DIP), но все называют его микросхемой, игнорируя разницу между куском кремния и корпусом, в который он помещается.

Большинство корпусов имеют 14, 16, 18, 20, 22, 24, 28, 40, 64 или 68 выводов.

Для больших микросхем часто используются корпуса, у которых выводы расположены со всех четырех сторон или снизу.

Микросхемы можно разделить на несколько классов с точки зрения количества вентилей, которые они содержат:

-       МИС (малая интегральная схема) — от 1 до 10 вентилей;

-       СИС (средняя интегральная схема) — от 1 до 100 вентилей;

-       БИС (большая интегральная схема) — от 100 до 100 000 вентилей;

-       СБИС (сверхбольшая интегральная схема) — более 100 000 вентилей.

Эти схемы имеют различные свойства и используются для различных целей.

МИС обычно содержит от двух до шести независимых вентилей, каждый из которых может использоваться отдельно. На рисунке изображена обычная МИС, содержащая четыре вентиля НЕ-И.

Каждый из этих вентилей имеет два входа и один выход, что требует 12 выводов. Кроме того, микросхеме требуются питание (Vcc) и земля. Они общие для всех вентилей. На корпусе рядом с выводом 1 обычно имеется паз, чтобы можно было определить, что это вывод 1. Чтобы избежать путаницы на диаграмме, по соглашению не показываются неиспользованные вентили, источник питания и земля.

В настоящее время стало возможным помещать десятки миллионов транзисторов на одну микросхему. Так как любая схема может быть сконструирована из вентилей НЕ-И, может попробовать изготовить микросхему, содержащую 5 млн вентилей НЕ-И. Для создания такой микросхемы потребуется 15 000 002 выводов (Стандартный вывод занимает 0,2 мм, соответственно, микросхема будет иметь в длину более 10 км).

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

 

Комбинаторные схемы

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

 

Мультиплексоры

На цифровом логическом уровне мультиплексор представляет собой схему с входами, одним выходом и  линиями управления, которые позволяют выбрать один из входов. Выбранный вход соединяется с выходом. На рисунке изображена схема восьмивходового мультиплексора.

Три линии управления, A, В и С, кодируют 3-разрядное число, которое указывает, какая из восьми входных линий должна соединяться с вентилем ИЛИ и, следовательно, с выходом.

Семь вентилей И всегда будут выдавать на выходе 0, а оставшийся может выдавать 0 или 1 в зависимости от значения выбранной линии входа. Каждый вентиль И запускается определенной комбинацией сигналов на линиях управления. Если в схему мультиплексора добавить источник питания и землю, то мультиплексор можно включить в корпус с 14 выводами.

 

 

Рисунок  2 - Схема восьмивходового мультиплексора

 

Использовав мультиплексор, можно реализовать функцию большинства, как показано на рисунке. Для каждой комбинации A, В и С выбирается одна из входных линий. Каждый вход соединяется либо с сигналом Vcc (логическая 1), либо с землей (логический 0).

Алгоритм соединения входов: входной сигнал  такой же, как значение в строке  таблицы истинности. Входы, соответствующие  строкам таблицы истинности, в которых функеця принимает нулевые значения, заземляются; в оставшихся строках значение функции равно 1, поэтому соответствующие входы соединяются с логической единицей.

Таким способом можно реализовать любую таблицу истинности с тремя переменными.

Рисунок 3 -   Мультиплексор, смонтированный для вычисления функции большинства

Декодеры

Схема, которая получает на входе n-рядное число и использует его для того, чтобы выбрать (то есть установить в значение 1) одну из  выходных линий, называется декодером.

Пример декодера для n = 3 показан на рисунке.

 

Пример использования декодера:

Дана память, состоящая из 8 микросхем, каждая из которых содержит 1 Мбайт. Микросхема 0 имеет адреса от 0 до 1 Мбайт, микросхема 1 — адреса от 1 Мбайт до 2 Мбайт и т. д. Три старших двоичных разряда адреса используются для выбора одной из восьми микросхем. На рисунке эти три бита — три входа А, В и С. В зависимости от входных сигналов ровно одна из восьми выходных линий ( , ..., ) принимает значение 1; остальные линии принимают значение 0. Каждая выходная линия запускает одну из восьми микросхем памяти. Поскольку только одна линия принимает значение 1, запускается только одна микросхема.

 

Рисунок 4 - Схема декодера, содержащего 3 входа и 8 выходов

 

 

Компараторы

 Компаратор сравнивает два слова, которые поступают на вход. Компаратор, изображенный на рисунке, принимает два входных сигнала, А и В,  по 4 бита каждый и выдает 1, если они равны, и 0, если они не равны. Схема основывается на вентиле ИСКЛЮЧАЮЩЕЕ ИЛИ, который выдает 0, если сигналы на входе равны, и 1, если сигналы на входе не равны.

Если все четыре входных слова равны, все четыре вентиля ИСКЛЮЧАЮЩЕЕ ИЛИ должны выдавать 0. Эти четыре сигнала затем поступают в вентиль ИЛИ.

Если в результате получается 0, значит, слова, поступившие на вход, равны; в противном случае они не равны. В примере использован вентиль ИЛИ в качестве конечного, чтобы поменять значение полученного результата: 1 означает равенство, 0 — неравенство.

Рисунок 5 - 4-х разрядный компаратор

 

Программируемые логические матрицы

Любую функцию (таблицу истинности) можно представить в виде суммы произведений и, следовательно, воплотить в схеме, использовав вентили И и ИЛИ.

Для вычисления сумм произведений служит так называемая программируемая логическая матрица.

Пример программируемой логической матрицы:

Микросхема содержит входы для 12 переменных. Дополнительные сигналы (инверсии) генерируются внутри самой микросхемы. В итоге получается всего 24 входных сигнала. Какой именно входной сигнал поступает в тот или иной вентиль И, определяется по матрице размером 24 х 50 бит. Каждая из входных линий к 50 вентилям И содержит плавкую перемычку. При выпуске с завода все 1200 перемычек остаются нетронутыми. Чтобы запрограммировать матрицу, покупатель выжигает выбранные перемычки, прикладывая к схеме высокое напряжение. Выходная часть схемы состоит из шести вентилей ИЛИ, каждый из которых содержит до 50 входов, что соответствует наличию 50 выходов у вентилей И. Какие из потенциально возможных связей действительно существуют, зависит от того, как была запрограммирована матрица 50 х 6. Микросхема имеет 12 входных выводов, 6 выходных выводов, питание и землю (то есть всего 20 выводов).

Рисунок 6 - Программируемая логическая матрица с 12 входами и 6 выходами. Маленькие квадратики — плавкие перемычки, выжигаемые для получения нужной функции. Плавкие перемычки упорядочиваются в двух матрицах, верхняя матрица — для вентилей И, нижняя — для вентилей ИЛИ

 

Схема содержит три входа, четыре вентиля И, один вентиль ИЛИ и три инвертора. Если запрограммировать данную матрицу определенным образом, она сможет вычислять ту же функцию, используя три из 12 входов, четыре из 50 вентилей И и один из 6 вентилей ИЛИ. (Четыре вентиля И должны вычислять произведения ABC, ABC, ABC и ABC; вентиль ИЛИ принимает эти 4 произведения в качестве входных данных.) Можно сделать так, чтобы та же программируемая логическая матрица вычисляла одновременно сумму четырех функций одинаковой сложности. Для простых функций ограничивающим фактором является число входных переменных, для более сложных — вентили И и ИЛИ.

 

Арифметические схемы

Рассмотрим арифметическую схему сдвига, содержащую 8 входов и 8 выходов. Восемь входных битов поподаются на линии ,…, . Выходные данные, которые представляют собой входные данные, сдвинутые на 1 бит, поступают на линии . Линия управления С определяет направление сдвига: 0 — влево, 1 — вправо.

Рисунок 7 - Схема сдвига

Рассмотрим пары вентилей И (кроме крайних).

Если C=1, правый член каждой пары включается, пропуская через себя соответствующий бит. Так как правый вентиль И соединен с входом вентиля ИЛИ, который расположен справа от этого вентиля И, происходит сдвиг вправо.

Если C=0, включается левый вентиль И из пары, и тогда происходит сдвиг влево.

 

Сумматоры

Схема выполнения операций сложения является существенной частью любого процессора.

Таблица истинности для сложения одноразрядных целых чисел:

 Здесь имеется два результата: сумма входных переменных А и В и перенос на следующую (левую) позицию.

Схема для вычисления бита суммы и бита переноса:

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

Полный сумматор состоит из двух полусумматоров. Сумма равна 1, если нечетное число переменных A, В и вход переноса принимает значение 1 (то есть, если единице равна или одна из переменных, или все три). Выход переноса принимает значение 1, если либо А и В одновременно равны 1 (левый вход в вентиль ИЛИ), либо один из них равен 1 и вход переноса также равен 1. Два полусумматора порождают и биты суммы, и биты переноса.

 

16-разрядный сумматор

Чтобы построить сумматор для двух 16-разрядных слов, нужно 16 раз продублировать схему полного сумматора. Перенос производится в левый соседний бит. Перенос в самый правый бит соединен с 0. Такой сумматор называется сумматором со сквозным переносом. Прибавление 1 к числу 111...111 не осуществится до тех пор, пока перенос не пройдет весь путь от самого правого бита к самому левому.

 

Пример более быстрого сумматора

Разобьем 32-разрядный сумматор на 2 половины: нижнюю 16-разрядную и верхнюю 16-разрядную. Когда начинается сложение, верхний сумматор еще не может приступить к работе, поскольку не знает значение переноса, а узнать его он не сможет, пока не совершится 16 суммирований в нижнем сумматоре.

Преобразование - вместо одного верхнего сумматора можно получить два верхних сумматора, продублировав соответствующую часть аппаратуры. Тогда схема будет состоять из трех 16-разрядных сумматоров: одного нижнего и двух верхних,  и , работающих параллельно. В качестве переноса в сумматор  поступает 0, в сумматор - 1. Оба верхних сумматора начинают работать одновременно с нижним сумматором, но только один из результатов суммирования в двух верхних сумматорах будет правильным. После сложения 16 нижних разрядов становится известно значение переноса в верхний сумматор, и тогда можно определить правильный ответ. При подобном подходе время сложения сокращается в два раза. Такой сумматор называется сумматором с выбором переноса. Можно еще раз разбить каждый 16-разрядный сумматор на два 8-разрядных и т. д.

 

Арифметико-логические устройства

Большинство компьютеров содержат одну схему для выполнения над двумя машинными словами операций И, ИЛИ и сложения. Обычно эта схема для n-рядных слов состоит из n идентичных схем — по одной для каждой битовой позиции – арифметико-логическое устройство (АЛУ).

 

Пример: На рисунке представлено АЛУ, которое может вычислять одну из 4-х следующих функций: А И В,  А ИЛИ В,  или А + В (арифметическая сумма). Выбор функции зависит от того, какие сигналы поступают на линии  и :  00, 01, 10 или 11 (в двоичной системе счисления).

В левом нижнем углу схемы находится двухразрядный декодер, который генерирует сигналы включения для четырех операций. Выбор операции определяется сигналами управления  и . В зависимости от значений  и  выбирается одна из четырех линий разрешения, и тогда выходной сигнал выбранной функции проходит через последний вентиль ИЛИ.

Рисунок 8 - Одноразрядное АЛУ

 

В верхнем левом углу схемы находится логическое устройство для вычисления функций А И В, А ИЛИ В и , но только один из этих результатов проходит через последний вентиль ИЛИ в зависимости от того, какую из линий разрешения выбрал декодер. Так как ровно один из выходных сигналов декодера может быть равен 1, то и запускаться будет ровно один из четырех вентилей И. Остальные три вентиля будут выдавать 0 независимо от значений А и В.

В нижнем правом углу находится полный сумматор для подсчета суммы А и В, а также для осуществления переносов. Переносы необходимы, поскольку несколько таких схем могут быть соединены для выполнения операций над целыми словами.

Подобные одноразрядные схемы называются разрядными микропроцессорными секциями и позволяют разработчику строить АЛУ любой разрядности:

 

Рисунок 9 - Схема 8-разрядного АЛУ

 

Сигнал INC (увеличение на единицу) в схеме 8-разрядного АЛУ нужен только для операций сложения. Он дает возможность вычислять такие суммы, как  A + 1 и   A + В+1.

 

Тактовые генераторы

Во многих цифровых схемах все зависит от порядка выполнения операций:

-       одна операция должна предшествовать другой

-       две операции должны происходить одновременно.

Для контроля временных параметров в цифровые схемы встраиваются тактовые генераторы, позволяющие обеспечить синхронизацию.

Тактовый генератор — это схема, которая вызывает серию импульсов. Все импульсы одинаковы по длительности. Интервалы между последовательными импульсами также одинаковы. Временной интервал между началом одного импульса и началом следующего называется временем такта. Частота импульсов обычно составляет от 1 до 500 МГц, что соответствует времени такта от 1000 до 2 нс. Частота тактового генератора обычно контролируется кварцевым генератором, позволяющим добиться высокой точности.

 

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

 

 Временная диаграмма предлагает четыре точки начала отсчета времени для дискретных событий:

1.     Фронт .

2.     Спад .

3.     Фронт .

4.     Спад .

Связав различные события с разными перепадами (фронтами и спадами), можно достичь требуемой последовательности выполнения действий.

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

 

В некоторых схемах важны временные интервалы, а не дискретные моменты времени. Например, некоторое событие может происходить не на фронте импульса, а в любое время, когда уровень импульса  высокий. Другое событие может происходить только в том случае, когда уровень импульса  высокий. Если необходимо более двух интервалов, нужно предоставить больше линий передачи синхронизирующих импульсов или сделать так, чтобы состояния с высоким уровнем импульса у двух тактовых генераторов частично пересекались во времени.

 

Тактовые генераторы могут быть синхронными и асинхронными. В случае синхронного генератора время существования импульса с высоким уровнем равно времени существования импульса с низким.

 Чтобы получить асинхронную серию импульсов, нужно сдвинуть сигнал задающего генератора, использовав цепь задержки. Затем нужно соединить полученный сигнал с изначальным сигналом с помощью логической функции И.

 

 
Завозкин С.Ю., Трофимов С.Н. "Архитектура вычислительных систем"