Плата прототипирования, которую я использую для своих экспериментов в области микроэлектроники, оснащена всего четырьмя светодиодами, которых мне как разработчику естественно постоянно не хватает, когда речь заходит о выводе отладочной информации. Написав модуль PWM, я спросил себя, а что собственно мне мешает использовать этот модуль, чтобы светодиод мог индицировать состояние нескольких логических выводов.
Так родилась написать модуль для мультибитного вывода информации на светодиод.
Поскольку для отладки текущей задачи мне требовалось выводить информацию о состоянии 8-битной шины данных, а свободных светодиодов было только три, то первым модулем мультибитной LED-индикации стал модуль с 4 линиями на входе и одним выводом PWM на выходе. Этот замечательный своей простотой модуль я назвал LED4bit (скачать):
module LED4bit(
input wire nResetIN,
input wire clkIN,
input wire bit0IN,
input wire bit1IN,
input wire bit2IN,
input wire bit3IN,
output wire pwmOUT
);
wire [7:0] data;
assign data[0] = 1'b0;
assign data[1] = bit0IN;
assign data[2] = 1'b0;
assign data[3] = bit1IN;
assign data[4] = 1'b0;
assign data[5] = bit2IN;
assign data[6] = 1'b0;
assign data[7] = bit3IN;
PWM pwm(.nResetIN(nResetIN),
.clkIN(clkIN),
.valueIN(data),
.pwmOUT(pwmOUT));
endmodule
Функция ШИМ выполняется модулем PWM, скачать который можно на странице FPGA. Модуль PWM.
Автор: Андрей Шаройко <vanyamboe@gmail.com>