名称:PWM信号发生器的设计Verilog代码Quartus仿真
软件:Quartus
语言:Verilog
代码功能:
1.设计内容和要求(包括设计内容、主要标与技术参数)
设计内容:基于FPGA的PWM信号发生器的设计
设计要求:
(1)设计语言为Verilog,硬件开发平台为Spartan-3E开发板;
(2)设计基于FPGA的PM信号发生器的设计,要求设计一个信号发生器,可以产生PWM波并可以调占空比、频率,并用逻辑分析仪显示;
(3)采用层次化的设计。
2.原始依据
本设计要求学生应用Alter PWM信号发生器通过设计能让学生进一步掌握FPGA的基本开发流程,同提高时序设计能力,学生已学习过EDA课程,掌握硬件描述语言基本知识,通过本次设计可进一步提高学生的动手能力力里论联系实际的能力
3.进度计划
3.7-3.10查阅相关资料,学习 Verilog语言,掌握FFGA基本知识。
3.13-3.18应用 Verilog语言进行程序开发,设计调试
3.21-3.25调试验收,撰写专业课程实践训练报告
FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com
演示视频:
设计文档:
1. 工程文件
2. 程序文件
3. 程序编译
4. RTL图
5. 管脚分配
6. 仿真文件(VWF)
7. 仿真图
8. 远程平台
由于平台登录不了
手绘原理图如下:
部分代码展示:
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)//占空比增加按键 if(duty_cnt>=8'd99) duty_cnt<=8'd99;//最大99% else duty_cnt<=duty_cnt+8'd2;//占空比计数器,步进2 else?if(duty_sub)//占空比减小按键 if(duty_cnt<=8'd1)
点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=1300
400