VivadoAndTcl: namespace

命名空间,其实际是一系列变量和过程的合集,从而让TCL 解释器能够对这些变量和过程进行分类管理。

复制代码
# 声明如下
namespace eval ns0 {
    proc print {} {
        puts "Tcl Proc 0"    
    }
    proc add {a b} {
        return [expr {$a + $b}]    
    }
}

namespace eval ns1 {
    proc print {} {
        puts "Tcl Proc1"    
    }
    proc sub {a b} {
        return [expr {$a - $b}]    
    }
}
# 调用如下
# 该语句调用了ns0里的print过程
ns0::print
# 该语句进行了4+5的计算
ns0:add 4 5

如果一个命名空间里的不同过程之间是有关联的,需要用到同一个变量时,就可以创建命名空间变量。

复制代码
namespace eval counter {
    variable cnt 0
    proc AddOne {} {
        variable cnt
        return [incr cnt]    
    }
    
    proc SubOne {} {
        variable cnt
        return [incr cnt -1]    
    }
    
    proc reset {} {
        variable cnt
        set cnt 0    
    }
}
# 调用如下
# 该语句调用了counter里的加一过程
[counter::AddOne]
# 该语句进行了counter里的减一过程
[counter::SubOne]
# 该语句进行了counter里的复位过程
[counter::reset]
相关推荐
s090713623 分钟前
ZYNQ7000关于JTAG电路设计注意事项
fpga开发·zynq·硬件设计设计
ARM+FPGA+AI工业主板定制专家1 小时前
基于JETSON/RK3588+FPGA+AI农业机器人视觉感知方案
人工智能·计算机视觉·fpga开发·机器人
ARM+FPGA+AI工业主板定制专家3 小时前
基于JETSON/RK3588+FPGA+AI商用自动割草机器人方案
人工智能·目标检测·计算机视觉·fpga开发·机器人
我爱C编程3 小时前
【硬件片内测试】基于FPGA的完整16QAM软解调测试,含频偏锁定,帧同步,定时点,Viterbi译码,信道,误码统计
fpga开发·16qam·软解调·帧同步·viterbi译码·频偏锁定·定时点
ARM+FPGA+AI工业主板定制专家3 小时前
基于JETSON ORIN+FPGA+GMSL+AI的高带宽低延迟机器视觉方案
网络·人工智能·目标检测·计算机视觉·fpga开发·自动驾驶
XINVRY-FPGA3 小时前
EP1C6T144I7N Altera Cyclone FPGA
嵌入式硬件·fpga开发·硬件工程·dsp开发·fpga
硅农深芯5 小时前
MOS管GS两端并联电阻(泄放电阻)的作用
硬件工程·智能硬件·mos
szxinmai主板定制专家5 小时前
JETSON orin+FPGA+GMSL+AI协作机器人视觉感知
网络·arm开发·人工智能·嵌入式硬件·fpga开发·机器人
li星野7 小时前
打工人日报#20251208
fpga开发
s09071367 小时前
ZYNQ几种boot模式下sdk文件区别
fpga开发·sdk·zynq