0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

淺析基于verilog如何實(shí)現(xiàn)PWM DAC

FPGA開源工作室 ? 來(lái)源:FPGA開源工作室 ? 作者:leee ? 2021-07-02 10:32 ? 次閱讀

PWM 采用任意寬度的輸入值,并創(chuàng)建只有一位寬度的輸出。使用自由運(yùn)行計(jì)數(shù)器的 PWM,這是能做的最簡(jiǎn)單的 PWM。

module PWM( input clk, input rst_n, input [3:0] PWM_in, output PWM_out);

reg [3:0] cnt;always @(posedge clk or negedge rst_n) if(!rst_n) cnt《=0; else cnt 《= cnt + 1‘b1; // free-running counter

assign PWM_out = (PWM_in 》 cnt)?1’b1:1‘b0; // comparatorendmodule

6893c2be-dadd-11eb-9e57-12bb97331649.png

選擇了一個(gè)4位的 PWM 這里,所以 PWM 周期是16。輸入可以從0到15,因此 PWM 輸出比從0% 到15/16 = 93% 。如果需要能夠達(dá)到100% ,輸入需要有一個(gè)額外的bit位。

這段代碼工作得很好,盡管當(dāng)前形式的代碼有點(diǎn)幼稚,因?yàn)檩斎氡仨毷枪潭ǖ模ɑ蛘咧挥挟?dāng)計(jì)數(shù)器溢出 = 返回到0時(shí)才會(huì)更改)。否則輸出將出現(xiàn)故障。因此,很可能需要一些額外的邏輯(通常是在正確的時(shí)間捕獲輸入的閂鎖)

使用可加載的上下計(jì)數(shù)器的 PWM,這是一個(gè)稍微復(fù)雜一點(diǎn)的設(shè)計(jì)。

module PWM2( input clk, input rst_n, input [3:0] PWM_in, output PWM_out);

reg [3:0] cnt;reg cnt_dir; // 0 to count up, 1 to count downwire [3:0] cnt_next = cnt_dir ? cnt-1’b1 : cnt+1‘b1;wire cnt_end = cnt_dir ? cnt==4’b0000 : cnt==4‘b1111;

always @(posedge clk or negedge rst_n ) if(!rst_n) cnt 《= 0; else cnt 《= cnt_end ? PWM_in : cnt_next;always @(posedge clk or negedge rst_n) if(!rst_n) cnt_dir《=1’b0; else cnt_dir 《= cnt_dir ^ cnt_end;assign PWM_out = cnt_dir;endmodule

它使用一個(gè)可加載的上下計(jì)數(shù)器,不需要輸出比較器。有趣的是,它并不完全等同于第一個(gè)設(shè)計(jì),因?yàn)檩敵鲋芷谟?7個(gè)狀態(tài)而不是16個(gè)(輸出從1/17 = 6% 到16/17 = 94%)。

編輯:jq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • PWM
    PWM
    +關(guān)注

    關(guān)注

    114

    文章

    5196

    瀏覽量

    214371
  • 比較器
    +關(guān)注

    關(guān)注

    14

    文章

    1656

    瀏覽量

    107334
  • 計(jì)數(shù)器
    +關(guān)注

    關(guān)注

    32

    文章

    2259

    瀏覽量

    94811

原文標(biāo)題:verilog 實(shí)現(xiàn)PWM DAC

文章出處:【微信號(hào):leezym0317,微信公眾號(hào):FPGA開源工作室】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    Verilog 與 ASIC 設(shè)計(jì)的關(guān)系 Verilog 代碼優(yōu)化技巧

    Circuit,專用集成電路)設(shè)計(jì)是一個(gè)復(fù)雜的過(guò)程,涉及到邏輯設(shè)計(jì)、綜合、布局布線、物理驗(yàn)證等多個(gè)環(huán)節(jié)。在這個(gè)過(guò)程中,Verilog被用來(lái)描述數(shù)字電路的行為和結(jié)構(gòu),進(jìn)而實(shí)現(xiàn)ASIC的設(shè)計(jì)。 具體來(lái)說(shuō)
    的頭像 發(fā)表于 12-17 09:52 ?174次閱讀

    Verilog 測(cè)試平臺(tái)設(shè)計(jì)方法 Verilog FPGA開發(fā)指南

    Verilog測(cè)試平臺(tái)設(shè)計(jì)方法是Verilog FPGA開發(fā)中的重要環(huán)節(jié),它用于驗(yàn)證Verilog設(shè)計(jì)的正確性和性能。以下是一個(gè)詳細(xì)的Verilog測(cè)試平臺(tái)設(shè)計(jì)方法及
    的頭像 發(fā)表于 12-17 09:50 ?345次閱讀

    Verilog與VHDL的比較 Verilog HDL編程技巧

    Verilog 與 VHDL 比較 1. 語(yǔ)法和風(fēng)格 VerilogVerilog 的語(yǔ)法更接近于 C 語(yǔ)言,對(duì)于有 C 語(yǔ)言背景的工程師來(lái)說(shuō),學(xué)習(xí)曲線較平緩。它支持結(jié)構(gòu)化編程,代碼更直觀,易于
    的頭像 發(fā)表于 12-17 09:44 ?247次閱讀

    使用PWM實(shí)現(xiàn)電源管理的策略

    PWM(脈沖寬度調(diào)制)是一種廣泛應(yīng)用于電子設(shè)備中實(shí)現(xiàn)電壓調(diào)節(jié)和功率控制的技術(shù),它通過(guò)改變信號(hào)的脈沖寬度來(lái)模擬輸出不同的電壓幅值,從而高效控制設(shè)備的工作狀態(tài)。在電源管理中,PWM技術(shù)發(fā)揮
    的頭像 發(fā)表于 11-18 16:23 ?571次閱讀

    如何利用Verilog-A開發(fā)器件模型

    Verilog-A對(duì)緊湊型模型的支持逐步完善,在模型的實(shí)現(xiàn)上扮演越來(lái)越重要的角色,已經(jīng)成為緊湊模型開發(fā)的新標(biāo)準(zhǔn)。而且Verilog-A能夠在抽象級(jí)別和應(yīng)用領(lǐng)域中擴(kuò)展SPICE建模和仿真功能,因此學(xué)會(huì)
    的頭像 發(fā)表于 10-18 14:16 ?549次閱讀
    如何利用<b class='flag-5'>Verilog</b>-A開發(fā)器件模型

    使用DAC8760系列實(shí)現(xiàn)HART?通信

    電子發(fā)燒友網(wǎng)站提供《使用DAC8760系列實(shí)現(xiàn)HART?通信.pdf》資料免費(fèi)下載
    發(fā)表于 10-17 09:21 ?0次下載
    使用<b class='flag-5'>DAC</b>8760系列<b class='flag-5'>實(shí)現(xiàn)</b>HART?通信

    用于現(xiàn)場(chǎng)發(fā)送器的高性能16位PWM 4-20 MA DAC

    電子發(fā)燒友網(wǎng)站提供《用于現(xiàn)場(chǎng)發(fā)送器的高性能16位PWM 4-20 MA DAC.pdf》資料免費(fèi)下載
    發(fā)表于 09-26 10:52 ?0次下載
    用于現(xiàn)場(chǎng)發(fā)送器的高性能16位<b class='flag-5'>PWM</b> 4-20 MA <b class='flag-5'>DAC</b>

    技術(shù)分享:國(guó)產(chǎn)工業(yè)級(jí)HMI芯片Model系列PWM-DAC實(shí)現(xiàn)指南

    在Model系列HMI芯片應(yīng)用中,很多小伙伴對(duì)PWM調(diào)試方面存在一些問題,因此,本期我們將深入探討PWM-DAC原理及實(shí)現(xiàn)方法,希望通過(guò)本期內(nèi)容帶給大家一些啟發(fā)。
    的頭像 發(fā)表于 09-20 17:42 ?681次閱讀
    技術(shù)分享:國(guó)產(chǎn)工業(yè)級(jí)HMI芯片Model系列<b class='flag-5'>PWM-DAC</b><b class='flag-5'>實(shí)現(xiàn)</b>指南

    使用MSP430高分辨率定時(shí)器的PWM DAC

    電子發(fā)燒友網(wǎng)站提供《使用MSP430高分辨率定時(shí)器的PWM DAC.pdf》資料免費(fèi)下載
    發(fā)表于 09-20 10:53 ?0次下載
    使用MSP430高分辨率定時(shí)器的<b class='flag-5'>PWM</b> <b class='flag-5'>DAC</b>

    在低成本MSP430 MCU上使用PWM實(shí)現(xiàn)數(shù)字DAC應(yīng)用說(shuō)明

    電子發(fā)燒友網(wǎng)站提供《在低成本MSP430 MCU上使用PWM實(shí)現(xiàn)數(shù)字DAC應(yīng)用說(shuō)明.pdf》資料免費(fèi)下載
    發(fā)表于 09-13 09:56 ?0次下載
    在低成本MSP430 MCU上使用<b class='flag-5'>PWM</b><b class='flag-5'>實(shí)現(xiàn)</b>數(shù)字<b class='flag-5'>DAC</b>應(yīng)用說(shuō)明

    如何實(shí)現(xiàn)pwm的控制功能

    數(shù)字信號(hào)控制技術(shù),通過(guò)控制脈沖的占空比來(lái)實(shí)現(xiàn)對(duì)模擬信號(hào)的控制。占空比是指在一個(gè)周期內(nèi),脈沖的高電平時(shí)間與整個(gè)周期時(shí)間的比值。 特點(diǎn) PWM具有以下特點(diǎn): (1)簡(jiǎn)單易實(shí)現(xiàn)PWM只需要
    的頭像 發(fā)表于 08-08 15:08 ?863次閱讀

    AFE031DF1的DAC模式,PWM模式下并未輸出信號(hào)是怎么回事?

    我嘗試了AFE031DF1的DAC模式,可以正常運(yùn)行,發(fā)出信號(hào) ,但是PWM模式下,MCU有PWM波,但是AFE031DF1并未輸出 信號(hào),請(qǐng)問為甚麼 ?
    發(fā)表于 08-07 06:29

    PWM控制電機(jī)轉(zhuǎn)速的原理與實(shí)現(xiàn)

    PWM(脈寬調(diào)制)是一種廣泛應(yīng)用于電機(jī)控制領(lǐng)域的調(diào)制技術(shù)。它通過(guò)調(diào)節(jié)脈沖信號(hào)的占空比,實(shí)現(xiàn)對(duì)電機(jī)轉(zhuǎn)速的精確控制。PWM控制電機(jī)轉(zhuǎn)速的方法因其高效、穩(wěn)定、易于實(shí)現(xiàn)等優(yōu)點(diǎn),在現(xiàn)代工業(yè)、家電
    的頭像 發(fā)表于 06-03 17:23 ?6484次閱讀

    PWM+DMA,然后用DAC輸出,可以是觸發(fā)輸出嗎?

    如果用PWM+DMA,然后用DAC輸出,可以是觸發(fā)輸出嗎?輸出的是否是占空比可調(diào)的方波,可以是三角波嗎?求大神解答。
    發(fā)表于 04-22 06:59

    在NuEdu,pwm_dac示例程序中,讓pwm來(lái)供電,為什么pwm產(chǎn)生的是輸出假象的電壓?

    在NuEdu,pwm_dac示例程序中,是讓pwm來(lái)供電,用adc來(lái)量取電壓值。能夠得到很均衡的數(shù)字。 這里我有個(gè)小問題,pwm產(chǎn)生的電壓不是實(shí)實(shí)在在電壓,是通過(guò)快速開關(guān),來(lái)輸出假象的電壓,這個(gè)
    發(fā)表于 01-17 07:44