diff --git a/circuit/25-2/course_project/README.md b/circuit/25-2/course_project/README.md deleted file mode 100644 index eea7e6e..0000000 --- a/circuit/25-2/course_project/README.md +++ /dev/null @@ -1,3 +0,0 @@ -section - страница - -h1, h2, h3 - пункт, подпункт, подподпункт, отображаются в содержании diff --git a/circuit/25-2/course_project/README.txt b/circuit/25-2/course_project/README.txt new file mode 100644 index 0000000..dc4a497 --- /dev/null +++ b/circuit/25-2/course_project/README.txt @@ -0,0 +1,19 @@ +section - страница + +h1, h2, h3 - пункт, подпункт, подподпункт, отображаются в содержании + +img.alt - генерируемая подпись "Рисунок - " + +table.data-alt - генерируемая подпись "Таблица - " +table.data-gen - генерация таблицы в формате "1,2;3,4;", где ',' разделяет колонки, ';' разделяет строки +$,,$ +$C,$ - установить colspan клетки +$c,$ - установить цвет клетки, color = r | g | b +$$ - экранирование $ +$, - экранирование , +$; - экранирование ; + +.tex - генерирует MathML на основе TeX + +[data-tag] - у img или table при наличии alt или data-alt, позволяет ссылаться через data-ref +span.data-ref - заменяет содержимое элемента на idx элемента с соответствующим data-tag diff --git a/circuit/25-2/course_project/drawio/bo-mut.drawio b/circuit/25-2/course_project/drawio/bo-mut.drawio deleted file mode 100644 index 305bc05..0000000 --- a/circuit/25-2/course_project/drawio/bo-mut.drawio +++ /dev/null @@ -1,55 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/circuit/25-2/course_project/img/bo-mut-test-1.png b/circuit/25-2/course_project/img/bo-mul-test-1.png similarity index 100% rename from circuit/25-2/course_project/img/bo-mut-test-1.png rename to circuit/25-2/course_project/img/bo-mul-test-1.png diff --git a/circuit/25-2/course_project/img/bo-mut-test-2.png b/circuit/25-2/course_project/img/bo-mul-test-2.png similarity index 100% rename from circuit/25-2/course_project/img/bo-mut-test-2.png rename to circuit/25-2/course_project/img/bo-mul-test-2.png diff --git a/circuit/25-2/course_project/img/bo-mut.png b/circuit/25-2/course_project/img/bo-mul.png similarity index 100% rename from circuit/25-2/course_project/img/bo-mut.png rename to circuit/25-2/course_project/img/bo-mul.png diff --git a/circuit/25-2/course_project/img/bo-scheme.png b/circuit/25-2/course_project/img/bo-scheme.png index a75a8c1..a08f8e3 100644 Binary files a/circuit/25-2/course_project/img/bo-scheme.png and b/circuit/25-2/course_project/img/bo-scheme.png differ diff --git a/circuit/25-2/course_project/index.css b/circuit/25-2/course_project/index.css index 6e3fa55..94d9612 100644 --- a/circuit/25-2/course_project/index.css +++ b/circuit/25-2/course_project/index.css @@ -1,3 +1,7 @@ +* { + margin: 0; +} + body { display: flex; flex-direction: column; @@ -7,7 +11,7 @@ body { } html { - font: 12pt Times; + font: 12pt "Tinos"; } section { @@ -18,6 +22,7 @@ section { padding: 20mm 15mm 20mm 30mm; background-color: white; border-bottom: 1mm solid gray; + overflow: hidden; } header { @@ -37,26 +42,40 @@ h3 { font-size: 1rem; } +.colr { + gap: 5mm; + display: flex; + flex-direction: column-reverse; +} + .col { + gap: 5mm; display: flex; flex-direction: column; - gap: 5mm; } .row { + gap: 5mm; display: flex; flex-direction: row; - gap: 5mm; } .x-between { justify-content: space-between; } +.x-center { + justify-content: center; +} + .x-end { justify-content: end; } +.y-start { + align-items: start; +} + .y-center { align-items: center; } @@ -69,7 +88,7 @@ h3 { text-align: center; } -.indent { +p { text-indent: 12.5mm; } @@ -110,3 +129,17 @@ h3 { padding-left: 0.33em; background-color: white; } + +img { + object-fit: contain; +} + +table, td, th { + border-collapse: collapse; + border: 1px solid black; +} + +.table-fixed { + width: 100%; + table-layout: fixed; +} diff --git a/circuit/25-2/course_project/index.html b/circuit/25-2/course_project/index.html index 3abf15e..f176469 100644 --- a/circuit/25-2/course_project/index.html +++ b/circuit/25-2/course_project/index.html @@ -4,7 +4,11 @@ Document - + + + + + @@ -34,15 +38,110 @@
Москва — 2025/2026
-
-

Проектирование блока операций

-

Примеры и алгоритмы выполнения операций

-

Алгоритм операции УМНОЖЕНИЕ

+
-
+

Проектирование блока операций

Примеры и алгоритмы выполнения операций

Алгоритм операции УМНОЖЕНИЕ

+

+ Умножение выполняется по алгоритму умножения с младших разрядов множителя и сдвигом + суммы частичных произведений вправо с одним корректирующим шагом. Данный алгоритм при + представлении сомножителей в прямом коде можно выразить следующей формулой: +

+
+ $$[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}$$ +
+
+
+ Пример 1: + $[\mathrm{A}]_\mathrm{п} = 0.111 = 7$ + $[\mathrm{B}]_\mathrm{п} = 0.111 = 7$ + $\mathrm{Зн} = 0 \oplus 0 = 0$ + $[\mathrm{A}*\mathrm{B}]_\mathrm{п} = 0.0110001 = 49$ +
+
+
+
+
+ Пример 2: + $[\mathrm{A}]_\mathrm{п} = 0.111 = 7$ + $[\mathrm{B}]_\mathrm{п} = 1.101 = -5$ + $\mathrm{Зн} = 1 \oplus 0 = 1$ + $[\mathrm{A}*\mathrm{B}]_\mathrm{п} = 1.0100011 = -35$ +
+
+
+
+
+

Представим рассмотренный метод умножения в виде схемы алгоритма на рисунке

+
+ Блок схема умножения +
+

Проверка бита с установкой его в единицу

+

Операция проверяет бит в RB по адресу из RA, устанавливает флаг CF, если значение бита в операнде 1, значение бита в операнде устанавливается в 1

+
+ Блок схема проверки бита с установкой в единицу +
+
+
+ Пример 1: + $RA = 0000$ + $RB = 0001$ + $CF = 1$ + $RB = 0001$ +
+
+ Пример 2: + $RA = 0001$ + $RB = 0001$ + $CF = 0$ + $RB = 0011$ +
+
+
+
+
+

Функциональная схема блока операций

+

Функциональная схема блока операций представлена на рисунке

+ Функциональная схема блока операций
diff --git a/circuit/25-2/course_project/index.js b/circuit/25-2/course_project/index.js index c8a9b79..8a362db 100644 --- a/circuit/25-2/course_project/index.js +++ b/circuit/25-2/course_project/index.js @@ -1,70 +1,188 @@ -class CTX { - addPageNumbers() { - let pages = this.pages - for (let i = 2; i <= pages.length; i++) { - let div = document.createElement('div') - div.classList.add('page-number') - div.textContent = i - pages[i - 1].appendChild(div) - } - } +function addPageNumbers() { + let pages = document.getElementsByTagName('section') - addTableOfContents() { - let hs = document.querySelectorAll('h1,h2,h3') - let ol = document.createElement('ol') - ol.classList.add('table-of-contents') - - let prefix_counter = [0, 0, 0] - let page_counter = 2 - let page - - for (let h of hs) { - let level = { - 'H1': 0, - 'H2': 1, - 'H3': 2, - }[h.tagName] - - prefix_counter[level]++ - for (let i = level + 1; i < prefix_counter.length; i++) - prefix_counter[i] = 0 - - let prefix = '' - for (let i = 0; i <= level; i++) - prefix += prefix_counter[i] + '.' - - prefix = prefix.slice(0, prefix.length - 1) - console.log(h.tagName) - - let li = document.createElement('li') - let name = document.createElement('span') - let page_number = document.createElement('span') - - name.innerHTML = prefix + ' - ' + h.innerHTML - - let cur_page = h.closest('section') - if (page != cur_page) { - page = cur_page - page_counter++ - } - page_number.innerHTML = page_counter - - li.append(name, page_number) - ol.appendChild(li) - } - - let header = document.createElement('header') - header.innerText = 'Содержание' - this.pages[0].after(document.createElement('section')) - this.pages[1].appendChild(header) - this.pages[1].appendChild(ol) - } - - get pages() { - return document.getElementsByTagName('section') + for (let i = 2; i <= pages.length; i++) { + let div = document.createElement('div') + div.classList.add('page-number') + div.textContent = i + pages[i - 1].appendChild(div) } } -let ctx = new CTX -ctx.addTableOfContents() -ctx.addPageNumbers() +function addTableOfContents() { + let pages = document.getElementsByTagName('section') + let hs = document.querySelectorAll('h1,h2,h3') + let ol = document.createElement('ol') + ol.classList.add('table-of-contents') + + let prefix_counter = [0, 0, 0] + let page_counter = 2 + let page + + for (const h of hs) { + let level = { + 'H1': 0, + 'H2': 1, + 'H3': 2, + }[h.tagName] + + prefix_counter[level]++ + for (let i = level + 1; i < prefix_counter.length; i++) + prefix_counter[i] = 0 + + let prefix = '' + for (let i = 0; i <= level; i++) + prefix += prefix_counter[i] + '.' + + prefix = prefix.slice(0, prefix.length - 1) + + let li = document.createElement('li') + let name = document.createElement('span') + let page_number = document.createElement('span') + + name.innerHTML = prefix + ' - ' + h.innerHTML + h.innerHTML = name.innerHTML + + let cur_page = h.closest('section') + if (page != cur_page) { + page = cur_page + page_counter++ + } + page_number.innerHTML = page_counter + + li.append(name, page_number) + ol.appendChild(li) + } + + let header = document.createElement('header') + header.innerText = 'Содержание' + let section = document.createElement('section') + section.classList.add('col') + pages[0].after(section) + pages[1].appendChild(header) + pages[1].appendChild(ol) +} + +function addCaptions() { + const objs = document.querySelectorAll('img, table') + const obj_counter = { + 'IMG': 1, + 'TABLE': 1, + } + + const counter_by_tag = {} + + for (const obj of objs) { + const cap = document.createElement('caption') + + const prefix = { + 'IMG': 'Рисунок ', + 'TABLE': 'Таблица ', + }[obj.tagName] + obj_counter[obj.tagName] + + cap.innerHTML = prefix + ' - ' + { + 'IMG': obj.alt, + 'TABLE': obj.dataset.alt, + }[obj.tagName] + + if (obj.dataset.tag) { + counter_by_tag[obj.dataset.tag] = obj_counter[obj.tagName] + } + + let div = document.createElement('div') + div.classList.add(...({ + 'IMG': ['col'], + 'TABLE': ['colr', 'y-start'], + })[obj.tagName]) + div.style.cssText = obj.style.cssText + obj.style.cssText = 'width: 100%' + + let prev = obj.previousSibling + obj.remove() + div.append(obj, cap) + prev.after(div) + obj_counter[obj.tagName]++ + } + + const refs = document.querySelectorAll('span[data-ref]') + console.log(refs) + + for (const ref of refs) { + ref.innerHTML = counter_by_tag[ref.dataset.ref] ?? 'без номера' + } +} + +function genTables() { + let tables = document.getElementsByTagName('table') + + for (const table of tables) { + if (!table.dataset.gen) + continue + + let row = document.createElement('tr') + let dot = document.createElement('td') + let value = '' + + const gen = table.dataset.gen + for (let i = 0; i < gen.length;) { + const char = gen[i] + switch (char) { + case ',': + dot.innerHTML = value + value = '' + row.appendChild(dot) + dot = document.createElement('td') + i++ + break + + case ';': + dot.innerHTML = value + value = '' + row.appendChild(dot) + dot = document.createElement('td') + table.appendChild(row) + row = document.createElement('tr') + i++ + break + + case '$': + const args_end = gen.indexOf('$', i+2) + const args = gen.slice(i+1, args_end).split(',') + switch (args[0]) { + case 'C': + dot.colSpan = +args[1] + break + + case 'c': + dot.style.backgroundColor = { + 'r': 'lightcoral', + 'g': 'lightgreen', + 'b': 'lightblue', + }[args[1]] ?? 'white' + break + } + i = args_end + 1 + break + + default: + value += char + i++ + break + } + } + } +} + +function genMathML() { + TeXZilla.setSafeMode(true) + const maths = document.querySelectorAll('.tex') + + for (const math of maths) + TeXZilla.filterElement(math) +} + +addTableOfContents() +addPageNumbers() +addCaptions() +genTables() +genMathML() diff --git a/circuit/25-2/course_project/main.tex b/circuit/25-2/course_project/main.tex deleted file mode 100644 index 341d1ef..0000000 --- a/circuit/25-2/course_project/main.tex +++ /dev/null @@ -1,445 +0,0 @@ -\documentclass[12pt,a4paper,oneside]{article} -\usepackage[a4paper,left=2cm,right=1cm,top=2cm,bottom=2cm]{geometry} - -\usepackage{polyglossia} -\setmainlanguage{russian} -\PolyglossiaSetup{russian}{indentfirst=true} - -\usepackage{fontspec} -\defaultfontfeatures{Mapping=tex-text} - -\usepackage{caption} -\DeclareCaptionLabelFormat{gost}{#1~\textbf{#2}.} -\DeclareCaptionLabelSeparator{gost}{~} -\captionsetup[figure]{ - labelsep = gost, - labelformat = gost, - justification = centering, - font = {normalsize, bf}, - position = bottom, - skip = 10pt -} - -\captionsetup[table]{ - labelsep = gost, - labelformat = gost, - justification = centering, - font = {normalsize, bf}, - position = top, - skip = 5pt -} - -\makeatletter -\@addtoreset{figure}{section} -\@addtoreset{table}{section} -\makeatother - -\setmainfont{Times New Roman} -\setromanfont{Times New Roman} -\setsansfont{Arial} -\setmonofont{Courier New} - -\usepackage{amsmath} -\newfontfamily{\cyrillicfont}{Times New Roman} -\newfontfamily{\cyrillicfontrm}{Times New Roman} -\newfontfamily{\cyrillicfonttt}{Courier New} -\newfontfamily{\cyrillicfontsf}{Arial} - -\usepackage{graphicx} -\graphicspath{{img/}} - -\usepackage{float} -\floatstyle{plaintop} -\restylefloat{table} -\usepackage{makecell} -\usepackage[table]{xcolor} - -\begin{document} - -\begin{titlepage} - \begin{center} - \begin{large} - Национальный исследовательский ядерный университет <<МИФИ>> \\ - \vspace{0.25cm} - Институт интеллектуальных кибернетических систем \\ - \vspace{0.25cm} - Кафедра №12 <<Компьютерные системы и технологии>> - \end{large} - - \vspace*{1cm} - - \begin{figure}[H] - \centering - \begin{minipage}[c]{0.2\textwidth} - \includegraphics[width=\textwidth]{logo_university} - \end{minipage} - \hfill - \begin{minipage}[c]{0.1\textwidth} - \includegraphics[width=\textwidth]{logo_institute} - \end{minipage} - \hfill - \begin{minipage}[c]{0.3\textwidth} - \includegraphics[width=\textwidth]{logo_department} - \end{minipage} - \end{figure} - - \vspace{4cm} - - \begin{huge} - \textbf{Курсовой проект} - \end{huge} - - \begin{large} - \textbf{<<Проектирование процессора>>} - \end{large} - - \vfill - - \begin{flushright} - \begin{tabular}{ r l } - \textbf{Cтудент:} & Литвинов В.\,А. \\ - \textbf{Группа:} & Б23-503 \\ - \textbf{Преподаватель:} & Ядыкин И.\,М. \\ - \end{tabular} - \end{flushright} - - Москва --- 2025/2026 - \end{center} -\end{titlepage} - -\setcounter{page}{2} -\tableofcontents -\newpage - -\section{Проектирование блока операций} -\subsection{Примеры и алгоритмы выполнения операций} -\subsubsection{Алгоритм операции УМНОЖЕНИЕ} -Умножение выполняется по алгоритму умножения с младших разрядов множителя и сдвигом суммы частичных произведений вправо с одним корректирующим шагом. Данный алгоритм при представлении сомножителей в прямом коде можно выразить следующей формулой: - -$$[A]_{\text{п}} = a_3, a_2 a_1 a_0$$ - -\begin{equation} - [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} -\end{equation} - -\begin{figure}[H] - \centering - \begin{minipage}{0.3\textwidth} - \centering - \makecell[l]{ - Пример 1: \\ - $[\mathrm{A}]_\mathrm{п} = 0.111 = 7$\\ - $[\mathrm{B}]_\mathrm{п} = 0.111 = 7$\\ - $\mathrm{Зн} = 0 \oplus 0 = 0$\\ - $[\mathrm{A}*\mathrm{B}]_\mathrm{п} = 0.0110001 = 49$ - } - \end{minipage} - \begin{minipage}{0.69\textwidth} - \centering - \begin{tabular}{c|c|c|c|c|c|c|c|c|c} - & & 0 & 1 & 1 & 1 & & & & \makecell[l]{RA} \\ - & & 0 & 1 & 1 & 1 & & & & \makecell[l]{RB}\\ \hline - & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & \makecell[l]{RR = 0} \\ - $b_0 = 1$ & & 0 & 1 & 1 & 1 & & & & \makecell[l]{RA} \\ \hline - & 0 & 0 & 1 & 1 & 1 & 0 & 0 & 0 & \makecell[l]{RR} \\ - & 0 & 0 & 0 & 1 & 1 & 1 & 0 & 0 & \makecell[l]{RR >> 1} \\ - $b_1 = 1$ & & 0 & 1 & 1 & 1 & & & & \makecell[l]{RA} \\ \hline - & 0 & 1 & 0 & 1 & 0 & 1 & 0 & 0 & \makecell[l]{RR} \\ - & 0 & 0 & 1 & 0 & 1 & 0 & 1 & 0 & \makecell[l]{RR >> 1} \\ - $b_2 = 1$ & & 0 & 1 & 1 & 1 & & & & \makecell[l]{RA} \\ \hline - & 0 & 1 & 1 & 0 & 0 & 0 & 1 & 0 & \makecell[l]{RR} \\ - $\mathrm{Знак}$&\cellcolor{lightgray}0 & 0 & 1 & 1 & 0 & 0 & 0 & 1 & \makecell[l]{RR >> 1} - \end{tabular} - \end{minipage} -\end{figure} - -\begin{figure}[H] - \centering - \begin{minipage}{0.3\textwidth} - \centering - \makecell[l]{ - Пример 2: \\ - $[\mathrm{A}]_\mathrm{п} = 0.111 = 7$\\ - $[\mathrm{B}]_\mathrm{п} = 1.101 = -5$\\ - $\mathrm{Зн} = 1 \oplus 0 = 1$\\ - $[\mathrm{A}*\mathrm{B}]_\mathrm{п} = 1.0100011 = -35$ - } - \end{minipage} - \begin{minipage}{0.69\textwidth} - \centering - \begin{tabular}{c|c|c|c|c|c|c|c|c|c} - & & 0 & 1 & 1 & 1 & & & & \makecell[l]{RA} \\ - & & 1 & 1 & 0 & 1 & & & & \makecell[l]{RB}\\ \hline - & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & \makecell[l]{RR = 0} \\ - $b_0 = 1$ & & 0 & 1 & 1 & 1 & & & & \makecell[l]{RA} \\ \hline - & 0 & 0 & 1 & 1 & 1 & 0 & 0 & 0 & \makecell[l]{RR} \\ - & 0 & 0 & 0 & 1 & 1 & 1 & 0 & 0 & \makecell[l]{RR >> 1} \\ - $b_1 = 0$ & \multicolumn{9}{l}{\text{пропуск такта суммирования}} \\ \hline - & 0 & 0 & 0 & 1 & 1 & 1 & 0 & 0 & \makecell[l]{RR} \\ - & 0 & 0 & 0 & 0 & 1 & 1 & 1 & 0 & \makecell[l]{RR >> 1} \\ - $b_2 = 1$ & & 0 & 1 & 1 & 1 & & & & \makecell[l]{RA} \\ \hline - & 0 & 1 & 0 & 0 & 0 & 1 & 1 & 0 & \makecell[l]{RR} \\ - $\mathrm{Знак}$&\cellcolor{lightgray}1 & 0 & 1 & 0 & 0 & 0 & 1 & 1 & \makecell[l]{RR >> 1} - \end{tabular} - \end{minipage} -\end{figure} - -\newpage -\begin{figure}[H] - \centering - Представим рассмотренный метод умножения в виде схемы алгоритма \\ - \begin{minipage}[t]{\textwidth} - \centering - \includegraphics[width=0.6\textwidth]{bo-mut} - \caption{Блок схема умножения} - \label{bo-mut} - \end{minipage} -\end{figure} - -\subsubsection{Проверка бита с установкой его в единицу} -Операция проверяет бит в RB по адресу из RA, устанавливает флаг CF, если значение бита в операнде 1, значение бита в операнде устанавливается в 1 - -\begin{figure}[H] - \centering - \makecell{ - Пример 1: \\ - $RA = 0000$ \\ - $RB = 0001$ \\ - $CF = 1$ \\ - $RB = 0001$ \\ \\ - Пример 2: \\ - $RA = 0001$ \\ - $RB = 0001$ \\ - $CF = 0$ \\ - $RB = 0011$ - } - \makecell{ - \begin{minipage}[t]{0.2\textwidth} - \centering - \includegraphics[width=\textwidth]{bo-set} - \caption{Блок схема проверки бита с установкой в единицу} - \label{bo-set} - \end{minipage} - } -\end{figure} - -\newpage -\subsection{Функциональная схема блока операций} -Функциональная схема блока операций представлена на рис. \ref{bo-func} - -\begin{figure}[H] - \centering - \begin{minipage}[t]{\textwidth} - \centering - \includegraphics[width=\textwidth]{bo-func} - \caption{Блок схема умножения} - \label{bo-func} - \end{minipage} -\end{figure} - -\newpage -В таблице \ref{bo-table} приведены все элементы функциональной схемы блока операций -\begin{table}[H] - \centering - \begin{minipage}[t]{\textwidth} - \centering - \begin{tabular}{|p{0.1\textwidth}|p{0.4\textwidth}|p{0.4\textwidth}|} - Обознач & Назначение УМНОЖЕНИЕ & ПРОВЕРКА БИТА \\ \hline - RA & Регистр 1-го операнда, 4 разряда, множимое, параллельная загрузка, хранение & позиция бита, параллельная загрузка \\ \hline - RB & Регистр 2-го операнда, 4 разряда, множитель, параллельная загрузка 4 старших бит, хранение, формирование сигнала F0 & регистр данных, параллельная загрузка \\ \hline - RR & Регистр результата, 8 разрядов, параллельная загрузка, хранение, сдвиг вправо на 1 разряд & новое значение регистра RB, 4 старших разряда, параллельная загрузка, хранение \\ \hline - TCF & & Регистр флага CF, 1 разряд, параллельная загрузка, хранение \\ \hline - TS & Регистр знака результата, 1 разряд, параллельная загрузка, хранение & \\ \hline - КС1 & Формирование знака результата умножения & \\ \hline - КС2 & Формирование нового значения RB в RR[3:0] и проверенного бита RB_i & \\ \hline - SM & 4-разрядный сумматор & \\ \hline - & & - \end{tabular} - \caption{Элементы функциональной схемы} - \label{bo-table} - \end{minipage} -\end{table} - -\newpage -\subsection{Проектирование логических элементов блока операций} -\subsubsection{Регистр первого операнда RA} - -Данный регистр является четырёхразрядным регистром хранения. Наиболее подходящим для реализации функций регистра RA является регистр FD4CE - -\begin{minipage}{0.3\textwidth} - \centering - Таблица управляющих сигналов RA - \begin{tabular}{|c|c|} - \hline - Y0 & Назначение \\ \hline - 0 & Хранение \\ \hline - 1 & Загрузка \\ \hline - \end{tabular} -\end{minipage} -\begin{minipage}{0.69\textwidth} - \begin{figure}[H] - \centering - \includegraphics[width=0.3\textwidth]{bo-ra} - \caption{Логическая схема RA} - \label{bo-ra} - \end{figure} -\end{minipage} - -\subsubsection{Регистр второго операнда RB} - -Данный регистр является четырёхразрядным регистром хранения. Наиболее подходящим для реализации функций регистра RB является регистр FD4CE - -\begin{minipage}{0.3\textwidth} - \centering - Таблица управляющих сигналов RB - \begin{tabular}{|c|c|} - \hline - Y0 & Назначение \\ \hline - 0 & Хранение \\ \hline - 1 & Загрузка \\ \hline - \end{tabular} -\end{minipage} -\begin{minipage}{0.69\textwidth} - \begin{figure}[H] - \centering - \includegraphics[width=0.3\textwidth]{bo-rb} - \caption{Логическая схема RB} - \label{bo-rb} - \end{figure} -\end{minipage} - -\subsubsection{Регистр результата RR} - -Данный регистр является 8-разрядным регистром с логическим сдвигом вправо на 1 разряд, хранением, параллельной загрузкой. Наиболее подходящим для реализации функции регистра RR является регистр SR8CLE - -\begin{minipage}{0.3\textwidth} - \centering - Таблица управляющих сигналов RR - \begin{tabular}{|c|c|c|} - \hline - Y5 & Y4 & Назначение \\ \hline - 0 & 0 & Хранение \\ \hline - 0 & 1 & Загрузка \\ \hline - 1 & 0 & SHR \\ \hline - \end{tabular} -\end{minipage} -\begin{minipage}{0.69\textwidth} - \begin{figure}[H] - \centering - \includegraphics[width=0.8\textwidth]{bo-rr} - \caption{Логическая схема RR} - \label{bo-rr} - \end{figure} -\end{minipage} - -\subsubsection{Регистр признака RPR} - -Данный регистр является 1-разрядным с хранением и загрузкой. Наиболее подходящим для реализации функции регистра RPR является - -\begin{minipage}{0.3\textwidth} - \centering - Таблица управляющих сигналов RPR - \begin{tabular}{|c|c|} - \hline - Y7 & Назначение \\ \hline - 0 & Хранение \\ \hline - 1 & Загрузка \\ \hline - \end{tabular} -\end{minipage} -\begin{minipage}{0.69\textwidth} - \begin{figure}[H] - \centering - \includegraphics[width=0.3\textwidth]{bo-rpr} - \caption{Логическая схема RPR} - \label{bo-rpr} - \end{figure} -\end{minipage} - -\subsubsection{Комбинационная схема КC1} - -С помощью комбинационной схемы КС1 осуществляется выбор множимого из RB или RR[6:3], а также формируется сигнал F0 для МУУ - -\begin{minipage}{0.3\textwidth} - \centering - Таблица управляющих сигналов КС1 - \begin{tabular}{|c|c|} - \hline - Y6 & Назначение \\ \hline - 0 & Выбор RB \\ \hline - 1 & Выбор RR[6:3] \\ \hline - \end{tabular} -\end{minipage} -\begin{minipage}{0.69\textwidth} - \begin{figure}[H] - \centering - \includegraphics[width=0.8\textwidth]{bo-cs1} - \caption{Логическая схема КС1} - \label{bo-cs1} - \end{figure} -\end{minipage} - -\newpage -\subsubsection{Комбинационная схема КC2} - -С помощью комбинационной схемы КС2 осуществляется формирование знака для операции умножени, формирование нового значения RB с установленным битом и формирование флага CF для операции установки бита - -\begin{figure}[H] - \centering - \includegraphics[width=0.6\textwidth]{bo-cs2} - \caption{Логическая схема КС2} - \label{bo-cs2} -\end{figure} - -\newpage -\subsubsection{Комбинационная схема КC3} - -С помощью комбинационной схемы КС3 осуществляется загрузка промежуточной суммы в RR[6:3] и знака в RR[7] в операции умножения, нового значения RB с установленными битами в RR[6:3] в операции установки бита - -\begin{minipage}{0.3\textwidth} - \centering - Таблица управляющих сигналов КС3 - \begin{tabular}{|c|c|c|} - \hline - Y3 & Y2 & Назначение \\ \hline - 0 & 0 & сумма в RR[6:3] \\ \hline - 0 & 1 & знак RR[7] \\ \hline - 1 & 0 & значение RB в RR[6:3] \\ \hline - \end{tabular} -\end{minipage} -\begin{minipage}{0.69\textwidth} - \begin{figure}[H] - \centering - \includegraphics[width=0.8\textwidth]{bo-cs3} - \caption{Логическая схема КС3} - \label{bo-cs3} - \end{figure} -\end{minipage} - -\newpage -\subsubsection{Сумматор SM} - -4-разрядный, старшие разряды множимого и множителя, carry input установлены в 0 - -\begin{minipage}{\textwidth} - \begin{figure}[H] - \centering - \includegraphics[width=0.6\textwidth]{bo-sm} - \caption{Логическая схема SM} - \label{bo-sm} - \end{figure} -\end{minipage} - -\newpage -\subsection{Логическая схема блока операций} - -\begin{minipage}{\textwidth} - \begin{figure}[H] - \centering - \includegraphics[width=\textwidth]{bo-scheme} - \caption{Логическая схема БО} - \label{bo-scheme} - \end{figure} -\end{minipage} - - -\end{document}