Моделирование логических устройств
Подготовка к работе
По указанной литературе изучить:
- правила выполнения логических операций НЕ, И, ИЛИ, исключающее ИЛИ;
- браузер Simulink и объекты подбиблиотеки Logic and Bit Operations, Sinks, Sources библиотеки Simulink.
Цель работы
Изучить основные логические операции и элементы, реализующие эти операции.
Задание и порядок выполнения работы
1. Запустить Simulink. Изучить структуру интерфейса.
2. Задания. Выполнить расчет и последующее моделирование двухвходовых (a и b) логических устройств, заданных по варианту в табл. 1.1. Для этого:
- представить два числа (a и b) двоичным эквивалентом;
- выполнить над ними операции, заданные по варианту;
- полученные результаты свести в таблицу, выполненную с использованием MS Word;
- проверить результаты выполненных операций путем моделирования устройств с использованием логических блоков Simulink;
- сравнить результаты моделирования с прогнозируемыми значениями;
- скопировать в отчет полученные модели и результаты проверки решения;
- сделать выводы по проделанной работе.
Таблица 1.1. Варианты логических операций.
N | a | b | Операции | |
сравнения | логические | |||
a > b | ; ; ; ; | |||
a ³ b | ; ; ; ; | |||
a < b | ; ; ; ; | |||
a £ b | ; ; ; ; | |||
a == b | ; ; ; ; | |||
a ~= b | ; ; ; ; | |||
a > b | ; ; ; ; | |||
a ³ b | ; ; ; ; | |||
a < b | ; ; ; ; | |||
a £ b | ; ; ; ; | |||
a == b | ; ; ; ; | |||
a ~= b | ; ; ; ; | |||
a > b | ; ; ; ; | |||
a ³ b | ; ; ; ; | |||
a < b | ; ; ; ; | |||
a £ b | ; ; ; ; |
* В таблице приняты следующие обозначения: И Ù (AND), ИЛИ Ú (OR), И-НЕ (NAND), ИЛИ-НЕ (NOR), исключающее ИЛИ (XOR), эквивалентность (NXOR).
Технология выполнения задания
1. Ознакомьтесь с порядком создания модели, который описан во введении.
2. С помощью встроенных функций MATLAB представьте два числа a и b, взятые по варианту из табл. 1.1, двоичным эквивалентом. Для этого в режиме прямых вычислений в командной строке MATLAB введите поочередно два числа, например, a =3 и b =9:
>> a=dec2bin(3) % преобразование 10-го числа «3» в 2-е
a =
>> b=dec2bin(9) % преобразование 10-го числа «9» в 2-е
b =
3. В текстовом редакторе создайте таблицу, в которую внесите десятичные числа a и b и их двоичные эквиваленты. Оба числа должны быть одинаковой разрядности:
a 10 | b 10 | a 2 | b 2 |
4. С помощью встроенные функции MATLAB (not (), and (), or (), xor ()) произведите в режиме прямых вычислений логические операции над числами a 2 и b 2 в соответствии с вариантом. Например,
>> a=[0 0 1 1]; % вектор двоичного числа a
>> b=[1 0 0 1]; % вектор двоичного числа b
>> and(a,b)
ans =
0 0 0 1
>> not(and(a,b))
ans =
1 1 1 0
>> or(a,b)
ans =
1 0 1 1
>> not(or(a,b))
ans =
0 1 0 0
>> xor(a,b)
ans =
1 0 1 0
>> not(xor(a,b))
ans =
0 1 0 1
>> a>=b
ans =
0 1 1 1
В случае сложных операций, например, можно использовать вложенные функции: not (xor (a, not (b))).
5. Результаты расчета поместите в отчет в новую таблицу «результаты расчета и моделирования»:
Операции c числами a, b | Встроенные функции | Ожидаемый результат | Результат моделирования |
AND | and(a,b) | ||
NAND | not(and(a,b)) | ||
OR | or(a,b) | ||
NOR | not(or(a,b)) | ||
XOR | xor(a,b) | ||
NXOR | not(xor(a,b)) | ||
>= | a>=b |
6. В Simulink создайте модель логического устройства (рис. 1.1), выполняющего заданные логические операции. В таблице 1.2 указаны названия блоков, папки в которых находятся нужные блоки для моделирования и параметры блоков, установленные по умолчанию, которые нужно изменить.
Рис. 1.1. Моделирование операций AND и сравнения
* двоичные числа a и b должны быть одинаковой разрядности.
Таблица 1.2. Значения параметров блоков моделирования
Название и назначение блоков | Размещение в браузере | Параметры блоков |
Источник входных данных Constant | Simulink / Sources | Constant value [0 0 1 1] // значения a=3 * |
Constant1 | Simulink / Sources | Constant value [1 0 0 1] // значения b=9 * |
Логический блок Logical Operator | Simulink / Logic and Bit Operations | Operator: AND, OR, NAND, NOR, XOR, NXOR // поочередно |
Логический блок сравнения данных Relational Operator | Simulink / Logic and Bit Operations | Relational Operator: ==, ~=, <, <=, >, >= // по варианту |
Регистраторы Display, Display1 | Simulink / Sinks | По умолчанию |
7. Установите для каждого блока соответствующие свойства. Окна параметров блоков приведены на рис. 1.2 и 1.3.
Блок Constant (источник) задает постоянный по уровню сигнал. Значение может быть скаляром, вектором или массивом. При вводе вектора числа разделяются пробелами, а сам вектор заключается в квадратные скобки, например, [1 0 1 1 0 1 1].
Блок Logical Operator реализует одну из базовых логических операций. Количество входов и вид операции устанавливается в окне параметров блока (см. рис.1.3). Все операции, кроме NOT выполняются над несколькими операндами. Операция NOT выполняется над одним операндом, например или , или над результатом логической операции.
Блок Relational Operator сравнивает текущие значения входных сигналов. В окне параметры блока устанавливается тип операции отношения. Если значения – векторы, то происходит сравнение чисел находящихся на одноуровневых позициях.
Блок Display отображает значение в виде числа. Для отображения всех значений вектора, необходимо увеличить размер дисплея.
Вектор двоичного числа |
Рис. 1.2. Окно установки параметров блока Constant
Базовые операции |
Количество входных портов |
Рис. 1.3. Окно установки параметров блока Logical Operator
Рис. 1.4. Окно установки параметров блока Relational Operator
8. Сохраните модель в своей папке. Имена папки и файла должно содержать латинские символы (допускаются цифры, но не на первом месте).
9. Запустите модель на исполнение. Результаты вычислений отобразятся в дисплее (рис. 1.5).
Рис. 1. 5. Модель работы логического устройства
10. Двойным щелчком мыши образуйте текстовую область в модели и добавьте заголовок к модели, а также название входов a и b. Текстовые комментарии допустимо вносить только латинскими символами.
11. Полученные на дисплее значения внесите в таблицу отчет в колонку «Результат моделирования» (см. п.5 Таблица результатов расчета и моделирования). Сопоставьте результаты моделирования с ожидаемыми результатами. Если результат моделирования не совпал с ожидаемым результатом, то нужно проверить вычисления на наличие ошибки в прогнозе или изменить параметры модели.
12. Скопируйте модель в отчет с помощью клавиш клавиатуры Alt + Print Screen (см. рис. 1.4).
13. Используя полученную модель, аналогично выполните поочередно другие операции, заданные по варианту. Для каждой логической операции необходимо:
- внести изменения в схему, путем установки по варианту нужных параметров блока Logical Operator,
- запустить модель на исполнение,
- снять показания с дисплея,
- внести эти показания в таблицу отчет,
- сравнить полученный результат моделирования с ожидаемым результатом,
- скопировать скорректированную модель в отчет.
14. По окончанию работы сохраните отчет в папке с моделью и сделайте письменно выводы по проделанной работе. В отчете отразить:
- Название работы, цель работы, задание в соответствии с вариантом.
- Вычисления с ожидаемым результатом в виде таблицы.
- Модели заданий в соответствии с номером варианта.
- Результаты компьютерного моделирования.
- Выводы по работе.