【问题标题】:Modelsim: How to disable SDF timing check for certain module in the design?Modelsim:如何禁用设计中某些模块的 SDF 时序检查?
【发布时间】:2021-10-13 13:28:53
【问题描述】:

我正在使用 Modelsim/Questasim 运行 Verilog 门级仿真。一些同步器被添加到我的原始设计中,因为它使用两个不同频率的时钟。我只想为这些同步器禁用计时检查。

我想使用 Modelsim/Questasim “tcheck_set”命令,但 Modelsim/Questasim TCL 中断器无法识别此命令。

谁能告诉我如何在最新的 Modelsim/Questasim 中使用“tcheck_set”?

【问题讨论】:

    标签: verilog modelsim


    【解决方案1】:

    来自modelsim vsim“做文件”脚本:

    tcheck_set {/tb/dut/U1} OFF
    
    run -all
    

    这将禁用实例 U1 中的所有计时检查。

    注意实例名称中是否有“\”等特殊字符,例如:

    VSIM> tcheck_set  {/tb_top/U1/\tp_mux_pad[15]} OFF
    # ERROR: instance "\tp_mux_pad[15]"  not found
    
    VSIM> tcheck_set {/tb_top/U1/*tp_mux_pad[15]} OFF
    # /tb/U1/\tp_mux_pad[15]/U0/U1
    # 1 ( WIDTH (posedge E) ) MsgOff XOff
    # 2 ( WIDTH (negedge E) ) MsgOff XOff
    # 3 ( WIDTH (posedge D) ) MsgOff XOff
    # 4 ( WIDTH (negedge D) ) MSgOff XOff
    

    不太确定如何转义“\”字符,所以我使用星号通配符“*”代替...但是实例路径周围的花括号“{}”可以转义 TCL 特殊字符的正方形大括号 "[ ]" 和括号 "( )" 以便它原封不动地传递给 tcheck_set 命令。

    另一个例子:

    VSIM> find instances {tb_top/U1/*tp_mux_pad* }
    # {/tb_top/U1/\tp_mux_pad[15]/U0/U0  (IOPAD_TRI)} {/tb_top/U1/\tp_mux_pad[15]/U0/U1  (IOTRI_OB_EB)} 
    

    更新:

    我想出了如何转义退格字符“\”。
    信号名称中的反斜杠表示门级网表标准,该标准允许门级信号在信号名称中包含特殊字符,例如“./[] ()”等。每当您在信号名称中看到反斜杠字符时,所有字符被视为“A-Z”字符,包括通常的特殊字符,直到信号名称以空格字符结尾。 (有时您还需要使用反斜杠转义信号名称中的最后一个空格字符,但在我们的例子中,我们使用 TCL 大括号,它将大括号内的所有字符视为文字字符,包括末尾的空格字符。因此,示例变为:

    VSIM> check_set {/tb_top/U1/\tp_mux_pad[15]/U0/U0 } ON
    # /tb_top/U1/\tp_mux_pad[15]/U0/U0 :
    # 1 ( WIDTH (posedge E) ) MsgOn XOn
    # 2 ( WIDTH (negedge E) ) MsgOn XOn
    # 3 ( WIDTH (posedge D) ) MsgOn XOn
    # 4 ( WIDTH (negedge D) ) MsgOn XOn
    

    这里,“\tp_mux_pad[15]/U0/U0”是整个实例名称,其中特殊字符的正常含义,“./[ ] ( )”,当反斜杠 ' 时被视为普通 A-Z 字符\' 一直存在于信号路径中,直到在信号名称中找到空格字符。

    # CASE 1:            
    #
    #  SPACE AT END OF SIGNAL NAME REQUIRED WHEN BACKSLASH CHARACTER
    #  EXAMPLE:  check_set {/tb_top/U1/\tp_mux_pad[15]/U0/U0 } ON
    #                                                       ^space
    # CASE 2:
    #
    #  SPACE AT END OF SIGNAL NOT REQUIRED IF THERE IS NO BACKSLASH CHARACTER)
    #  EXAMPLE:  check_set {/tb_top/U1} ON
    #
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-08-25
      • 1970-01-01
      • 2019-06-30
      • 1970-01-01
      • 2016-08-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多