внешней синхронизации C_ext. При помощи сигнала CLR реализован асинхронный сброс.
На рисунке 3.3 представлен операционный блок.
Рисунок 3.3 – Операционный блок
На выходе OP1 получаем результат логической операции A ∩ B, где
Q_reg[5..3] и Q_reg[2..0] это входы А и В соответственно.
На выходе OP2 получаем результат арифметической операции А-В.
При помощи декодеров inst13, inst15, inst17, inst19, inst21 реализовано преобразование из двоичного кода в код МТК-2 согласно соответствующей таблице истинности. Результат преобразования получаем на выходе OP3.
При помощи счетчика inst24 осуществляется счет проделанных операций.
На clk_en поступает сигнал, когда счетчик тактирующих сигналов C_ext равен 0,
и при подаче сигнала на C_ext срабатывает счетчик inst24. Счетчик оснащен асинхронным сбросом по сигналу CLR.
11
На рисунке 3.4 представлен выходной блок.
Рисунок 3.4 – Выходной блок
На мультиплексор в качестве адресного сигнала поступает сигнал
OPERATION, идущий из входного блока. Для каждой операции предусмотрен свой код, через который можно вывести результат данной операции. С приходом активного уровня сигнала nreadd с помощью D триггера происходит генерация одиночного выходного тактового импульса считывающего устройства.
12
4МОДЕЛИРОВАНИЕ
Втаблице 4.1 представлен план моделирования, по которому каждая операция будет выполняться два раза с разными входными данными и сброс до
ипосле вывода количества выполненных операций.
Таблица 4.1 – План моделирования
|
|
|
|
|
|
Входы |
|
|
|
|
|
|
|
|
|
|
Выходы |
|
|
|
|
||||||
|
Код |
|
|
A |
|
|
|
|
|
|
B |
|
|
CLR |
4 |
|
3 |
|
2 |
|
|
1 |
|
0 |
|
||
операции |
5 |
|
4 |
|
3 |
|
|
2 |
|
1 |
|
0 |
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
0 |
|
1 |
x |
|
x |
|
0 |
|
|
1 |
|
0 |
|
1 |
|
0 |
0 |
|
0 |
|
0 |
|
|
0 |
|
1 |
|
0 |
|
1 |
x |
|
x |
|
1 |
|
|
1 |
|
1 |
|
0 |
|
0 |
0 |
|
0 |
|
1 |
|
|
0 |
|
0 |
|
1 |
|
0 |
1 |
|
0 |
|
0 |
|
|
0 |
|
0 |
|
1 |
|
0 |
0 |
|
0 |
|
0 |
|
|
0 |
|
1 |
|
1 |
|
0 |
0 |
|
0 |
|
0 |
|
|
1 |
|
1 |
|
0 |
|
0 |
0 |
|
0 |
|
1 |
|
|
1 |
|
0 |
|
1 |
|
1 |
1 |
|
1 |
|
0 |
|
|
0 |
|
0 |
|
1 |
|
0 |
0 |
|
0 |
|
1 |
|
|
0 |
|
1 |
|
1 |
|
1 |
0 |
|
1 |
|
0 |
|
|
1 |
|
1 |
|
0 |
|
0 |
0 |
|
0 |
|
1 |
|
|
0 |
|
0 |
|
0 |
|
0 |
x |
x |
|
x |
|
x |
x |
x |
0 |
0 |
|
0 |
|
1 |
|
|
1 |
|
1 |
|
|||||
x |
|
x |
x |
x |
|
x |
|
x |
x |
x |
1 |
0 |
|
0 |
|
0 |
|
|
0 |
|
0 |
|
|||||
0 |
|
0 |
x |
x |
|
x |
|
x |
x |
x |
0 |
0 |
|
0 |
|
0 |
|
|
0 |
|
1 |
|
|||||
На рисунке 4.1 представлено моделирование для операции преобразования двоичного кода в код МТК-2.
Рисунок 4.1 – Моделирование первых двух операций (Timing)
На передний фронт (50 нс) первого такта (50-100 нс) C_ext сигнал 1 на входе input (0-100 нс).
На передний фронт (150 нс) второго такта (150-200 нс) C_ext сигнал 0 на входе input (100-200 нс).
13
На передний фронт (250 нс) третьего такта (250-300 нс) C_ext сигнал 1 на входе input (200-300 нс).
На передний фронт (350 нс) четвертого такта (350-400 нс) C_ext сигнал 0
на входе input (300-400 нс).
На передний фронт (450 нс) пятого такта (450-500 нс) C_ext сигнал 1 на входе input (400-500 нс).
На передний фронт (550 нс) шестого такта (550-600 нс) C_ext сигнал 0 на входе input (500-600 нс).
Таким образом входные данные ХХ0101, а код операции 01, причем данные были введены последовательно младшими разрядами вперед. При подаче активного сигнала nreadd (900-1000 нс) генерируется тактовый сигнал
C_out (956,25-1056,25 нс). Выдача полученного результата происходит по заднему фронту (925-975 нс). На выходе outt осуществляется выдача выходных данных: 00001.
На передний фронт (1300 нс) первого такта (1300-1350 нс) C_ext сигнал 1
на входе input (1250-1350 нс).
На передний фронт (1400 нс) второго такта (1400-1450 нс) C_ext сигнал 0
на входе input (1350-1450 нс).
На передний фронт (1500 нс) третьего такта (1500-1550 нс) C_ext сигнал 0
на входе input (1450-1550 нс).
На передний фронт (1600 нс) четвертого такта (1600-1650 нс) C_ext сигнал
1 на входе input (1550-1650 нс).
На передний фронт (1700 нс) пятого такта (1700-1750 нс) C_ext сигнал 1 на входе input (1650-1750 нс).
На передний фронт (1800 нс) шестого такта (1800-1850 нс) C_ext сигнал 1
на входе input (1750-1850 нс).
Таким образом входные данные ХХ1110, а код операции 01, причем данные были введены последовательно младшими разрядами вперед. При подаче активного сигнала nreadd (2200-2300 нс) генерируется тактовый сигнал
14
C_out (2256,5-2356,5 нс). Выдача полученного результата происходит по заднему фронту (2225-2275 нс). На выходе outt осуществляется выдача выходных данных: 00100.
На рисунке 4.2 представлено моделирование логической операции.
Рисунок 4.2 – Моделирование логической операции
На передний фронт (2700 нс) первого такта (2700-2750 нс) C_ext сигнал 0
на входе input (2650-2750 нс).
На передний фронт (2800 нс) второго такта (2800-2850 нс) C_ext сигнал 1
на входе input (2750-2850 нс).
На передний фронт (2900 нс) третьего такта (2900-2950 нс) C_ext сигнал 1
на входе input (2850-2950 нс).
На передний фронт (3000 нс) четвертого такта (3000-3050 нс) C_ext сигнал
0 на входе input (2950-3050 нс).
На передний фронт (3100 нс) пятого такта (3100-3150 нс) C_ext сигнал 0 на входе input (3050-3150 нс).
На передний фронт (3200 нс) шестого такта (3200-3250 нс) C_ext сигнал 0
на входе input (3150-3250 нс).
На передний фронт (3300 нс) седьмого такта (3300-3350 нс) C_ext сигнал 0
на входе input (3250-3350 нс).
На передний фронт (3400 нс) восьмого такта (3400-3450 нс) C_ext сигнал 1
на входе input (3350-3450 нс).
15