ucli tcl cmd

时间:2023-12-12 20:30:20

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的防止。