course: bo-logic, bo-table
This commit is contained in:
@ -7,7 +7,8 @@
|
||||
<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">
|
||||
<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>
|
||||
|
||||
@ -51,7 +52,8 @@
|
||||
</p>
|
||||
<div class="tex">
|
||||
$$[A]_{\text{п}} = a_3, a_2 a_1 a_0$$
|
||||
$$[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}$$
|
||||
$$[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="col x-center tex" style="gap: 0; flex: 1">
|
||||
@ -61,27 +63,22 @@
|
||||
$\mathrm{Зн} = 0 \oplus 0 = 0$
|
||||
$[\mathrm{A}*\mathrm{B}]_\mathrm{п} = 0.0110001 = 49$
|
||||
</div>
|
||||
<table
|
||||
data-alt="Пример умножения 1"
|
||||
data-gen="
|
||||
<table data-alt="Пример умножения 1" data-gen="
|
||||
,,0,1,1,1,,,,RA;
|
||||
,,0,1,1,1,,,,RB;;
|
||||
,0,$c,r$0,$c,r$0,$c,r$0,$c,r$0,0,0,0,RR=0;
|
||||
b0=1,,$c,r$0,$c,r$1,$c,r$1,$c,r$1,,,,RA;;
|
||||
b0=1,+,$c,r$0,$c,r$1,$c,r$1,$c,r$1,,,,RA;;
|
||||
,0,0,1,1,1,0,0,0,RR;
|
||||
,0,$c,r$0,$c,r$0,$c,r$1,$c,r$1,1,0,0,RR>>1;
|
||||
b1=1,,$c,r$0,$c,r$1,$c,r$1,$c,r$1,,,,RA;;
|
||||
b1=1,+,$c,r$0,$c,r$1,$c,r$1,$c,r$1,,,,RA;;
|
||||
,0,1,0,1,0,1,0,0,RR;
|
||||
,0,$c,r$0,$c,r$1,$c,r$0,$c,r$1,0,1,0,RR>>1;
|
||||
b2=1,,$c,r$0,$c,r$1,$c,r$1,$c,r$1,,,,RA;;
|
||||
b2=1,+,$c,r$0,$c,r$1,$c,r$1,$c,r$1,,,,RA;;
|
||||
,0,1,1,0,0,0,1,0,RR;
|
||||
Знак,$c,b$0,0,1,1,0,0,0,1,RR>>1;
|
||||
"
|
||||
class="center"
|
||||
style="flex: 1"
|
||||
></table>
|
||||
" class="center" style="flex: 1"></table>
|
||||
</div>
|
||||
<div class="row x-stretch">
|
||||
<div class="row">
|
||||
<div class="col x-center tex" style="gap: 0; flex: 1">
|
||||
Пример 2:
|
||||
$[\mathrm{A}]_\mathrm{п} = 0.111 = 7$
|
||||
@ -89,25 +86,20 @@
|
||||
$\mathrm{Зн} = 1 \oplus 0 = 1$
|
||||
$[\mathrm{A}*\mathrm{B}]_\mathrm{п} = 1.0100011 = -35$
|
||||
</div>
|
||||
<table
|
||||
data-alt="Пример умножения 2"
|
||||
data-gen="
|
||||
<table data-alt="Пример умножения 2" data-gen="
|
||||
,,0,1,1,1,,,,RA;
|
||||
,,1,1,0,1,,,,RB;;
|
||||
,0,$c,r$0,$c,r$0,$c,r$0,$c,r$0,0,0,0,RR=0;
|
||||
b0=1,,$c,r$0,$c,r$1,$c,r$1,$c,r$1,,,,RA;;
|
||||
b0=1,+,$c,r$0,$c,r$1,$c,r$1,$c,r$1,,,,RA;;
|
||||
,0,0,1,1,1,0,0,0,RR;
|
||||
,0,0,0,1,1,1,0,0,RR>>1;
|
||||
b1=0,$C,9$пропуск такта суммирования;;
|
||||
,0,0,0,1,1,1,0,0,RR;
|
||||
,0,$c,r$0,$c,r$0,$c,r$0,$c,r$1,1,1,0,RR>>1;
|
||||
b2=1,,$c,r$0,$c,r$1,$c,r$1,$c,r$1,,,,RA;;
|
||||
b2=1,+,$c,r$0,$c,r$1,$c,r$1,$c,r$1,,,,RA;;
|
||||
,0,1,0,0,0,1,1,0,RR;
|
||||
Знак,$c,b$1,0,1,0,0,0,1,1,RR>>1;
|
||||
"
|
||||
class="center"
|
||||
style="flex: 1"
|
||||
></table>
|
||||
" class="center" style="flex: 1"></table>
|
||||
</div>
|
||||
</section>
|
||||
<section class="col">
|
||||
@ -116,11 +108,11 @@
|
||||
<img alt="Блок схема умножения" data-tag="bo-mul" src="img/bo-mul.png" style="width: 50%">
|
||||
</div>
|
||||
<h3>Проверка бита с установкой его в единицу</h3>
|
||||
<p>Операция проверяет бит в RB по адресу из RA, устанавливает флаг CF, если значение бита в операнде 1, значение бита в операнде устанавливается в 1</p>
|
||||
<p>Операция проверяет бит в RB по адресу из RA, устанавливает флаг CF, если значение бита в операнде 1, значение
|
||||
бита в операнде устанавливается в 1</p>
|
||||
<div class="row y-center">
|
||||
<img style="flex: 0.6" src="img/bo-set.png" alt="Блок схема проверки бита с установкой в единицу">
|
||||
<div style="flex: 0.4"></div>
|
||||
<div style="flex: 1" class="col x-center tex">
|
||||
<div style="flex: 1"></div>
|
||||
<div style="flex: 2" class="col x-center tex">
|
||||
<div class="col" style="gap: 0">
|
||||
Пример 1:
|
||||
$RA = 0000$
|
||||
@ -136,12 +128,344 @@
|
||||
$RB = 0011$
|
||||
</div>
|
||||
</div>
|
||||
<img style="flex: 2" src="img/bo-set.png" alt="Блок схема проверки бита с установкой в единицу">
|
||||
<div style="flex: 1"></div>
|
||||
</div>
|
||||
</section>
|
||||
<section class="col">
|
||||
<h2>Функциональная схема блока операций</h2>
|
||||
<p>Функциональная схема блока операций представлена на рисунке <span data-ref="bo-func"></span></p>
|
||||
<img src="img/bo-func.png" alt="Функциональная схема блока операций" data-tag="bo-func">
|
||||
<div class="col y-center">
|
||||
<img style="width: 75%" src="img/bo-func.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">RLO</td>
|
||||
<td>Регистр младшей части результата, 4 разряда, хранение, параллельная загрузка, логический сдвиг вправо,
|
||||
синхронный сброс в 0</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="center">RHI</td>
|
||||
<td>Регистр старшей части результата, 4 разряда, хранение, параллельная загрузка, логический сдвиг вправо с
|
||||
переносом в RLO, синхронный сброс в 0</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="center">CS1</td>
|
||||
<td>Формирование знака произведения</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="center">CS2</td>
|
||||
<td>Формирование нового значения B с установленным битом по индексу A</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="center">CS3</td>
|
||||
<td>Формирование флага CF (значения бита из B по индексу A)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="center">SM</td>
|
||||
<td>Сумматор, 4 разряда</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="center">TS</td>
|
||||
<td>Регистр знака произведения, 1 разряд, хранение, загрузка</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>Y0</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>Данный регистр должен выполнять микрооперации хранения, параллельной загрузки и логического сдвига вправо. Для
|
||||
реализации выбран универсальный регистр со сдвигом влево SR4CLE, для получения сдвига вправо входы и выходы
|
||||
подключены в обратном порядке. Младший бит выхода 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>Y1</td>
|
||||
<td>Y2</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>0</td>
|
||||
<td>0</td>
|
||||
<td>Хранение</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>1</td>
|
||||
<td>0</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>Регистр младшей части результата RLO</h3>
|
||||
<p>Данный регистр должен выполнять микрооперации хранения, параллельной загрузки, логического сдвига вправо (с
|
||||
заполнением старшего бита младшим разрядом из RHI) и синхронного сброса в 0. Для реализации выбран универсальный
|
||||
сдвиговый регистр SR4RLE</p>
|
||||
<div class="row y-center">
|
||||
<table class="center" style="flex: 1" data-alt="Таблица управляющих сигналов RLO">
|
||||
<tr>
|
||||
<th colspan="3">Обозначение</th>
|
||||
<th rowspan="2">Назначение</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Y5</td>
|
||||
<td>Y6</td>
|
||||
<td>Y8</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>0</td>
|
||||
<td>0</td>
|
||||
<td>0</td>
|
||||
<td>Хранение</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>0</td>
|
||||
<td>1</td>
|
||||
<td>0</td>
|
||||
<td>Параллельная загрузка</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>0</td>
|
||||
<td>0</td>
|
||||
<td>1</td>
|
||||
<td>Логический сдвиг вправо</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>1</td>
|
||||
<td>0</td>
|
||||
<td>0</td>
|
||||
<td>Сброс в 0</td>
|
||||
</tr>
|
||||
</table>
|
||||
<img style="flex: 1" src="img/bo-rlo.png" alt="Логическая схема RLO">
|
||||
</div>
|
||||
<h3>Регистр старшей части результата RHI</h3>
|
||||
<p>Данный регистр должен выполнять микрооперации хранения, параллельной загрузки, логического сдвига вправо (c
|
||||
коммутацией младшего бита в старший разряд RLO) и синхронного сброса в 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>Y5</td>
|
||||
<td>Y7</td>
|
||||
<td>Y8</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>0</td>
|
||||
<td>0</td>
|
||||
<td>0</td>
|
||||
<td>Хранение</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>0</td>
|
||||
<td>1</td>
|
||||
<td>0</td>
|
||||
<td>Параллельная загрузка</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>0</td>
|
||||
<td>0</td>
|
||||
<td>1</td>
|
||||
<td>Логический сдвиг вправо</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>1</td>
|
||||
<td>0</td>
|
||||
<td>0</td>
|
||||
<td>Сброс в 0</td>
|
||||
</tr>
|
||||
</table>
|
||||
<img style="flex: 1" src="img/bo-rhi.png" alt="Логическая схема RHI">
|
||||
</div>
|
||||
</section>
|
||||
<section class="col">
|
||||
<div class="row">
|
||||
<div class="col" style="flex: 1">
|
||||
<h3>Комбинационная схема CS1</h3>
|
||||
<p>Отвечает за формирование знака произведения</p>
|
||||
<img data-style="width: 50%" src="img/bo-cs1.png" alt="Логическая схема CS1">
|
||||
</div>
|
||||
<div class="col" style="flex: 1">
|
||||
<h3>Комбинационная схема CS2</h3>
|
||||
<p>Отвечает за формирование нового значения B с установленным битом по индексу A</p>
|
||||
<img src="img/bo-cs2.png" alt="Логическая схема CS2">
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col" style="flex: 1">
|
||||
<h3>Комбинационная схема CS3</h3>
|
||||
<p>Отвечает за формирование флага CF (бита из B по индексу A)</p>
|
||||
<img src="img/bo-cs3.png" alt="Логическая схема CS3">
|
||||
</div>
|
||||
<div class="col" style="flex: 1">
|
||||
<h3>Сумматор SM</h3>
|
||||
<p>4-х битный сумматор ADD4</p>
|
||||
<img src="img/bo-sm.png" alt="Логическая схема SM">
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<section class="col">
|
||||
<h3>Регистр знака TS</h3>
|
||||
<div class="row y-start">
|
||||
<table class="center" style="flex: 1" data-alt="Таблица управляющих сигналов TS">
|
||||
<tr>
|
||||
<th>Обозначение</th>
|
||||
<th rowspan="2">Назначение</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Y3</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>0</td>
|
||||
<td>Хранение</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>1</td>
|
||||
<td>Загрузка</td>
|
||||
</tr>
|
||||
</table>
|
||||
<img style="flex: 1" data-style="width: 50%" src="img/bo-ts.png" alt="Логическая схема TS">
|
||||
</div>
|
||||
<h3>Регистр флага TCF</h3>
|
||||
<div class="row y-start">
|
||||
<table class="center" style="flex: 1" data-alt="Таблица управляющих сигналов TCF">
|
||||
<tr>
|
||||
<th>Обозначение</th>
|
||||
<th rowspan="2">Назначение</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Y4</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>0</td>
|
||||
<td>Хранение</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>1</td>
|
||||
<td>Загрузка</td>
|
||||
</tr>
|
||||
</table>
|
||||
<img style="flex: 1" data-style="width: 50%" src="img/bo-tcf.png" alt="Логическая схема TCF">
|
||||
</div>
|
||||
</section>
|
||||
<section class="landscape col">
|
||||
<h2>Логическая схема блока операций</h2>
|
||||
<img src="img/bo-logic.png" data-style="width: 80%" alt="Логическая схема блока операций">
|
||||
</section>
|
||||
<section class="col">
|
||||
<h2>Микропрограммы выполнения операций</h2>
|
||||
<h3>Определение сигналов блока операций</h3>
|
||||
<div class="row y-start">
|
||||
<table data-alt="Таблица управляющих сигналов">
|
||||
<tr>
|
||||
<th>Сигнал</th>
|
||||
<th>Операция</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="center">Y0</Type>
|
||||
<td>Загрузка A в RA</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="center">Y1</td>
|
||||
<td>Загрузка B в RB</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="center">Y2</td>
|
||||
<td>Логический сдвиг вправо RB</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="center">Y3</td>
|
||||
<td>Загрузка значения на выходе CS1 в TS</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="center">Y4</td>
|
||||
<td>Загрузка значения на выходе CS3 в TCF</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="center">Y5</td>
|
||||
<td>Синхронный сброс RLO и RHI</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="center">Y6</td>
|
||||
<td>Загрузка значения на выходе CS2 в RLO</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="center">Y7</td>
|
||||
<td>Загрузка значения на выходе SM в RHI</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="center">Y8</td>
|
||||
<td>Логический сдвиг вправо группы регистров RHI и RLO</td>
|
||||
</tr>
|
||||
</table>
|
||||
<table data-alt="Таблица сигналов-признаков БО">
|
||||
<tr>
|
||||
<th>Сигнал</th>
|
||||
<th>Операция</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="center">F0</Type>
|
||||
<td>Младший разряд B</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<h3>Алгоритм микропрограммы УМНОЖЕНИЕ</h3>
|
||||
</section>
|
||||
<script src="index.js" type="module"></script>
|
||||
</body>
|
||||
|
||||
Reference in New Issue
Block a user