Files
lab/6/схемотехника/course_project/index.html
2026-04-03 13:05:05 +03:00

721 lines
39 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<link rel="stylesheet" type="text/css" href="index.css">
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Tinos:ital,wght@0,400;0,700;1,400;1,700&display=swap"
rel="stylesheet">
<script src="https://fred-wang.github.io/TeXZilla/TeXZilla-min.js"></script>
</head>
<body>
<section class="col x-between">
<div class="center">
Национальный исследовательский ядерный университет «МИФИ»<br>
Институт интеллектуальных кибернетических систем<br>
Кафедра №12 «Компьютерные системы и технологии»
</div>
<header class="center">
Пояснительная записка<br>
к курсовому проекту<br>
на тему "Проектирование процессора"
</header>
<div class="col">
<div class="row x-end">
<div class="right">
Студент:<br>
Группа:<br>
Преподаватель:
</div>
<div>
Литвинов В.А.<br>
Б23-503 <br>
Ядыкин И.М.
</div>
</div>
<div class="center">Москва — 2025/2026</div>
</div>
</section>
<section style="background-image: url('README.jpg'); background-size: cover;">
</section>
<section class="col">
<h1>Проектирование блока операций</h1>
<h2>Формат данных</h2>
<p>4-х разрядное слово представлено целыми числами с фиксированной запятой в прямом коде. Старший разряд отводится
под знак числа. Результат операции умножение - двойное слово, операции установки бита - одинарное слово.
</p>
<span class="tex">
$$[A]_{\text{п}} = a_3, a_2 a_1 a_0$$
$$[R]_{\text{п}} = r_7, r_6 r_5 r_4 r_3 r_2 r_1 r_0$$
</span>
<h2>Примеры и алгоритмы выполнения операций</h2>
<h3>Алгоритм операции УМНОЖЕНИЕ</h3>
<p>
Умножение выполняется по алгоритму умножения с младших разрядов множителя и сдвигом
суммы частичных произведений вправо с одним корректирующим шагом. Данный алгоритм при
представлении сомножителей в прямом коде можно выразить следующей формулой:
</p>
<div class="tex">
$$[A]_{\text{п}} \cdot [B]_{\text{п}} = (..((0 + A \cdot b_0) \cdot p^{-1} + A \cdot b_1) \cdot p^{-1} + ... + A
\cdot b_{n-1}) \cdot p^{3}$$
</div>
<div class="row">
<div class="tex col" style="flex: 1">
Пример 1:
$[\mathrm{A}]_\mathrm{п} = 0.111 = 7$
$[\mathrm{B}]_\mathrm{п} = 0.111 = 7$
$\mathrm{Зн} = 0 \oplus 0 = 0$
$[\mathrm{A} \cdot \mathrm{B}]_\mathrm{п} = 0.0110001 = 49$
</div>
<div class="tex col" style="flex: 1">
Пример 2:
$[\mathrm{A}]_\mathrm{п} = 0.111 = 7$
$[\mathrm{B}]_\mathrm{п} = 1.101 = -5$
$\mathrm{Зн} = 1 \oplus 0 = 1$
$[\mathrm{A} \cdot \mathrm{B}]_\mathrm{п} = 1.0100011 = -35$
</div>
</div>
<div class="row">
<table data-tag="bo-mul-test-1" data-alt="Пример умножения 1" data-gen="
,RR$C 4$,RB$C 4$,;;
,0,1,1,1,$C 4$,RA;
b0=1,0,1,1,1,$C 4$,RB;;
$R 2$+,0,0,0,0,0$c g$,1$c g$,1$c g$,1$c g$,RR=0;
0,1,1,1,$C 4$,RA;;
b1=1,0,1,1,1,0$c g$,1$c g$,1$c g$,1$c g$,RR+=RA;
$R 2$+,0,0,1,1,1,0$c g$,1$c g$,1$c g$,R>>1;
0,1,1,1,$C 4$,RA;;
b2=1,1,0,1,0,1,0$c g$,1$c g$,1$c g$,RR+=RA;
$R 2$+,0,1,0,1,0,1,0$c g$,1$c g$,R>>1;
0,1,1,1,$C 4$,RA;;
,1,1,0,0,0,1,0$c g$,1$c g$,RR+=RA;
,0,1,1,0,0,0,1,0$c g$,R>>1;;
Зн=0,0$c b$,0,1,1,0,0,0,1,Зн>>R;
" class="center" style="flex: 1"></table>
<table data-tag="bo-mul-test-2" data-alt="Пример умножения 2" data-gen="
,RR$C 4$,RB$C 4$,;;
,0,1,1,1,$C 4$,RA;
b0=1,1,1,0,1,$C 4$,RB;;
$R 2$+,0,0,0,0,1$c g$,1$c g$,0$c g$,1$c g$,RR=0;
0,1,1,1,$C 4$,RA;;
b1=0,0,1,1,1,1$c g$,1$c g$,0$c g$,1$c g$,RR+=RA;
$R 2$,0,0,1,1,1,1$c g$,1$c g$,0$c g$,R>>1;
$C 10$пропуск такта суммирования;;
b2=1,0,0,1,1,1,1$c g$,1$c g$,0$c g$,R;
$R 2$+,0,0,0,1,1,1,1$c g$,1$c g$,R>>1;
0,1,1,1,$C 4$,RA;;
,1,0,0,0,1,1,1$c g$,1$c g$,RR+=RA;
,0,1,0,0,0,1,1,1$c g$,R>>1;;
Зн=1,1$c b$,0,1,0,0,0,1,1,Зн>>R;
" class="center" style="flex: 1"></table>
</div>
</section>
<section class="col">
<p>Рассмотренный алгоритм умножения представлен на рисунке <span data-ref="bo-mul"></span>.</p>
<div class="col y-center">
<img alt="Блок схема умножения" data-tag="bo-mul" src="img/bo-mul.drawio.svg" style="width: 50%">
</div>
<h3>Проверка бита с установкой его в единицу</h3>
<p>Операция проверяет бит в RB на позиции RA, устанавливает флаг CF, если значение бита в операнде 1, значение
бита в операнде устанавливается в 1.</p>
<div class="row y-center">
<div style="flex: 1"></div>
<div style="flex: 2" class="col x-center">
<div class="tex col">
Пример 1:
$A = xx00$
$B = 0001$
</div>
<div class="tex col">
$i = 0$
$CF = RB_0 = 1$
$RB_0 = 1$
$RB = 0001$
</div>
<div class="tex col">
Пример 2:
$A = xx01$
$B = 0001$
</div>
<div class="tex col">
$i = 1$
$CF = RB_1 = 0$
$RB_1 = 1$
$RB = 0011$
</div>
</div>
<img style="flex: 2" src="img/bo-set.drawio.svg" data-style="width: 70%" data-tag="bo-set"
alt="Блок схема проверки бита с установкой в единицу">
<div style="flex: 1"></div>
</div>
</section>
<section class="col">
<h2>Функциональная схема блока операций</h2>
<div class="col y-center">
<img style="width: 75%" src="img/bo-func.drawio.svg" alt="Функциональная схема блока операций" data-tag="bo-func">
</div>
<p>Функциональная схема блока операций представлена на рисунке <span data-ref="bo-func"></span>, в таблице <span
data-ref="bo-func-table"></span> приведены все элементы функциональной схемы блока операций с их функциями и
назначением.</p>
<table data-alt="Функциональное назначение блоков" data-tag="bo-func-table">
<tr class="center">
<th>Обозначение блока</th>
<th>Назначение</th>
</tr>
<tr>
<td class="center">RA</td>
<td>Регистр первого операнда, 4 разряда, хранение, параллельная загрузка A</td>
</tr>
<tr>
<td class="center">RB</td>
<td>Регистр второго операнда / младшей части результата, 4 разряда, хранение, параллельная загрузка B,
логический сдвиг вправо, формирование сигнала F0</td>
</tr>
<tr>
<td class="center">RR</td>
<td>Регистр старшей части результата, 4 разряда, хранение, параллельная загрузка, логический сдвиг вправо с
переносом в RB, синхронный сброс в 0</td>
</tr>
<tr>
<td class="center">CS1</td>
<td>Формирование знака произведения</td>
</tr>
<tr>
<td class="center">CS2</td>
<td>Формирование флага CF (значения бита из B на позиции A)</td>
</tr>
<tr>
<td class="center">CS3</td>
<td>Формирование нового значения B с установленным битом на позиции A</td>
</tr>
<tr>
<td class="center">CS4</td>
<td>Выбор данных для загрузки в RB: B или CS3</td>
</tr>
<tr>
<td class="center">SM</td>
<td>Сумматор, 4 разряда</td>
</tr>
<tr>
<td class="center">TCF</td>
<td>Регистр флага CF (значения бита из B на позиции A), 1 разряд, хранение, загрузка</td>
</tr>
</table>
</section>
<section class="col">
<h2>Проектирование логических элементов блока операций</h2>
<h3>Регистр первого операнда RA</h3>
<p>Данный регистр является четырёхразрядным регистром хранения. Наиболее подходящим для реализации функций регистра
RA является регистр FD4CE.</p>
<div class="row y-center">
<table class="center" style="flex: 1" data-alt="Таблица управляющих сигналов RA">
<tr>
<th>Обозначение</th>
<th rowspan="2">Назначение</th>
</tr>
<tr>
<td>Y1</td>
</tr>
<tr>
<td>0</td>
<td>Хранение</td>
</tr>
<tr>
<td>1</td>
<td>Параллельная загрузка</td>
</tr>
</table>
<img style="flex: 1" src="img/bo-ra.png" alt="Логическая схема RA">
</div>
<h3>Регистр второго операнда / младшей части результата RB</h3>
<p>Данный регистр должен выполнять микрооперации хранения, параллельной загрузки и логического сдвига вправо (с
заполнением старшего бита младшим разрядом из RR). Для
реализации выбран универсальный сдвиговый регистр SR4CLE. Младший бит выхода RB_Q0 формирует сигнал F0.</p>
<div class="row y-center">
<table class="center" style="flex: 1" data-alt="Таблица управляющих сигналов RB">
<tr>
<th colspan="2">Обозначение</th>
<th rowspan="2">Назначение</th>
</tr>
<tr>
<td>Y2</td>
<td>Y3</td>
</tr>
<tr>
<td>0</td>
<td>0</td>
<td>Хранение</td>
</tr>
<tr>
<td>1</td>
<td>x</td>
<td>Параллельная загрузка</td>
</tr>
<tr>
<td>0</td>
<td>1</td>
<td>Логический сдвиг вправо</td>
</tr>
</table>
<img style="flex: 1" src="img/bo-rb.png" alt="Логическая схема RB">
</div>
</section>
<section class="col">
<h3>Регистр старшей части результата RR</h3>
<p>Данный регистр должен выполнять микрооперации хранения, параллельной загрузки, логического сдвига вправо (c
коммутацией младшего бита в старший разряд RB) и синхронного сброса в 0. Для реализации выбран универсальный
сдвиговый регистр SR4RLE.</p>
<div class="row y-center">
<table class="center" style="flex: 1" data-alt="Таблица управляющих сигналов RHI">
<tr>
<th colspan="3">Обозначение</th>
<th rowspan="2">Назначение</th>
</tr>
<tr>
<td>Y4</td>
<td>Y5</td>
<td>Y6</td>
</tr>
<tr>
<td>0</td>
<td>0</td>
<td>0</td>
<td>Хранение</td>
</tr>
<tr>
<td>1</td>
<td>x</td>
<td>0</td>
<td>Параллельная загрузка</td>
</tr>
<tr>
<td>0</td>
<td>1</td>
<td>0</td>
<td>Логический сдвиг вправо</td>
</tr>
<tr>
<td>x</td>
<td>x</td>
<td>1</td>
<td>Синхронный сброс в 0</td>
</tr>
</table>
<img style="flex: 1" src="img/bo-rr.png" alt="Логическая схема RR">
</div>
<h3>Регистр флага TCF</h3>
<p>Отвечает за хранение значения бита операнда B на позиции A.</p>
<div class="row y-start">
<table class="center" style="flex: 1" data-alt="Таблица управляющих сигналов TCF">
<tr>
<th>Обозначение</th>
<th rowspan="2">Назначение</th>
</tr>
<tr>
<td>Y8</td>
</tr>
<tr>
<td>0</td>
<td>Хранение</td>
</tr>
<tr>
<td>1</td>
<td>Загрузка</td>
</tr>
</table>
<img data-style="width: 80%" style="flex: 1" src="img/bo-tcf.png" alt="Логическая схема TCF">
</div>
<div class="col" style="flex: 1">
<h3>Комбинационная схема CS1</h3>
<p>Отвечает за формирование знака произведения.</p>
<img data-style="width: 50%" src="img/bo-cs1.png" alt="Логическая схема CS1">
</div>
</section>
<section class="col">
<div class="row">
<div class="col" style="flex: 1">
<h3>Сумматор SM</h3>
<p>4-х битный сумматор ADD4.</p>
<img data-style="width: 80%" src="img/bo-sm.png" alt="Логическая схема SM">
</div>
<div class="col" style="flex: 1">
<h3>Комбинационная схема CS2</h3>
<p>Отвечает за формирование флага CF (бита из B на позиции A).</p>
<img data-style="width: 80%" src="img/bo-cs2.png" alt="Логическая схема CS2">
</div>
</div>
<div class="row">
<div class="col" style="flex: 1">
<h3>Комбинационная схема CS3</h3>
<p>Отвечает за формирование нового значения B с установленным битом на позиции A.</p>
<img src="img/bo-cs3.png" alt="Логическая схема CS3">
</div>
<div class="col" style="flex: 1">
<h3>Комбинационная схема CS4</h3>
<p>Отвечает за выбор данных для загрузки в RB: B или CS3.</p>
<img data-style="width: 80%" src="img/bo-cs4.png" alt="Логическая схема CS4">
</div>
</div>
</section>
<section class="col landscape">
<h2>Логическая схема блока операций</h2>
<img src="img/bo-logic.png" alt="Логическая схема блока операций">
</section>
<section class="col">
<h2>Микропрограммы выполнения операций</h2>
<h3>Определение сигналов блока операций</h3>
<div class="row y-start">
<table data-alt="Таблица управляющих сигналов" style="flex: 2">
<tr>
<th>Сигнал</th>
<th>Операция</th>
</tr>
<tr>
<td class="center">Y1</Type>
<td>Загрузка A в RA</td>
</tr>
<tr>
<td class="center">Y2</td>
<td>Загрузка CS4 в RB</td>
</tr>
<tr>
<td class="center">Y3</td>
<td>Логический сдвиг вправо RB</td>
</tr>
<tr>
<td class="center">Y4</td>
<td>Загрузка значения на выходе SM в RR</td>
</tr>
<tr>
<td class="center">Y5</td>
<td>Логический сдвиг вправо RR</td>
</tr>
<tr>
<td class="center">Y6</td>
<td>Синхронный сброс RR</td>
</tr>
<tr>
<td class="center">Y7</td>
<td>Вход EN для CS1</td>
</tr>
<tr>
<td class="center">Y8</td>
<td>Загрузка признака на выходе CS2 в TCF</td>
</tr>
<tr>
<td class="center">Y9</td>
<td>Выбор данных для загрузки в RB: B или CS3</td>
</tr>
</table>
<table data-alt="Таблица сигналов-признаков БО" style="flex: 1">
<tr>
<th>Сигнал</th>
<th>Операция</th>
</tr>
<tr>
<td class="center">F1</td>
<td>Младший разряд B</td>
</tr>
</table>
</div>
<h3>Алгоритм микропрограммы УМНОЖЕНИЕ</h3>
<img data-style="width: 65%" src="img/bo-signal-mul.drawio.svg" alt="Микропрограмма операции УМНОЖЕНИЕ"
data-tag="bo-signal-mul">
</section>
<section class="col">
<h3>Примеры микропрограммы УМНОЖЕНИЕ</h3>
<p>Пример 1 микрооперации УМНОЖЕНИЕ приведен в таблице <a data-ref="bo-mul-test-1"></a>.</p>
<img src="img/bo-mul-test-1.png" alt="Временная диаграмма примера 1 УМНОЖЕНИЕ">
</section>
<section class="col">
<p>Пример 2 микрооперации УМНОЖЕНИЕ приведен в таблице <a data-ref="bo-mul-test-2"></a>.</p>
<img src="img/bo-mul-test-2.png" alt="Временная диаграмма примера 2 УМНОЖЕНИЕ">
</section>
<section class="col">
<h3>Алгоритм микрооперации УСТАНОВКА БИТА</h3>
<img data-style="width: 20%" src="img/bo-signal-set.drawio.svg" alt="Микропрограмма операции УСТАНОВКА БИТА">
<h3>Примеры микрооперации УСТАНОВКА БИТА</h3>
<img src="img/bo-set-test.png" alt="Примеры 1,2 микрооперации установка бита">
</section>
<section class="col">
<h1>Проектирование местного устройства управления</h1>
<h2>Функциональная схема</h2>
<p>Для реализации местного устройства управления MUU с "жёсткой" логикой разработана функциональная схема,
представленная на рисунке <span data-ref="muu-func"></span>.</p>
<img data-style="width: 70%" src="img/muu-func.drawio.svg" data-tag="muu-func" alt="Функциональная схема МУУ">
<h2>Модифицированные алгоритмы выполнения операций</h2>
<p>Для реализации местного устройства управления алгоритмы выполнения операций должны быть изменены. На рисунках
<span data-ref="muu-mul"></span> и <span data-ref="muu-set"></span> приведены модифицированные схемы алгоритма
микропрограмм выполнения операций УМНОЖЕНИЕ и УСТАНОВКА БИТА.
</p>
<img data-style="width: 40%" data-tag="muu-set" src="img/muu-set.drawio.svg"
alt="Модифицированный алгоритм микропрограммы выполнения операции УСТАНОВКА БИТА">
</section>
<section class="col">
<img data-style="width: 80%" data-tag="muu-mul" src="img/muu-mul.drawio.svg"
alt="Модифицированный алгоритм микропрограммы выполнения операции УМНОЖЕНИЕ">
<h2>Проектирование датчика состояний</h2>
<p>Для реализации датчика состояний необходимо по модифицированным алгоритмам выполнения операций спроектировать
граф состояний автомата датчика состояний, который будет определять логическую реализацию местного устройства
управления.</p>
<p>Автомат начинает свою работу с приходом сигнала SNO. В каждом состоянии
формируются определенные для этого состояния сигналы Yi и Yct для продвижения счетчика тактов CT.</p>
<p>После выполнения всех операций автомат переходит в начальное состояние, генерируя сигнал конца операции SKO, и
остается в этом состоянии до следующего запроса SNO.</p>
</section>
<section class="col">
<h3>Графы переходов автомата</h3>
<p>В момент времени после сигнала SKO и до сигнала SNO граф находится в состоянии IDLE, при котором никакие сигналы
Y не установлены. Графы операций представлены на рисунках <span data-ref="muu-graph-mul"></span> и <span
data-ref="muu-graph-set"></span>.</p>
<div class="row y-end">
<div style="flex: 1">
<img data-tag="muu-graph-mul" src="img/muu-graph-mul.svg" alt="Граф переходов операции УМНОЖЕНИЕ, COP = 0">
</div>
<div style="flex: 1">
<img data-tag="muu-graph-set" src="img/muu-graph-set.svg" alt="Граф переходов операции УСТАНОВКА БИТА, COP = 1">
</div>
</div>
<h3>Таблица переходов DS / истинности CS1</h2>
<p>Состояния будут храниться в 2-х битном регистре с параллельной загрузкой, состояния P1, P2, P3 соответсвуют
своим номерам в
двоичном виде, состояние IDLE = 00 - начальное. Явно возвращаться в него после формирования SKO не нужно, тк
происходит
синхронный сброс датчика состояний по сигналу SKO.</p>
<table data-tag="muu-cs1-table" data-alt="Таблица истинности CS1" data-gen="
Переход,COP,D1,D0,F1,FC,,Q1,Q0,наборы;;
IDLE->P1,0,0,0,x,x,,0,1,0-3;
P1->P2,0,0,1,x,x,,1,0,4-7;
P2->P2,0,1,0,0,0,,1,0,8;
P2->P3,0,1,0,1,0,,1,1,10;
P2->,0,1,0,x,1,,x,x,9\, 11;
P3->P2,0,1,1,x,x,,1,0,12-15;;
IDLE->P1,1,0,0,x,x,,0,1,16-19;
P1->P2,1,0,1,x,x,,1,0,20-23;
P2->,1,1,0,x,x,,x,x,24-27;
" class="center"></table>
<div class="row">
<div class="tex col y-center" style="flex: 1">
$МКНФ: Q_1 = (D_1 + D_0)$
<img src="img/muu-cs1-q1-mcnf.png" alt="Минимизация Q1">
</div>
<div class="tex col y-center" style="flex: 1">
$МКНФ: Q_0 = (\overline{D_0}) \cdot (\overline{D_1} + F_1)$
<img src="img/muu-cs1-q0-mcnf.png" alt="Минимизация Q0">
</div>
</div>
</section>
<section class="col">
<h3>Таблица управляющих сигналов Y / истинности CS2</h3>
<p>В таблице <span data-ref="muu-cs2-table"></span> отражены сигналы Yi и Yct, подающиеся на выход MUU в каждом
состоянии. Часть функций являются подмножествами других функций, поэтому они минимизироватся не будут.</p>
<table data-tag="muu-cs2-table" data-alt="Таблица истинности CS2" data-gen="
$C 5$,,RA,,RB$C 2$,,RR$C 3$,,CS1,TCF,,CS4,,;
COP,Q1,Q0,F1,FC,,Y1,,Y2,Y3,,Y4,Y5,Y6,,Y7,Y8,,Y9,Yct,SKO,наборы;;
x,0,0,x,x,,0,,0,0,,0,0,0,,0,0,,0,0,0,0-3\, 16-19;
0,0,1,x,x,,1,,1,x,,x,x,1,,x,0,,0,0,0,4-7;
0,1,0,0,0,,0,,0,1,,0,1,0,,0,0,,x,1,0,8;
0,1,0,1,0,,0,,0,0,,1,x,0,,x,0,,x,0,0,10;
0,1,0,x,1,,x,,0,1,,0,1,0,,1,0,,x,x,1,9\, 11;
0,1,1,x,x,,0,,0,1,,0,1,0,,0,0,,x,1,0,12-15;;
1,0,1,x,x,,1,,1,x,,x,x,x,,x,x,,0,x,0,20-23;
1,1,0,x,x,,x,,1,x,,x,x,x,,x,1,,1,x,1,24-27;
" class="center"></table>
<div class="row">
<div class="tex col" style="flex: 1">
$Y_2 \supset Y_1,Y_6$
$Y_3 \supset Y_5$
$SKO \supset Y_7,Y_9$
</div>
<div class="tex col" style="flex: 1">
$Y_1, Y_6 := Y_2$
$Y_5 := Y_3$
$Y_7, Y_9 := SKO$
</div>
<div class="tex col" style="flex: 1">
Нужно минимизировать $Y_2, Y_3, Y_4, Y_8, Y_{ct}, SKO$
</div>
</div>
<div class="row">
<div class="tex center" style="flex: 1">
$МДНФ: Y_2 = \overline{Q_1} \cdot Q_0 + COP \cdot Q_1$
<img src="img/muu-cs2-y2-mdnf.png" alt="Минимизация Y2">
</div>
<div class="tex center" style="flex: 1">
$МКНФ: Y_3 = (Q_1) \cdot (Q_0 + \overline{F_1} + FC)$
<img src="img/muu-cs2-y3-mcnf.png" alt="Минимизация Y3">
</div>
</div>
</section>
<section class="col">
<div class="row">
<div class="tex center" style="flex: 1">
$МДНФ: Y_4 = Q_1 \cdot \overline{Q_0} \cdot F_1 \cdot \overline{FC}$
<img src="img/muu-cs2-y4-mdnf.png" alt="Минимизация Y4">
</div>
<div class="tex center" style="flex: 1">
$МДНФ: Y_8 = COP \cdot Q_1$
<img src="img/muu-cs2-y8-mdnf.png" alt="Минимизация Y8">
</div>
</div>
<div class="row">
<div class="tex center" style="flex: 1">
$МКНФ: Y_{ct} = (Q_1) \cdot (Q_0 + \overline{F_1})$
<img src="img/muu-cs2-yct-mcnf.png" alt="Минимизация Yct">
</div>
<div class="tex center" style="flex: 1">
$МКНФ: SKO = (Q_1) \cdot (\overline{Q_0}) \cdot (COP + FC)$
<img src="img/muu-cs2-sko-mcnf.png" alt="Минимизация SKO">
</div>
</div>
</section>
<section class="col">
<h2>Логическая схема МУУ</h2>
<p>На рисунке <span data-ref="muu-logic"></span> представлена синтезированная логическая схема местного устройства
управления.</p>
<img data-style="width: 95%" src="img/muu-logic.png" alt="Логическая схема местного устройства управления"
data-tag="muu-logic">
<h2>Функциональное моделирование МУУ</h2>
<h3>Пример 1 УМНОЖЕНИЕ</h3>
<img data-style="width: 75%" src="img/muu-mul-test-1.png" alt="Функциональное моделирование МУУ УМНОЖЕНИЕ 1">
</section>
<section class="col">
<h3>Пример 2 УМНОЖЕНИЕ</h3>
<img data-style="width: 80%" src="img/muu-mul-test-2.png" alt="Функциональное моделирование МУУ УМНОЖЕНИЕ 2">
<h3>Пример УСТАНОВКА БИТА</h3>
<img data-style="width: 80%" src="img/muu-set-test.png" alt="Функциональное моделирование МУУ УСТАНОВКА БИТА">
</section>
<section class="col">
<h2>Временные параметры АЛУ</h2>
<p>Получен отчет статического анализа времени предварительной установки с помощью программы "Timing Analyzer",
который представлен на рисунке <span data-ref="alu-timing-analyzer"></span>. На рисунке <span
data-ref="alu-timing-inner"></span> представлено внутреннее устройство схем, участвующих в критическом пути
сигнала.</p>
<img src="img/alu-timing-analyzer.png" data-tag="alu-timing-analyzer" alt="Отчет о временных параметров АЛУ">
<img src="img/alu-timing-inner.png" alt="Схемы, участвующие в критическом пути АЛУ" data-tag="alu-timing-inner">
</section>
<section class="col">
<h2>Критический путь АЛУ</h2>
<p>Используя результат работы "Timing Analyzer" как отправную точку, в режиме временного
моделирования был определен минимальный период сихнроимпульсов 23.2ns, не вызывающий состязаний. На рисунке <span
data-ref="alu-timing"></span> представлена временная диаграмма с путем сигнала, на рисунке <span
data-ref="alu-timing-zoom"></span> представлены измерения задержек сигнала.</p>
<img data-style="50%" src="img/alu-timing-error.png" data-tag="alu-timing-error" alt="Сообщение о состязании">
<img src="img/alu-timing.png" alt="Временная диаграмма критического пути АЛУ" data-tag="alu-timing">
<img src="img/alu-timing-zoom.png" alt="Замеры длительности критического пути АЛУ" data-tag="alu-timing-zoom">
<p>Длительность критического пути операции УМНОЖЕНИЕ:<br>
4(MUU_Q0) + 4.4(MUU_Y4) + 12.5(BO_RR_D1) + 2.1(tуст BO_RR_Q1) = 23ns.</p>
</section>
<section class="col">
<h2>Характеристики быстродействия АЛУ</h2>
<p>В таблице <span data-ref="alu-pp"></span> приведены параметры быстродействия АЛУ.</p>
<table class="center" data-alt="Характеристики быстродействия АЛУ" data-tag="alu-pp" data-gen="
Параметр$c G$,Временное моделирование$c G$;
Минимальный период работы генератора\, нс,23.0;
Максимальная частота генератора\, МГц,43.5;
Максимальное число тактов операции умножения,8;
Максимальное число тактов операции проверки бита,2;
Максимальное время выполнения операции умножения\, нс,184;
Максимальное время выполнения операции проверки бита\, нс,46;
Количество операций умножения в секунду\, млн,5.4;
Количество операций проверки бита в секунду\, млн,21.7;
"></table>
<p>Для подключения АЛУ к стэнду задействовано количество элементов, приведенное на рисунке <span
data-ref="alu-usage"></span>. На рисунке <span data-ref="alu-crystal"></span> представлена схема размещения
элементов на кристалле ПЛИС. </p>
<div class="row y-end">
<img src="img/alu-usage.png" data-tag="alu-usage" alt="Отчет о количестве элементов">
<img data-style="width: 60%" src="img/alu-crystal.png" data-tag="alu-crystal" alt="Схема размещения на кристалле">
</div>
</section>
<section class="col">
<h2>Моделирование АЛУ на стенде</h2>
<p>Схема управления АЛУ на стенде представлена в таблице <span data-ref="muu-controls"></span> и на рисунке <span
data-ref="muu-stand"></span>.</p>
<table data-style="width: 60%" data-tag="muu-controls" data-alt="Назначение регистров и индикаторов стенда"
data-gen="
регистры$C 10$;;
1$c b$,A[3:0]$C 4$,3$c b$,COP,SNO,___,Page;
2$c b$,B[3:0]$C 4$,$C 5$;;
индикаторы$C 10$;
страница 0$C 10$;;
A$c b$,RA[3:0]$C 4$,B$c b$,SM[3:0]$C 4$;
C$c b$,RR[3:0]$C 4$,D$c b$,RB[3:0]$C 4$;
E$c b$,F1,CF,RR.SLI,Yct,F$c b$,P[1:0]$C 2$,Ct[1:0]$C 2$;;
страница 1$C 10$;;
A$c b$,Y[1:4]$C 4$,B$c b$,Y[5:8]$C 4$;
C$c b$,Y9,RR[2:1]$C 2$,SKO,D$c b$,RB[3:0]$C 4$;
E$c b$,F1,CF,RR.SLI,Yct,F$c b$,P[1:0]$C 2$,Ct[1:0]$C 2$;;
" class="center"></table>
<img src="img/muu-stand.png" alt="Схема подключения АЛУ к стенду" data-tag="muu-stand">
</section>
<section class="col">
<h1>Проектирование блока управления командами</h1>
<h2>Система памяти</h2>
<p>Оперативная память имеет организацию 16x8 ячеек, регистровая - 8x4. В каждой ячейке ОП хранится два
четырехразрядных слова, каждое из которого имеет свой адрес. Четыре старших разряда логического адреса ячейки
являются физическим адресом, младший бит логического адреса указывает на старший/младший полубайт. В таблице <span
data-ref="buk-memory"></span> представлена схема адресации оперативной памяти.</p>
<p>Под адрес ОП выделяется 5 бит, под адрес РП выделяется 3 бита, в первой половине ячеек ОП содержатся команды, во
второй операнды, поэтому исполнительный адрес 4 бита.</p>
<div class="flex row y-center">
<table style="flex: 1" class="center" data-tag="buk-memory"
data-alt="Физическая и логическая адресация ОП" data-gen="
А физический$C 2$,,A логический$C 2$;
0$C 2$,,0,1;
1$C 2$,,2,3;
2$C 2$,,4,5;
...$C 5$;
13$C 2$,,26,27;
14$C 2$,,28,29;
15$C 2$,,30,31;
"></table>
<p style="flex: 1" class="center">Длинные слова хранятся в формате Little Endian.</p>
</div>
</section>
<section class="col">
<h2>Определение форматов команд и способов адресации</h2>
<p>ЛИНЕЙНАЯ команда - два слова, двухадресная, формат регистр-память. Первый операнд в РП указывается с помощью
прямой адресации, второй
операнд в ОП с помощью базовой с индексированием адресации вар. 1. Результат УМНОЖЕНИЯ по адресу второго операнда,
результат УСТАНОВКИ БИТА по адресу первого операнда.</p>
<p>Команда ПЕРЕХОДА - одно слово, одноадресная. Адрес перехода указывается с помощью относительной адресации со
знаком в
дополнительном коде. Условный переход осуществляется, если значение флага CF = 1.</p>
<img src="img/buk-mul-addr.png" data-style="width: 60%" alt="Базовая адресация с индексированием вар. 1">
<table class="center table-fixed" data-alt="Формат команды" data-tag="buk-command" data-gen="
$C 4$$R 2$,0$C 4$,1$C 4$,2$C 4$,3$C 4$;
3,2,1,0,3,2,1,0,3,2,1,0,3,2,1,0;;
умножение$C 4$,КОП$C 2$,Роперанд1$C 3$,Риндекс2$C 3$,Смещение2$C 4$,Рбазовый2$C 3$,0;
установка бита$C 4$,КОП$C 2$,Роперанд1$C 3$,Риндекс2$C 3$,Смещение2$C 4$,Рбазовый2$C 3$,0;
усл. переход$C 4$,КОП$C 2$,0,0,Смещение$C 4$;
безусл. переход$C 4$,КОП$C 2$,0,0,Смещение$C 4$;
"></table>
<table class="center" data-style="width: 50%" data-alt="Кодирование КОП" data-tag="buk-cop" data-gen="
КОП1,КОП0,Операция;
0,0,умножение;
0,1,установка бита;
1,0,условный переход;
1,1,безусловный переход;
"></table>
</section>
<section class="col">
<h2>Блок схема выполнения команд БУК</h2>
<p>Линейные команды состоят из 4-х слов, нелинейные из 2-х, поэтому всегда, независимо от команды, считывается 2 слова, а затем, если команда линейная, считывается еще 2 слова. Алгоритм выполнения команды представлен на рисунке <span data-ref="buk-algo"></span>.</p>
<img src="img/buk-algo.drawio.svg" alt="Алгоритм выполнения команды" data-tag="buk-algo" data-style="width: 80%">
</section>
<section class="col">
<h2>Функциональная схема БУК</h2>
<img src="img/buk-func.drawio.svg" alt="Функциональная схема БУК" data-tag="buk-func">
<p>Функциональная схема БУК представлена на рисунке X, в таблице X приведены все элементы функциональной схемы БУК с их функциями и назначением.</p>
</section>
<script src="index.js" type="module"></script>
</body>
</html>