Логические основы устройства компьютера. базовые логические элементы

Логический вентиль

Логический вентиль – базовый элемент логической схемы, выполняющий элементарную логическую операцию, преобразуется множество входных логических сигналов в выходной логический сигнал.​С помощью этих схем можно выполнять любые логические функции, описывающие работу устройств компьютера. Логические выражения являются основой для создания электронных схем. Обычно вентили имеют от двух до восьми входов и один или два выхода.​Чтобы представить два логических состояния – «1» и «0» в вентилях, соответствующие им входные и выходные сигналы имеют один из двух установленных уровней напряжения. Высокий уровень обычно соответствует значению «истина» («1»), а низкий – значению «ложь» («0»).​Каждый логический элемент имеет свое условное обозначение, которое выражает его логическую функцию. Это упрощает запись и понимание сложных логических схем.​Работу логических элементов описывают с помощью таблиц истинности, знакомых из предыдущей темы.​Физической основой различных интегральных микросхем, составляющих основные части компьютера, является сложное логическое выражение.

Схема И (рис. 1) выполняет конъюнкцию двух или нескольких логических значений.​Схема ИЛИ реализует дизъюнкцию двух или более логических значений.​Схема НЕ (инвертор) реализует операцию отрицания.

Рисунок 1

Рисунок 2

Рисунок 3

Программирование

В компьютерных языках используется два основных варианта конъюнкции: логическое «И» и побитовое (поразрядное) «И». Например, в языках C/C++ логическое «И» обозначается символом «&&», а побитовое — символом «&». В терминологии, используемой в C#, операцию «&» принято называть логическим «И», а операцию «&&» — условным «И», поскольку значения операндов являются условиями для продолжения вычисления. В языках Pascal/Delphi оба вида конъюнкции обозначаются с использованием ключевого слова «and», а результат действия определяется типом операндов. Если операнды имеют логический тип (например, Boolean) — выполняется логическая операция, если целочисленный (например, Byte) — поразрядная.

Логическое «И» применяется в операторах условного перехода или в аналогичных случаях, когда требуется получение результата false{\displaystyle false} или true{\displaystyle true}. Например:

if (a & b & c) 
{
    /* какие-то действия */
};

Сравнение в данном случае будет продолжаться до конца выражения, независимо от промежуточных результатов.
Принцип работы условного «И» в аналогичной ситуации:

a = false; b = true; c = true;
if (a && b && c) 
{
    /* какие-то действия */ 
};

Проверка истинности выражения в данном случае остановится после проверки переменной a, так как дальнейшее сравнение не имеет смысла.

Результат будет равен true{\displaystyle true}, если оба операнда равны true{\displaystyle true} (для числовых типов не равны {\displaystyle 0}). В любом другом случае результат будет равен false{\displaystyle false}.

При этом применяется стандартное соглашение: если значение левого операнда равно false{\displaystyle false}, то значение правого операнда не вычисляется (вместо b{\displaystyle b} может стоять сложная формула). Такое соглашение ускоряет исполнение программы и служит полезным приёмом в некоторых случаях. Компилятор Delphi поддерживает специальную директиву, включающую

{$B-}

или выключающую

{$B+}

подобное поведение. Например, если левый операнд проверяет возможность вычисления правого операнда:

if (a !=  && b  a > 3) 
{
    /* какие-то действия */
};

В этом примере, благодаря проверке в левом операнде, в правом операнде никогда не произойдёт деления на ноль.

Побитовое «И» выполняет обычную операцию булевой алгебры для всех битов левого и правого операнда попарно. Например,

если
a = 011001012{\displaystyle 01100101_{2}}
b = 001010012{\displaystyle 00101001_{2}}
то
a И b = 001000012{\displaystyle 00100001_{2}}

Что такое логические элементы

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

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

Определение количества логических элементов, которые можно построить на базе двоичной логики, выполняется по формуле 24, то есть составляет 16.

Логическая функция «ИЛИ» (сложение)

Функция логического «ИЛИ» заявляет, что выходное действие станет ИСТИНОЙ, если одно «ИЛИ» больше событий ИСТИНЫ, но порядок, в котором они происходят, не имеет значения, поскольку он не влияет на конечный результат.

Так , например, А + В = В + А . В булевой алгебре функция логического «ИЛИ» подчиняется коммутативному закону так же, как и для логической функции «И», что позволяет изменять положение любой переменной.

Логика или логическое выражение, данное для логического элемента «ИЛИ», является логическим выражением, которое обозначается знаком плюс, ( + ). Таким образом, 2-входной ( АВ ) Логический элемент «ИЛИ» имеет выход термин, представленный булевой выражением:  A + B = Q .

Представление функции «ИЛИ» на схеме

Здесь два переключателя А и B соединены параллельно и, либо переключатель A «ИЛИ» переключатель B может быть закрыт, чтобы включить лампу. Другими словами, выключатель может быть замкнут, либо быть на логике «1», чтобы лампа была включена.

Тогда этот тип логического элемента генерирует и выводит только тогда, когда присутствует «ЛЮБОЙ» из его входов, и в терминах Булевой алгебры выход будет ИСТИНА, если любой из его входов ИСТИНЕН. В электрическом смысле логическая функция «ИЛИ» равна параллельной цепи.

Как и в случае с функцией «И», есть два переключателя, каждый с двумя возможными положениями, открытыми или закрытыми, поэтому будет 4 различных способа расположения переключателей.

Таблица истинности для функции «ИЛИ»

Логические «ИЛИ» элементы доступны в виде стандартных пакетов ic, таких как общие TTL 74LS32 Четырехместные 2-входные положительные «ИЛИ» элементы. Как и в предыдущем логическом элементе «И», «ИЛИ» также может быть «каскадно» соединен для создания цепей с большим количеством входов, таких как системы охранной сигнализации (зона A или зона B или зона C и т.д.).

Пути решение задач

Пример 1. Нарисуйте схему, которая показывает последовательность логических операций для вычисления логического выражения 1 или (0 и 1). Вычислите значение логического выражения по схеме.​Решение: 1 или (0 и 1) = 1 или 0 = 1 (Мы используем 2-ую строку в столбце Конъюнктор в Таблице 1 и 2-ую строку в столбце Дизъюнктор)

Пример 2.Вычислите значение логического выражения ​НЕ (1 И (0 ИЛИ 1) И 1), составив схему логических​элементов.

Решение: в соответствии с правилом приоритета выполнения действий сначала вычисляются действия в скобках.​Выражение НЕ(1 И (0 ИЛИ 1) И 1):​1. 0 или 1​2. 1 и 1​3. 1 и 1​4. Не (1) результат равен 0.

Типы триггеров[править]

RS-триггерправить

RS-триггер, построенный на основе ИЛИ-НЕ элементов.

Самым простым триггером, который можно построить, является триггер на двух инверторах. Он не имеет входов, поэтому изменить его состояние невозможно. Выход будет всегда иметь состояние, заданное при создании, а будет всегда иметь обратное значение. Однако, недостаток такого триггера очевиден — его состояние нельзя менять.

Если добавить к такому триггеру входы, то получится простейший триггер, состояние которого менять можно — -триггер. Он имеет два входа: (reset) и (set), и два выхода: и (инвертированный ). Рассмотрим принцип работы -триггера. Изначально на выходе и . При подаче на , на выходное значение триггера становится нулем (происходит сброс значения), при подаче на , на выходное значение триггера становится единицей (происходит установка нового значения). При подаче двух нулей триггер свое состояние не меняет, выходное значение при подаче двух единиц не определено. Для вычисления следующего значения необходимо знать предыдущее значение, поэтому обычно за начальное состояние берется , . Предположим, что первые биты, которые мы даем на вход, являются нулями. Тогда, так как , можно вычислить , используя , а затем, посчитать через и убедиться в том, что . Это показывает, что значения и согласованы. Аналогично можно показать, что выходы согласованы и при , .

Предыдущее значение
1 1
1
1 1 Не определено

Синхронный RS-триггерправить

Синхронный RS-триггер

Существенным недостатком -триггера является то, что если один из сигналов на вход придет раньше другого, триггер примет неправильное состояние. Для того, чтобы избежать этой проблемы, вводится еще один входной сигнал — сигнал синхронизации. Синхронный -триггер будет как-либо реагировать на входные сигналы только в том случае, когда на вход подана единица. В остальном синхронный -триггер не отличается от обычного -триггера.

Предыдущее значение
1 Предыдущее значение
1 Предыдущее значение
1 1 Предыдущее значение
1 Предыдущее значение
1 1 1
1 1
1 1 1 Не определено

JK-триггерправить


JK-триггер

-триггер по принципу работы похож на синхронный -триггер. (jump) является аналогом (set), (kill) является аналогом (reset). При подаче единицы на бит синхронизации и при подаче единицы на и нуля на на выходе единица, при подаче нуля на и единицы на на выходе ноль. При обоих нулях выдается предыдущее значение. Существенным отличием -триггера от -триггеров является то, что состояние с двумя единицами на входе определено. При обеих единицах на выход подается инвертированное предыдущее значение. Стоит заметить, что -триггер существует только с синхронизацией, потому что без синхронизации при подаче на входы двух единиц, триггер бы постоянно переключался и не остановился бы в каком-то конкретном значении, а, если есть синхронизация, при подаче двух единиц, триггер меняет значение только при изменении сигнала синхронизации.

Предыдущее значение
1 Предыдущее значение
1 Предыдущее значение
1 1 Предыдущее значение
1 Предыдущее значение
1 1
1 1 1
1 1 1 Инвертированное предыдущее

-триггер является универсальным триггером, на его основе можно построить множество других триггеров, например -триггер.

T-триггерправить

(toggle)-триггер является триггером, изменяющим свое выходное значение на противоположное на каждом такте, когда на входы и поданы единицы. На основе нескольких -триггеров можно построить счетчик. -триггер тоже строится на основе -триггера.

Предыдущее значение
1 Предыдущее значение
1 Предыдущее значение
1 1 Значение меняется на каждом такте

RS-триггер через JK-триггер

T-триггер


Счетчик, построенный на T-триггерах

C помощью -триггера можно построить счетчик. На вход подается тождественная логическая единица, а на вход подаются инвертированные импульсы синхронизации. Однако, если на первый -триггер подаются инвертированные исходные импульсы синхронизации, то на остальные триггеры инвертированные импульсы синхронизации передаются с частотой в два раза меньше. Это связано с тем, что -триггер в данной реализации меняет свое состояние по спаду импульса синхронизации. Таким образом получается, что на выходы , , подаются соответствующие биты количества поданных на первый триггер импульсов. является младшим битом трехбитного числа, — старшим.

D-триггерправить

D-триггер

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

Записанное ранее значение
1 Записанное ранее значение
1 Запись
1 1 Запись

Логические основы работы компьютера

Знания из области математической логики можно использовать для конструирования электронных устройств. Нам известно, что 0 и 1 в логике не просто цифры, а обозначение состояний какого-то предмета нашего мира, условно называемых “ложь” и “истина”. Таким предметом, имеющим два фиксированных состояния, может быть электрический ток.

Логические элементы имеют один или несколько входов и один выход, через которые проходят электрические сигналы, обозначаемые условно 0, если “отсутствует” электрический сигнал, и 1, если “имеется” электрический сигнал.

Базовые логические элементы реализуют три основные логические операции: «И», «ИЛИ», «НЕ».

Логический элемент «НЕ» (инвертор)

Простейшим логическим элементом является инвертор, выполняющий функцию отрицания. Если на вход поступает сигнал, соответствующий 1, то на выходе будет 0. И наоборот.

У этого элемента один вход и один выход. На функциональных схемах он обозначается:

Говорят также, что элемент «НЕ» инвертирует значение входной двоичной переменной.

Проверь соответствие логического элемента “НЕ” логическому элементу “НЕ”. Воспользуйся тренажером Логические элементы.xlsx

Логический элемент «И» (конъюнктор)

Логический элемент «И» (конъюнктор) выдает на выходе значение логического произведения входных сигналов.

Он имеет один выход и не менее двух входов. На функциональных схемах он обозначается:

Сигнал на выходе конъюнктора появляется тогда и только тогда, когда поданы сигналы на все входы. На элементарном уровне конъюнкцию можно представить себе в виде последовательно соединенных выключателей. Известным примером последовательного соединения проводников является елочная гирлянда: она горит, когда все лампочки исправны. Если же хотя бы одна из лампочек перегорела, то гирлянда не работает.

Проверь соответствие логического элемента “И” логическому элементу “И”. Воспользуйся тренажером Логические элементы.xlsx

Логический элемент «ИЛИ» (дизъюнктор)

Логический элемент «ИЛИ» (дизъюнктор) выдает на выходе значение логической суммы входных сигналов. Он имеет один выход и не менее двух входов. На функциональных схемах он обозначается:

Сигнал на выходе дизъюнктора не появляется тогда и только тогда, когда на все входы не поданы сигналы.

На элементарном уровне дизъюнкцию можно представить себе в виде параллельно соединенных выключателей.

Примером параллельного соединения проводников является многорожковая люстра: она не работает только в том случае, если перегорели все лампочки сразу.

Проверь соответствие логического элемента “ИЛИ” логическому элементу “ИЛИ”. Воспользуйся тренажером Логические элементы.xlsx

Пример 1. Составьте логическую схему для логического выражения: F=A / B / A.

1. Две переменные – А и В.

2. Две логические операции: 1-/, 2-/.

Пример 2. Постройте логическую схему, соответствующую логическому выражению F=А/В/ ¬(В/А). Вычислить значения выражения для А=1,В=0.

1. Переменных две: А и В; 1 4 3 2

2. Логических операций три: / и две /; А/В/ ¬ (В/ А).

3. Схему строим слева направо в соответствии с порядком логических операций:

4. Вычислим значение выражения: F=1 / 0 / ¬(0 / 1)=0

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

Таблица истинности конъюнктора

Принципиальная схема конъюнктора: диодная сборка

Здесь А и В — входные сигналы. В таблице 6.2 приводится описание работы диодной сборки.

Описание работы конъюнктора

D2 — закрыт, D, — открыт

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

Таблица истинности дизъюнктора

Принципиальная схема дизъюнктора

В таблице 6.3 дано описание работы диодной схемы дизъюнктора.

Применение элемента Исключающее ИЛИ

С точки зрения математики, элемент Исключающее ИЛИ выполняет операцию суммирования по модулю 2. Поэтому эти элементы иногда называют сумматорами по модулю два. Основное предназначение элементов Исключающее ИЛИ состоит в сравнении двух входных сигналов (когда на входы приходят два высоких или два низких логических уровня на выходе формируется лог. 0), очень часто данный элемент применяют для формирования задержки сигнала или формирования коротких импульсов.

Управляемый инвертор

Важное применение элементов Исключающее ИЛИ – управляемый инвертор. Опишем его работу

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

Элемент Исключающее ИЛИ в качестве управляемого инвертора.

Смешивание сигналов

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

Применение элемента Исключающее ИЛИ для смешивания двух неодновременных сигналов.

Формирование коротких импульсов

Второе важное применение данного элемента – выделение фронта и среза входного импульса, которое традиционно делали с помощью дифференцирующего RC-звена, с последующим усилением и формированием сигнала. Микросхема с элементами Исключающее ИЛИ упрощает данную задачу

Выделения фронта и среза импульса.

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



Схема реализующая выделение фронта и среза импульса.

Теория это хорошо, но без практического применения это просто слова.Здесь можно всё сделать своими руками.

Оцените статью:
Оставить комментарий