83 lines
5.4 KiB
TeX
83 lines
5.4 KiB
TeX
|
\documentclass[a4paper,fontsize=14bp]{article}
|
|||
|
|
|||
|
\input{../common-preamble}
|
|||
|
\input{../fancy-listings-preamble}
|
|||
|
\input{../bmstu-preamble}
|
|||
|
\setcounter{secnumdepth}{4}
|
|||
|
\numerationTop
|
|||
|
|
|||
|
\begin{document}
|
|||
|
\thispagestyle{empty}
|
|||
|
\makeBMSTUHeader
|
|||
|
|
|||
|
\makeReportTitle{лабораторной}{1}{Моделирование компонент систем на кристалле}{Проектирование цифровых устройств на \\ программируемых логических интегральных схемах (ПЛИС)}{}{С.В. Фёдоров}
|
|||
|
\newpage
|
|||
|
\thispagestyle{empty}
|
|||
|
\tableofcontents
|
|||
|
\newpage
|
|||
|
\pagestyle{fancy}
|
|||
|
\section{Цель}
|
|||
|
Изучить методики моделирования компонент систем на кристалле с интерфейсами Avalon-MM. Освоить методику интеграции компонент в системы на кристалле.
|
|||
|
|
|||
|
\section{Задачи}
|
|||
|
Для достижения цели было описано несколько задач, каждая со своей целью.
|
|||
|
\begin{enumerate}
|
|||
|
\item \textbf{Создание простых тестбенчей.} Цель: получение навыков реализации тестбенчей, эмулирующих транзакции в соответствии со спецификацией Avalon-MM. Моделирование обмена с разрабатываемыми модулями систем на кристалле.
|
|||
|
\item \textbf{Создание простой системы на кристалле и интеграция пользовательских модулей.} Цель: получение базовых навыков конфигурации системы на кристалле на основе процессора NiosII в средстве Platform Designer. Подготовка проекта системы на кристалле для использования в следующих лабораторных работах.
|
|||
|
\item \textbf{Моделирование систем на кристалле в ModelSim.} Цель: Подготовка созданного проекта к моделированию. Изучение методики моделирования систем на кристалле в пакете ModelSim с процессором, исполняющим программный код из внутренней памяти SRAM.
|
|||
|
\item \textbf{Самостоятельная работа.}
|
|||
|
\end{enumerate}
|
|||
|
\section{Выполнение работы}
|
|||
|
По шагам из методического материала был создан проект в САПР Quartus Prime (доступен по \href{https://git.iovchinnikov.ru/ivan-igorevich/fpga-lab-2/commits/branch/simulation}{ссылке}). В начальном проекте «поезд проезжал через семафор» задолго до инициализации (переход сигнала \code{run} в высокий уровень), поэтому цикл прохода поезда в тестбенче всего проекта (\code{niosII_tb.sv}) был изменён и представлен в листинге \hrf{lst:main-train}.
|
|||
|
|
|||
|
\begin{lstlisting}[language=Verilog,style=VerilogStyle,caption={Изменённый основной цикл тестового стенда},label={lst:main-train}]
|
|||
|
initial begin
|
|||
|
train = 0;
|
|||
|
wait (niosii_inst_reset_bfm_reset_reset);
|
|||
|
forever begin
|
|||
|
repeat(22528) @(posedge niosii_inst_clk_bfm_clk_clk);
|
|||
|
train = 1;
|
|||
|
repeat(10) @(posedge niosii_inst_clk_bfm_clk_clk);
|
|||
|
train = 0;
|
|||
|
end
|
|||
|
end
|
|||
|
\end{lstlisting}
|
|||
|
|
|||
|
В результате моделирования была получена диаграмма работы (waveform), представленная на рисунке \hrf{pic:modelsim-before}.
|
|||
|
\begin{figure}[H]
|
|||
|
\centering
|
|||
|
\includegraphics[width=\textwidth]{03-fpga-lab-02-beforeindividual.png}
|
|||
|
\caption{Диаграмма Modelsim}
|
|||
|
\label{pic:modelsim-before}
|
|||
|
\end{figure}
|
|||
|
|
|||
|
\section{Индивидуальное задание}
|
|||
|
В качестве индивидуальных были даны следующие задания:
|
|||
|
\begin{enumerate}
|
|||
|
\item расширить разрядность памяти хранения до 32 бит и на запись и на чтение, чтобы изменения были видны на светодиодах.
|
|||
|
\item добавить регистр (помимо \code{ctl} и \code{divider}). Если там 0, то схема должна работать без изменений, а если 1, должен подключаться режим мигающего жёлтого с длительностью, которая берётся из памяти (параметр зелёного цвета), то есть мигать циклически со следующей периодичностью:
|
|||
|
|
|||
|
\begin{tikztimingtable}
|
|||
|
length & 5D{green} 5D{green} 5D{green} 5D{green} 5D{green} 5D{green}\\
|
|||
|
yellow & 5L 5H 5L 5H 5L 5H \\
|
|||
|
\end{tikztimingtable}
|
|||
|
\end{enumerate}
|
|||
|
\section{Выводы}
|
|||
|
|
|||
|
\newpage
|
|||
|
\appendix
|
|||
|
\setcounter{secnumdepth}{4}
|
|||
|
\section{Приложения}
|
|||
|
\renewcommand{\thesubsection}{\Asbuk{subsection}}
|
|||
|
|
|||
|
\subsection{Исходные коды проекта}
|
|||
|
\label{appendix:src}
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
\end{document}
|
|||
|
|
|||
|
|
|||
|
|