淺析基于Modelsim FLI接口的協(xié)同仿真[3]

交換技術與網絡管控 責任編輯:hack0r 2012-01-11

摘要:4.2動態(tài)鏈接庫的程序結構利用modelsim仿真時,可根據VHDL文件的聲明,調用DLL文件(如sim.dll)。在VHDL文件中已經給出了調用文件(sim.dll)和初始化函數(shù)名(如sim_init),modelsim根據這些信息,調用sim.dll中的sim_init函數(shù),完成初始化工作。初始化包括:①初始化全局變量;②設置VHDL輸入輸出信號與c程序變量的對應關系;③

  4.2 動態(tài)鏈接庫的程序結構

  利用modelsim仿真時,可根據VHDL文件的聲明,調用DLL文件(如sim.dll)。在VHDL文件中已經給出了調用文件(sim.dll)和初始化函數(shù)名(如sim_init),modelsim根據這些信息,調用sim.dll中的sim_init函數(shù),完成初始化工作。初始化包括:

  ①初始化全局變量;

  ②設置VHDL輸入輸出信號與c程序變量的對應關系;

  ③設置輸出信號的一些初始狀態(tài)(mti_ScheduleDriver);

  ④設置在仿真器重新仿真(restart)和仿真器退出仿真(quit)等情況下執(zhí)行的一些函數(shù)(mti_AddRestartCB和mti_AddQuitCB等),如釋放動態(tài)申請內存等;

  ⑤設置敏感表,給出在某些信號發(fā)生變化(如時鐘上升沿等)時執(zhí)行的函數(shù)。

  ⑥其它。

  C程序的設計步驟如下:

  (1)包含頭文件,包括c程序常用的一些頭文件和modelsim給出的外部語言接口頭文件mti.h。Modelsim給出的外部接口函數(shù)說明、類型定義等都在mti.h中。

  (2)定義自己的結構體,這一點主要是為了編程方便,例如輸入輸出信號對應的變量在各函數(shù)中基本上都會用到,可以把這些變量定義成一個結構,便于參數(shù)傳遞。

  (3)編寫初始化函數(shù)

  初始化函數(shù)的定義為:

  init_func(mtiReginoIdT region,char *param,

  mtiInterfaceListT *generics,mtiInterfaceListT *ports)

  各參數(shù)的意義可以參閱modelsim用戶手冊。

  下面結合上面給出的初始化函數(shù)要完成的任務進行詳細說明。

  a.初始化全局變量(略)

  b.設置VHDL輸入輸出信號與c程序變量的對應關系。這是通過調用mti_FindPort函數(shù)實現(xiàn)的。mti_FindPort函數(shù)定義為:

  mfiSignalIdT mti_FindPort(mtiInterfaceListT *list,char *name);

  例如,定義輸入輸出信號對應的結構ip:

  PortStruct ip;

  就可以用:

  ip_in1=mti_FindPort(ports,“in1”);

  來實現(xiàn)輸入信號in1與變量in1的對應關系。

  對輸出信號來說,它的目的是產生驅動。因此,這些變量(out1和out2)除了要找到對應的輸出信號外,還要驅動這些信號。對信號的驅動可以通過調用mti_CreateDriver函數(shù)來實現(xiàn)。該函數(shù)的定義為:

  mtiDriverIdT mti_CreateDriver(mtiSignalIdT sig);

  由于這些變量一般只用于對外驅動,因此可以簡單寫成下面的形式:

  ip.out1 = mti+ CreateDriver(mti_FindPort(ports,“out1”));

[1]  [2]  [3]  [4]  

更多資料
更多課程
更多真題
溫馨提示:因考試政策、內容不斷變化與調整,本網站提供的以上信息僅供參考,如有異議,請考生以權威部門公布的內容為準!

通信工程師備考資料免費領取

去領取

距離2025 通信工程師考試

還有
  • 2
  • 2
  • 6
專注在線職業(yè)教育24年

項目管理

信息系統(tǒng)項目管理師

廠商認證

信息系統(tǒng)項目管理師

信息系統(tǒng)項目管理師

!
咨詢在線老師!