|
1 引 言 隨著市場需求的增長,超大規(guī)模集成電路的集成度和工藝水平不斷提高,在一個芯片上完成系統(tǒng)級的設(shè)計已成為可能。FPGA固有的并行運算處理能力,使得它能夠提供各種數(shù)字化所需要的大量復(fù)雜運算,適合于設(shè)計一些對處理速度和實時性要求較高的智能控制器。近幾年,基于VHDL描述,F(xiàn)PGA實現(xiàn)的控制器設(shè)計研究比較活躍,如Torralba等人完成了4輸入、12個隸屬度、64條規(guī)則的模糊邏輯控制器的FPGA實現(xiàn),Cirstea等人基于FPGA設(shè)計模糊控制器,成功的用于變速器的控制。另外,由于FPGA設(shè)計的靈活性和通用性,使得基于FPGA的控制器開發(fā)效率高,成本低,上市時間短。 由于FPGA在智能控制器方面的大量使用,設(shè)計后的測試便成了設(shè)計者在開發(fā)過程中必須重點考慮的問題,同時,一種好的測試方法不僅能及早發(fā)現(xiàn)設(shè)計中存在的問題,而且能提高設(shè)計的可靠性。目前基于VHDL描述的智能控制器測試一般是通過開環(huán)時序仿真來驗證其邏輯設(shè)計的正確性,而對于一些輸入激勵信號不固定或比較多的智能控制器來說,開環(huán)時序仿真并不能確切模擬控制器的激勵輸入信號。由此,本文在開環(huán)時序仿真的基礎(chǔ)上提出一種基于QuartusII、DSP Builder和Modelsim的閉環(huán)時序仿真測試方法,并借助于某一特定智能控制器的設(shè)計對該閉環(huá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工具提供了方便的接口。可以在上面自動運行其它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ā)。 DSP Builder以Matlab/Simulink的Blockset形式出現(xiàn),可以在Simulink中進行圖形化設(shè)計和仿真,同時通過Signal Compiler可以將Matlab/Simulink的設(shè)計文件(.mdl)轉(zhuǎn)換成相應(yīng)的VHDL文件(.vhd),以及用于控制綜合與編譯的TCL腳本。 Mentor Graphics公司的Modelsim是業(yè)界中比較好的仿真工具,其仿真功能強大,支持模擬波形顯示,且圖形化界面友好,具有結(jié)構(gòu)、信號、波形、進程和數(shù)據(jù)流等窗口。 通過綜合使用上述三種平臺,可以很好的規(guī)劃設(shè)計流程,充分利用各個工具的優(yōu)點,提高開發(fā)效率,所得的測試結(jié)果也更加可靠。 3 智能控制器的VHDL設(shè)計及測試特點 以模糊自整定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ù);△Kp、△Ki、△Kd為模糊推理得出的修正值。模糊推理過程采取Mamdani直接推理法,采用質(zhì)心法求取相應(yīng)的最終精確值。 基于VHDL描述的模糊自整定PID控制器設(shè)計采用自頂向下設(shè)計方法,在RTL級對各個單元模塊進行設(shè)計描述,用結(jié)構(gòu)VHDL將各個單元通過單元映射(PORT MAP)聯(lián)系起來,組成整個控制器芯片。控制器芯片的核心是控制與運算單元,涉及基本的數(shù)據(jù)處理、存儲和I/O控制。其頂層模塊的電路原理圖如圖1所示。 圖1控制器頂層模塊電路原理圖 其中:control:控制模塊,產(chǎn)生存儲器內(nèi)數(shù)據(jù)的讀寫地址;ram:存儲模塊,存儲外部采集來的數(shù)據(jù);accum:累加模塊,累加10次,讀進存儲器的數(shù)據(jù);max_min:求Max/Min模塊,對采集來的數(shù)據(jù)進行最大最小值求解;sub:減法模塊,剔除Max/Min;average_8:濾波模塊,對剔除后的數(shù)據(jù)進行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)機描述。狀態(tài)機分為5個狀態(tài):STATE0:實現(xiàn)A/D574的初始化;STATE1:產(chǎn)生片選信號,啟動轉(zhuǎn)換;STATE2:STATUS電平監(jiān)測,狀態(tài)切換;STATE3:8位輸出數(shù)據(jù)有效;STATE4:由Lock信號對數(shù)據(jù)進行鎖存。 基于VHDL語言描述的智能控制器測試特點是:控制器模塊可以作為一個獨立模塊通過開環(huán)時序測試基準(zhǔn)對其邏輯功能的正確性進行測試。但是,對于控制系統(tǒng)來說,我們更關(guān)心的是在典型輸入信號作用下,系統(tǒng)輸出的時間響應(yīng)過程,包括動態(tài)過程和穩(wěn)態(tài)過程,因此采用閉環(huán)時序測試顯得尤為必要。 4 基于FPGA的智能控制器開環(huán)時序測試 基于FPGA的智能控制器開環(huán)時序測試機理是:通過連接激勵實體和在測模塊,將在測模塊的輸出響應(yīng)值同期望值相比較來驗證控制器設(shè)計是否符合設(shè)計要求,設(shè)計者可以用QuartusII軟件的波形編輯器產(chǎn)生作為仿真器激勵的向量波形文件(.vwf),也可以使用基于文本的向量文件(.vec)作為仿真器的激勵。其中VWF使用圖形化的波形形式描述了仿真器的輸入向量和仿真的輸出結(jié)果,而VEC則使用一種特殊格式的文件為模塊中的輸入信號和向量添加激勵,這是目前設(shè)計中最常采用的測試方法。模糊自整定PID控制器開環(huán)時序仿真測試如圖2所示。 圖2控制器開環(huán)時序仿真圖 圖2為基于Altera公司FPGA器件EP20K200EQC240-1的模糊自整定PID控制器閉環(huán)輸出時序仿真結(jié)果。 其中:clk:系統(tǒng)時鐘;clkc:控制器采樣時鐘;reset:系統(tǒng)復(fù)位信號;e:偏差;ec:偏差的變化率;u:控制器輸出。 時序仿真結(jié)果參數(shù):Total logic elements:1092 / 8,320 ( 25 % );Total memory bits:4096 / 106,496 ( 3% );Clk setup:38.86 MHz;Clkc setup:221.39MHz;Tsu:8.864ns;Tco:7.809 ns。 圖2中控制器的激勵信號偏差e和偏差變化率ec是通過波形編輯器手工編輯獲得,輸入比較繁瑣,它們值的獲取是借助于MATLAB的仿真曲線,因此并不能完全模擬智能控制器的實時激勵信號。 為了能更好的模擬控制器的輸入行為,使測試結(jié)果更加可靠,本文在上述測試基礎(chǔ)上,提出一種新的基于FPGA設(shè)計工具QuartusII、DSP Builder以及Modelsim的智能控制器閉環(huán)時序測試方法。 5 基于FPGA的智能控制器閉環(huán)時序測試 在自動控制系統(tǒng)設(shè)計中,控制器的設(shè)計與測試通常采用閉環(huán)控制系統(tǒng),通過觀察對象的輸出來判斷控制器性能是否符合設(shè)計的要求。Altera公司推出的數(shù)字信號處理工具DSP Builder,結(jié)合MathWorks的Matlab和Simulink,為在QuartusII中所做的設(shè)計提供了一種新的測試方法。本次研究采用的測試流程如下:首先,在Matlab的Simulink中用DSP Builder搭建測試模塊,運行無誤后,用Signal Compiler將(.mdl)文件轉(zhuǎn)換成Modelsim可以識別的TCL腳本文件和VHDL文件,其次,對生成的VHDL文件及TCL腳本進行設(shè)置,最后,在Modelsim中運行測試文件,查看測試結(jié)果。DSP Builder下模糊自整定PID控制器的模塊圖如圖3所示。圖中fpid模塊為用戶自定義模塊,是通過DSP Builder的SubSystemBuilder模塊導(dǎo)入的,使用該模塊可以方便的將QuartusII中VHDL設(shè)計文件的輸入輸出引腳信號引入Simulink系統(tǒng)中。 圖3 DSP Builder下模糊自整定PID控制器的模塊測試圖 運行Signal Compiler,生成在Modelsim中使用的TCL腳本文件,因為在Simulink中添加的用戶自定義模塊是以黑盒的形式出現(xiàn),因此,在該測試環(huán)境中要將模糊自整定PID控制器的各個子模塊文件添加到TCL腳本文件中,例如要將子模塊文件pid.vhd添加到TCL腳本文件中,使用vcom -93 -explicit -work work "$workdir/pid.vhd"即可。 使用DSP Builder時需要注意以下兩點: (1)如果沒有使用來自Rate Change庫中的鎖相環(huán)模塊PLL,在Simulink設(shè)計轉(zhuǎn)換成硬件系統(tǒng)的過程中,DSP Builder將使用同步設(shè)計規(guī)則,即在設(shè)計系統(tǒng)中的所有DSP Builder時序模塊(如圖3中的Delay1模塊)都以單一時鐘的上升沿同步工作,這個時鐘頻率即為整個系統(tǒng)的采樣頻率。對于這些模塊,其時鐘引腳都不會直接顯示在Simulink設(shè)計圖上,但當(dāng)使用Signal Compiler將設(shè)計轉(zhuǎn)化為VHDL文件時,系統(tǒng)會自動地把時序模塊的時鐘引腳都連在一起,并與系統(tǒng)的單一時鐘相接。 (2)將一個已經(jīng)定制完成的VHDL設(shè)計實體加入到DSP Builder設(shè)計系統(tǒng)中時,即使在原設(shè)計中已經(jīng)使用了同步復(fù)位和時鐘信號,也必須在該實體中定義同步清零和時鐘輸入信號。而且,這兩個輸入信號必須與目標(biāo)器件的全局時鐘引腳和全局同步清零引腳相接。如果實體不需要時鐘或全局同步清零腳,也應(yīng)當(dāng)定義這些輸入信號,只是不要連接。 以被控對象G(s)=4.71×e-0.15s/(0.4s+1)(1.2s+1) 為例,考慮到A/D、D/A的影響,加入零階保持器(1-e-TS)/S,Modelsim中閉環(huán)控制系統(tǒng)的輸出曲線如圖4所示,系統(tǒng)的給定值為127(相對增益為0.992),輸出值從0上升到峰值148(相對增益為1.156)后迅速回落,最后穩(wěn)定在127,測試結(jié)果與MATLAB的仿真結(jié)果基本相同。 圖4 系統(tǒng)閉環(huán)輸出曲線 6 結(jié) 論 (1) 基于FPGA構(gòu)建智能控制器具有設(shè)計靈活、能在線調(diào)整、可靠性高,開發(fā)周期短等優(yōu)點。特別適于中小型系統(tǒng)。 (2) 利用QuartusII進行智能控制器的VHDL設(shè)計,通過DSP Builder和Modelsim對在QuartusII中所做的設(shè)計進行閉環(huán)測試,解決了測試樣本的輸入源以及控制器的輸入樣本提取問題,能有效模擬控制器的輸入行為,提高了設(shè)計及測試的靈活性,同時,測試結(jié)果可靠且更有說服力。 (3) 使用DSP Builder和Modelsim使我們擺脫了以往的測試習(xí)慣,控制器的激勵輸入信號可以方便的調(diào)用Simulink的模塊,對象也可以根據(jù)需要靈活改變,不需要再用VHDL語言編寫,而且Modelsim支持信號的模擬波形顯示,使我們能夠看到最直觀的圖形。 (4) 測試在系統(tǒng)設(shè)計中占有舉足輕重的作用,它貫穿整個設(shè)計的始終,采用閉環(huán)時序測試方法,結(jié)合DSP Builder和Modelsim完成智能控制器各個階段的測試經(jīng)實驗驗證是一較好的測試方法,適合于像控制器這類需閉環(huán)檢驗其控制品質(zhì)的設(shè)計。 參考文獻: .T Lund. The architecture of an FPGA-style programmable fuzzy logic controller chip. 5th Australasian Computer Archit ecture Conference, 2000. Cirstea, et.al.. FPGA fuzzy logic controller for variable speed generators. Proceedings of the IEEE International Conference on Control Application, 2001,301~304. Altera Corporation, QuartusⅡVersion 4.0 Software. . 王遠,魏震生,張衛(wèi)杰,路平. 軟件自動測試技術(shù)在硬件描述語言中的應(yīng)用. 測控技術(shù),2001, |