

3 ВЫЧИСЛИТЕЛЬНЫЙ БЛОК
Функцональная схема вычислительного блока представлена на рисунке
3.1
Рисунок 3.1 — Функцональная схема
Далее рассмотрим схему по блокам. Функциональная схема входного блока представлена на рисунке 3.2.
Данный блок содержит в себе записывающий регистр и счетчик.
11

Рисунок 3.2 — Входной блок
Функциональная схема операционного блока представлена на рисунке 3.3. В нем имеется устройства для выполнения логической и арифметической операции. Блок для выполнения кодирования двоичного числа в 4b5b. Блок для выбора операции для выполнения.
Рисунок 3.3 — Операционный блок
12

Функциональная схема выходного блока представлена на рисунке 3.4
Рисунок 3.4 — Выходной блок
Далее был составлен план моделирования схемы, представленный в таблице 3.1 Таблица 3.1 – План моделирования
|
|
|
Входы |
|
|
|
|
|
Выходы |
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|||
КОП |
|
А |
|
|
В |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
D5 |
D4 |
D3 |
D2 |
D1 |
D0 |
Y4 |
Y3 |
|
Y2 |
|
Y1 |
Y0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
01 |
X |
X |
0 |
0 |
0 |
1 |
0 |
1 |
|
0 |
|
0 |
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
01 |
X |
X |
1 |
0 |
1 |
0 |
1 |
0 |
|
1 |
|
1 |
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
10 |
0 |
1 |
1 |
1 |
0 |
1 |
- |
- |
|
1 |
|
1 |
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
10 |
1 |
0 |
0 |
1 |
0 |
1 |
- |
- |
|
0 |
|
0 |
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
13

Окончание табоицы 3.1
|
|
|
Входы |
|
|
|
|
|
Выходы |
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|||
КОП |
|
А |
|
|
B |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
D5 |
D4 |
D3 |
D2 |
D1 |
D0 |
Y4 |
Y3 |
|
Y2 |
|
Y1 |
Y0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
11 |
0 |
0 |
1 |
1 |
0 |
1 |
- |
- |
|
1 |
|
0 |
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
11 |
1 |
0 |
0 |
0 |
0 |
1 |
- |
- |
|
0 |
|
1 |
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
00 |
X |
X |
X |
X |
X |
X |
0 |
0 |
|
1 |
|
1 |
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
сброс |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
00 |
X |
X |
X |
X |
X |
X |
0 |
0 |
|
0 |
|
0 |
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Итоги моделирования в режимах Timing и Functional представлены на рисунках 3.5 – 3.6 соответственно.
Рисунок 3.5 — Моделирования в режиме Timing
Рисунок 3.6 – Моделирования в режиме Functional
14
Cистема обрабатывает входные данные data_in и код операции code_in по заднему фронту (спаду) внешнего синхроимпульса cext. При подаче активного сигнала read = 0 происходит выдача значений в строку Q последовательным кодом, начиная со младших разрядов. Выдача синхронизируется импульсами cout, которые зависят от количества выдаваемых значений. Сброс всех регистров выполняется сигналом rst асинхронно с внутренним тактовым сигналом cint.
Операции обработки:
Код 01 — преобразование двоичного числа в 4b5b код; Код 10 — логическая побитовая операция A B;
Код 11 — арифметическая операция A - B;
Код 00 — вывод количества выполненных операций.
В результате моделирования были реализованы два набора данных для каждой из операций. Разберем каждsq код операции.
Cигнал C_int возникает каждые 100 нс.
Первый код 01 на промежутке 400 — 600 нс. Момент нисходящего фронта cext 300 — 500 нс, входные данные data_in XX0001 и code_in 01, активный уровень сигнала rd = 0 на интервае от 600 — 800 нс. Восходящие фронты cout на отметках 750 нс, 950 нс, 1,15 мкс, 1,35 мкс и 1,55 мкс. На выходе получаем значение Q равное 10010, совпадающие с таковыми в таблице.
Второй код 01 на промежутке 1,8 — 2 мкс. Момент нисходящего фронта cext 1,7 — 1,9 мкс, входные данные data_in XX1010 и code_in 01, активный уровень сигнала rd = 0 на интервае 2 — 2,2 мкс. Восходящие фронты cout на отметках 2,15 мкс, 2,35 мкс, 2,55 мкс, 2,75 мкс и 2,95 мкс. На выходе получаем значение Q равное 01101, совпадающие с таковыми в таблице.
Первый код 10 на промежутке 3,2 — 3,4 мкс. Момент нисходящего фронта cext 3,1 — 3,3 мкс, входные данные data_in 011101 и code_in 10, активный уровень сигнала rd = 0 на интервае от 3,4 — 3,6 мкс. Восходящие
15
фронты cout на отметках 3,55 мкс, 3,75 мкс и 3,95 мкс. На выходе получаем значение Q равное 011, совпадающие с таковыми в таблице.
Второй код 10 на промежутке 4,6 — 4,8 мкс. Момент нисходящего фронта cext 4,5 — 4,7 мкс, входные данные data_in 100101 и code_in 10, активный уровень сигнала rd = 0 на интервае от 4,8 — 5 мкс. Восходящие фронты cout на отметках 4,95 мкс, 5,15 мкс и 5,35 мкс. На выходе получаем значение Q равное 100, совпадающие с таковыми в таблице.
Первый код 11 на промежутке 6 — 6,2 мкс. Момент нисходящего фронта cext 5,9— 6,1 мкс, входные данные data_in 001101 и code_in 11, активный уровень сигнала rd = 0 на интервае от 6,2 — 6,4 мкс. Восходящие фронты cout на отметках 6,35 мкс, 6,55 мкс и 6,75 мкс. На выходе получаем значение Q равное 001, совпадающие с таковыми в таблице.
Второй код 11 на промежутке 7,4 — 7,6 мкс. Момент нисходящего фронта cext 7,4 — 7,6 мкс, входные данные data_in 100001 и code_in 11, активный уровень сигнала rd = 0 на интервае от 7,6 — 7,8 мкс. Восходящие фронты cout на отметках 7,75 мкс, 7,95 мкс и 8,15 мкс. На выходе получаем значение Q равное 110, совпадающие с таковыми в таблице.
Первый код 00 на промежутке 9 — 9,2 мкс. Момент нисходящего фронта cext 8,9— 9,1 мкс, входные данные data_in XXXXXX и code_in 00, активный уровень сигнала rd = 0 на интервае 9,2— 9,4 мкс. Восходящие фронты cout на отметках 9,35 мкс, 9,55 мкс, 9,75 мкс, 9,95 мкс и 10,15 мкс. На выходе получаем значение Q равное 11100, совпадающие с таковыми в таблице.
Следующая команда – это сброс rst на промежутке 10,4 — 10,6 мкс. Входных и выходных данных нет.
Второй код 00 на промежутке 10,8 — 11 мкс. Момент нисходящего фронта cext 10,7— 10,9 мкс, входные данные data_in XXXXXX и code_in 00, активный уровень сигнала rd = 0 на интервае 11— 11,2 мкс. Восходящие фронты cout на отметках 11,15 мкс, 11,35 мкс, 11,55 мкс, 11,75 мкс и 11,95 мкс. На выходе получаем значение Q равное 10000, совпадающие с таковыми в таблице.
16

4 ОПИСАНИЕ СХЕМЫ НА HDL
По варианту было определенно, что для работы будет использоваться язык описания SV. Ниже, на рисунках 4.1 – 4.3 представлен код описывающий схему вычислительного блока.
Рисунок 4.1 — Описание на SV
17

Рисунок 4.2 — Описание на SV
18

Рисунок 4.3 — Описание на SV
На строках 1-6 описаны входы и выходы необходимые для описания. На строках 9-15 описаны используемые сигналы.
На строках 22-32 описана работа счетчика сигналов и кодов.
На строках 34-55 описана реализация задачи, логической и арифметической функций, а так же флормирование res.
19

На строках 57-117 описан конечный автомат для получения конечного результата Q и cout.
На рисунках 4.3 – 4.4 представлены результаты моделирования кода в режимах Timing и Functional соответственно.
Рисунок 4.3 — Моделирования в режиме Timing
Рисунок 4.4 – Моделирования в режиме Functional
На рисунке 4.5 представлена RTL на базе написанного кода.
На рисунке 4.6, 4.7 представлен граф переходов состояний и таблица условий перехода состояний.
20