名称:PWM信号发生器设计Verilog代码Quartus仿真
软件:Quartus
语言:Verilog
代码功能:
基于FPGA的PWM信号发生器
设计基于FPGA的PWM信号发生器的设计,要求设计一个信号发生器,可以产生PWM波并可以调占空比、频率,并用逻辑分析仪显示。
用quartus平台verilog语言写代码
FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com
演示视频:
设计文档:
1. 工程文件
2. 程序文件
3. 程序编译
4. RTL图
5. 管脚分配
6. 仿真图
部分代码展示:
module?pwm(clk,?RST,?period_add,?period_sub,duty_add,duty_sub,pulse); ???input????????clk;//1KHz时钟 ???input????????RST;//复位 ???input??period_add;//周期增加按键 ???input??period_sub;//周期减小按键 ???input??duty_add;//占空比增加按键 ???input??duty_sub;//占空比减小按键 ???output???????pulse;//输出PWM波 ??? ??? ???reg?????????pulse=0; ???reg?[15:0]??period_cnt=16'd1000;//周期计数器,默认周期1s ???reg?[7:0]???duty_cnt=8'd50;//占空比信号1%~99%,默认50% ??? ??? ???reg?[15:0]??count; //调整周期 always@(posedge?clk?or?posedge?RST) if(RST) period_cnt<=16'd1000;//周期计数器,默认周期1s else if(period_cnt<=16'd100) period_cnt<=16'd100;//周期计数器,最低周期100ms else if(period_add)//周期增加按键 period_cnt<=period_cnt+16'd100;//周期计数器,步进100ms else?if(period_sub)//周期减小按键 period_cnt<=period_cnt-16'd100;//周期计数器,步进100ms else period_cnt<=period_cnt; //调整占空比 always@(posedge?clk?or?posedge?RST) if(RST) duty_cnt<=8'd50;//占空比信号1%~99%,默认50% else if(duty_add)//占空比增加按键
点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=1293
阅读全文