D5 |
D4 |
D3 |
D2 |
D1 |
D0 |
Q4 |
Q3 |
Q2 |
Q1 |
Q0 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
1 |
1 |
0 |
- |
0 |
0 |
1 |
1 |
0 |
1 |
0 |
1 |
1 |
1 |
- |
0 |
0 |
1 |
1 |
1 |
0 |
1 |
0 |
0 |
0 |
- |
0 |
0 |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
1 |
- |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
- |
0 |
1 |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
- |
0 |
1 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
1 |
- |
0 |
1 |
0 |
0 |
1 |
1 |
0 |
1 |
1 |
0 |
- |
0 |
1 |
0 |
1 |
0 |
0 |
0 |
1 |
1 |
1 |
- |
0 |
1 |
0 |
1 |
0 |
1 |
1 |
0 |
0 |
0 |
- |
0 |
1 |
0 |
1 |
1 |
0 |
1 |
0 |
0 |
1 |
- |
0 |
1 |
0 |
1 |
1 |
1 |
1 |
0 |
1 |
0 |
- |
0 |
1 |
1 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
- |
0 |
1 |
1 |
0 |
0 |
1 |
0 |
1 |
0 |
1 |
- |
0 |
1 |
1 |
0 |
1 |
0 |
0 |
1 |
1 |
0 |
- |
0 |
1 |
1 |
0 |
1 |
1 |
0 |
1 |
1 |
1 |
- |
0 |
1 |
1 |
1 |
0 |
0 |
1 |
0 |
0 |
0 |
- |
0 |
1 |
1 |
1 |
0 |
1 |
1 |
0 |
0 |
1 |
- |
0 |
1 |
1 |
1 |
1 |
0 |
1 |
0 |
1 |
0 |
- |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
1 |
1 |
- |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
- |
1 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
1 |
0 |
- |
1 |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
1 |
1 |
- |
1 |
0 |
0 |
0 |
1 |
1 |
1 |
0 |
0 |
0 |
- |
1 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
0 |
1 |
- |
1 |
0 |
0 |
1 |
0 |
1 |
1 |
0 |
1 |
0 |
- |
1 |
0 |
0 |
1 |
1 |
0 |
1 |
0 |
1 |
1 |
- |
1 |
0 |
0 |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
- |
1 |
0 |
1 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
- |
1 |
0 |
1 |
0 |
0 |
1 |
0 |
1 |
1 |
1 |
- |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
0 |
0 |
- |
1 |
0 |
1 |
0 |
1 |
1 |
1 |
0 |
0 |
1 |
- |
1 |
0 |
1 |
1 |
0 |
0 |
1 |
0 |
1 |
0 |
- |
1 |
0 |
1 |
1 |
0 |
1 |
1 |
0 |
1 |
1 |
- |
1 |
0 |
1 |
1 |
1 |
0 |
1 |
1 |
0 |
0 |
- |
1 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
1 |
- |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
- |
1 |
1 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
- |
1 |
1 |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
1 |
- |
1 |
1 |
0 |
0 |
1 |
1 |
1 |
0 |
1 |
0 |
- |
1 |
1 |
0 |
1 |
0 |
0 |
1 |
0 |
1 |
1 |
- |
|
|
|
|
|
6 |
|
|
|
|
|
D5 |
D4 |
D3 |
D2 |
D1 |
D0 |
Q4 |
Q3 |
Q2 |
Q1 |
Q0 |
1 |
1 |
0 |
1 |
0 |
1 |
1 |
1 |
0 |
0 |
- |
1 |
1 |
0 |
1 |
1 |
0 |
1 |
1 |
0 |
1 |
- |
1 |
1 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
- |
1 |
1 |
1 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
- |
1 |
1 |
1 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
- |
1 |
1 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
- |
1 |
1 |
1 |
0 |
1 |
1 |
1 |
0 |
1 |
1 |
- |
1 |
1 |
1 |
1 |
0 |
0 |
1 |
1 |
0 |
0 |
- |
1 |
1 |
1 |
1 |
0 |
1 |
1 |
1 |
0 |
1 |
- |
1 |
1 |
1 |
1 |
1 |
0 |
1 |
1 |
1 |
0 |
- |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
- |
1.3 Функциональная схема
На рисунке 1.3.1 представлено изображение для функциональной схемы из CАПР Quartus2.
Рисунок 1.3.1 – Функциональная схема На рисунке 1.3.2 представлен входной блок схемы. В регистры по
убывающему фронту внешнего синхросигнала С_ext сохраняются входные данные, данные для выполнения операции и код операции.
7
Рисунок 1.3.2 – Входной блок совместно со счётчиком На рисунке 1.3.3 представлен операционный блок. С помощью
дешифратора и функций ИЛИ выполнена задача. При помощи элементов
AND и NOT выполнена логическая операция. Элемент add_sub0 выполняет арифметическую операцию, а lpm_mux0 определяет, какой ответ нужно подать на выходной блок.
Рисунок 1.3.3 – Операционный блок
8
На рисунке 1.3.4 представлен выходной блок. При подачи сигнала Read,
формируется выход C_out. Мультиплексор выбирает какая из функций будет выводится.
Рисунок 1.3.4 – Выходной блок
1.4Моделирование
Втаблице 1.4.1 представлен план моделирования. Таблица 1.4.1 – План моделирования
План
|
|
|
|
Входы |
|
|
|
|
|
|
Выходы |
|
№ |
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Сигнал |
Сбро |
|
Код |
|
|
Данные |
|
|
|
|
|
|
|
|
|||
с |
операции |
|
|
|
|
|
|
|
|
|
|
|
|
а |
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
R |
Z |
|
Z0 |
D |
D |
D |
D |
D |
D |
Q |
Q |
|
Q |
Q |
Q |
|
|
1 |
|
|
5 |
4 |
3 |
2 |
1 |
0 |
4 |
3 |
|
2 |
1 |
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
0 |
|
1 |
X |
1 |
0 |
0 |
0 |
1 |
1 |
0 |
|
0 |
0 |
0 |
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
0 |
|
1 |
X |
0 |
1 |
1 |
1 |
1 |
0 |
0 |
|
1 |
1 |
1 |
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
1 |
|
0 |
0 |
1 |
1 |
1 |
1 |
0 |
1 |
0 |
|
0 |
- |
- |
3 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
1 |
|
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
|
0 |
- |
- |
4 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
1 |
|
1 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
|
1 |
1 |
- |
5 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
1 |
|
1 |
1 |
1 |
0 |
1 |
1 |
0 |
1 |
1 |
|
0 |
1 |
- |
6 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
0 |
|
0 |
X |
X |
X |
X |
X |
X |
0 |
0 |
|
1 |
1 |
1 |
7 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
X |
|
X |
X |
X |
X |
X |
X |
X |
0 |
0 |
|
0 |
0 |
0 |
8 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
0 |
|
0 |
X |
X |
X |
X |
X |
X |
0 |
0 |
|
0 |
0 |
1 |
9 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
9 |
|
|
|
|
|
|
|
|
На рисунке 1.4.1 и 1.4.2 представлены результаты моделирования в двух режимах.
В промежутке 430-3200нс промоделирована работа первого сигнала,
3400-6200нс промоделирована работа второго сигнала, 6400-8200нс промоделирована работа третьего сигнала, 8400-10200 моделирование работы четвёртого сигнала, 10400-13200нс промоделирована работа пятого сигнала,
13500-16200нс промоделирована работа шестого сигнала, 16300-19200нс промоделирована работа седьмого сигнала, 19400-20200 восьмого сигнала,
20400-22800 девятого сигнала.
Рисунок 1.4.1 – Результат моделирования в режиме Timing
Рисунок 1.4.2 – Результат моделирования в режиме Functional
Результаты моделирования совпадают с планом моделирования, представленном в таблице 1.4.1.
1.5 Описание программы
Ниже приведен листинг кода, на языке описания аппаратуры SV.
module SVlabor8 (
input logic C_ext, C_int, R, Read, input logic [1:0] Z,
input logic [5:0] D, output logic Q, C_out);
10