2017-03-21 75 views
0

PythonプログラムからcmdでModelsimを実行します。 私はModelSimの実行TCLスクリプトを呼び出し、次のコードを使用します。私は+ UVM_TESTNAMEの値が引数になることを望んcmdから引数をModelSimのtclスクリプトに渡す方法

vsim -voptargs="+acc" +UVM_TESTNAME=test_name +UVM_MAX_QUIT_COUNT=1 +UVM_VERBOSITY=UVM_LOW \ 
    -t 1ps -L unisims_verm -L generic_baseblocks_v2_1_0 -L axi_infrastructure_v1_1_0 \ 
    -L dds_compiler_v6_0_12 -lib xil_defaultlib xil_defaultlib.girobo2_tb_top \ 
    xil_defaultlib.glbl 

:以下が含まれているTCLスクリプト

os.system("vsim -c -do top_tb_simulate_reg.tcl ") 

を実行時にcmdから渡したもの:

os.system("vsim -c -do top_tb_simulate_reg.tcl ") 

どうすればいいですか?

ノーsucceesで次のことを試してみました:

Pythonスクリプト:

os.system("vsim -c -do top_tb_simulate_reg.tcl axi_rd_only_test") 

シミュレーションファイル(TCLスクリプト)

vsim -voptargs="+acc" +UVM_TESTNAME=$argv +UVM_MAX_QUIT_COUNT=1 +UVM_VERBOSITY=UVM_LOW \ 
    -t 1ps -L unisims_verm -L generic_baseblocks_v2_1_0 -L axi_infrastructure_v1_1_0 \ 
    -L dds_compiler_v6_0_12 -lib xil_defaultlib xil_defaultlib.girobo2_tb_top \ 
    xil_defaultlib.glbl 

私は、次のエラーを得た:

 
# ** Error: (vsim-3170) Could not find 'C:/raft/raftortwo/girobo2/ver/sim/work.axi_rd_only_test'. 
+0

エラーメッセージは何だったのでしょうか。または、私たちは "目隠しで問題を推測する"ことができます... –

+0

vsimコマンド、tclスクリプト、およびその引数を一時的なシェルスクリプトにダンプし、os.system( 'foo.sh ')。 – Sharad

答えて

0

問題vsimバイナリが引数の独自の処理を行っており、それが干渉しているということです。もちろん、vsimのドキュメントを読むことでこれを回避する方法が見つかるかもしれません。最も簡単な方法はの環境変数経由で値を渡すことです。それらは親プロセスからのプロセスによって継承され、ほとんどのものを渡すためには問題ありません。 (例外は常に正しく設定されたアクセス権ではなく、どちらかの環境変数またはコマンドライン引数を持つファイルに渡されるべきセキュリティトークン、ある。)

あなたのpythonのコードでは:

# Store the value in the *inheritable* environment 
os.environ["MY_TEST_CASE"] = "axi_rd_only_test" 

# Do the call; the environment gets passed over behind the scenes 
os.system("vsim -c -do top_tb_simulate_reg.tcl ") 

あなたのTCLコード:

# Read out of the inherited environment 
set name $env(MY_TEST_CASE) 

# Use it! (Could do this as one line, but that's hard to read) 
vsim -voptargs="+acc" +UVM_TESTNAME=$name +UVM_MAX_QUIT_COUNT=1 +UVM_VERBOSITY=UVM_LOW \ 
    -t 1ps -L unisims_verm -L generic_baseblocks_v2_1_0 -L axi_infrastructure_v1_1_0 \ 
    -L dds_compiler_v6_0_12 -lib xil_defaultlib xil_defaultlib.girobo2_tb_top \ 
    xil_defaultlib.glbl 
関連する問題