新聞中心

        EEPW首頁 > 模擬技術 > 設計應用 > 用FPGA實現多路PWM輸出的接口設計與仿真

        用FPGA實現多路PWM輸出的接口設計與仿真

        作者:徐軍 王華東 江蘇財經職業技術學院 時間:2008-05-29 來源:電子工程師 收藏

        0 引言

        本文引用地址:http://www.104case.com/article/83299.htm

          在許多嵌入式系統的實際應用中,需要擴展(現場可編程門陣列)模塊,將CPU實現有困難或實現效率低的部分用實現,如數字信號處理、硬件數字濾波器、各種算法等,或者利用來擴展I/O接口,如實現多路(脈寬調制)輸出、實現PCI接口擴展等。通過合理的系統軟硬件功能劃分,結合優秀高效的FPGA設計,整個嵌入式系統的效率和功能可以得到最大限度的提高。

          在電機控制等許多應用場合,需要產生多路頻率和脈沖寬度可調的波形。本文用Altera公司FPGA產品開發工具QuartusⅡ,設計了6路輸出接口,并下載到FPGA,實現與CPU的協同工作。

        1 FPGA概述

          PLD(可編程邏輯器件)可分為SPLD(簡單可編程邏輯器件),CPLD(復雜可編程邏輯器件)和FPGA,其實它們只是在起初有一些差別,現在的區別已經比較模糊了,PLD可統稱為FPGA。目前世界上有十幾家生產CPLD/FPGA的公司,知名度較大的有Altera,Xil-inx,Lattice,Actel等,其中Altera和Xilinx占有了60%以上的市場份額。

          Altera公司是最大PLD供應商之一,20世紀90年代以后發展很快。主要產品有:MAX3000/7000、FLEX10K、APEX20K、ACEX1K、StratiX、Cyclone等。開發軟件為MaxplusⅡ和QuartusⅡ。普遍認為其開發工具MaxplusⅡ和QuartusⅡ是最成功的FPGA開發平臺之一,配合使用Altera公司提供的免費OEM HDL綜合工具可以達到較高的效率。

          對于系統設計人員來說,FPGA是一種可以自己編程的芯片。它從芯片制造廠商那里出來時是內部沒有連線的。用戶可以進行設計輸人(電路圖輸入、狀態機輸入或者HDL輸入);然后進行仿真和驗證;接著用一些專用軟件(如Synopsys FPGA-Compiler、Synplici-ty Synplify、Examplar Leonardo等)進行邏輯綜合;最后使用各個FPGA廠商自身的后端實現的軟件(如Al-tera Quartus、Xilinx ISE等)進行布局布線,生成一個配置所需設計的電路連線關系的二進制流文件,通過一根連接PC機和FPGA芯片的下載線,將配置文件下載到芯片中。

          本文以使用QuartusⅡ軟件設計PWM為例,介紹FPGA設計的流程,它包括設計輸入、約束輸入、邏輯綜合、邏輯驗證(綜合后仿真)、布局布線(器件實現)和器件驗證(版圖后仿真)等幾部分。

        2 多路PWM的設計實現

          PWM技術最初是在無線電技術中用于信號的調制,后來在電機調速中得到了很好的應用。在直流伺服控制系統中,通過專用集成芯片或中小規模數字集成電路構成的傳統PWM控制電路往往存在電路設計復雜、體積大、抗干擾能力差以及設計困難、設計周期長等缺點,因此PWM控制電路的模塊化、集成化已成為發展趨勢。它不僅可以使系統體積減小、重量減輕且功耗降低,同時可使系統的可靠性大大提高。隨著電子技術的發展,特別是ASIC(專用集成電路)設計技術的日趨完善,數字化的EDA(電子設計自動化)工具給電子設計帶來了巨大變革,在電機控制等許多應用場合,需要產生多路頻率和脈沖寬度可調的PWM波形,這可通過FPGA豐富的硬件資源和可以配置I/O引腳來實現。嵌入式系統中FPGA的應用設計關鍵是系統軟硬件功能的劃分。

          圖1是實現的3路PWM硬件結構框圖。CPU通過數據線向FPGA寫入定時常數控制PWM的頻率、初始相位和占空比,并通過外部啟動信號控制PWM的啟動。

          根據圖1,寫出實現相應功能的Verilog程序描述。部分源程序如下:


          

        pwm相關文章:pwm原理



        上一頁 1 2 下一頁

        關鍵詞: FPGA 邏輯仿真 PWM

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 汪清县| 新密市| 花垣县| 敖汉旗| 深圳市| 临夏县| 瑞安市| 施甸县| 监利县| 上高县| 确山县| 桑植县| 赤壁市| 高要市| 宁远县| 天长市| 葫芦岛市| 凤山县| 鄂州市| 新沂市| 台东市| 垫江县| 思茅市| 宝山区| 阳曲县| 贞丰县| 阿城市| 清远市| 屏东县| 峡江县| 犍为县| 东乡县| 亚东县| 卓资县| 全南县| 崇阳县| 宁津县| 屏山县| 綦江县| 宜城市| 民县|