基于Modelsim FLI接口的FPGA仿真技術(shù)
在注冊后,當仿真器運行命令restart時就會調(diào)用free(buf)。
本文引用地址:http://www.ex-cimer.com/article/84416.htm其他一些函數(shù)可以參照Modelsim的用戶手冊,這里不再詳述。
e.設置敏感表,給出在某些信號發(fā)生某些變化時(如時鐘上升沿等)執(zhí)行的函數(shù)。例如,在輸入信號in1發(fā)生變化時,要執(zhí)行函數(shù)in1_change(in1_change為用戶定義好的函數(shù)),可以這樣定義:
processID proc;
proc = mti_Cre ateProcess("P_in1change", in1_change, &ip);
mti_Sensitize(proc, ip.in1, MTI_EVENT);
也就是說,先創(chuàng)建進程,然后設置敏感表,當滿足敏感表的條件時,仿真器就會執(zhí)行該進程。
mti_CreateProcess函數(shù)的定義為: mtiProcessIdT mti_CreateProcess(char *name, mtiVoidFuncPtrT func, void *param);
其中name是將要在仿真器窗口中顯示的名稱;func是要執(zhí)行的函數(shù);后面的param是要傳給func的參數(shù)。mti_Sensitize的定義為:void mti_Sensitize(mtiProcessIdT proc, mtiSignalIdT sig, mtiProcessTriggerT when);
其中proc為調(diào)用mti_CreateProcess的返回值;sig為信號名,即VHDL文件的輸入輸出信號對應于C程序的變量;when可以取MTI_EVENT或者MTI_ACTIVE兩種值。
3.4 C程序的編譯
對 Windows平臺,采用的編譯器是 Microsoft Visual C++,并用如下的命令行進行編譯:
cl -c -Imodeltechinclude app.c
link -dll -export: app.obj modeltechwin32mtipli.lib
上面的是 modelsim 的安裝目錄,是 C 程序的初始化函數(shù)名,如我們給出的 sim.c 中的 sim_init。編譯之后就可以生成.dll 文件。
最后,仿真向量是用 C語言還是用 HDL 直接產(chǎn)生,要視設計者的應用而定,選取最簡單的方式。在大多數(shù)情況下,用 C語言和 HDL 聯(lián)合生成測試向量會更方便些。
參考文獻:
1、《可編程邏輯系統(tǒng)的VHDL設計技術(shù)》[美]Kevin Skahill編著,朱明程孫普 譯,東南大學出版社,1998.9
2、“Modelsim User’s Manual”, Mentor Graphics, Modelsim幫助文件
評論