Сообщение об ошибке

  • Deprecated function: trim(): Passing null to parameter #1 ($string) of type string is deprecated в функции _collapse_text_process_child_item() (строка 526 в файле /home/labfo21534/labfor.ru/docs/sites/all/modules/collapse_text/collapse_text.module).
  • Deprecated function: trim(): Passing null to parameter #1 ($string) of type string is deprecated в функции _collapse_text_process_child_item() (строка 526 в файле /home/labfo21534/labfor.ru/docs/sites/all/modules/collapse_text/collapse_text.module).
  • Deprecated function: trim(): Passing null to parameter #1 ($string) of type string is deprecated в функции _collapse_text_process_child_item() (строка 526 в файле /home/labfo21534/labfor.ru/docs/sites/all/modules/collapse_text/collapse_text.module).
  • Deprecated function: trim(): Passing null to parameter #1 ($string) of type string is deprecated в функции _collapse_text_process_child_item() (строка 526 в файле /home/labfo21534/labfor.ru/docs/sites/all/modules/collapse_text/collapse_text.module).
  • Deprecated function: trim(): Passing null to parameter #1 ($string) of type string is deprecated в функции _collapse_text_process_child_item() (строка 526 в файле /home/labfo21534/labfor.ru/docs/sites/all/modules/collapse_text/collapse_text.module).
  • Deprecated function: trim(): Passing null to parameter #1 ($string) of type string is deprecated в функции _collapse_text_process_child_item() (строка 526 в файле /home/labfo21534/labfor.ru/docs/sites/all/modules/collapse_text/collapse_text.module).
  • Deprecated function: trim(): Passing null to parameter #1 ($string) of type string is deprecated в функции _collapse_text_process_child_item() (строка 526 в файле /home/labfo21534/labfor.ru/docs/sites/all/modules/collapse_text/collapse_text.module).
  • Deprecated function: trim(): Passing null to parameter #1 ($string) of type string is deprecated в функции _collapse_text_process_child_item() (строка 526 в файле /home/labfo21534/labfor.ru/docs/sites/all/modules/collapse_text/collapse_text.module).
  • Deprecated function: trim(): Passing null to parameter #1 ($string) of type string is deprecated в функции _collapse_text_process_child_item() (строка 526 в файле /home/labfo21534/labfor.ru/docs/sites/all/modules/collapse_text/collapse_text.module).

Изучение цифрового ввода и вывода аналогового сигнала

Методическое указание к лабораторной работе на учебном стенде LESO7.
Шауэрман Александр А. shamrel@yandex.ru
  1. Цель работы
  2. Краткие сведения о системе автоматизированного проектирования цифровых устройств – Quartus Prime
  3. Введение в Verilog
  4. Обзор периферии учебного стенда
  5. Применение модуля ФАПЧ
  6. Ход работы
  7. Вопросы для самопроверки

1 Цель работы

Научиться работать со средой проектирования Quartus Prime, создавать и настраивать проект, загружать файл конфигурации в учебный стенд. Познакомится с аналого-цифровым преобразователем (АЦП) и с цифро-аналоговым преобразователем (ЦАП). Исследовать особенности дискретизации и квантования сигнала.

2 Краткие сведения о системе автоматизированного проектирования цифровых устройств – Quartus Prime

2.1 Создание проекта

Каждая логическая схема или подсхема, разработанная с помощью программного обеспечения Quartus Prime, называется проектом. Программное обеспечение работает только над одним проектом одновременно, вся информация для этого проекта сохраняется в одном каталоге (папке). Перед началом работы следует создать специальную директорию. Точное расположение проекта лабораторной работы следует уточнить у преподавателя. Для примера создадим папку d:\leso7\leso7_lab1\.

Запускаем программное обеспечение Quartus Prime. Вид запущенной программы показан на рисунке 1. Главное окно программы разбито на несколько окон, которые обеспечивают доступ ко всем функциям САПР.

Рисунок 1 – Главный вид Quartus Prime
Рисунок 1 – Главный вид Quartus Prime

Доступ к большинству команд, предоставляемых программным обеспечением Quartus Prime, можно получить с помощью набора меню, расположенных под строкой заголовка. Для примера на рисунке 2 показанное активированное меню File.

Меню File

Рисунок 2 – Меню File

Для создания проекта в Quartus Prime используется специальная интегрированная утилита – Мастер Создания Проекта (New Project Wizard). Запускаем Quartus Prime. В меню выбираем: File -> New Project Wizard. Навигация по вкладкам Мастера выполняется с помощью кнопок Next – переход на следующую вкладку и Back – Возврат на предыдущую.

На вкладке «Directory, Name, Top-Level Entity» выбираем заранее созданную директорию для проекта. В строке «What is the name of this Project?» пишем имя проекта, например, leso7_lab1. В третьей строке автоматически появится имя модуля верхнего уровня. Это имя можно при необходимости далее изменить в настройках проекта, или оставить по умолчанию. В последнем случае, для того, чтобы Quartus автоматически нашел «сущность» верхнего уровня, следует файл с основным модулем назвать так же, как и сам проект (рисунок 3).

Мастер проекта. Directory, Name, Top-Level Entity

Рисунок 3 – Мастер проекта. Directory, Name, Top-Level Entity

На следующей вкладке «Project type» следует выбрать пункт «Empty project» (пустой проект) и нажать «Next».

На вкладке «Add Files» будет предложено добавить существующие файлы (если таковые имеются) в проект. Предполагается что на данном этапе у нас нет существующих файлов, поэтому можно пропустить этот пункт и добавить файлы, когда проект будет уже создан. Переходим на следующую вкладку нажимая «Next».

На вкладке «Family & Device Settings [page 3 of 5]» мы должны выбрать микросхему ПЛИС, с которой мы собираемся работать. В лабораторном стенде LESO7 используется Cyclone IV E EP4CE6E22C8N (рисунок 4).

Мастер проекта. Выбор микросхемы ПЛИС

Рисунок 4 – Мастер проекта. Выбор микросхемы ПЛИС

На вкладке «EDA Tool Settings» предлагается выбрать внешние инструменты для работы с проектом. Пока нам достаточно встроенных в Quartus Prime. Пропускаем этот пункт.

На последней вкладке приводятся сводные параметры создаваемого проекта. Читаем, проверяем, и, если со всем согласны, то завершаем создание: жмем Finish. Теперь можно через любой файловый браузер зайти в рабочую директорию и убедиться, что Quartus создал рабочие файлы.

На рисунке 5 показано окно Quartus Prime с только что созданным проектом.

Окно Quartus Prime с созданным проектом

Рисунок 5 – Окно Quartus Prime с созданным проектом

Для описания устройства на языке Verilog используется текстовый редактор Quartus Prime. Для того чтобы создать файл verilog в меню «File» следует выбрать пункт «New». В открывшемся окне нужно выбрать тип создаваемого файла «Verilog HDL File» (рисунок 6). После нажатия на кнопку «ОК» запустится окно текстового редактора. Следующий шаг – задать имя файлу, который должен быть создан (меню File, пункт – Save As...). Задаем имя файла, совпадающее с именем проекта, в текущем примере это «leso7_lab1». Следует проследить, что установлена галочка в строке «Add file to current project».

Выбор типа создаваемого файла

Рисунок 6 – Выбор типа создаваемого файла

На этапе первоначальной настройки проекта целесообразно установить формат генерируемых фалов. В результате компиляции проекта формируется файл конфигурации ПЛИС с расширением *.sof. Однако для конфигурирования ПЛИС через порт USB персонального компьютера требуется файл с расширением *.rbf. Нужно настроить проект таким образом, чтобы файл *.rbf формировался автоматически в процессе компиляции. Для этого в меню «Assignments» выбираем пункт «Device…» Нажимаем кнопку «Devise & Pin Options». Далее в разделе «Programming file» необходимо установить галочку «Raw Binary File (*.rbf)». После активации опции потребуется перекомпиляция проекта.

На этом этапе считаем рабочий проект созданным.

2.2 Тестовый редактор Quartus Prime

На рисунке 7 показано окно текстового редактора Quartus Prime. Под строкой заголовка располагается набор меню. Ниже меню расположена панель инструментов. По усмотрению пользователя панель может быть перенесена на левую, правую или нижнюю границу окна.

Текстовый редактор Quartus Prime

Рисунок 7 – Текстовый редактор Quartus Prime

На рисунке 8 показана панель инструментов текстового редактора с кратким описанием назначения кнопок. Для важных инструментов в скобочка приведено значение комбинации «горячих» клавиш.

Панель инструментов текстового редактора

Рисунок 8 – Панель инструментов текстового редактора

При работе в редакторе рекомендуется активировать функцию автозаполнения. Для этого в меню Edit следует выбрать пункт «Autocomplete Text» Это позволит текстовому редактору прогнозировать синтаксическое слово, разделитель или ключевое слово, которое требуется ввести при наборе текста. По мере ввода в раскрывающемся списке появляется набор возможных слов. Выбор нужного слова осуществляется клавишами со стрелочками на клавиатуре, завершается выбор клавишей Enter.

2.9 Компиляция проекта

Для компиляции выбираем в меню Processing -> Start Compilation. Или нажимаем CTRL+L, или нажимаем соответствующий значок (сиреневый треугольник) на панели инструментов. Проект должен компилироваться без ошибок. В консоли (внизу окна Quartus II) появится ряд предупреждений. Пока не будем обращать на это внимание.

Во время первой компиляции, компилятор Quartus II был свободен в выборе контактов ПЛИС для входов и выходов. Однако, на плате учебного стенда имеется аппаратная связь между компонентами платы и ножками микросхемы ПЛИС. Определить какой вывод ПЛИС подключен к какому компоненту можно по принципиальной схеме.

Привязка портов ввода-вывода выполняется во встроенной утилите Pin Planer. Запуск утилиты производится из меню Assignments, либо нажатием комбинаций клавиш CTRL+SHIFT+N, либо соответствующей пиктограммой на панели инструментов. В столбце Node Name приведен список всех портов проекта. В столбце Location следует задать каждому узлу определенную ножку ПЛИС. Это можно сделать с помощью мышки (двойной щелчок), выбрав из списка, но удобнее ввести с клавиатуры: начинаем вводить требуемый номер, редактор сам добавляет префикс «pin_» и варианты заполнения. На рисунке 9 показано окно Pin Planner с уже назначенными выводами.

Pin Planer

Рисунок 9 – Pin Planer

2.4 Загрузка файла конфигурации в ПЛИС

Загрузка файла *.rbf в ПЛИС производится с помощью отдельной программы – загрузчика (LabForProg). После запуска этой программы появляется окно, изображенное на рисунке 10

Окно загрузчика LabForProg

Рисунок 10 – Окно загрузчика LabForProg

Следует выбрать устройство «LESO7 B» и указать путь к файлу конфигурации. После нажатия кнопки «Программировать» в случае успешной загрузки индикатор окрасится в зеленый цвет, а ПЛИС начнет функционировать в соответствии с блок-схемой

3 Введение в Verilog

3.1 Verilog HDL

Verilog, Verilog HDL (от англ. Verilog Hardware Description Language) – это язык описания аппаратуры, используемый для описания и моделирования электронных систем.

3.2 Переменные

Все переменные в Verilog представляют собой некоторые синтезируемые аппаратные сущности. Пока нам достаточно знать две такие сущности – это wire (линия, провод, сигнал) и reg (регистр). Регистр, в отличие от линии, способен хранить значение и, как правило, далеко не всегда синтезируется компилятором как набор триггеров.

Декларация (объявление) переменных:

wire <имя линии>;                // объявление одноразрядной линии
wire [<СЗР>:<МЗР>] <имя линии>;  // объявление многоразрядной линии (шины)
reg <имя регистра>;              // объявление одноразрядного регистра
reg [<СЗР>:<МЗР>] <имя регистра>;// объявление многоразрядного регистра (Вектора)

3.3 Комментарии

В Verilog поддерживаются два типа комментариев. Они аналогичны принятым в С++. Для комментария одной строки используются две косые черты в ее начале

// это комментарий

Чтобы закомментировать несколько строк, используются следующая конструкция:

/* Это 
многострочный
комментарий... 
*/

3.4 Целые числа

Целые числа могут быть двоичными (binary), обозначаются b или B, десятичными (decimal, d или D), шестнадцатеричными (hexidecimal, h, H) или восьмеричными (octal, o или O). Для определения чисел используются следующие форматы:

<<<разрядность>'<основание><число> – полное описание числа,
<<<основание><число> ­– используется разрядность по умолчанию,
<<<число> ­– интерпретируется как число с десятичным основанием.

3.5 Операторы

Операторы выполняют операцию над одним или несколькими операндами в выражении.

3.6 Модули

Встраиваемое (загружаемое) программное обеспечение ПЛИС (в профессиональной среде называют «прошивка») состоит из модулей, объединенных в файл верхнего уровня.

Модули Verilog, как и функции на других языках программирования, представляют собой фрагменты кода, которые можно использовать и повторно использовать в рамках одной программы. Модули Verilog определяются с помощью ключевого слова module и заканчиваются ключевым словом endmodule.

Для определения модуля в Verilog может быть использован различный синтаксис. В лабораторных работа цикла следует придерживаться рекомендуемого стиля Altera (Intel) и приведенного в Template Quartus.

3.7 Непрерывное назначение (присваивание)

Левая сторона непрерывного присваивания должна быть сеть или конкатенация (объединение) сетей, правая — выражение, использующее любые другие сигналы.

Синтаксис:

assign <net_lvalue> = <value>;

3.8 Конкатенации (Объединение)

Оператор конкатенации Verilog  – это открытые и закрытые скобки {,}, в которых через запятую перечислены объединенные сигналы. Конкатенацию можно использовать для того, чтобы объединить несколько векторов или сигналов. В Verilog объединяемые сигналы не обязательно должны быть одного типа. Кроме того, ширина объединяемых сигналов может не совпадать с шириной шины приемника объединения. Например, можно объединить два сигнала шириной 4 бита в сигнал шириной 16 бит. Verilog дополнит верхние 8 битов нулями.

3.9 Пример простого модуля

На листинге ниже показан пример простого модуля. Информация с тумблеров выводится на светодиодные индикаторы. Для удобства проектирования каждому порту следует присвоить осмысленное имя, соответствующее элементу принципиальной схемы, с которым соединен выбранный порт. Например, если порт ввода соединен с тумблерами SB1…SB4, в названии порта вводим «sb».

Каждому элементу шины светодиодов можно присвоить значение отдельно, в этом случае присваивание примет вид:

assign hl[3] = 1;         // Всегда светит
assign hl[2] = 0;         // Всегда не светит
assign hl[1] = sb[1];     // Управляется тумблером
assign hl[0] = ~sb[0];    // Управляется тумблером с инверсией

4 Обзор периферии учебного стенда

4.1 Тумблеры и светодиоды

Простейшим источником дискретного сигнала является тумблер. Тумблер представляет собой двух позиционный переключатель, один вывод которого подключен к источнику питания (логическая единица), второй – к общему проводу (логический ноль). В зависимости от позиции центральный вывод подключен либо к первому, либо ко второму выводу, формируя на выходе либо ноль, либо единицу.

На рисунке 11 показана схема подключения тумблера к выводу ПЛИС. Светодиод HL1 служит для индикации состояния тумблера. Резистор R2 задает ток светодиода. Резистор R1 служит защитным ограничителем тока в случае, если соответствующий вывод ПЛИС будет по ошибке сконфигурирован как выход.

Схема подключения тумблера к ПЛИС

Рисунок 11 – Схема подключения тумблера к ПЛИС

На стенде установлены 4 тумблера, обозначенные на принципиальной схеме как SB1, SB2, SB3, SB4.

Для индикации логических уровней на стенде установлены четыре светодиода HL1, HL2, HL3, HL4. При подаче логической единицы светодиод светится, при подаче нуля – нет.

4.2 Тактовый генератор

Для синхронизации работы схемы в ПЛИС на плате учебного стенда расположен тактовый генератор. На принципиальной схеме микросхема генератора обозначена как D1. Частота генератора 50 МГц. Выход генератора подается на специальный вход ПЛИС, который в блок-схеме может быть инициализирован как обычный порт ввода.

4.3 Аналого-цифровой преобразователь

Н стенде установлено два аналого-цифровых преобразователя (АЦП) AD9283 фирмы Analog Devices. На принципиальной схеме микросхемы АЦП обозначены как DA9 и DA11. На входе АЦП установлен согласующий усилитель, диапазон входных напряжений от -1 В до 1 В. Для защиты от перенапряжения на входе установлены диоды. Разрядность АЦП 8 бит, максимальная частота дискретизации 50 МГц.

Выход АЦП параллельный. Для данных используется 8 линий (D0-D7), D0 – младший значащий разряд (МЗР), D7 – старший значащий разряд (СЗР). Одна линия (ENCODE) используется для тактирования микросхемы. Частота тактовых сигналов определяется частоту преобразования. На рисунке 12 показана функциональная схема подключения АЦП к ПЛИС. Стрелочками на линиях обозначено направление сигнала. Линия PWRDWN (Power-Down) служит для перевода АЦП в режим низкого энергопотребления. Для нормальной работы на этой линии должен быть установлен логический ноль. Для визуального контроля активности АЦП возле каждой микросхемы установлены светодиодные индикаторы HL9, HL10. Свечение светодиодов говорит о том, что АЦП находится в активном режиме.

Функциональная схема подключения АЦП к ПЛИС

Рисунок 12 – Функциональная схема подключения АЦП к ПЛИС

Для программной работы с АЦП в модуле верхнего уровня следует объявить соответствующие порты ввода-вывода: шина данных, сигнал управления режимом и сигнал тактирования.

В теле модуля верхнего уровня на линию управления режимом следует подать логический ноль, а на линию тактирования подать тактовые импульсы. Дискретный код выборки будет доступен на линии данных.

Ниже представлен листинг модуля верхнего уровня с задействованным АЦП.

4.4 Цифро-аналоговый преобразователь

На стенде установлен двуканальный цифро-аналоговый преобразователь (ЦАП) AD9767 фирмы Analog Devices. На принципиальной схеме микросхема ЦАП обозначена как DA5. Разрядность ЦАП: 14 бит, максимальная частота преобразования: 125 МГц. Функциональная схема подключения ЦАП к ПЛИС показана на рисунке 13. Выходной усилитель обеспечивает размах сигнала от -5 В до 5 В.

Функциональная схема подключения ЦАП к ПЛИС

Рисунок 13 – Функциональная схема подключения ЦАП к ПЛИС

ЦАП имеет 14 битный входной порт и линии управления CLK и WRT. Линия WRT (от англ. write – писать) тактирует входной регистр данных, а линия CLK тактирует непосредственно блок преобразования. В общем случае тактовые импульсы на обоих линиях управления должны быть идентичны.

Для программной работы с ЦАП в модуле верхнего уровня следует объявить соответствующие порты вывода: шина данных, линии тактирования WRT и CLK.

В теле модуля на линии тактирования следует подать тактовые импульсы, а на линю данных подавать цифровой код выборки. Ниже на листинге приведен пример модуля передающие данные с АЦП на ЦАП.

4.5 Таблица соответствия выводов ПЛИС

Для удобство использования назначения ножек ПЛИС приведены в Таблица 1.

5 Применение модуля ФАПЧ

Микросхемы ПЛИС семейства Cyclone IV E имеют в своем составе аппаратный модуль фазовой автоподстройки частоты (ФАПЧ, англ. PLL – Phase Locked Loop). Модуль ФАПЧ предназначен для генерации сетки опорных частот для тактирования логических схем в ПЛИС. Модуль ФАПЧ умножает исходную опорную частоту на дробный коэффициент. Для управления модулем ФАПЧ в Quartus Prime предназначена специальное ядро «ALTPLL» (Altera Phase-Locked Loop).

Для того, чтобы в своей работе можно было использовать тактовые частоты отличные от частоты опорного генератора, в проект следует добавить ядро ALTPLL. Для этого в меню «Tools» выбираем пункт «IP Catalog». Откроется окно выбора IP-функций. По умолчанию оно располагается в правой области окна Quartus Prime. Следует выбрать функцию «ALTPLL».

Окно выбора IP Core

Рисунок 14 – Окно выбора IP Core

После активации пункта ALTPLL будет предложено указать путь к директории с файлами ядра. В рабочей папке проекта создаем отдельную папку, назовем ее, например, «pll». Указываем путь к созданной папке, активируем язык «Verilog» (рисунок 15).

Сохранение файлов модуля

Рисунок 15 – Сохранение файлов модуля

Запустится окно мастера настройки функций MegaWizard. Навигация между вкладками с помощью манипулятора «мышь», либо с помощью кнопок «Back» (назад) и «Next» (далее). На вкладке «Parametr Setting -> General/Mode» устанавливаем в строке «What is the frequency of the inclk0 input?» входную частоту генератора 50.0 МГц. Остальные опции оставляем по умолчанию (рисунок 16).

Отключаем вход асинхронного сброса и флаг готовности ФАПЧ, для этого на вкладке «Parametr Setting -> Input/Lock» снимаем галочки с пунктов «Create an ‘areset’ input to asynchronously reset the PLL» и «Create ‘locked’ output» (рисунок 17).

Мастер настройки ALTPLL. Вкладка Parameter Settings

Рисунок 16 – Мастер настройки ALTPLL. Вкладка Parameter Settings

Мастер настройки ALTPLL. Вкладка Parameter Settings Input/Lock

Рисунок 17 – Мастер настройки ALTPLL. Вкладка Parameter Settings Input/Lock

На вкладке «Output Clocks» можно активировать до пяти независимых выводов модуля (clk c0, clk c1, clk c2, clk c3, clk c4). Для активации на соответствующей вкладке устанавливаем галочку «Use this clock» и вводим требуемые параметры: частоту (frequency), фазовый сдвиг (Clock phase shift), коэффициент заполнения (Clock duty cycle).

Ввод частоты возможен в двух режимах «Enter output clock frequency», когда пользователь вводит частоту в МГц, а мастер подбирает для этой частоты коэффициенты умножения самостоятельно, либо ввод непосредственно коэффициентов (опция «Enter output clock parameter») (рисунок 18).

Мастер настройки ALTPLL. Вкладка Output Clock

Рисунок 18 – Мастер настройки ALTPLL. Вкладка Output Clock

После того, как настройки ALTPLL выполнены, следует нажать кнопку «Finish». Осуществится переход на вкладку «Summary», где будет предложено выбрать генерируемые файл. Рекомендуется создать файл с шаблоном экземпляра (Instantiation template file) для того, чтобы было удобнее добавлять модуль pll в модуль верхнего уровня проекта (рисунок 19).

Мастер настройки ALTPLL. Вкладка Summary

Рисунок 19 – Мастер настройки ALTPLL. Вкладка Summary

Нажать кнопку «Finish». Будет предложено добавить сгенерированные файлы в проект, нажимаем «Yes». После генерации файлы созданы и находятся в поддиректории pll.

Описание модуля pll находится в файле pll.v. Файл прикреплен к проекту и доступен в Навигаторе проекта (Project Navigator, рисунок 20).

Project Navigator. Выбор категории

Рисунок 20 – Project Navigator. Выбор категории

Двойной щелчок по строке «pll» в категории «IP components» Навигатора проекта запустит MegaWizard для редактирования ALTPLL. А выбор pll.v в категории Files откроет непосредственно файл с реализацией модуля pll.

Project Navigator. Категория Files (Файлы)

Рисунок 21 – Project Navigator. Категория Files (Файлы)

Файл pll.v не предназначен для редактирования, редактирование IP-Функции должно осуществляться только через MegaWizard.

Пример экземпляра модуля можно найти в файле pll_inst.v. Открыть файл можно через меню File, выбрав опцию «Open…», либо нажав соответствующую пиктограмму на панели инструментов основного окна. Ниже на листинге приведен экземпляр модуля с комментариями.

pll pll_inst (                  // имя экземпляра модуля
    .inclk0 ( inclk0_sig ),     // сигнал опорной частоты
    .c0 ( c0_sig )              // выходной сигнал
);

Теперь установив данный экземпляр в модуле верхнего уровня можно получить тактовые импульсы заданной частоты. Ниже на листинге показан пример модуля верхнего уровня с установленным pll.

Обратите внимание, что после компиляции в окне «Flow Summary» в графе «Totals PLLs», показано использование одного pll из двух (рисунок 22).

Итоги компиляции проекта

Рисунок 22 – Итоги компиляции проекта

6 Ход работы

6.1  Этап 1. Освоение среды Quartus Prime

  1. Создать и настроить проект в Quartus Prime.
  2. Написать модуль, коммутирующий сигналы с тумблеров на светодиодные индикаторы. Скомпилировать проект. Положительным результатом считать отсутствие ошибок компиляции и появления файла конфигурации с расширением «rbf» в рабочей директории проекта (поддиректория output_files).
  3. Подключить учебный стенд LESO7 к компьютеру.
  4. Загрузить файл конфигурации в ПЛИС учебного стенда.
  5. Изменяя положение тумблеров убедиться в работоспособности прошивки.

6.2  Этап 2. Ввод и вывод сигнала

  1. Реализовать модуль, коммутирующий данные с АЦП на ЦАП, частоту дискретизации выбрать равную частоте задающего генератора. В младшие разряды ЦАП записать нули.
  2. Подключить ко входу АЦП выход генератора LESO5. Гармонический сигнал размахом  1 В, частотой 1 кГц.
  3. Подключить Анализатор сигналов LESO4 к выходу ЦАП. Проконтролировать наличие сигнала на выходе ЦАП. Подобрать оптимальные значения развертки и усиления по вертикали. Сохранить изображение сигнала и его спектр. Спектр наблюдать в логарифмическом масштабе.
  4. Плавно увеличивать размах сигнала до характерного искажения «ограничение сверху» или «ограничение снизу». С помощью анализатора LESO4 замерить максимальные значения входного сигнала АЦП свободного от искажений. Искажения удобно отслеживать с помощью анализатора спектра LESO4. Сохранить изображение сигнала.

6.3 Этап 3. Изучение квантованного сигнала

  1. Модифицировать модуль таким образом, чтобы на выход ЦАП подавались только 4 старших бита с выхода АЦП. Это уменьшит эквивалентную разрядность АЦП и позволит визуально оценить эффект квантования. Сохранить изображение сигнала и его спектр (Рисунок 23 – пример квантованного сигнала).

Осциллограмма квантованного сигнала

Рисунок 23 – Осциллограмма квантованного сигнала

6.4  Этап 4. Изучение спектра дискретного сигнала

  1. Используя IP-Функцию ALTPLL установить частоту дискретизации АЦП согласно варианту (50-200 кГц).
  2. Подать сигнал синусоидального формы частотой 1 кГц. Установить размах таким образом, чтобы сигнал на выходе ЦАП не имел характерных искажений, вызванных ограничением «снизу» и «сверху».
  3. В анализаторе сигналов выбрать усиление по вертикали таким образом, чтобы график сигнала занимал большую часть рабочей области. Пронаблюдать на различных развертках сигнал (рисунок 24, рисунок 25).

Осциллограмма дискретного сигнала

Рисунок 24 – Осциллограмма дискретного сигнала

 Спектр дискретного сигнала

Рисунок 25 – Спектр дискретного сигнала

  1. С помощью курсоров измерить интервал (шаг) дискретизации (Рисунок 26). Сохранить изображение сигнала.

Измерение шага дискретизации

Рисунок 26 – Измерение шага дискретизации

  1. Изменяя частоту входного сигнала наблюдать изменение спектра. Сохранить изображение сигнала и спектра.

7 Вопросы для самопроверки

  1. Какие настройки в проекте Quartus нужно выполнить, что бы получить файл конфигурации rbf?
  2. Объяснить физический смысл квантования сигнала.
  3. Объяснить физический смысл дискретизации сигнала.
  4. Объяснить особенности спектра дискретного сигнала.
  5. Объяснить отличие квантованного сигнала от дискретного.
  6. Объяснить возрастание уровня шумов на спектрограмме при изменении эквивалентной разрядности АЦП.

8 Содержание отчета:

  1. Название и цель работы.
  2. Функциональная подключения АЦП и ЦАП к ПЛИС.
  3. Осциллограммы и скриншоты измерений.
  4. Для каждого этапа сделать выводы.
14 сентября 2018
Прикрепленные файлы: 
ВложениеДатаРазмер
Иконка PDF Учебный стенд Leso7. Принципиальная схема17/09/20181.02 МБ
Орфографическая ошибка в тексте:
Чтобы сообщить об ошибке автору, нажмите кнопку "Отправить сообщение об ошибке". Вы также можете отправить свой комментарий.