0 引言
在許多嵌入式系統(tǒng)的實(shí)際應(yīng)用中,需要擴(kuò)展FP-GA(現(xiàn)場可編程門陣列)模塊,將CPU實(shí)現(xiàn)有困難或?qū)崿F(xiàn)效率低的部分用FPGA實(shí)現(xiàn),如數(shù)字信號(hào)處理、硬件數(shù)字濾波器、各種算法等,或者利用FPGA來擴(kuò)展I/O接口,如實(shí)現(xiàn)多路PWM(脈寬調(diào)制)輸出、實(shí)現(xiàn)PCI接口擴(kuò)展等。通過合理的系統(tǒng)軟硬件功能劃分,結(jié)合優(yōu)秀高效的FPGA設(shè)計(jì),整個(gè)嵌入式系統(tǒng)的效率和功能可以得到最大限度的提高。
在電機(jī)控制等許多應(yīng)用場合,需要產(chǎn)生多路頻率和脈沖寬度可調(diào)的PWM波形。本文用Altera公司FPGA產(chǎn)品開發(fā)工具QuartusⅡ,設(shè)計(jì)了6路PWM輸出接口,并下載到FPGA,實(shí)現(xiàn)與CPU的協(xié)同工作。
1 FPGA概述
PLD(可編程邏輯器件)可分為SPLD(簡單可編程邏輯器件),CPLD(復(fù)雜可編程邏輯器件)和FPGA,其實(shí)它們只是在起初有一些差別,現(xiàn)在的區(qū)別已經(jīng)比較模糊了,PLD可統(tǒng)稱為FPGA。目前世界上有十幾家生產(chǎn)CPLD/FPGA的公司,知名度較大的有Altera,Xil-inx,Lattice,Actel等,其中Altera和Xilinx占有了60以上的市場份額。
Altera公司是最大PLD供應(yīng)商之一,20世紀(jì)90年代以后發(fā)展很快。主要產(chǎn)品有:MAX3000/7000、FLEX10K、APEX20K、ACEX1K、StratiX、Cyclone等。開發(fā)軟件為MaxplusⅡ和QuartusⅡ。普遍認(rèn)為其開發(fā)工具M(jìn)axplusⅡ和QuartusⅡ是最成功的FPGA開發(fā)平臺(tái)之一,配合使用Altera公司提供的免費(fèi)OEM HDL綜合工具可以達(dá)到較高的效率。
對(duì)于系統(tǒng)設(shè)計(jì)人員來說,F(xiàn)PGA是一種可以自己編程的芯片。它從芯片制造廠商那里出來時(shí)是內(nèi)部沒有連線的。用戶可以進(jìn)行設(shè)計(jì)輸人(電路圖輸入、狀態(tài)機(jī)輸入或者HDL輸入);然后進(jìn)行仿真和驗(yàn)證;接著用一些專用軟件(如Synopsys FPGA-Compiler、Synplici-ty Synplify、Examplar Leonardo等)進(jìn)行邏輯綜合;最后使用各個(gè)FPGA廠商自身的后端實(shí)現(xiàn)的軟件(如Al-tera Quartus、Xilinx ISE等)進(jìn)行布局布線,生成一個(gè)配置所需設(shè)計(jì)的電路連線關(guān)系的二進(jìn)制流文件,通過一根連接PC機(jī)和FPGA芯片的下載線,將配置文件下載到芯片中。
本文以使用QuartusⅡ軟件設(shè)計(jì)PWM為例,介紹FPGA設(shè)計(jì)的流程,它包括設(shè)計(jì)輸入、約束輸入、邏輯綜合、邏輯驗(yàn)證(綜合后仿真)、布局布線(器件實(shí)現(xiàn))和器件驗(yàn)證(版圖后仿真)等幾部分。
2 多路PWM的設(shè)計(jì)實(shí)現(xiàn)
PWM技術(shù)最初是在無線電技術(shù)中用于信號(hào)的調(diào)制,后來在電機(jī)調(diào)速中得到了很好的應(yīng)用。在直流伺服控制系統(tǒng)中,通過專用集成芯片或中小規(guī)模數(shù)字集成電路構(gòu)成的傳統(tǒng)PWM控制電路往往存在電路設(shè)計(jì)復(fù)雜、體積大、抗干擾能力差以及設(shè)計(jì)困難、設(shè)計(jì)周期長等缺點(diǎn),因此PWM控制電路的模塊化、集成化已成為發(fā)展趨勢。它不僅可以使系統(tǒng)體積減小、重量減輕且功耗降低,同時(shí)可使系統(tǒng)的可靠性大大提高。隨著電子技術(shù)的發(fā)展,特別是ASIC(專用集成電路)設(shè)計(jì)技術(shù)的日趨完善,數(shù)字化的EDA(電子設(shè)計(jì)自動(dòng)化)工具給電子設(shè)計(jì)帶來了巨大變革,在電機(jī)控制等許多應(yīng)用場合,需要產(chǎn)生多路頻率和脈沖寬度可調(diào)的PWM波形,這可通過FPGA豐富的硬件資源和可以配置I/O引腳來實(shí)現(xiàn)。嵌入式系統(tǒng)中FPGA的應(yīng)用設(shè)計(jì)關(guān)鍵是系統(tǒng)軟硬件功能的劃分。
3 邏輯仿真和器件驗(yàn)證
行為級(jí)仿真是在HDL源代碼設(shè)計(jì)完成之后,通過設(shè)計(jì)測試平臺(tái)文件(激勵(lì)和測試矢量)來驗(yàn)證設(shè)計(jì)的正確性。邏輯仿真是在邏輯綜合之后,對(duì)生成的門級(jí)網(wǎng)表進(jìn)行驗(yàn)證。測試平臺(tái)文件與采用行為級(jí)仿真的測試平臺(tái)文件,這樣能夠保證設(shè)計(jì)驗(yàn)證的一致性。并且,邏輯驗(yàn)證是一種理想的門級(jí)網(wǎng)表,不存在延時(shí)信息。器件驗(yàn)證也稱版圖后仿真,它是在FPGA實(shí)現(xiàn)之后,提取出門級(jí)網(wǎng)表和延時(shí)信息進(jìn)行驗(yàn)證,測試平臺(tái)文件與行為級(jí)一樣。器件驗(yàn)證結(jié)果是比較接近真實(shí)硬件的結(jié)果。完全通過這3層的驗(yàn)證,基本上可以保證設(shè)計(jì)的結(jié)果與測試平臺(tái)文件一致。
行為仿真和器件仿真也可直接在QuartusⅡ中進(jìn)行,其中輸入激勵(lì)波形和輸出觀察節(jié)點(diǎn)在QuartusⅡ波形輸入窗口進(jìn)行設(shè)置,在設(shè)計(jì)通過功能仿真后,需要進(jìn)一步選擇器件仿真以驗(yàn)證設(shè)計(jì)的正確性。器件仿真時(shí)包含了所選擇的對(duì)應(yīng)FPGA估算延時(shí)或?qū)嶋H延時(shí)信息,故仿真速度較功能仿真慢很多。通過仿真可以及早發(fā)現(xiàn)設(shè)計(jì)中的錯(cuò)誤,并根據(jù)具體情況進(jìn)行修改,包括修改硬件實(shí)現(xiàn)架構(gòu)、設(shè)計(jì)代碼、約束條件等一個(gè)或多個(gè)方面。器件仿真通過后,則可以將設(shè)計(jì)下載到芯片,進(jìn)行硬件功能驗(yàn)證。
4 結(jié)束語
在FPGA開發(fā)軟件中完成設(shè)計(jì)以后,軟件會(huì)產(chǎn)生一個(gè)最終的編程文件,QuartusⅡ中是.pof或.sof。現(xiàn)在的FPGA基本都采用在系統(tǒng)編程方式,對(duì)于EEP-ROM/Flask/SRAM工藝的在系統(tǒng)可編程FPGA,廠家提供編程電纜,如Altera公司提供的下載電纜類型有ByteBlasterⅡ并口下載電纜、USB BlasterTMUSB口下載電纜、MasterBlaster 通信纜線(USB或RS-232端口)等,其配置方式可以有主動(dòng)/被動(dòng)串行配置方式、JTAG方式等。電纜一端裝在計(jì)算機(jī)的相應(yīng)接口上,另一端接至PCB(印制電路板)上的編程插頭,它向系統(tǒng)板上的器件提供配置或編程數(shù)據(jù),這就是所謂的ISP(在線系統(tǒng)編程)。
在電機(jī)控制等許多應(yīng)用場合,需要產(chǎn)生多路頻率和脈沖寬度可調(diào)的PWM波形,本文通過使用Altera公司FPGA產(chǎn)品開發(fā)工具QuartusⅡ,設(shè)計(jì)了6路PWM輸出接口,并下載到FPGA,實(shí)現(xiàn)與CPU的協(xié)同工作。在嵌入式系統(tǒng)中通過FPGA擴(kuò)展系統(tǒng)功能的設(shè)計(jì)是一種有效的方法。