PWM信号发生器的设计程序(veriloghdl)

PWM信号发生器的设计程序(veriloghdl)

ID:38334816

大小:31.50 KB

页数:3页

时间:2019-06-10

PWM信号发生器的设计程序(veriloghdl)_第1页
PWM信号发生器的设计程序(veriloghdl)_第2页
PWM信号发生器的设计程序(veriloghdl)_第3页
资源描述:

《PWM信号发生器的设计程序(veriloghdl)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、PWM信号发生器的设计程序modulepwmgen(clk,rst,ce,addr,write,wrdata,read,bytesel,rddata,pwm);inputclk,rst,ce;input[1:0]addr;inputwrite,read;input[31:0]wrdata;output[31:0]rddata;input[31:0]bytesel;outputpwm;reg[31:0]clk_div_reg,duty_cycle_reg;regcontrol_reg;regclk_div_reg_sel,duty_cy

2、cle_reg_sel,control_reg_sel;reg[31:0]pwm_cnt,rddata;regpwm;wirepwm_ena;always@(addr)beginclk_div_reg_sel<=0;duty_cycle_reg_sel<=0;control_reg_sel<=0;case(addr)2'b00:clk_div_reg_sel<=1;2'b01:duty_cycle_reg_sel<=1;2'b10:control_reg_sel<=1;default:beginclk_div_reg_sel<=0;d

3、uty_cycle_reg_sel<=0;control_reg_sel<=0;endendcaseendalways@(posedgeclkornegedgerst)beginif(rst==1'b0)clk_div_reg=0;elsebeginif(write&ce&clk_div_reg_sel)beginif(bytesel[0])clk_div_reg[7:0]=wrdata[7:0];if(bytesel[1])clk_div_reg[15:8]=wrdata[15:8];if(bytesel[2])clk_div_re

4、g[23:16]=wrdata[23:16];if(bytesel[3])clk_div_reg[31:24]=wrdata[31:24];endendendalways@(posedgeclkornegedgerst)beginif(rst==1'b0)duty_cycle_reg=0;elsebeginif(write&ce&duty_cycle_reg_sel)beginif(bytesel[0])duty_cycle_reg[7:0]=wrdata[7:0];if(bytesel[1])duty_cycle_reg[15:8]

5、=wrdata[15:8];if(bytesel[2])duty_cycle_reg[23:16]=wrdata[23:16];if(bytesel[3])duty_cycle_reg[31:24]=wrdata[31:24];endendendalways@(posedgeclkornegedgerst)beginif(rst==1'b0)control_reg=0;elsebeginif(write&ce&control_reg_sel)beginif(bytesel[0])control_reg=wrdata[0];endend

6、endalways@(addrorreadorclk_div_regorduty_cycle_regorcontrol_regorce)beginif(read&ce)case(addr)2'b00:rddata<=clk_div_reg;2'b01:rddata<=duty_cycle_reg;2'b10:rddata<=control_reg;default:rddata=32'h8888;endcaseendassignpwm_en=control_reg;always@(posedgeclkornegedgerst)begin

7、if(rst==1'b0)pwm_cnt=0;elsebeginif(pwm_en)beginif(pwm_cnt>=clk_div_reg)pwm_cnt<=0;elsepwm_cnt<=pwm_cnt+1;endelsepwm_cnt<=0;endendalways@(posedgeclkornegedgerst)beginif(rst==1'b0);elsebeginif(pwm_en)beginif(pwm_cnt<=duty_cycle_reg)pwm<=1'b1;elsepwm<=1'b0;endelsepwm<=1'b0

8、;endendendmodule

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。