名称:6路不同占空比的PWM波Verilog代码Quartus仿真
软件:Quartus
语言:Verilog
代码功能:基于Verilog语言,实现6路不同占空比的PWM输出,并且频率和占空比可调。
FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com
演示视频:
设计文档:
1. 工程文件
2. 程序文件
3. 程序编译
4. RTL图
5. Testbench
6. 仿真图
频率控制字对应的频率计算
f=clk*frq_word/512
其中Clk=50MHz
部分代码展示:
//PWM实现6路不同占空比的PWM输出,并且频率和占空比可调 module PWM( input clk,//时钟 input reset,//复位,高电平有效 input [7:0]frq_word_1,//频率控制字,0~255 input [7:0]duty_word_1,//占空比控制字,0~100 input [7:0]frq_word_2,//频率控制字,0~255 input [7:0]duty_word_2,//占空比控制字,0~100 input [7:0]frq_word_3,//频率控制字,0~255 input [7:0]duty_word_3,//占空比控制字,0~100 input [7:0]frq_word_4,//频率控制字,0~255 input [7:0]duty_word_4,//占空比控制字,0~100 input [7:0]frq_word_5,//频率控制字,0~255 input [7:0]duty_word_5,//占空比控制字,0~100 input [7:0]frq_word_6,//频率控制字,0~255 input [7:0]duty_word_6,//占空比控制字,0~100 output PWM_out_1,//输出PWM1 output PWM_out_2,//输出PWM2 output PWM_out_3,//输出PWM3 output PWM_out_4,//输出PWM4 output PWM_out_5,//输出PWM5 output PWM_out_6//输出PWM6 ); //调用6路PWM模块 //调用第1路 PWM_chn i1_PWM_chn( . clk(clk),//时钟 . reset(reset),//复位,高电平有效 . frq_word(frq_word_1),//频率控制字,0~255 . duty_word(duty_word_1),//占空比控制字,0~100 . PWM_out(PWM_out_1)//输出PWM ); //调用第2路 PWM_chn i2_PWM_chn( . clk(clk),//时钟 . reset(reset),//复位,高电平有效 . frq_word(frq_word_2),//频率控制字,0~255 . duty_word(duty_word_2),//占空比控制字,0~100 . PWM_out(PWM_out_2)//输出PWM ); //调用第3路 PWM_chn i3_PWM_chn( . clk(clk),//时钟 . reset(reset),//复位,高电平有效 . frq_word(frq_word_3),//频率控制字,0~255 . duty_word(duty_word_3),//占空比控制字,0~100 . PWM_out(PWM_out_3)//输出PWM ); //调用第4路 PWM_chn i4_PWM_chn( . clk(clk),//时钟 . reset(reset),//复位,高电平有效 . frq_word(frq_word_4),//频率控制字,0~255 . duty_word(duty_word_4),//占空比控制字,0~100 . PWM_out(PWM_out_4)//输出PWM ); //调用第5路 PWM_chn i5_PWM_chn( . clk(clk),//时钟 . reset(reset),//复位,高电平有效 . frq_word(frq_word_5),//频率控制字,0~255 . duty_word(duty_word_5),//占空比控制字,0~100 . PWM_out(PWM_out_5)//输出PWM );
点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=613
阅读全文
744