2014-03-05 37 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没有处理它。

相关问题