蔣 超,袁慧錚,張 朋
(1.湖北航天技術研究院總體設計所,武漢430000;2.湖北航天技術研究院軟件評測中心,武漢 430000)
Questasim是業界最優秀的HDL語言仿真軟件之一,能提供友好的仿真環境,是單內核支持VHDL和Verilog混合仿真的仿真器。Questasim的仿真波形可以通過多種形式進行顯示,但是當涉及到算法的仿真驗證時,則功能明顯不足,而進行算法驗證是Matlab/Simulink的強項。Matlab中不但有大量的關于數字信號處理的函數,而且圖形顯示功能也很強大。利用Matlab/Simulink仿真庫里的link for questasim構件,可以提供一個快速的雙向連接,實現Matlab/Simulink和Questasim的無縫對接,使二者聯合仿真成為可能,并且更高效地在Matlab/Simulink中驗證Questasim的寄存器傳輸級(RTL)模型。
近年來,光纖陀螺(FOG)已經成為新一代中高精度慣性測量系統中的首選。隨著研究的深入,影響光纖陀螺精度的各種問題逐步得到解決,光纖陀螺性能的不斷提高,創造了良好的經濟效益[1]。但由于光纖陀螺閉環控制算法的復雜性,直接采用Verilog或SystemVerilog語言對其建模并仿真,存在模型描述難度高、誤差項量化難度大、仿真時間長等問題,無法滿足工程實踐的需求。本文結合Questasim與Matlab/Simulink的優勢,對光纖陀螺的閉環控制算法進行了RTL級的驗證。
數據流模型是通過分析光纖陀螺各器件的物理特性,提取出相應的數學表達式而建立的。在模型建立過程中,忽略了一些次要因素,得到針對主要特性的描述表達式。利用Simulink提供的模塊,對光纖陀螺非數字部分器件進行仿真,計算數學方程,并產生輸出。按照光纖陀螺的組成結構,各個模塊按照信號的流向相互連接。本文建立的光纖陀螺反饋模塊數據流模型框圖如圖1[2-3]所示。
按照圖1所示的數據流模型,在Simulink中對光纖陀螺中非FPGA數字系統模塊建模。主要有以下7個模塊:

圖1 光纖陀螺數據流模型Fig.1 FOG data flow model
1)光源模塊。目前中、低精度光纖陀螺中光源主要采用超輻射發光二極管(SLD)。描述SLD最重要的兩個參數就是光功率P和中心波長λ,光功率決定最終達到探測器的光強。
2)耦合器模塊[2]。在光源后還需要加入第二個分束器,一般采用2×2的-3dB耦合器。描述耦合器性能的兩個主要指標是插入損耗Sx和分束比Lx,單位為dB。光每次經過耦合器功率將發生衰減,衰減比例表示為Kx=100.1(Sx+Lx)。SLD輸出的光經過耦合器輸出給集成光學調制器IOC,而IOC也會將干涉后的光輸出到PIN,傳輸過程中衰減Kx倍。因此,耦合器模塊有2個輸入端口以及2個輸出端口。
4)光纖環模塊。正反兩束光在光纖中傳播,在有外界角速率輸入下產生Sagnac相移。此外,光束在光纖環傳播過程中會發生衰減,數學表達式為一個比例環節。
5)探測器模塊。通常采用的探測器結構為PIN-FET組件,由PIN光電二極管和跨阻放大器組成。描述探測器的指標有光電轉換效率E、跨阻抗Rf。
6)放大器模塊。在探測器輸出和D/A輸出到IOC前,一般會有信號調理放大器將信號調整到合適的范圍。目前一般采用集成運算放大器,可以獲得很高的精度,前置放大器和后置放大器分別描述為比例環節Ka1和Ka2。
7)A/D和D/A轉換器模塊。A/D轉換器采樣探測器數據,在本文中采用理想模型,不考慮轉換器非線性偏差。類似地,D/A轉換器也采用理想模型。
如上所述,圖2為光纖陀螺中非FPGA數字系統的Simulink模型。

圖2 光纖陀螺中非FPGA數字系統模型Fig.2 FOG digital system model except FPGA
圖3[4-5]中圖3-1為Link for questasim,它是一個聯合仿真的接口,將MathWorks工具整合到EDA工作環境中,使其應用于FPGA和ASIC的開發。這個接口在HDL仿真器Questasim SE/PE和Math-Works的產品Matlab和Simulink間提供了一個雙向連接,以指導硬件的設計驗證和聯合仿真。這種整合可以分別充分發揮Matlab/Simulink和Questasim各自的優勢。
圖3-2顯示了Matlab/Simulink和Questasim的接口關系。把在Matlab中獲得的測試基準代碼輸出作為輸入,輸入到VHDL/Verilog實體中,并把經過Questasim的輸出輸入到Matlab函數中。Matlab/Simulink鏈接Questasim時,Matlab/Simulink和Questasi分別充當服務器和客戶端的角色,兩者之間通過TCP/IP socket port進行鏈接。
ZHANG Jing, XU Jia-hua, SHI Li, WEI Pei-lian, YU Guan-zhen

圖3 Matlab/Simulink和Questasim接口關系圖Fig.3 Matlab/Simulink interface relationship with Questasim
Questasim和Matlab/Simulink聯合仿真的大致步驟是:
1)在Questasim中建立工程,加入文件.v編譯,最后關閉Questasim窗口。
2)在Simulink中,將當前路徑設置到存放.v文件的路徑,編輯模型。配置模型參數,配置Simulink求解器。
3) 在 Matlab中輸入 vsim(‘socketsimulink’,XXXX),XXXX虛擬接口,如1234,也可直接輸入vsim,啟動Questasim。
4)在Questasim中加載實體,啟動仿真,加載wave視圖。
5)在Simulink中運行仿真,可在Questasim中觀察運行得到的仿真圖,當然也可利用Simulink提供的仿真庫函數對仿真結果進行觀察。
6)終止仿真Simulink中,Simulation/EndSimulation,Questasim 中 quit;close Simulink Model Window.
在Simulink仿真庫下選中link for modelsim,拖入新建窗口,雙擊模塊,進行參數配置。以下介紹其中幾個重要參數的設置。
1) Port:端口的設置是完成接口設置非常重要的一步。需要設置的有端口名、輸入輸出方式、采樣時間、數據類型等,如圖4所示。

圖4 端口的設置Fig.4 Function block parameters:ports
2) 鏈接方式的設置:可選shared memory或是socket通信方式。若是選擇shared memory,在Simulink下啟動Questasim輸入vsim,若是采用socket方式,則需要選擇虛擬端口,比如1234,則,運行在Matlab下,啟動Questasim時,輸入命令 vsim(‘socket.simulink’,1234),即可進入Questasim界面。
3) 時鐘和仿真的時間刻度:如圖5所示,需要設置對Questasim的時鐘頻率。
4) TCL控制命令:如圖6所示,在仿真開始啟動時鐘信號。

圖5 時鐘和仿真的時間刻度Fig.5 Function block parameters:clocks

圖6 TCL控制命令的設置Fig.6 Function block parameters:TCL
最終在Simulink中形成的模型如圖7所示。HDL Cosimulation為Simulink鏈接Questasim的接口模塊,Subsystem3為光纖陀螺閉環反饋模塊的Simulink模型。仿真運行后,用戶可以在Questasim下觀察仿真波形,同時也可以在Simulink環境下利用示波儀等顯示設備觀察仿真波形。本文中反饋的階梯波形在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聯合仿真技術的接口與實現進行了研究,利用Simulink對Questasim進行光纖陀螺光學和模擬電子器件的高層次抽象,建立了光纖陀螺的數據流模型,把兩個專業仿真工具聯合起來使用,建立一個自動化的可靠的光纖陀螺代碼驗證平臺,對光纖陀螺代碼驗證提供支持。既能發揮Questasim突出的硬件設計仿真效能,又能借助Matlab/Simulink強大的數值處理能力。在進行光纖陀螺代碼測試時模型被觸發,接受數字系統輸出并進行模型的運算,運算結果傳遞回數字系統中,完成整個光纖陀螺代碼的閉環運算,增強算法同硬件實現之間的聯系。
[1]張桂才,王巍,譯.光纖陀螺儀[M].北京:國防工業出版社.
[2]GJB 2426-95,1995-05-31,光纖陀螺儀測試方法[S].
[3]禹瑋.光纖陀螺信號的數值處理方法[J].傳感器與微系統,2009,02.
[4]范靜,陳文藝.基于Modelsim與Matlab/Simulink聯合仿真技術的接口與應用研究[J].西安郵電學報,2010,5.
[5]李壽強.MATLAB和ModelSim聯合仿真在FPGA開發中的應用[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.