ucli接口與tcl 8.6兼容;vcs中要調用ucli接口,執行腳本,必須在compile的時候,加入debug的權限;
-debug,-debug_pp,-debug_all,-debug_access,-debug_region
在run的時候,指定vcs -ucli [run_option]
hierarchical name的path,verilog使用"."作為默認的hier分隔符;
vhdl使用"/"作為默認的hier分隔符;
verilog可以對name的fork,,,end,begin,,,end塊使用,也識別task和function的名稱;
ucli對於ntb-sv的支持不是很全面,有幾點是不支持的;
1)clock domain;
2)virtual interface;
3)random constraint;
4)stop -event不能是automatic的變量;
5)event變量不支持;
在調用uclI的時候,time 0的時候,會有一個initialization的過程,實現對static變量和function的處理;
如果要debug這時的信息,需要加--ucli=init -nba/-delta(可選),
program中的static類型變量,不需要加這個option;
ucli提供的命令:
1)call,調用verilog或者vhdl中的system task;
2)stop,設置斷點;
典型應用,類似與when命令,stop -quiet -continue -posedge clk -condition {mysig1= 1'd0 and mysig2='d1} -command {
echo "breakpoint1"
force -freeze mysig 0
}
3)echo和redirect命令,重定向輸出;
echo "string" 輸出到stdout;
exec echo > vars.list 輸出到vars.list;
redirect vars.list 輸出vars.list的值到stdout;
4)exec 執行操作系統的命令,輸出被ucli tcl處理;
5)search -scope +name 在某個scope下,搜索每個name的pattern,返回一個list
6)tcheck intance_path SETUPHOLD -msg -xgen -disable,disable掉某instance_path的setuphold timing檢查,不產生msg,不產生x;
7) force release cmd。
8) run num.ns 表示執行num個ns的防止。
