Статья:

Проектирование генератора синусоидального тестового сигнала табличным способом на ПЛИС

Конференция: LXIV Студенческая международная научно-практическая конференция «Молодежный научный форум»

Секция: Технические науки

Выходные данные
Габдуллин Р.Б. Проектирование генератора синусоидального тестового сигнала табличным способом на ПЛИС // Молодежный научный форум: электр. сб. ст. по мат. LXIV междунар. студ. науч.-практ. конф. № 34(64). URL: https://nauchforum.ru/archive/MNF_interdisciplinarity/34(64).pdf (дата обращения: 26.09.2022)
Лауреаты определены. Конференция завершена
Эта статья набрала 52 голоса
Мне нравится
Дипломы
лауреатов
Сертификаты
участников
Дипломы
лауреатов
Сертификаты
участников
на печатьскачать .pdfподелиться

Проектирование генератора синусоидального тестового сигнала табличным способом на ПЛИС

Габдуллин Рустем Бахытович
студент, Омский государственный технический университет, РФ, г. Омск

 

DESIGNING A SINUSOIDAL TEST SIGNAL GENERATOR IN A TABULAR MANNER ON THE FPGA

 

Rustem Gabdullin

Student Omsk state technical University, Russia, Omsk

 

Аннотация. Синусоидальные, или гармонические, сигналы широко используются в электронике в качестве несущих и гетеродинных сигналов, в качестве тестовых сигналов при частотном анализе линейных схем, в качестве опорных сигналов в измерительных системах. В статье рассмотрен табличный способ проектирования генератора сигналов синусоидальной формы посредством использования программной среды «Quartus».

Abstract. Sinusoidal, or harmonic, signals are widely used in electronics as carrier and heterodyne signals, as test signals in frequency analysis of linear circuits, as reference signals in measurement systems. The article considers a tabular method of designing a sine wave signal generator by using the software environment "Quartus".

 

Ключевые слова: генератор, синусоидальный сигнал, программируемая логическая интегральная схема (ПЛИС), счетчик, постоянное запоминающее устройство.

Keywords: generator, sinusoidal signal, programmable logic integrated circuit (FPGA), counter, read-only memory.

 

Генератором синусоидальных колебаний называют устройство, создающее переменное синусоидальное напряжение при отсутствии входных сигналов [1]. Функциональная схема для цифрового генератора синусоидальных колебаний на основе памяти [2] изображена на рисунке 1.

 

Рисунок 1. Функциональная схема для цифрового генератора синусоидальных колебаний на основе памяти

 

Генератор тактовых импульсов обеспечивает формирование управляющих импульсов заданной частоты. Счетчик подсчитывает число импульсов, поступивших на его вход. Постоянное запоминающее устройство хранит массив неизменяемых данных, выдает текущее значение уровня сигнала на выходе. Цифро-аналоговый преобразователь преобразует цифровое значение уровня сигнала в аналоговый уровень сигнала. Буферное устройство обеспечивает необходимую амплитуду сигнала на выходе.

Тестирование генератора осуществлялось на отладочном комплекте DE1-SoC.  Также для создания генератора использовалась программная среда «Quartus Prime». Программное обеспечение «Quartus» предоставляет полный цикл для создания высокопроизводительных систем [3] на кристалле. «Quartus» объединяет в себе проектирование, синтез, размещение элементов, трассировку соединений и верификацию, связь с системами проектирования других производителей.

Для проектирования генератора в среде «Quartus» были созданы: командный алгоритм счетчика на языке «Verilog», блоки-элементы в графическом редакторе «Block Diagram/Schematic File».

Для проектировки счетчика необходимо разработать алгоритм на языке «Verilog». «Verilog HDL» (Hardware Description Language) - это язык текстового описания аппаратуры, предназначенный для проектирования, моделирования, верификации цифровых микросхем, плат и систем.

 

Рисунок 2. Verilog-модуль счетчика

 

Текст такой программы начинается с ключевого слова «module» и заканчивается ключевым словом «endmodule» [4]. После ключевого слова «module» пишется имя модуля, и в скобках указывается список выводов. В модуле имеются: «out» - выход счетчика; «clk» – тактовый вход; «input» – входной порт; «output [5:0]out» – 6-разрядный выходной порт; «reg [5:0]e» – 6-разрядный регистр (внутренняя переменная) «e»; «always @(posedge clk)» – поведенческий блок (в скобках указывается список всех входных сигналов, к которым чувствителен блок); «begin» - начало процесса; «e = e + 6’d1» – основа работы счетчика (к переменной прибавляется единица); «end» – конец процесса; «assign out = e» - непрерывное назначение, присваивание (“подключение” одной шины к другой). После написания модуля следует сохранить его («File/Save As»). Далее необходимо провести компиляцию (кнопка «Start Compilation»).

При успешной компиляции разрабатывается блок-схема. Создаются входы и выходы («input» и «output» соответственно).  После размещения по полю графического редактора входного и выходного портов следует создать «ПЗУ ROM: 1-PORT», например, с параметрами: ширина шины - 8 бит, количество 8-битных слов в памяти - 64. Следует расположить блок ПЗУ в графическом редакторе.  Для создания блока счетчика следует открыть созданный ранее файл «Verilog HDL», в левом верхнем углу открыть вкладку «File» и следовать по пути: «Create/ Update – Create Symbol Files foe Current File». Расставив все элементы в правильном порядке, необходимо соединить их. Для того чтобы сделать файл основным, выбираем пункт меню «Project/Set as Top-Level Entity». Проводится компиляция.

 

Рисунок 3. Схема генератора в среде «Quartus»

 

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

 

Рисунок 4. Таблица с данными портов

 

В основном окне «Quartus» выбираем утилиту «Program device (Open Programmer)». В утилите необходимо указать подключенное устройство, конфигурировать его и провести отладку нажатием на кнопку «Start». Проект успешно загрузился на отладочную плату.

Заключительным этапом является работа с «SignalTap Logic Analyzer» - утилитой, которая позволяет посмотреть на временные диаграммы интересующих нас сигналов, генерируемых в микросхеме. В «Altera SignalTap Logic Analyzer» можно: добавить интересующие нас сигналы из разрабатываемого проекта; выбирать сигнал тактовой частоты для анализатора; выбирать сигнал, который будет служить триггером. После того, как все назначения сделаны, нужно сохранить файл «SignalTap» пользуясь его меню. Автоматически будет предложено подключить «SignalTap» к проекту.

После конфигурирования и сохранения весь проект нужно перекомпилировать. После компиляции проект будет занимать в микросхеме ПЛИС больше места. Проект занимает 587 элементов ПЛИС. Кроме того, занято 16384 бита памяти.  Необходимо запустить анализатор «SignalTap» через меню «Processing / Run Analysis». Анализатор переходит в состояние ожидания события триггера.

 

Рисунок 5. Записанный синусоидальный сигнал

 

Генератор синусоидального сигнала спроектирован.

Подводя итог, можно сказать, что проект оказался достаточно работоспособен, генерация синусоидальных сигналов отлажена. При самой же разработке генератора синусоидальных сигналов в среде «Altera Quartus Prime» использовалось достаточное большое количество утилит. Использование программных сред является оптимальным решением в мире современных технологий.

 

Список литературы:
1. Балабанов А.А., Кузнецов С.Н. Схемотехника генераторов синусоидаль-ных сигналов: многообразие и взаимосвязь точек зрения – Акционерное общество "Научно-технический центр ЭЛИНС" 2016. – 46 с.
2. Амосов В.В. Схемотехника и средства проектирования цифровых устройств – БХВ-Петербург 2007. – 541 с.
3. Брей Б. Микропроцессоры INTEL  – СПб.: БХВ – Петербург, 2005. – 1028 с.
4. Поляков А. К. Языки VHDL и Verilog в проектировании цифровой аппа-ратуры – М.: СОЛОН-Пресс 2003. – 320 с.
5. Акчурин А.Д., Юсупов К.М. Программирование на языке Verilog. Учеб-ное пособие – Казань, 2016. – 90 с.