verilog编写可调PWM波形

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了verilog编写可调PWM波形相关的知识,希望对你有一定的参考价值。

555555555求大神啊么么哒~~~
功能要求:利用层次化方法在实验板设计实现一个能由Basys2实验板50MHz时钟分频产生所需占空比及频率要求的PWM波产生电路。具体要求为:
1) 输出频率范围为1KHz~15KHz, 频率精度不小于1Hz
2) 占空比要求为0.1~0.9。
3) PWM波的占空比及频率要求由拨码开关位置决定,定义SW7~ SW4为频率输入键,定义SW3~ SW0为占空比输入键,利用数码管显示所输入的占空比及频率要求。
4) 利用实验板所提供的50MHz信号做为基准时钟信号。
5) 分频结果利用Basys2实验板的JA口输出。
扩展功能:
1) 设计扩展电路实现以上信号的功率输出,使其能达到0.5W平均功率输出

只要Verilog程序就好了。。。能注释一下最好了大神们,要被这个搞死了T_T
5555我财富值只有这么点全给你了~~~
好人一生平安

参考技术A module pwm_test(
input clk , //时钟输入,可在外部设置不同时钟
input rst_n , //低电平复位
input [7:0] f , //频率控制,最大255
input [7:0] d , //占空比控制字,上限100

output pwm_out //PWM输出
);

reg [17:0] count ; //计数

always @(posedge clk or negedge rst_n) begin
if(~rst_n) begin
count <= 0 ;
end
else if(count >= 17'd100_000) //计数到100K清零
count <= 0 ;
else
count <= count + f; //每次累加频率值
end

assign pwm_out = (count < d*1000)? 1:0 ;//PWM输出

endmodule

思路就是倍频累加,剩下的拨码开关程序自己想一下吧。
例如输入时钟100M,频率设为20的时候,计数100K,每次加20,输出频率就是100M/(100K/20)=20K,占空比你一看就明白
至于输入时钟,用Tools->Megawizard Plug-In Manager->I/O->ALTPLL模块设置PLL分频,倍频即可

以上是关于verilog编写可调PWM波形的主要内容,如果未能解决你的问题,请参考以下文章

用verilog设计频率和占空比可调pwm

怎么用verilog编写PWM,形成下面的波形,实际上就是三角波....

FPGA教程案例51控制案例3——基于FPGA的PWM波形产生verilog实现

请问verilog编写的PWM的死区怎么编写?

Verilog直流电机的pwm控制设计

verilog波形仿真