Осуществить полный цикл проектирования цифрового устройства на ПЛИС на языке SystemVerilog. Реализовать генератор периодических функций на основе метода прямого цифрового синтеза на микросхеме семейства Cyclone IV E.
Прямой цифровой синтез -- это метод генерации сигнала заданной формы путём вычисления значений сигнала в последовательных дискретных отсчётах времени и преобразовании их в аналоговый сигнал с помощью ЦАП. Структура системы приведена на рис \hrf{pic:synth-scheme}.
Инкремент фазы поступает на вход накопителя фазы и определяет скорость изменения фазы формируемого сигнала. Накопитель фазы выдаёт номер текущего отсчёта в периоде на просмотровую таблицу, содержащую образ одного периода синуса. Значение с выхода просмотровой таблицы поступает на дельта-сигма модулятор, который работает как однобитный ЦАП. Модулятор формирует последовательность нулей и единиц на высокой частоте, соответствующую текущему уровню на входе модулятора, после чего двухуровневый выходной сигнал модулятора подается на выход ПЛИС и сглаживается простым RC фильтром НЧ. При изменении приращения фазы изменяется частота формируемого на выходе сигнала.
\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
\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$ тактов.