蔣 超,袁慧錚,張 朋
(1.湖北航天技術(shù)研究院總體設(shè)計所,武漢430000;2.湖北航天技術(shù)研究院軟件評測中心,武漢 430000)
Questasim是業(yè)界最優(yōu)秀的HDL語言仿真軟件之一,能提供友好的仿真環(huán)境,是單內(nèi)核支持VHDL和Verilog混合仿真的仿真器。Questasim的仿真波形可以通過多種形式進行顯示,但是當(dāng)涉及到算法的仿真驗證時,則功能明顯不足,而進行算法驗證是Matlab/Simulink的強項。Matlab中不但有大量的關(guān)于數(shù)字信號處理的函數(shù),而且圖形顯示功能也很強大。利用Matlab/Simulink仿真庫里的link for questasim構(gòu)件,可以提供一個快速的雙向連接,實現(xiàn)Matlab/Simulink和Questasim的無縫對接,使二者聯(lián)合仿真成為可能,并且更高效地在Matlab/Simulink中驗證Questasim的寄存器傳輸級(RTL)模型。
近年來,光纖陀螺(FOG)已經(jīng)成為新一代中高精度慣性測量系統(tǒng)中的首選。隨著研究的深入,影響光纖陀螺精度的各種問題逐步得到解決,光纖陀螺性能的不斷提高,創(chuàng)造了良好的經(jīng)濟效益[1]。但由于光纖陀螺閉環(huán)控制算法的復(fù)雜性,直接采用Verilog或SystemVerilog語言對其建模并仿真,存在模型描述難度高、誤差項量化難度大、仿真時間長等問題,無法滿足工程實踐的需求。本文結(jié)合Questasim與Matlab/Simulink的優(yōu)勢,對光纖陀螺的閉環(huán)控制算法進行了RTL級的驗證。
數(shù)據(jù)流模型是通過分析光纖陀螺各器件的物理特性,提取出相應(yīng)的數(shù)學(xué)表達式而建立的。在模型建立過程中,忽略了一些次要因素,得到針對主要特性的描述表達式。利用Simulink提供的模塊,對光纖陀螺非數(shù)字部分器件進行仿真,計算數(shù)學(xué)方程,并產(chǎn)生輸出。按照光纖陀螺的組成結(jié)構(gòu),各個模塊按照信號的流向相互連接。本文建立的光纖陀螺反饋模塊數(shù)據(jù)流模型框圖如圖1[2-3]所示。
按照圖1所示的數(shù)據(jù)流模型,在Simulink中對光纖陀螺中非FPGA數(shù)字系統(tǒng)模塊建模。主要有以下7個模塊:
圖1 光纖陀螺數(shù)據(jù)流模型Fig.1 FOG data flow model
1)光源模塊。目前中、低精度光纖陀螺中光源主要采用超輻射發(fā)光二極管(SLD)。描述SLD最重要的兩個參數(shù)就是光功率P和中心波長λ,光功率決定最終達到探測器的光強。
2)耦合器模塊[2]。在光源后還需要加入第二個分束器,一般采用2×2的-3dB耦合器。描述耦合器性能的兩個主要指標(biāo)是插入損耗Sx和分束比Lx,單位為dB。光每次經(jīng)過耦合器功率將發(fā)生衰減,衰減比例表示為Kx=100.1(Sx+Lx)。SLD輸出的光經(jīng)過耦合器輸出給集成光學(xué)調(diào)制器IOC,而IOC也會將干涉后的光輸出到PIN,傳輸過程中衰減Kx倍。因此,耦合器模塊有2個輸入端口以及2個輸出端口。
4)光纖環(huán)模塊。正反兩束光在光纖中傳播,在有外界角速率輸入下產(chǎn)生Sagnac相移。此外,光束在光纖環(huán)傳播過程中會發(fā)生衰減,數(shù)學(xué)表達式為一個比例環(huán)節(jié)。
5)探測器模塊。通常采用的探測器結(jié)構(gòu)為PIN-FET組件,由PIN光電二極管和跨阻放大器組成。描述探測器的指標(biāo)有光電轉(zhuǎn)換效率E、跨阻抗Rf。
6)放大器模塊。在探測器輸出和D/A輸出到IOC前,一般會有信號調(diào)理放大器將信號調(diào)整到合適的范圍。目前一般采用集成運算放大器,可以獲得很高的精度,前置放大器和后置放大器分別描述為比例環(huán)節(jié)Ka1和Ka2。
7)A/D和D/A轉(zhuǎn)換器模塊。A/D轉(zhuǎn)換器采樣探測器數(shù)據(jù),在本文中采用理想模型,不考慮轉(zhuǎn)換器非線性偏差。類似地,D/A轉(zhuǎn)換器也采用理想模型。
如上所述,圖2為光纖陀螺中非FPGA數(shù)字系統(tǒng)的Simulink模型。
圖2 光纖陀螺中非FPGA數(shù)字系統(tǒng)模型Fig.2 FOG digital system model except FPGA
圖3[4-5]中圖3-1為Link for questasim,它是一個聯(lián)合仿真的接口,將MathWorks工具整合到EDA工作環(huán)境中,使其應(yīng)用于FPGA和ASIC的開發(fā)。這個接口在HDL仿真器Questasim SE/PE和Math-Works的產(chǎn)品Matlab和Simulink間提供了一個雙向連接,以指導(dǎo)硬件的設(shè)計驗證和聯(lián)合仿真。這種整合可以分別充分發(fā)揮Matlab/Simulink和Questasim各自的優(yōu)勢。
圖3-2顯示了Matlab/Simulink和Questasim的接口關(guān)系。把在Matlab中獲得的測試基準(zhǔn)代碼輸出作為輸入,輸入到VHDL/Verilog實體中,并把經(jīng)過Questasim的輸出輸入到Matlab函數(shù)中。Matlab/Simulink鏈接Questasim時,Matlab/Simulink和Questasi分別充當(dāng)服務(wù)器和客戶端的角色,兩者之間通過TCP/IP socket port進行鏈接。
ZHANG Jing, XU Jia-hua, SHI Li, WEI Pei-lian, YU Guan-zhen
圖3 Matlab/Simulink和Questasim接口關(guān)系圖Fig.3 Matlab/Simulink interface relationship with Questasim
Questasim和Matlab/Simulink聯(lián)合仿真的大致步驟是:
1)在Questasim中建立工程,加入文件.v編譯,最后關(guān)閉Questasim窗口。
2)在Simulink中,將當(dāng)前路徑設(shè)置到存放.v文件的路徑,編輯模型。配置模型參數(shù),配置Simulink求解器。
3) 在 Matlab中輸入 vsim(‘socketsimulink’,XXXX),XXXX虛擬接口,如1234,也可直接輸入vsim,啟動Questasim。
4)在Questasim中加載實體,啟動仿真,加載wave視圖。
5)在Simulink中運行仿真,可在Questasim中觀察運行得到的仿真圖,當(dāng)然也可利用Simulink提供的仿真庫函數(shù)對仿真結(jié)果進行觀察。
6)終止仿真Simulink中,Simulation/EndSimulation,Questasim 中 quit;close Simulink Model Window.
在Simulink仿真庫下選中l(wèi)ink for modelsim,拖入新建窗口,雙擊模塊,進行參數(shù)配置。以下介紹其中幾個重要參數(shù)的設(shè)置。
1) Port:端口的設(shè)置是完成接口設(shè)置非常重要的一步。需要設(shè)置的有端口名、輸入輸出方式、采樣時間、數(shù)據(jù)類型等,如圖4所示。
圖4 端口的設(shè)置Fig.4 Function block parameters:ports
2) 鏈接方式的設(shè)置:可選shared memory或是socket通信方式。若是選擇shared memory,在Simulink下啟動Questasim輸入vsim,若是采用socket方式,則需要選擇虛擬端口,比如1234,則,運行在Matlab下,啟動Questasim時,輸入命令 vsim(‘socket.simulink’,1234),即可進入Questasim界面。
3) 時鐘和仿真的時間刻度:如圖5所示,需要設(shè)置對Questasim的時鐘頻率。
4) TCL控制命令:如圖6所示,在仿真開始啟動時鐘信號。
圖5 時鐘和仿真的時間刻度Fig.5 Function block parameters:clocks
圖6 TCL控制命令的設(shè)置Fig.6 Function block parameters:TCL
最終在Simulink中形成的模型如圖7所示。HDL Cosimulation為Simulink鏈接Questasim的接口模塊,Subsystem3為光纖陀螺閉環(huán)反饋模塊的Simulink模型。仿真運行后,用戶可以在Questasim下觀察仿真波形,同時也可以在Simulink環(huán)境下利用示波儀等顯示設(shè)備觀察仿真波形。本文中反饋的階梯波形在Simulink和Questasim中的波形如圖8、圖9所示。
圖7 光纖陀螺仿真模型Fig.7 Simulation mode of FOG
圖8 Simulink示波儀顯示的光纖陀螺反饋的階梯波形Fig.8 FOG levels trapezoidal wave with feedbackdisplayed by Simulink Oscilloscopes
圖9 Questasim中光纖陀螺反饋的階梯波形Fig.9 FOG levels trapezoidal wave with feedbackdisplayed by Questasim
本文對Questasim與Matlab/Simulink聯(lián)合仿真技術(shù)的接口與實現(xiàn)進行了研究,利用Simulink對Questasim進行光纖陀螺光學(xué)和模擬電子器件的高層次抽象,建立了光纖陀螺的數(shù)據(jù)流模型,把兩個專業(yè)仿真工具聯(lián)合起來使用,建立一個自動化的可靠的光纖陀螺代碼驗證平臺,對光纖陀螺代碼驗證提供支持。既能發(fā)揮Questasim突出的硬件設(shè)計仿真效能,又能借助Matlab/Simulink強大的數(shù)值處理能力。在進行光纖陀螺代碼測試時模型被觸發(fā),接受數(shù)字系統(tǒng)輸出并進行模型的運算,運算結(jié)果傳遞回數(shù)字系統(tǒng)中,完成整個光纖陀螺代碼的閉環(huán)運算,增強算法同硬件實現(xiàn)之間的聯(lián)系。
[1]張桂才,王巍,譯.光纖陀螺儀[M].北京:國防工業(yè)出版社.
[2]GJB 2426-95,1995-05-31,光纖陀螺儀測試方法[S].
[3]禹瑋.光纖陀螺信號的數(shù)值處理方法[J].傳感器與微系統(tǒng),2009,02.
[4]范靜,陳文藝.基于Modelsim與Matlab/Simulink聯(lián)合仿真技術(shù)的接口與應(yīng)用研究[J].西安郵電學(xué)報,2010,5.
[5]李壽強.MATLAB和ModelSim聯(lián)合仿真在FPGA開發(fā)中的應(yīng)用[J].電子制作,2013,06.
[6]L Kriaa,W Youssef,G Nicolescu,et al.SystemC-Based Cosimulation for Global Validation of MOEMS[C]//.Proceedings of SPIE,2002.
[7]E Markert,G Herrmann,D Müller.System model of an inertial navigation system using SystemC-AMS[J].Forum on specification and Design Languages(FDL),2005.