用FPGA實(shí)現多路PWM輸出的接口設計與仿真
0 引言
本文引用地址:http://dyxdggzs.com/article/83299.htm在許多嵌入式系統的實(shí)際應用中,需要擴展FPGA(現場(chǎng)可編程門(mén)陣列)模塊,將CPU實(shí)現有困難或實(shí)現效率低的部分用FPGA實(shí)現,如數字信號處理、硬件數字濾波器、各種算法等,或者利用FPGA來(lái)擴展I/O接口,如實(shí)現多路PWM(脈寬調制)輸出、實(shí)現PCI接口擴展等。通過(guò)合理的系統軟硬件功能劃分,結合優(yōu)秀高效的FPGA設計,整個(gè)嵌入式系統的效率和功能可以得到最大限度的提高。
在電機控制等許多應用場(chǎng)合,需要產(chǎn)生多路頻率和脈沖寬度可調的PWM波形。本文用Altera公司FPGA產(chǎn)品開(kāi)發(fā)工具QuartusⅡ,設計了6路PWM輸出接口,并下載到FPGA,實(shí)現與CPU的協(xié)同工作。
1 FPGA概述
PLD(可編程邏輯器件)可分為SPLD(簡(jiǎn)單可編程邏輯器件),CPLD(復雜可編程邏輯器件)和FPGA,其實(shí)它們只是在起初有一些差別,現在的區別已經(jīng)比較模糊了,PLD可統稱(chēng)為FPGA。目前世界上有十幾家生產(chǎn)CPLD/FPGA的公司,知名度較大的有Altera,Xil-inx,Lattice,Actel等,其中Altera和Xilinx占有了60%以上的市場(chǎng)份額。
Altera公司是最大PLD供應商之一,20世紀90年代以后發(fā)展很快。主要產(chǎn)品有:MAX3000/7000、FLEX10K、APEX20K、ACEX1K、StratiX、Cyclone等。開(kāi)發(fā)軟件為MaxplusⅡ和QuartusⅡ。普遍認為其開(kāi)發(fā)工具M(jìn)axplusⅡ和QuartusⅡ是最成功的FPGA開(kāi)發(fā)平臺之一,配合使用Altera公司提供的免費OEM HDL綜合工具可以達到較高的效率。
對于系統設計人員來(lái)說(shuō),FPGA是一種可以自己編程的芯片。它從芯片制造廠(chǎng)商那里出來(lái)時(shí)是內部沒(méi)有連線(xiàn)的。用戶(hù)可以進(jìn)行設計輸人(電路圖輸入、狀態(tài)機輸入或者HDL輸入);然后進(jìn)行仿真和驗證;接著(zhù)用一些專(zhuān)用軟件(如Synopsys FPGA-Compiler、Synplici-ty Synplify、Examplar Leonardo等)進(jìn)行邏輯綜合;最后使用各個(gè)FPGA廠(chǎng)商自身的后端實(shí)現的軟件(如Al-tera Quartus、Xilinx ISE等)進(jìn)行布局布線(xiàn),生成一個(gè)配置所需設計的電路連線(xiàn)關(guān)系的二進(jìn)制流文件,通過(guò)一根連接PC機和FPGA芯片的下載線(xiàn),將配置文件下載到芯片中。
本文以使用QuartusⅡ軟件設計PWM為例,介紹FPGA設計的流程,它包括設計輸入、約束輸入、邏輯綜合、邏輯驗證(綜合后仿真)、布局布線(xiàn)(器件實(shí)現)和器件驗證(版圖后仿真)等幾部分。
2 多路PWM的設計實(shí)現
PWM技術(shù)最初是在無(wú)線(xiàn)電技術(shù)中用于信號的調制,后來(lái)在電機調速中得到了很好的應用。在直流伺服控制系統中,通過(guò)專(zhuān)用集成芯片或中小規模數字集成電路構成的傳統PWM控制電路往往存在電路設計復雜、體積大、抗干擾能力差以及設計困難、設計周期長(cháng)等缺點(diǎn),因此PWM控制電路的模塊化、集成化已成為發(fā)展趨勢。它不僅可以使系統體積減小、重量減輕且功耗降低,同時(shí)可使系統的可靠性大大提高。隨著(zhù)電子技術(shù)的發(fā)展,特別是ASIC(專(zhuān)用集成電路)設計技術(shù)的日趨完善,數字化的EDA(電子設計自動(dòng)化)工具給電子設計帶來(lái)了巨大變革,在電機控制等許多應用場(chǎng)合,需要產(chǎn)生多路頻率和脈沖寬度可調的PWM波形,這可通過(guò)FPGA豐富的硬件資源和可以配置I/O引腳來(lái)實(shí)現。嵌入式系統中FPGA的應用設計關(guān)鍵是系統軟硬件功能的劃分。
圖1是實(shí)現的3路PWM硬件結構框圖。CPU通過(guò)數據線(xiàn)向FPGA寫(xiě)入定時(shí)常數控制PWM的頻率、初始相位和占空比,并通過(guò)外部啟動(dòng)信號控制PWM的啟動(dòng)。
根據圖1,寫(xiě)出實(shí)現相應功能的Verilog程序描述。部分源程序如下:
pwm相關(guān)文章:pwm原理
評論