Каталог статей

Главная » Все схемы » Автомобиль » Схемы электрооборудования

Выбранная схема!!!


6730
Быстрый генератор PWM с Verilog

Быстрый генератор PWM с Verilog

Быстрый генератор PWM с Verilog

Этот проект демонстрирует, как работает простой и быстрый широтно-импульсный модулятор Генератор (PWM) можно реализовать с помощью программирования Verilog.

Оно моделируется с использованием ModelSim, многоязычной среды моделирования (язык описания аппаратного обеспечения) от Mentor Graphics и тестируется на плате разработки Basys 2 FPGA от Digilent.

PWM Генерация

Блок-схема генератора PWM представлена на рис. 1. Принцип работы генератора прост. Он использует один счетчик и один компаратор. Микроконтроллер обеспечивает 8-битный ввод в модуль PWM. Счетчик, используемый в модуле PWM, является 8-битным. Он увеличивает свое значение по положительному фронту тактового сигнала (срабатывает положительный фронт). Компаратор, используемый в генераторе PWM, также 8-битный.

Рис. 1: Блок-схема генератора PWM

Вводные данные модуля PWM сравниваются с текущим значением счетчика с помощью компаратора. Если текущее значение счетчика больше, чем значение, данное модулю на входе, выход PWM устанавливается на низкий уровень. Однако текущее значение счетчика if меньше значения, заданного на входе модуля, выход генератора PWM поднимается на высокий уровень.

Давайте проведем тест case, чтобы понять суть операции. Предположим, что входные данные модуля PWM равны 128 (10000000b). Счетчик инициализируется с помощью кнопки сброса, поэтому на выходе будет 0(00000000b). Во время первого такта сравниваются значение счетчика и входное значение модуля PWM.

Модуль обнаруживает, что значение счетчика меньше предоставленного значения. Это побуждает модуль поднять выход генератора PWM на высокий уровень. Эта же парадигма поддерживает высокий уровень выходного сигнала генератора до тех пор, пока значение счетчика не достигнет 128 (10000000)b.

В следующем такте, после того как счетчик достигнет 128, счетчик увеличивает свое значение до 129(10000001)b. Компаратор обнаруживает, что текущее значение счетчика больше, чем значение, предоставленное модулю PWM, поэтому выход должен быть переведен на низкий уровень.

Изменение входа в модуль PWM соответственно изменит пороговое значение, при котором происходит переход из высокого состояния в низкое. Таким образом, PWM может быть достигнуто путем изменения входных данных, подаваемых в модуль PWM.

Код Verilog for PWM Генератор

Используемый основной код Verilog (PWM_main.v) for PWM генерации приведен ниже.

модуль PWM_generator (PWM_ontime, PWM_out ,
clk , сброс);

введите clk, сброс; // Объявлен тип порта
input [7:0] PWM_ontime; // 8-битный ввод PWM

выходной регистр PWM_out; // 1 бит PWM вывода
wire [7:0] counter_out; // 8-битный счетчик
вывод

всегда @ (posege clk)
begin
if (PWM_ontime > counter_out)
PWM_out <= 1;
else
PWM_out <= 0;
end
counter counter_inst(
.clk (клик),
.counter_out (counter_out),
.reset(reset)
);

конечный модуль

счетчик модуля(counter_out,clk,reset);

вывод [7:0] counter_out;
ввод clk, сброс;
reg [7:0] counter_out;
всегда @(posege clk)
if (сброс)
counter_out <= 8’b0;
else
counter_out <= counter_out + 1;
endmodule

Программное моделирование

Чтобы проверить результаты моделирования приведенного выше кода, используйте инструмент моделирования, например ModelSim, вместе с кодом тестового стенда (PWM_tb.v). Моделирование кода выполняется в Windows 7 с использованием студенческой версии ModelSim v10.4a. Скриншот вывода показан на рис. 2.

Рис. 2: Результаты моделирования ModelSim генератора PWM

Моделирование оборудования

Модуль генератора for PWM можно реализовать с использованием макетной платы Basys 2 (рис. 3). Плата построена на базе контроллера Xilinx Spartan-3E FPGA и Atmel AT90USB2 USB. Он предоставляет готовое к использованию аппаратное обеспечение, подходящее для for хост-схем, начиная от базовых логических устройств и заканчивая сложными контроллерами.

Рис. 3: Плата разработки BASYS 2

Эта плата используется вместе со следующими двумя программами для обеспечения простого программирования и отладки FPGA платы FPGA:

<р>1. Xilinx ISE Webpack 14.7
2. Digilent Adept v2.0 или выше

Программа Digilent Adept v2.0 позволяет программировать USB через порт USB компьютера. Программа при запуске автоматически обнаруживает плату разработки, подключенную к системе, и позволяет запрограммировать память ROM на плате FPGA для постоянного хранения кода или временно запрограммировать FPGA с помощью кода.

При временном программировании FPGA выполняет код, пока на него подается питание. После отключения питания FPGA снова становится пустой микросхемой, ожидающей повторного программирования.

Программному обеспечению Adept требуется растровый файл с расширением .bit. Обычно это создается с использованием программного обеспечения синтезатора, такого как ISE от Xilinx или Synplify от Synopsys for логического синтеза. Здесь используется веб-пакет Xilinx ISE — бесплатное программное обеспечение, которое может использовать каждый. Включите файл Verilog в новый проект вместе с файлом пользовательских ограничений (расширение .ucf).

Файл пользовательских ограничений (PWM_ucf.ucf) привязывает сигналы модуля к определенным контактам на FPGA. Файл пользовательских ограничений for, реализующий то же самое, приведен ниже.

NET «PWM_out» LOC = «B2»;
NET «clk» LOC = «B8»;
NET «сброс» LOC = «G12»;
NET «PWMontime<0>» LOC = «P11»;
NET «PWM_ontime<1>» LOC = «L3»;
NET «PWM_ontime<2>» LOC = «K3»;
NET «PWM_ontime<3>» LOC = «B4»;
NET «PWM_ontime<4>» LOC = «G3»;
NET «PWM_ontime<5>» LOC = «F3»;
NET «PWM_ontime<6>» LOC = «E2»;
NET «PWM_ontime<7>» LOC = «N3»;

После включения необходимых файлов в проект выберите вариант создания файла программирования, который создаст необходимый нам .bit-файл.

Запустите программу Adept и запишите .bit файл сначала на FPGA for для проверки, а затем на ROM, чтобы FPGA работал как модуль PWM при каждом включении.

Для проверки работоспособности схемы for запрограммируйте 8-битный вход генератора PWM в виде восьми переключателей (от SW0 до SW7), присутствующих на плате FPGA. На плате имеется тактовый генератор default с частотой 50 МГц, подключенный к FPGA через контакт B8 (доступен на перемычке JP4). Выход берется с первого контакта B2 первого разъема расширения JA.

Чтобы проверить выходной сигнал, подключите осциллограф к выходу генератора PWM на контакте B2. Ширина импульса включения будет меняться в соответствии с 8-битной двоичной последовательностью, полученной путем переключения позиций switch на плате FPGA. На плате предусмотрена кнопка сброса (G12) для перезапуска счетчика, требуется if.

Максимальная рабочая частота PWM составляет 232,504 МГц, что позволяет использовать самые динамичные и быстрые рабочие приложения. Суммарная мощность, рассеиваемая конструкцией на рабочей частоте 50 МГц, составляет 38 мВт.

Рассеяние статической мощности for 34 мВт (мощность, необходимая для управления платой разработки), а мощность, потребляемая генератором для создания тактового сигнала, составляет 1 мВт. Средняя мощность, потребляемая выходом PWM, составляет 3 мВт, что указывает на то, что конструкция также является энергоэффективной.


Аюш Маллик — любитель электроники и схемотехник.


Категория: Схемы электрооборудования | Добавил: Администратор (16.05.2026)
Просмотров: 92 | Рейтинг: 0.0/0


Всего комментариев: 0

Все ссылки на книги и журналы, представлены на этом сайте, исключительно для ознакомления, авторские права на эти публикации принадлежат авторам книг и издательствам журналов! Подробно тут!
Жалоба

ьте свои комментарии !!!!

Имя *:
Email:
Код *:

Copyright Zloy Soft (Company) © 2008 - 2026