2014-03-05 33 views
0

我想要做什麼:VHDL配置可以使用它自己的泛型嗎?

我想通過當前日期和時間的VHDL測試平臺,所以我可以創造更好的報告文件名。

問題:

正從我的模擬TCL腳本調用頂層VHDL文件是一個配置,我不知道如何通過genericto它。在TCL腳本的interesing部分如下:

set reportfilename "report_$testcase_id" 
append reportfilename [clock format [clock seconds] -format _%Y-%m-%d_%H:%M] 
vsim -t 10fs -gG_TC_REPORTFILE=$reportfilename -novopt work.CFG_TB_TOP_tc0027 - wlf result_$testcase_id.wlf 

產生的VSIM調用如下:

# vsim -t 10fs -wlf result_tc0027.wlf -novopt -gG_TC_REPORTFILE=report_tc0027_2014-03-05_13:22 work.CFG_TB_TOP_tc0027 

的問題是,G_TC_REPORTFILE不是一個通用CFG_TB_TOP_tc0027.vhd的,但一

configuration CFG_TB_TOP_tc0027 of TB_TOP_CFG is 
    for testcaseexecution 
     for TB_TOP_E_INST : TB_TOP_E 
     ------------------------------------------------------------- 
     -- Testbench configuration 
     ------------------------------------------------------------- 

     use entity work.TB_TOP_E(TB_TOP_sim) 
      generic map (
       G_TC_STIMULUSFILE => "./testcases/tc0027.txt", -- 
       G_TC_REPORTFILE => "./results/report_tc0027.txt", 
       G_TB_VNR   => "V_03.10", 
       G_TC_NR   => 27); -- 

     for TB_TOP_A_sim 
:配置成在CFG_TB_TOP_tc0027.vhd

CFG_TB_TOP_tc0027.vhd的相關部分的模塊的

如何將TCL文件中的值傳遞給TB_TOP_E實體的通用G_TC_REPORTFILE?我可以以某種方式爲CFG文件添加泛型,或者我可以以某種方式指定TCL文件中的泛型指向哪個實體?最好的情況是,如果我不需要編輯vhdl文件,只需編輯TCL腳本。

該模擬器的ModelSim SE 10.0b,我使用VHDL 2008

回答

2

我剛找到自己的答案:

你的確可以指定要覆蓋的一般路徑。我改變了TCL文件是這樣的:

set reportfilename "./results/report_$testcase_id" 
append reportfilename [clock format [clock seconds] -format _%Y-%m-%d_%H-%M.txt] 
vsim -t 10fs -GTB_TOP_CFG/TB_TOP_E_INST/G_TC_REPORTFILE=$reportfilename -novopt work.CFG_TB_TOP_tc0027 -wlf result_$testcase_id.wlf 

將會產生以下VSIM電話:

# vsim -t 10fs -wlf result_tc0027.wlf -novopt -GTB_TOP_CFG/TB_TOP_E_INST/G_TC_REPORTFILE=./results/report_tc0027_2014-03-05_14-06.txt work.CFG_TB_TOP_tc0027 

除了新增的路徑TB_TOP_CFG/TP_TOP_E_INST/我也不得不從時間戳刪除:,爲的ModelSim/vhdl沒有處理它。

相關問題