1、Modelsim及FLI接口介紹
Modelsim是ModelTechnology(MentorGraphics的子公司)的HDL硬件描述語言仿真軟件,可以實現VHDL,Verilog,以及VHDL-Verilog混合設計的仿真。
除此之外,Modelsim還能夠與C語言一起實現對HDL設計文件的協同仿真。同時,相對于大多數的HDL仿真軟件來說,Modelsim在仿真速度上也有明顯優勢。這些特點使Modelsim越來越受到EDA設計者、尤其是FPGA設計者的青睞。
Modelsim的FLI接口(即ForeignLanguageInteRFace)提供了C語言動態鏈接程序與仿真器的接口,可以通過C語言編程對設計文件進行輔助仿真。
2、協同仿真系統結構及意義
協同仿真就是利用仿真工具提供的外部接口,用其他程序設計語言(非HDL語言,等)編程,輔助仿真工具進行仿真。Modelsim提供了與C語言的協同仿真接口。以Windows平臺為例,用戶通過modelsim提供的C語言接口函數編程,生成動態鏈接庫,由modelsim調用這些動態鏈接庫進行輔助仿真(圖1)。
Modelsim與C語言協同仿真一是用于產生測試向量,避免手工編寫測試向量的繁瑣;二是可以根據程序計算結果自動檢查仿真結果正確與否;三是模擬其他模塊(如RAM)的功能,在系統級對設計文件仿真。實際中一般是把一和二結合在一起,用程序產生仿真向量,一方面輸出給設計文件作為輸入,另一方面由程序本身對該向量計算,把得到的結果與仿真器的輸出結果比較,檢查邏輯是否正確(圖2)。至于模擬功能,現在已經有一些通用芯片的模擬程序,如denali可以模擬RAM的功能。另外,用戶也可以利用modelsim提供的編程接口自己模擬一些芯片的行為,然后與設計文件連接到一起仿真。
圖2語言測試程序對VHDL設計的協同仿真結構圖
3、C語言對VHDL設計的協同仿真
3.1構成框圖
仿真文件的構成如圖3所示,包括HDL文件和動態鏈接庫(即C程序)。圖中C程序對應的VHDL文件要負責聲明對應的動態連接庫文件名及初始化函數,另外還可以給出一些調用參數。動態鏈接庫中用到的輸入輸出信號也要在對應的VHDL文件中聲明。