名称:占空比可调的PWM波发生器设计Verilog代码Quartus? ep1c3开发板
软件:Quartus
语言:Verilog
代码功能:
占空比可调的PWM波发生器
1、产生PWM波,可以通过按键调整占空比
2、使用2个按键,一个按键控制增加占空比,一个按键控制减小占空比
3、数码管显示占空比
FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com
本代码已在ep1c3开发板验证,ep1c3开发板如下,其他开发板可以修改管脚适配:
演示视频:
设计文档:
1. 工程文件
2. 程序文件
3. 程序编译
4. Rtl图
5. Testbench
6. 仿真图
模块仿真
按键模块
显示模块
Duty模块
Pwm模块
部分代码展示:
module?PWM( input?clk_50M,//50MHz时钟 input?key_add,//调节占空比按键,加 input?key_sub,//调节占空比按键,减 output?[5:0]?PWM_LED,//PWM指示灯 output?[3:0]?weixuan,//数码管位选 output?[7:0]?duanxian//数码管段选 ); wire?[6:0]?duty_data;//占空比计数值 wire?add_duty; wire?sub_duty; wire?PWM_wave; //按键消抖模块 key_jitter?add_key_jitter( .?clkin(clk_50M),???? .?key_in(key_add),//输入 .?key_negedge(add_duty),//消抖后按键下降沿 ); //按键消抖模块 key_jitter?sub_key_jitter( .?clkin(clk_50M),???? .?key_in(key_sub),//输入 .?key_negedge(sub_duty),//消抖后按键下降沿 ); //占空比控制模块 duty_ctrl?i_duty_ctrl( .?clk_50M(clk_50M),//50MHz时钟 .?add_duty(add_duty),//调节占空比按键,加 .?sub_duty(sub_duty),//调节占空比按键,减 .?duty_data(duty_data)//占空比计数值 ); //PWM波控制模块 PWM_ctrl?i_PWM_ctrl( .?clk_50M(clk_50M),//输入50MHz .?duty(duty_data),//占空比控制信号,最大100 .?PWM_wave(PWM_wave)//输出PWM波 );
点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=1234
阅读全文