【Vivado】模块高亮显示tcl脚本

当我们需要做congestion分析时,可能需要在device视图中标注模块的位置。如下图所示一步步地操作。

可是当我们的dcp文件非常大时,每点一下可能都会卡顿很长时间。如果又需要标注很多模块,那么一个个地点击就会很费时费力。

这时,我们可以考虑用tcl脚本来实现,记录和分享下我所使用的模块高亮脚本。这个脚本里的参数值1-20对应上图中的Color 1-20。

#source ../../../../../highlight_module.tcl
################## use the tcl as follow #####################################################
# highlight_module part/ufs3_db_mphy_wrapper 20(Valid values are integers from 1 to 20)
# highlight_module part/ufs3_db_mphy_wrapper 0(清除高亮)


proc highlight_module {module_name {color_index 2}} {
    # 启动 GUI(如果是非 GUI 模式不会报错)
    catch {start_gui}

    # 构造正则匹配路径
    set pattern "${module_name}/*"

    # 获取模块本体及其下所有 leaf cells
    set leaf_cells [get_cells -quiet -hier -filter "NAME == \"$module_name\" || (IS_PRIMITIVE && NAME =~ \"$pattern\")"]

    if {[llength $leaf_cells] == 0} {
        puts "No matching cells found under module: $module_name"
        return
    }

    if {$color_index == 0} {
        # 清除高亮
        catch {unhighlight_objects $leaf_cells}
        puts "Unhighlighted [llength $leaf_cells] cells under module: $module_name."
    } else {
        # 先清除再高亮
        catch {unhighlight_objects $leaf_cells}
        highlight_objects -color_index $color_index $leaf_cells
        puts "Highlighted [llength $leaf_cells] cells under module: $module_name with color index $color_index."
    }
}


如果想清除所有模块的高亮显示,可以在Tcl Console窗口中输入如下命令:

unhighlight_objects [get_cells -hierarchical]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jjzw1990

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值