Files
lab/circuit/25-2/course_project/main.tex
2025-12-22 14:17:48 +03:00

446 lines
16 KiB
TeX
Raw Blame History

This file contains ambiguous Unicode characters

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.

\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{удент:} & Литвинов В.\,А. \\
\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}