• 方案介紹
  • 附件下載
  • 相關(guān)推薦
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

信號(hào)發(fā)生器Verilog代碼Quartus遠(yuǎn)程云端平臺(tái)

加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

2-23121QF519149.doc

共1個(gè)文件

名稱(chēng):Quartus信號(hào)發(fā)生器Verilog代碼遠(yuǎn)程云端平臺(tái)

軟件:Quartus

語(yǔ)言:Verilog

代碼功能:

1.設(shè)計(jì)內(nèi)容和要求(包括設(shè)計(jì)內(nèi)容、主要目標(biāo)與技術(shù)參數(shù))

設(shè)計(jì)內(nèi)容:基于FPGAPWM信號(hào)發(fā)生器的設(shè)計(jì)

設(shè)計(jì)要求:

(1)設(shè)計(jì)語(yǔ)言為Verilog;

(2)設(shè)計(jì)基于FPGA的PWM信號(hào)發(fā)生器,產(chǎn)生PWM波并可以調(diào)占空比、頻率;

(3)采用層次化的設(shè)計(jì)。

FPGA代碼Verilog/VHDL代碼資源下載:www.hdlcode.com

本代碼已在遠(yuǎn)程云端平臺(tái)驗(yàn)證,遠(yuǎn)程云端平臺(tái)如下,其他遠(yuǎn)程云端平臺(tái)可以修改管腳適配:

演示視頻:

設(shè)計(jì)文檔:

1. 工程文件

2. 程序文件

3. 程序編譯

4. RTL圖

5. 管腳分配

6. 仿真文件(VWF)

7. 仿真圖

8. 遠(yuǎn)程平臺(tái)

由于平臺(tái)登錄不了

手繪原理圖如下:

部分代碼展示:

module?pwm(clk,?RST,?period_add,?period_sub,duty_add,duty_sub,pulse);
???input????????clk;//1KHz時(shí)鐘
???input????????RST;//復(fù)位
???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;//周期計(jì)數(shù)器,默認(rèn)周期1s
???reg?[7:0]???duty_cnt=8'd50;//占空比信號(hào)1%~99%,默認(rèn)50%
???
???
???reg?[15:0]??count;
//調(diào)整周期
always@(posedge?clk?or?posedge?RST)
if(RST)
period_cnt<=16'd1000;//周期計(jì)數(shù)器,默認(rèn)周期1s
else
if(period_cnt<=16'd100)
period_cnt<=16'd100;//周期計(jì)數(shù)器,最低周期100ms
else
if(period_add)//周期增加按鍵
period_cnt<=period_cnt+16'd100;//周期計(jì)數(shù)器,步進(jìn)100ms
else?if(period_sub)//周期減小按鍵
period_cnt<=period_cnt-16'd100;//周期計(jì)數(shù)器,步進(jìn)100ms
else
period_cnt<=period_cnt;
//調(diào)整占空比
always@(posedge?clk?or?posedge?RST)
if(RST)
duty_cnt<=8'd50;//占空比信號(hào)1%~99%,默認(rèn)50%
else
if(duty_add)//占空比增加按鍵
if(duty_cnt>=8'd99)
duty_cnt<=8'd99;//最大99%
else
duty_cnt<=duty_cnt+8'd2;//占空比計(jì)數(shù)器,步進(jìn)2
else?if(duty_sub)//占空比減小按鍵
if(duty_cnt<=8'd1)
duty_cnt<=8'd1;//最小1%
else
duty_cnt<=duty_cnt-8'd2;//占空比計(jì)數(shù)器,步進(jìn)2
else
duty_cnt<=duty_cnt;???
???
//計(jì)數(shù)到period_cnt
always?@(posedge?clk)??????
????begin
????????if?(count?>=?period_cnt-16'd1)
????????????count?<=?16'd0;
????????else
????????????count?<=?count?+?16'd1;
????end
???
???always?@(posedge?clk)?????
??????begin
?????????if?(count*100?<?period_cnt?*?duty_cnt)
????????????pulse?<=?1'b1;//根據(jù)計(jì)數(shù)器判斷輸出PWM波
?????????else
????????????pulse?<=?1'b0;
??????end
???
endmodule

點(diǎn)擊鏈接獲取代碼文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=358

  • 2-23121QF519149.doc
    下載

相關(guān)推薦