實現思路
實現方法很簡單,使用一個計數器一直計數,然后和兩個值進行比較,一個值是高電平時間htime,一個值是周期period,在小于htime期間,輸出高電平;大于h_time期間,輸出低電平,到達周期period時,計數器清零。
端口說明
◆ nreset:復位信號,低電平復位,輸出為0
◆ en:使能信號,高電平使能輸出,低電平輸出為0,
◆ period:PWM的周期,如主時鐘96M,產生4MHz的波形,則period = 96/4 = 24
◆ htime:高電平的時間,如主時鐘96M,產生4MHz,占空比25%的波形,則htime = 24 * 0.25 = 6
◆ pwm:PWM波輸出
源程序
pwm_gen.v
實際應用
可產生任意占空的PWM波,若主時鐘為96MHz。
◆ 產生4MHz,50%占空比:period = 24,h_time = 12;
◆ 產生3KHz,50%占空比:period = 32000,h_time = 16000;
◆ 產生寬度10us,間隔100us的脈沖信號:period = 10560,h_time = 960;
-
PWM
+關注
關注
114文章
5153瀏覽量
213454 -
Verilog
+關注
關注
28文章
1345瀏覽量
109996 -
計數器
+關注
關注
32文章
2254瀏覽量
94372
發布評論請先 登錄
相關推薦
評論