Технология выполнения задания




1. С помощью встроенных функций MATLAB представьте взятые по варианту из табл. 2.1 три числа a, b и d двоичным эквивалентом. Для этого в режиме прямых вычислений в командной строке MATLAB введите числа, например, a =105, b =120, d =45:

>> dec2bin([105, 120, 45]) % преобразование десятичных

% чисел в двоичные эквиваленты

ans =

>> a=[0 1 1 0 1 0 0 1]; % двоичное число в виде вектора

>> b=[0 1 1 1 1 0 0 0];

>> d=[0 0 1 0 1 1 0 1];

2. В текстовом редакторе создайте таблицу, в которую внесите десятичные числа a, b и d их двоичные эквиваленты. Все числа должны быть одинаковой разрядности. У положительных чисел знак «+» кодируется 0, и он добавляется в качестве старшего разряда в двоичный эквивалент числа.

Число – d представить дополнительным кодом. Для этого:

- знак «–» кодируется 1 и добавляется в качестве старшего разряда в двоичный эквивалент числа,

- значащие разряды инвертируются по отношению к прямому коду,

- добавляется 1 в младший разряд двоичного эквивалента.

a 10 b 10 d 10 a 2 b 2 + d 2 d 2
             

3. С помощью встроенные функции MATLAB (not (), and (), or (), xor ()) произведите в режиме прямых вычислений логические операции в соответствии с вариантом над числами a 2, b 2 и d 2. Ожидаемые результаты:

>> or(a,or(b,d))

ans =

0 1 1 1 1 1 0 1

>> bin2dec(' 0 1 1 1 1 1 0 1 ')

ans =

>> not(or(a,or(b,d)))

ans =

1 0 0 0 0 0 1 0

>> bin2dec(' 1 0 0 0 0 0 1 0 ')

ans =

>> and(a,and(b,d))

ans =

0 0 1 0 1 0 0 0

>> bin2dec(' 0 0 1 0 1 0 0 0 ')

ans =

>> not(and(a,and(b,d)))

ans =

1 1 0 1 0 1 1 1

>> bin2dec(' 1 1 0 1 0 1 1 1 ')

ans =

>> xor(a,xor(b,d))

ans =

0 0 1 1 1 1 0 0

>> bin2dec(' 0 0 1 1 1 1 0 0 ')

ans =

>> a10=105;

>> b10=120;

>> d10=45;

>> a10+d10

ans =

>> dec2bin(150)

ans =

4. Результаты расчета над числами a, b, d без учета знака поместите в отчет в новую таблицу:

Таблица результатов расчета и моделирования чисел a, b, d

Операции с a, b, d 105, 120, 45 Ожидаемый результат Результат моделирования
в двоичном коде в десятичном коде
AND      
NAND      
OR      
NOR      
XOR      
ADD(A,D)      

5. Аналогично пп.3 и 4 выполнить расчет с числами a, b, –d (с учетом знака) и результат поместить в таблицу.

>> a=[0 1 1 0 1 0 0 1]; % двоичное число в виде вектора

>> b=[0 1 1 1 1 0 0 0];

>> d=[0 0 1 0 1 1 0 1]; % число +45

>> not(d)

ans =

1 1 0 1 0 0 1 0

>> dm=[1 1 0 1 0 0 1 1]; % число -45 в дополнительном коде

>> or(a,or(b,dm)) % ожидаемый результат дизъюнкции

% в дополнительном коде

ans =

1 1 1 1 1 0 1 1

% перевод из дополнительного кода в прямой

>> not([ 1 1 1 1 0 1 1]) % без учета знака

ans =

0 0 0 0 1 0 0

>> d=[1 0 0 0 0 1 0 0]+[0 0 0 0 0 0 0 1]

d =

1 0 0 0 0 1 0 1 % число -5

bin2dec(' 0 0 0 0 1 0 1') % без учета знака

ans =

Аналогичные вычисления и с другими операциями.

 

 

Таблица результатов расчета и моделирования чисел a, b, –d

Операции с a, b, -d 105, 120, -45 Ожидаемый результат Результат моделирования
в двоичном коде в десятичном коде
AND      
NAND   -65  
OR   -5  
NOR      
XOR   -62  
ADD(A,D)      

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

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

Таблица 2.2. Значения параметров блоков моделирования

Название и назначение блоков Размещение в браузере Параметры блоков
Источники: Constant1,2,3 Simulink / Sources Constant value // значения для a, b, d из табл. 2.1.
Устройство объединения: Mux Simulink / Signal Routing Number of inputs 3 // количество объединяемых входов
Блок преобразования типов Data Type Conversion Simulink / Commonly Used Blocs Outputdada type значения: uint8для чиселбез знака, int8для чиселсо знаком
Логический блок: Bitwise Operator Simulink / Logic and Bit Operations Operator: AND, Or, NAND, NOR, XOR // поочередно
Математический блок Add Simulink / Math Operations По умолчанию
Регистраторы: Display, Display1 Simulink / Sinks По умолчанию

7. Установите для каждого блока соответствующие свойства. Окна параметров блоков приведены на рис. 1.2 и 1.3.

Для решения Задания используются следующие блоки.

Блок Mux (мультиплексор) – объединяет входные сигналы в вектор. Количество входов устанавливается в окне параметры блока (рис. 2.2).

 

Рис. 2.2. Окно установки параметров блока Mux

Блок BitwiseLogicalOperator – поразрядный логический оператор реализует одну из базовых логических операций по отношению к данным в формате uint/int. Количество входов и вид операции устанавливается в окне параметры блока (рис. 2.3).

 

Рис. 2.3. Окно установки параметров блока Bitwise Operator

Входными сигналами блока могут быть беззнаковые переменные типа uint8, uint16, uint32, или переменные со знаком («+» 0 и «–» 1) типа int8, int16, int32. Если оба операнда векторы, то операции выполняются поэлементно, при этом размерность операндов должны совпадать. Размерность выходного сигнала определяется размерностью вектора (или массива) входного сигнала.

Блок DataTypeConversion преобразует десятичное число типа double в 8-разрядное целое число типа uint (без знака) или int (с учетом знака). Тип преобразуемого числа устанавливается в окне параметры блока (рис. 2.4).

 

 

Рис. 2.4. Окно установки параметров блока Data Type Conversion

Блок математических операций Add служит для вычисления суммы или разности текущих значений сигналов. Вид арифметического действия и количество входов устанавливаются в списке обозначений (List of signs) окна параметры блока (рис. 2.5). Например, ++ (два входа и операция сложения) или +- (два входа и операция вычитания).

 

Рис. 2.5. Окно установки параметров блока ADD

8. Сохраните модель в своей папке и запустите на исполнение. Результаты вычислений отобразятся в дисплее (рис. 2.1). Скопируйте модель в отчет.

9. Внесите изменение в модель и выполните аналогичные действия (п.п. 6-8) с заданными числами a, b, -d (рис. 2.6).

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


Сумматоры

Подготовка к работе

По указанной литературе изучить:

- понятие полусумматора;

- понятие одноразрядного и многоразрядного сумматора;

- объекты подбиблиотеки Logic and Bit Operations, Sinks, Sources, Signal Routing библиотеки Simulink.

Цель работы

Изучить работу полусумматора, одноразрядного и многоразрядного сумматоров.



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2019-11-09 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: