Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ЭИС-2 / ЛР-4 / ЭИС2 №4

.pdf
Скачиваний:
2
Добавлен:
15.06.2026
Размер:
2 Мб
Скачать

3 ВЫЧИСЛИТЕЛЬНЫЙ БЛОК

Функцональная схема вычислительного блока представлена на рисунке

3.1

Рисунок 3.1 — Функцональная схема

Далее рассмотрим схему по блокам. Функциональная схема входного блока представлена на рисунке 3.2.

Данный блок содержит в себе записывающий регистр и счетчик.

Рисунок 3.2 — Входной блок

11

Функциональная схема операционного блока представлена на рисунке 3.3. В нем имеется устройства для выполнения логической и арифметической операции. Блок для выполнения проверки Commodore GCR-кода. Блок для выбора операции для выполнения.

Рисунок 3.3 — Операционный блок

12

Функциональная схема выходного блока представлена на рисунке 3.4

Рисунок 3.4 — Выходной блок

13

Далее был составлен план моделирования схемы, представленный в таблице 3.1 Таблица 3.1 – План моделирования

 

 

 

Входы

 

 

 

 

 

Выходы

 

 

 

 

 

 

 

 

 

 

 

 

 

КОП

 

А

 

 

В

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

D5

D4

D3

D2

D1

D0

Y4

Y3

 

Y2

 

Y1

Y0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

01

X

0

0

1

1

1

1

0

 

0

 

0

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

01

X

1

1

1

0

0

0

1

 

0

 

0

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

01

X

1

0

1

0

0

0

0

 

1

 

0

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

01

X

1

0

0

0

1

0

0

 

0

 

1

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

01

X

1

1

1

1

1

0

0

 

0

 

0

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

10

0

0

0

0

1

0

-

-

 

1

 

0

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

10

0

1

0

1

1

1

-

-

 

0

 

1

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

11

0

0

0

0

0

1

-

-

 

0

 

1

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

11

0

1

1

0

0

1

-

-

 

1

 

0

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

00

X

X

X

X

X

X

0

1

 

0

 

1

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

сброс

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

00

X

X

X

X

X

X

0

0

 

0

 

0

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Система обрабатывает входные данные data_in и код операции code_in по переднему фронту внешнего синхроимпульса C_ext. При подаче активного сигнала RD = 1 происходит выдача значений в строку dout последовательным кодом, начиная с младших разрядов (LSB̅ first). Выдача синхронизируется импульсами C_out, которые зависят от количества выдаваемых значений. Сброс всех регистров выполняется сигналом RST синхронно с внутренним тактовым сигналом C_int.

Операции обработки:

14

Код 01 — проверка Commodore GCR-кода (задача №9); Код 10 — логическая побитовая операция A B̅T;

Код 11 — арифметическая операция A+B̅+1;

Код 00 — вывод количества выполненных операций.

В результате моделирования были реализованы несколько наборов данных для каждой из операций. Разберем каждый код операции.

Cигнал C_int возникает каждые 100 нс.

Первый код 01 на промежутке 400 — 600 нс. Момент нарастающего фронта C_ext 500 нс, входные данные data_in = X00111 и code_in = 01, активный уровень сигнала RD = 1 на интервале 600 — 800 нс. Нисходящие фронты C_out на отметках 750 нс (dout=0), 950 нс (dout=0), 1,15 мкс (dout=0), 1,35 мкс (dout=0) и 1,55 мкс (dout=1). На выходе при последовательной передаче младшими разрядами вперёд (LSB̅ first) получаем поток dout = 00001, что соответствует параллельному коду 10000 из таблицы.

Второй код 01 на промежутке 1,8 — 2,0 мкс. Момент нарастающего фронта C_ext 1,9 мкс, входные данные data_in = X11100 и code_in = 01, активный уровень сигнала RD = 1 на интервале 2,0 — 2,2 мкс. Нисходящие фронты C_out на отметках 2,15 мкс (dout=0), 2,35 мкс (dout=0), 2,55 мкс (dout=0), 2,75 мкс (dout=1) и 2,95 мкс (dout=0). На выходе при последовательной передаче младшими разрядами вперёд (LSB̅ first) получаем поток dout = 00010, что соответствует параллельному коду 01000 из таблицы.

Рисунок 3.5 — Моделирования в режиме Functional для 1 и 2 операции

15

Рисунок 3.6 — Моделирования в режиме Timing для 1 и 2 операции

Третий код 01 на промежутке 3,2 — 3,4 мкс. Момент нарастающего фронта C_ext 3,3 мкс, входные данные data_in = X10100 и code_in = 01, активный уровень сигнала RD = 1 на интервале 3,4 — 3,6 мкс. Нисходящие фронты C_out на отметках 3,55 мкс (dout=0), 3,75 мкс (dout=0), 3,95 мкс (dout=1), 4,15 мкс (dout=0) и 4,35 мкс (dout=0). На выходе при последовательной передаче младшими разрядами вперёд (LSB̅ first) получаем поток dout = 00100, что соответствует параллельному коду 00100 из таблицы.

Четвёртый код 01 на промежутке 4,6 — 4,8 мкс. Момент нарастающего фронта C_ext 4,7 мкс, входные данные data_in = X10001 и code_in = 01, активный уровень сигнала RD = 1 на интервале 4,8 — 5,0 мкс. Нисходящие фронты C_out на отметках 5,05 мкс (dout=0), 5,25 мкс (dout=1), 5,45 мкс (dout=0), 5,65 мкс (dout=0) и 5,85 мкс (dout=0). На выходе при последовательной передаче младшими разрядами вперёд (LSB̅ first) получаем поток dout = 01000, что соответствует параллельному коду 00010 из таблицы.

16

Рисунок 3.7 — Моделирования в режиме Functional для 3 и 4 операции

Рисунок 3.8 — Моделирования в режиме Timing для 3 и 4 операции

Пятый код 01 на промежутке 6,0 — 6,2 мкс. Момент нарастающего фронта C_ext 6,1 мкс, входные данные data_in = X11111 и code_in = 01, активный уровень сигнала RD = 1 на интервале 6,2 — 6,4 мкс. Нисходящие фронты C_out на отметках 6,45 мкс (dout=1), 6,65 мкс (dout=0), 6,85 мкс (dout=0), 7,05 мкс (dout=0) и 7,25 мкс (dout=0). На выходе при последовательной передаче младшими разрядами вперёд (LSB̅ first) получаем поток dout = 10000, что соответствует параллельному коду 00001 из таблицы.

Первый код 10 на промежутке 7,4 — 7,6 мкс. Момент нарастающего фронта C_ext 7,5 мкс, входные данные data_in = 000010 и code_in = 10, активный уровень сигнала RD = 1 на интервале 7,6 — 7,8 мкс. Нисходящие фронты C_out на отметках 7,95 мкс (dout=1), 8,15 мкс (dout=0) и 8,35 мкс

17

(dout=1). На выходе при последовательной передаче младшими разрядами вперёд (LSB̅ first) получаем поток dout = 101, что соответствует параллельному коду 101 из таблицы.

Рисунок 3.9 — Моделирования в режиме Functional для 5 и 6 операции

Рисунок 3.10 — Моделирования в режиме Timing для 5 и 6 операции

Второй код 10 на промежутке 8,9 — 9,1 мкс. Момент нарастающего фронта C_ext 9,0 мкс, входные данные data_in = 010111 и code_in = 10, активный уровень сигнала RD = 1 на интервале 9,1 — 9,3 мкс. Нисходящие фронты C_out на отметках 9,45 мкс (dout=0), 9,65 мкс (dout=1) и 9,85 мкс (dout=0). На выходе при последовательной передаче младшими разрядами вперёд (LSB̅ first) получаем поток dout = 010, что соответствует параллельному коду 010 из таблицы.

18

Первый код 11 на промежутке 10,4 — 10,6 мкс. Момент нарастающего фронта C_ext 10,5 мкс, входные данные data_in = 000001 и code_in = 11, активный уровень сигнала RD = 1 на интервале 10,6 — 10,8 мкс. Нисходящие фронты C_out на отметках 11,25 мкс (dout=0), 11,45 мкс (dout=1) и 11,65 мкс (dout=0). На выходе при последовательной передаче младшими разрядами вперёд (LSB̅ first) получаем поток dout = 010, что соответствует параллельному коду 010 из таблицы.

Рисунок 3.11 — Моделирования в режиме Functional для 7 и 8 операции

Рисунок 3.12 — Моделирования в режиме Timing для 7 и 8 операции

Второй код 11 на промежутке 12,2 — 12,4 мкс. Момент нарастающего фронта C_ext 12,3 мкс, входные данные data_in = 011001 и code_in = 11, активный уровень сигнала RD = 1 на интервале 12,4 — 12,6 мкс. Нисходящие фронты C_out на отметках 12,85 мкс (dout=1), 13,05 мкс (dout=0) и 13,25 мкс

19

(dout=1). На выходе при последовательной передаче младшими разрядами вперёд (LSB̅ first) получаем поток dout = 101, что соответствует параллельному коду 101 из таблицы.

Первый код 00 на промежутке 13,9 — 14,1 мкс. Момент нарастающего фронта C_ext 13,8 мкс, входные данные data_in = XXXXXX и code_in = 00, активный уровень сигнала RD = 1 на интервале 14,0 — 14,2 мкс. Нисходящие фронты C_out на отметках 14,25 мкс (dout=0), 14,45 мкс (dout=1), 14,65 мкс (dout=0), 14,85 мкс (dout=1) и 15,05 мкс (dout=0). На выходе при последовательной передаче младшими разрядами вперёд (LSB̅ first) получаем поток dout = 01010, равное 10 операциям, что соответствует параллельному коду 01010 из таблицы.

Рисунок 3.13 — Моделирования в режиме Functional для 9 и 10 операции

Рисунок 3.14 — Моделирования в режиме Timing для 9 и 10 операции

20

Соседние файлы в папке ЛР-4