\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} \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$ } \makecell{ Пример 2: \\ $RA = 0001$ \\ $RB = 0001$ \\ $CF = 0$ \\ $RB = 0011$ } \makecell{ \begin{minipage}[t]{0.3\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} В таблице \ref{bo-table} приведены все элементы функциональной схемы блока операций \begin{figure}[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 разряда, множитель, параллельная загрузка, хранение & регистр данных, параллельная загрузка \\ \hline RR & Регистр результата, 8 разрядов, параллельная загрузка, хранение, сдвиг вправо на 1 разряд & новое значение регистра RB, 4 старших разряда, параллельная загрузка, хранение \\ \hline RPR & & Регистр флага CF, 1 разряд, параллельная загрузка, хранение \\ \hline КС1 & Выбор множимого: RB или RR[6:3]. Формирование сигнала F0 для МУУ & \\ \hline КС2 & Формирование знака для КС3 & Новое значение RB с установленным битом для КС3. Формирование RPR \\ \hline КС3 & Загрузка результата суммирования в RR[6:3] или знака в RR[7] & Загрузка нового значения RB с установленным битом в RR[6:3] \\ \hline SM & 4-разрядный сумматор. Пропуск такта & \\ \hline & & \end{tabular} \caption{Элементы функциональной схемы} \label{bo-table} \end{minipage} \end{figure} \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}