Modelsim command line 传参数到 .do 文件
? gui跑mdelsim總覺得很麻煩,使用命令來啟動方便了很多,類似linux一樣,其實目前windows也可以做到,只是業界不怎么用windows罷了。
? 基于modelsim搭了一個UVM環境, ?用bat批處理命令跑modelsim command,其實很簡單,里面就一句vsim -do sim.do。
? sim.do是自己寫的modelsim要用到的幾條命令,包括vlib, vlog, vsim等。關于如何在windows環境下,搭建uvm環境,網上有教程。
? 現在遇到了一個問題,就是在跑uvm時,我現在有兩種sequence要跑,分別是my_case0, my_case1, 具體內容在《uvm 實戰》這本書里有。一般來說,我想很方便的選擇控制當前是跑case0,還是case1,能不修改任何代碼就不修改,包括各種腳本文件。這時,我想實現在cmd命令窗口中輸入某一個case的名字,來啟動對應的case。
? 因此,現在的問題變成了,如何將bat得到的名字(變量)通過cmmand送到do文件中。此時,再次證明了google面前,必應和百度都是垃圾……
? 好了,現在有兩個文件,一個我叫run.bat,里面就是一句話vsim -do sim.do來啟動modelsim;一個我叫sim.do,里面主要內容是
vlib work
vlog -L mtiAvm -L mtiOvm -L mtiUvm -L mtiUPF ?top_tb.sv
vsim -l vsim.log -c -sv_lib $UVM_DPI_DIR/uvm_dpi work.top_tb +UVM_TESTNAME=$NAME
run -all
? 用來執行具體操作。目的就是要讓bat將得到的名字傳給+UVM_TESTNAME=$NAME中的變量$NAME中。
? 第一步,修改bat,使得能從cmd中傳入參數,我的兩個參數分別是my_case0和my_case1,根據輸入進行對應的選擇。bat修改如下:
? set /p case_name=case(my_case0 or my_case1):
? vsim -gNAME=%case_name% -do sim.do
? 其中的關鍵是用了-g命令,格式為-g<param_name>=<param_value>,NAME其實就是變量名。
? 第二步,修改sim.do文件,主要為:
set x [lsearch $argv -gNAME=my_case0];
if "$x != -1" {
set NAME my_case0;
}
if "$x == -1" {
set NAME my_case1;
}
?這幾句就可以將do文件里的變量NAME對應的設置為cmd中輸入的字符。其實-g命令不是設計為這么用的,這里只是借用了其功能來實現目的。
? 最終,實現了在cmd命令中,控制uvm環境對應的實現不同的sequence case。
轉載于:https://www.cnblogs.com/studyforever/p/6555863.html
總結
以上是生活随笔為你收集整理的Modelsim command line 传参数到 .do 文件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SVN interrupted与alre
- 下一篇: web项目中各种路径的获取