解析基于FPGA的智能控制器設(shè)計及測試方法
隨著市場需求的增長,超大規(guī)模集成電路的集成度和工藝水平不斷提高,在一個芯片上完成系統(tǒng)級的設(shè)計已成為可能。FPGA固有的并行運(yùn)算處理能力,使得它能夠提供各種數(shù)字化所需要的大量復(fù)雜運(yùn)算,適合于設(shè)計一些對處理速度和實(shí)時性要求較高的智能控制器。近幾年,基于VHDL描述,FPGA實(shí)現(xiàn)的控制器設(shè)計研究比較活躍,如Torralba等人完成了4輸入、12個隸屬度、64條規(guī)則的模糊邏輯控制器的FPGA實(shí)現(xiàn)[1],Cirstea等人基于FPGA設(shè)計模糊控制器,成功的用于變速器的控制[2]。另外,由于FPGA設(shè)計的靈活性和通用性,使得基于FPGA的控制器開發(fā)效率高,成本低,上市時間短。
由于FPGA在智能控制器方面的大量使用,設(shè)計后的測試便成了設(shè)計者在開發(fā)過程中必須重點(diǎn)考慮的問題,同時,一種好的測試方法不僅能及早發(fā)現(xiàn)設(shè)計中存在的問題CONTROL ENGINEERING China版權(quán)所有,而且能提高設(shè)計的可靠性。目前基于VHDL描述的智能控制器測試一般是通過開環(huán)時序仿真來驗(yàn)證其邏輯設(shè)計的正確性,而對于一些輸入激勵信號不固定或比較多的智能控制器來說,開環(huán)時序仿真并不能確切模擬控制器的激勵輸入信號。由此,本文在開環(huán)時序仿真的基礎(chǔ)上提出一種基于QuartusII、DSP Builder和Modelsim的閉環(huán)時序仿真測試方法,并借助于某一特定智能控制器的設(shè)計對該閉環(huán)測試方法進(jìn)行了較為深入的研究。
2 FPGA設(shè)計與測試平臺
研究采用QuartusII4.0、 DSP Builder3.0以及Modelsim SE6.0作為FPGA的設(shè)計及測試平臺。
QuartusII4.0是Altera公司的第四代可編程邏輯器件集成開發(fā)環(huán)境,提供從設(shè)計輸入、設(shè)計編譯、功能仿真、設(shè)計處理、時序仿真到器件編程的全部功能。同時,它可以產(chǎn)生并識別EDIF網(wǎng)表文件、VHDL網(wǎng)表文件和Verilog HDL網(wǎng)表文件,并且為其它EDA工具提供了方便的接口??梢栽谏厦孀詣舆\(yùn)行其它EDA工具,包括Synplicity的Synplify/Synplify Pro、Mentor Graphics子公司Exemplar Logic 的LeonardoSpectrum以及Synopsys的FPGA CompilerII等。這些綜合軟件能以很高的效率將VHDL/Verilog設(shè)計軟件轉(zhuǎn)換為針對選定器件的標(biāo)準(zhǔn)網(wǎng)表文件。此外,QuartusII4.0里還集成了一個SOPC Builder開發(fā)工具,支持SOPC開發(fā)[3]。
DSP Builder以Matlab/Simulink的Blockset形式出現(xiàn),可以在Simulink中進(jìn)行圖形化設(shè)計和仿真,同時通過Signal Compiler可以將Matlab/Simulink的設(shè)計文件(.mdl)轉(zhuǎn)換成相應(yīng)的VHDL文件(.vhd),以及用于控制綜合與編譯的TCL腳本[4]。
Mentor Graphics公司的Modelsim是業(yè)界中比較好的仿真工具,其仿真功能強(qiáng)大,支持模擬波形顯示,且圖形化界面友好,具有結(jié)構(gòu)、信號、波形、進(jìn)程和數(shù)據(jù)流等窗口。
通過綜合使用上述三種平臺,可以很好的規(guī)劃設(shè)計流程,充分利用各個工具的優(yōu)點(diǎn),提高開發(fā)效率,所得的測試結(jié)果也更加可靠。
3 智能控制器的VHDL設(shè)計及測試特點(diǎn)
以模糊自整定PID控制器為例,其位置式控制算法為:
ui = Kp ei+Ki T∑ei+Kd/T(ei-ei-1)+u0 ; 3.1
其中:Kp = kp+tp×△Kp、Ki = ki+ti×△Ki、Kd = kd+td×△Kd為PID控制器實(shí)時參數(shù);△Kp、△Ki、△Kd為模糊推理得出的修正值。模糊推理過程采取Mamdani直接推理法,采用質(zhì)心法求取相應(yīng)的最終精確值。
基于VHDL描述的模糊自整定PID控制器設(shè)計采用自頂向下設(shè)計方法,在RTL級對各個單元模塊進(jìn)行設(shè)計描述,用結(jié)構(gòu)VHDL將各個單元通過單元映射(PORT MAP)聯(lián)系起來,組成整個控制器芯片??刂破餍酒暮诵氖强刂婆c運(yùn)算單元,涉及基本的數(shù)據(jù)處理、存儲和I/O控制。其頂層模塊的電路原理圖如圖1所示。
圖1控制器頂層模塊電路原理圖
其中:control:控制模塊,產(chǎn)生存儲器內(nèi)數(shù)據(jù)的讀寫地址;ram:存儲模塊www.cechina.cn,存儲外部采集來的數(shù)據(jù);accum:累加模塊,累加10次,讀進(jìn)存儲器的數(shù)據(jù);max_min:求Max/Min模塊,對采集來的數(shù)據(jù)進(jìn)行最大最小值求解;sub:減法模塊,剔除Max/Min;average_8:濾波模塊,對剔除后的數(shù)據(jù)進(jìn)行8次平均濾波;compare:比較模塊,與給定值相比較,產(chǎn)生偏差e;delay:延遲模塊,產(chǎn)生偏差的變化率ec;fpid:模糊自整定PID控制器模塊,產(chǎn)生控制器的輸出信號。
本系統(tǒng)中,A/D采用AD574A,其轉(zhuǎn)換速度最大為35μs,轉(zhuǎn)換精度小于等于0.05%。在用VHDL設(shè)計A/D的I/O模塊時,采用的是狀態(tài)機(jī)描述。狀態(tài)機(jī)分為5個狀態(tài):STATE0:實(shí)現(xiàn)A/D574的初始化;STATE1:產(chǎn)生片選信號,啟動轉(zhuǎn)換;STATE2:STATUS電平監(jiān)測,狀態(tài)切換;STATE3:8位輸出數(shù)據(jù)有效;STATE4:由Lock信號對數(shù)據(jù)進(jìn)行鎖存。
基于VHDL語言描述的智能控制器測試特點(diǎn)是:控制器模塊可以作為一個獨(dú)立模塊通過開環(huán)時序測試基準(zhǔn)對其邏輯功能的正確性進(jìn)行測試。但是,對于控制系統(tǒng)來說,我們更關(guān)心的是在典型輸入信號作用下,系統(tǒng)輸出的時間響應(yīng)過程,包括動態(tài)過程和穩(wěn)態(tài)過程,因此采用閉環(huán)時序測試顯得尤為必要。
4 基于FPGA的智能控制器開環(huán)時序測試
基于FPGA的智能控制器開環(huán)時序測試機(jī)理是:通過連接激勵實(shí)體和在測模塊,將在測模塊的輸出響應(yīng)值同期望值相比較來驗(yàn)證控制器設(shè)計是否符合設(shè)計要求,設(shè)計者可以用QuartusII軟件的波形編輯器產(chǎn)生作為仿真器激勵的向量波形文件(.vwf),也可以使用基于文本的向量文件(.vec)作為仿真器的激勵。其中VWF使用圖形化的波形形式描述了仿真器的輸入向量和仿真的輸出結(jié)果,而VEC則使用一種特殊格式的文件為模塊中的輸入信號和向量添加激勵[5],這是目前設(shè)計中最常采用的測試方法。模糊自整定PID控制器開環(huán)時序仿真測試如圖2所示。
評論