BMSTU/03-fpga-lab-04-report.tex

86 lines
6.5 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[a4paper,fontsize=14bp]{article}
\input{settings/common-preamble}
\input{settings/fancy-listings-preamble}
\input{settings/bmstu-preamble}
\setcounter{secnumdepth}{4}
\numerationTop
\begin{document}
\thispagestyle{empty}
\makeBMSTUHeader
\makeReportTitle{лабораторной}{4}{Проектирование цифрового синтезатора}{Проектирование цифровых устройств на \\ программируемых логических интегральных схемах (ПЛИС)}{}{С.В. Фёдоров}
\newpage
\pagestyle{fancy}
\section{Цель}
Осуществить полный цикл проектирования цифрового устройства на ПЛИС на языке SystemVerilog. Реализовать генератор периодических функций на основе метода прямого цифрового синтеза на микросхеме семейства Cyclone IV E.
\section{Задачи}
Прямой цифровой синтез -- это метод генерации сигнала заданной формы путём вычисления значений сигнала в последовательных дискретных отсчётах времени и преобразовании их в аналоговый сигнал с помощью ЦАП. Структура системы приведена на рис \hrf{pic:synth-scheme}.
\begin{figure}[H]
\centering
\fontsize{14}{1}\selectfont
\includesvg[scale=1.01]{pics/03-fpga-lab-04-01-synth.svg}
\caption{Схема цифрового синтезатора}
\label{pic:pic:synth-scheme}
\end{figure}
Инкремент фазы поступает на вход накопителя фазы и определяет скорость изменения фазы формируемого сигнала. Накопитель фазы выдаёт номер текущего отсчёта в периоде на просмотровую таблицу, содержащую образ одного периода синуса. Значение с выхода просмотровой таблицы поступает на дельта-сигма модулятор, который работает как однобитный ЦАП. Модулятор формирует последовательность нулей и единиц на высокой частоте, соответствующую текущему уровню на входе модулятора, после чего двухуровневый выходной сигнал модулятора подается на выход ПЛИС и сглаживается простым RC фильтром НЧ. При изменении приращения фазы изменяется частота формируемого на выходе сигнала.
\section{Выполнение работы}
\subsection{Самостоятельная подготовка}
Вариант 9 для первой группы $x_n = 9 * 3 - 21 = 6$.
\begin{figure}[H]
\centering
\resizebox{\textwidth}{!}{\input{pics/03-fpga-04-sigdel.pgf}}
\caption{1}
\label{pic:1}
\end{figure}
\begin{enumerate}
\item $x_n = 6, \varepsilon_n = 127$, уровень квантования 127;
\item $u_{n + 1} = x_n - \varepsilon_n = 6 127 = -121$, при этом $\varepsilon_n = -128-(-121)=-7$, а уровень квантования -128;
\item $u_{n + 2} = x_n - \varepsilon_n = 6 (7) = 13$, при этом $\varepsilon_n = 127 - 13 = 104$, а уровень квантования 127;
\item $u_{n + 3} = x_n - \varepsilon_n = 6 104 = -98$, при этом $\varepsilon_n= -128-(-98) = -30$, а уровень квантования -128;
\item $u_{n + 4} = x_n - \varepsilon_n = 26 (30) = 106$, при этом ξn= 127-106 = 11, а уровень квантования 127 F: Un+1=XN-ξn=26 11 = 15, при этом ξn= 127-15 = 112, а уровень квантования 127
G: Un+1=XN-ξn=26 112 = -86, при этом ξn= -128-(-86) = -42, а уровень квантования -128 H: Un+1=XN-varepsilonn=26 (42) = 88, при этом ξn= 127-88 = 39, а уровень квантования 127
\end{enumerate}
\subsection{Разработка модулей}
\subsubsection{Накопитель фазы}
\textbf{Интерфейс модуля}
\begin{frm} \begin{itemize}
\item [] \textbf{Входы:}
\code{phinc[7:0]} -- величина приращения фазы за один период тактового сигнала;
\code{clk} -- тактовый сигнал;
\code{clr_n} -- вход асинхронного сброса;
\item [] \textbf{Выходы:}
\code{phase[7:0]} -- 8 старших значащих битов выхода накопителя;
\item [] \textbf{Параметры:}
\code{WIDTH} -- разрядность накопителя фазы (значение по умолчанию -- 14).
\end{itemize} \end{frm}
\textbf{Принцип действия}
Накопитель фазы -- это классический аккумулятор, который сохраняет накопленную сумму в регистре и использует её в качестве одного из операндов сумматора на каждом такте. Второй операнд поступает с входа и определяет величину приращения фазы. Разрядность аккумулятора должна быть параметризирована. Входные значения складываются с младшими битами регистра аккумулятора, а на выход поступают старшие 8 разрядов аккумулятора, поэтому при разрядности аккумулятора M и значении N на входе приращения фазы выход фазы будет увеличиваться на единицу один раз в $2^{(M-8)}/N$ тактов.
\section{Индивидуальное задание}
\section{Выводы}
\newpage
\appendix
\setcounter{secnumdepth}{4}
\section{Приложения}
\subsection{Исходные коды проекта}
\label{appendix:src}
% \lstinputlisting[language=Verilog,style=VerilogStyle,caption={Семафор},label={lst:dec}]{src/dec.sv}
% \lstinputlisting[language=C,style=CCodeStyle,caption={\code{sem.c}},label={lst:sem}]{src/sem.c}
\end{document}