microbik.ru
1




Лабораторная работа №3

Тема: Изучение полусумматоров, сумматоров и арифметико-логического устройства (АЛУ).

Цель работы: Ознакомиться с компьютерной программой Ktechlab и с помощью этой программы «собрать» на экране полусумматор, сумматор и АЛУ для сложения/вычитания 4-х разрядных двоичных чисел. Для полусумматора и сумматора заполнить таблицы истинности, а с помощью АЛУ выполнить сложение/вычитание арифметических примеров своего варианта.

Оборудование: Компьютер фирмы IBM, операционная система LINUX, программа Ktechlab.
Выполнение лабораторной работы:

  1. Ознакомиться с компьютерной программой Ktechlab и изучить теоретические основы работы сумматоров и арифметико-логических устройств.

KTechLab – это Open Source (с открытым кодом) интегрированная среда разработки (IDE) и симуляции схем электроники, и среда программирования PIC микроконтроллеров. Характеризующаяся большими возможностями в работе со схемами – автосоединение и симуляция, общие электронные и логические элементы – KtechLab служит инструментом проверки идей при обучении или в любительской практике.

Новый файл создается либо щелчком по кнопке инструментальной панели, либо пунктом строки меню File/ New, либо нажатием CTRL+n. После этого вы получите окно, показанное на рис. 1.


Рис.1. 1-Строка меню; 2- инструментальная панель; 3-панель компоненты.

Принципы работы

Чтобы начать работать с KTechLab, нужно создать новый документ, тип которого определится вашей задачей:

•Flow Code документ – создание PIC программ.

•Circuit документ – симуляция электрических схем микроконтроллеров.

•Microbe документ – язык высокого уровня для PIC контроллеров.

•Assembly документ – PIC ассемблерная программа.

Основные компоненты

Слева в рабочем окне программы находится вкладка компонентов. Компоненты в KTechLab разделены на категории: источники, дискретные элементы, переключатели, элементы индикации, логические элементы, соединители и микросхемы. Перетаскивание компонента с боковой панели в цепь разместит его под курсором мышки. В качестве альтернативы можно двойным щелчком по изображению компонента на левой панели повторно добавлять его в схему. В этом режиме копия выбранного компонента будет повторно размещаться по левому щелчку мышки до тех пор, пока не будет нажата клавиша Escape либо правая клавиша мышки. Для перемещения компонента достаточно щелкнуть по нему левой клавишей мыши и перетащить его. Если при перетаскивании он выйдет за правый или нижний край рабочей области, она, приспосабливаясь, изменит свой размер.

Все компоненты имеют возможность поворачиваться на 0, 90, 180 или 270 градусов. Для поворота выбранных компонентов необходимо либо щелкнуть правой клавишей мышки и выбрать нужный угол из всплывающего меню, либо щелкнуть по кнопке вращения на инструментальной панели. Последние действия могут быть также доступны с помощью клавиш «[» и «]».

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

В KTechLab есть дискретные компоненты, из которых можно собрать простые аналоговые схемы. Здесь можно найти резисторы, конденсаторы, диоды и транзисторы. Есть широчайший выбор переключателей. Есть мгновенный ключ на замыкание и на размыкание (как одного провода, так и осуществляющего соединение одного из двух проводов) и галетный переключатель. Выходные элементы в KTechLab также разнообразны. Есть простые светодиоды и лампы. Есть двунаправленные светодиоды, семисегментные индикаторы и точечно-матричные дисплеи. Точечно-матричный дисплей может быть практически любым и способен определяться требованиями конкретной задачи. Разумеется, в наличии имеются вольтметры и амперметры.

Соединение компонентов

Есть два режима создания соединений (wires): автоматический (automatic) и ручной (manual). Эти режимы выбираются через выпадающее меню «Connection Routing Mode» на инструментальной панели. Поэкспериментировав с обоими, можно убедиться в том, что автоматическая трассировка часто лучше для маленьких схем, тогда как более сложные могут потребовать ручного соединения. В автоматическом режиме соединения создаются либо перемещением от вывода компонента, либо от существующего соединения с последующим отпусканием клавиши мышки на выбранном выводе или соединении, при этом появится пунктирная линия, которая становится оранжевой при упомянутом отпускании клавиши. Если изображаемая линия черная, это означает то, что, или под курсором мышки ничего нет, или то, что соединяются вместе два элемента, которые уже соединены. При создании блок-схем критерий правильного соединения более сложный.

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

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

Атрибуты компонентов

Большинство компонентов имеют редактируемые атрибуты, такие, как, например, сопротивление для резисторов. По умолчанию, когда выбрана группа однотипных компонент, можно редактировать простые атрибуты с помощью инструментальной панели. Если выбран набор разных типов компонент (как, например, резисторы и конденсаторы), атрибуты не будут отображены для редактирования. Некоторые компоненты имеют более сложные атрибуты, которые не доступны через инструментальную панель. Они могут быть найдены в разделах боковой панели справа. Так, например, диод имеет несколько поведенческих характеристик, которые можно изменить только в правой боковой панели. Если компоненты имеют разные значения атрибутов (к примеру, разное сопротивление для резисторов), образец на боковой панели будет затемнен серым цветом для несогласованных атрибутов. Это можно исправить щелчком по клавише «Merge properties». Клавиша «Defaults» сбросит атрибуты компонента к значению, которое он имел при создании.

Есть один тип компонентов, атрибуты которого не могут быть редактируемыми ни с помощью инструментальной панели, ни с помощью боковой панели, - это компонент multilinetext (многострочный текст). Двойной щелчок по нему открывает диалоговое окно, где можно ввести текст.

Сумматор (ADDER)

Цифровой сумматор — это устройство, в котором осуществляется элементарная операция суммирования двух чисел.

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

Построение двоичных сумматоров обычно начинается с сумматора по модулю 2. Ниже приведена таблица истинности этого сумматора и схема (рис.2) в программе KTechLab, реализующая данный сумматор. В программе сумматор доступен на панели компонентов под названием Adder.


A

B

S=A+B

0

0

0

0

1

1

1

0

1

1

1

0


Рис. 2


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

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

Таблицу истинности полного двоичного одноразрядного сумматора можно получить из правил суммирования двоичных чисел:

Cвх

А

В

Свых

S

0

0

0

0

0

0

0

1

0

1

0

1

0

0

1

0

1

1

1

0

1

0

0

0

1

1

0

1

1

0

1

1

0

1

0

1

1

1

1

1


В обозначении входов использовано следующее правило: в качестве входов использованы одноразрядные числа А и В; перенос обозначен буквой С; для обозначения входа переноса используется индекс «вх», для обозначения выхода переноса используется индекс «вых».

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


Высший разряд

Низший разряд

Рис.3

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

Использование программы KTechLab для построения

арифметико-логического устройства
Арифметико-логическое устройство предназначено для выполнения арифметических и логических (НЕ, И, ИЛИ) операций (рис. 4).



Рис. 4

АЛУ может вычислять следующие функции: A B, A B, A+B, отрицание В. Выбор функции зависит от того, какие сигналы поступают на линии F0 и F1.

В левом нижнем углу схемы находится дешифратор 2х4, который выдает сигналы управления для четырех операций. Вверху схемы расположен логический блок для вычисления AND, OR, NOT. В нижнем правом углу находится полный сумматор для подсчета суммы А+В и осуществления переносов. Таким образом получается 4 выходных сигнала. Но только один из них проходит через последний вентиль ИЛИ в зависимости от того, какую из управляющих линий выбрал дешифратор. Так как ровно один из выходных сигналов дешифратора будет равен 1, то и запускаться будет ровно один из четырех вентилей И. Остальные три вентиля будут выдавать 0 независимо от значений А и В. Здесь вентили И работают в качестве ключей.

АЛУ может выполнять не только логические и арифметические операции над А и В, но и делать их равными нулю, при EnA = 0 (сигнал разрешения А) или EnB = 0 (сигнал разрешения В). Можно также получить A, установив InvA = 1 (инверсия А). При нормальных условиях EnA и EnB равны 1, а InvA = 0.

Наличие входов и выходов переноса позволяют из одноразрядных АЛУ строить АЛУ необходимой разрядности.

  1. Изучить работу полусумматора. В отчете представить исследовательскую схему полусумматора (см. Рис.2) и заполненную таблицу истинности.

  2. Изучить работу сумматора. Для сумматора заполнить таблицу истинности. Исследовательскую схему придумать самим.

  3. Исследовать схему сумматора для суммирования/вычитания 4-х разрядных двоичных чисел, при этом предусмотреть работу сумматора с модифицированным дополнительным кодом (пример схемы соединения одноразрядных сумматоров для реализации четырехразрядных двоичных чисел приведен на рисунке 3). Созданную схему представить для проверки преподавателю!

На созданном сумматоре выполнить арифметические примеры заданного вам варианта.

  1. Ознакомиться со схемой и принципом работы АЛУ представленной на рисунке 4.

Варианты заданий:

Варианты 1,11: (+1) + (+4), (+2)+(-5), (-3)+(-4), (+3)+(+6), (-2)+(-7), (+2)-(+3), (-1)+(-4), (-8)-(-3), (+7)-(-6), (-7)-(+3).

Варианты 2,12: (+3)+(+2), (+5)+(-4), (-7)+(-1), (+7)+(+7), (-4)+(-5), (+6)-(+1), (-2)-(+3), (-3)-(-6), (+4)-(-4), (-3)+(-8).

Варианты 3,13: (+5)+(+2), (+3)+(-2), (-5)+(-3), (+1)+(+7), (-3)+(-8), (+7)-(+1), (-3)-(+5), (-4)-(-7), (+3)-(-5), (-2)-(+7).

Варианты 4,14: (+4)+(+1), (+5)+(-7), (-3)+(-3), (+4)+(+7), (-2)+(-7), (+2)-(-3), (-2)-(+6), (-5)-(-7), (+2)-(-6), (-4)-(+5).

Варианты 5, 15: (+5)+(+2), (+3)+(-2), (-5)+(-3), (+1)+(+7), (-3)+(-8), (+7)-(+1), (-3)-(+5), (-4)-(-7), (+3)-(-5), (-2)+(+7).

Варианты 6, 16: (+2)+(+2), (+6)+(-1), (-3)+(-5), (+2)+(+7), (-6)+(-4), (+2)-(+7), (-1)-(+6), (-2)-(-4), (+2)-(-7), (-6)-(+3).

Варианты 7, 17: (+3)+(+4), (+1)+(-4), (-3)+(-2), (+5)+(+3), (-2)+(-7), (+2)-(+5), (-4)-(+3), (-6)-(-2), (+4)-(-5), (-3)-(+6).

Варианты 8, 18: (+3)+(+1), (+6)+(-2), (-6)+(-1), (+2)+(+7), (-6)+(-4), (+4)-(+1), (-4)-(+2), (-3)-(-5), (+3)-(-8), (-7)-(+6).

Варианты 9, 19: (+6)+(+1), (+4)+(-3), (-4)+(-2), (+4)+(+5), (-4)+(-5), (+3)-(+7), (-3)-(+5), (-3)-(-5), (+4)-(-5), (-4)-(+5).

Варианты 10, 20: (+4)+(+2), (+5)+(-2), (-4)+(-4), (+2)+(+7), (-8)+(-3), (+6)-(+7), (-5)-(+3), (-6)-(-2), (+1)-(-8), (-3)-(+6).
Контрольные вопросы:
1. Что называется модифицированным дополнительным кодом, чем он отличается от дополнительного кода?

2. Что такое переполнение?

3. Чем отличается полусумматор от сумматора?

4. Как в сумматоре представляются отрицательные числа?

5. Чем отличаются в сумматоре выход S от выхода Со?

6. Чем отличается логический элемент ИЛИ от логического элемента исключающее ИЛИ?

7. Скольки разрядный сумматор должен быть для сложения байтовых двоичных чисел с модифицированным дополнительным кодом?

8.


Разработал доцент кафедры информатики, к.т.н. А.Г.Шкляев 14.02.2011.