那曲檬骨新材料有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

淺析基于verilog如何實現PWM DAC

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

PWM 采用任意寬度的輸入值,并創建只有一位寬度的輸出。使用自由運行計數器的 PWM,這是能做的最簡單的 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

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

這段代碼工作得很好,盡管當前形式的代碼有點幼稚,因為輸入必須是固定的(或者只有當計數器溢出 = 返回到0時才會更改)。否則輸出將出現故障。因此,很可能需要一些額外的邏輯(通常是在正確的時間捕獲輸入的閂鎖)

使用可加載的上下計數器的 PWM,這是一個稍微復雜一點的設計。

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

它使用一個可加載的上下計數器,不需要輸出比較器。有趣的是,它并不完全等同于第一個設計,因為輸出周期有17個狀態而不是16個(輸出從1/17 = 6% 到16/17 = 94%)。

編輯:jq

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • PWM
    PWM
    +關注

    關注

    114

    文章

    5198

    瀏覽量

    214900
  • 比較器
    +關注

    關注

    14

    文章

    1658

    瀏覽量

    107438
  • 計數器
    +關注

    關注

    32

    文章

    2261

    瀏覽量

    94996

原文標題:verilog 實現PWM DAC

文章出處:【微信號:leezym0317,微信公眾號:FPGA開源工作室】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    Verilog 與 ASIC 設計的關系 Verilog 代碼優化技巧

    Circuit,專用集成電路)設計是一個復雜的過程,涉及到邏輯設計、綜合、布局布線、物理驗證等多個環節。在這個過程中,Verilog被用來描述數字電路的行為和結構,進而實現ASIC的設計。 具體來說
    的頭像 發表于 12-17 09:52 ?263次閱讀

    Verilog 測試平臺設計方法 Verilog FPGA開發指南

    Verilog測試平臺設計方法是Verilog FPGA開發中的重要環節,它用于驗證Verilog設計的正確性和性能。以下是一個詳細的Verilog測試平臺設計方法及
    的頭像 發表于 12-17 09:50 ?431次閱讀

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

    Verilog 與 VHDL 比較 1. 語法和風格 VerilogVerilog 的語法更接近于 C 語言,對于有 C 語言背景的工程師來說,學習曲線較平緩。它支持結構化編程,代碼更直觀,易于
    的頭像 發表于 12-17 09:44 ?360次閱讀

    使用PWM實現電源管理的策略

    PWM(脈沖寬度調制)是一種廣泛應用于電子設備中實現電壓調節和功率控制的技術,它通過改變信號的脈沖寬度來模擬輸出不同的電壓幅值,從而高效控制設備的工作狀態。在電源管理中,PWM技術發揮
    的頭像 發表于 11-18 16:23 ?639次閱讀

    如何利用Verilog-A開發器件模型

    Verilog-A對緊湊型模型的支持逐步完善,在模型的實現上扮演越來越重要的角色,已經成為緊湊模型開發的新標準。而且Verilog-A能夠在抽象級別和應用領域中擴展SPICE建模和仿真功能,因此學會
    的頭像 發表于 10-18 14:16 ?613次閱讀
    如何利用<b class='flag-5'>Verilog</b>-A開發器件模型

    使用DAC8760系列實現HART?通信

    電子發燒友網站提供《使用DAC8760系列實現HART?通信.pdf》資料免費下載
    發表于 10-17 09:21 ?0次下載
    使用<b class='flag-5'>DAC</b>8760系列<b class='flag-5'>實現</b>HART?通信

    用于現場發送器的高性能16位PWM 4-20 MA DAC

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

    技術分享:國產工業級HMI芯片Model系列PWM-DAC實現指南

    在Model系列HMI芯片應用中,很多小伙伴對PWM調試方面存在一些問題,因此,本期我們將深入探討PWM-DAC原理及實現方法,希望通過本期內容帶給大家一些啟發。
    的頭像 發表于 09-20 17:42 ?746次閱讀
    技術分享:國產工業級HMI芯片Model系列<b class='flag-5'>PWM-DAC</b><b class='flag-5'>實現</b>指南

    使用MSP430高分辨率定時器的PWM DAC

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

    在低成本MSP430 MCU上使用PWM實現數字DAC應用說明

    電子發燒友網站提供《在低成本MSP430 MCU上使用PWM實現數字DAC應用說明.pdf》資料免費下載
    發表于 09-13 09:56 ?0次下載
    在低成本MSP430 MCU上使用<b class='flag-5'>PWM</b><b class='flag-5'>實現</b>數字<b class='flag-5'>DAC</b>應用說明

    如何實現pwm的控制功能

    數字信號控制技術,通過控制脈沖的占空比來實現對模擬信號的控制。占空比是指在一個周期內,脈沖的高電平時間與整個周期時間的比值。 特點 PWM具有以下特點: (1)簡單易實現PWM只需要
    的頭像 發表于 08-08 15:08 ?933次閱讀

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

    我嘗試了AFE031DF1的DAC模式,可以正常運行,發出信號 ,但是PWM模式下,MCU有PWM波,但是AFE031DF1并未輸出 信號,請問為甚麼 ?
    發表于 08-07 06:29

    PWM控制電機轉速的原理與實現

    PWM(脈寬調制)是一種廣泛應用于電機控制領域的調制技術。它通過調節脈沖信號的占空比,實現對電機轉速的精確控制。PWM控制電機轉速的方法因其高效、穩定、易于實現等優點,在現代工業、家電
    的頭像 發表于 06-03 17:23 ?6683次閱讀

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

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

    verilog function函數的用法

    Verilog 是一種硬件描述語言 (HDL),主要用于描述數字電子電路的行為和結構。在 Verilog 中,函數 (Function) 是一種用于執行特定任務并返回一個值的可重用代碼塊。函數在
    的頭像 發表于 02-22 15:49 ?6054次閱讀
    大发888老虎机苹果版| 百家乐官网游戏怎样玩| 百家乐官网娱乐网网77scs| 百家乐投注之对冲投注| 新世纪| 免费百家乐官网的玩法技巧和规则| 百家乐变牌器| 皇朝娱乐城| 百家乐官网追号| 大发888游戏平台 新葡京| 百家乐官网规则博彩正网| 大亨百家乐娱乐城| 顶级赌场官网下载| 百家乐官网博牌规例| 凯斯百家乐的玩法技巧和规则 | 百家乐投注网中国| 皇冠赔率| 微信百家乐官网群规则大全| 八大胜百家乐的玩法技巧和规则 | 百家乐官网作弊| 德州扑克发牌顺序| 澳门百家乐官网大家乐眼| 百家乐赌注| 克拉克百家乐官网下载| 百家乐实时赌博| 荃湾区| 百家乐赌场破解方法| 澳门百家乐官网网址| 真人百家乐做假| 百家乐官网扑克牌耙| 澳门百家乐赌博技巧| 百家乐官网游戏平台排名| 万人迷百家乐的玩法技巧和规则| 百家乐官网大眼仔小路| 黄金城百家乐手机版| 百家乐官网永利娱乐网| 大发888黄金版下载| 百家乐赢利策略| 神池县| 百家乐赌坊| 百家乐官网手机游戏下载|