用FPGA實現多路PWM輸出的接口設計與仿真
0 引言
本文引用地址:http://www.104case.com/article/83299.htm在許多嵌入式系統的實際應用中,需要擴展FPGA(現場可編程門陣列)模塊,將CPU實現有困難或實現效率低的部分用FPGA實現,如數字信號處理、硬件數字濾波器、各種算法等,或者利用FPGA來擴展I/O接口,如實現多路PWM(脈寬調制)輸出、實現PCI接口擴展等。通過合理的系統軟硬件功能劃分,結合優秀高效的FPGA設計,整個嵌入式系統的效率和功能可以得到最大限度的提高。
在電機控制等許多應用場合,需要產生多路頻率和脈沖寬度可調的PWM波形。本文用Altera公司FPGA產品開發工具QuartusⅡ,設計了6路PWM輸出接口,并下載到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原理
評論