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]
相关推荐
FPGA_无线通信9 小时前
OFDM 同步设计(3)
算法·fpga开发
电气小僧9 小时前
AP法设计电感公式推导
硬件工程·硬件·电力电子·电源·开关电源
贝塔实验室10 小时前
Altium Designer全局编辑
arm开发·经验分享·笔记·fpga开发·dsp开发·射频工程·基带工程
北京青翼科技11 小时前
【TES818 】基于 VU13P FPGA+ZYNQ SOC 的 8 路 100G 光纤通道处理平台
图像处理·人工智能·fpga开发·信号处理·智能硬件
m0_5649149211 小时前
视频字幕AI总结丨FPGA入门教学视频
人工智能·fpga开发
9527华安11 小时前
FPGA纯verilog实现JESD204B协议,基于ADRV9009数据环回收发,提供2套工程源码和技术支持
fpga开发·verilog·jesd204b·adrv9009
集芯微电科技有限公司11 小时前
40V/3A高性能高集成三相BLDC驱动器具有电流及故障诊断功能(FLT)
c语言·数据结构·单片机·嵌入式硬件·fpga开发
MARIN_shen12 小时前
Marin说PCB之LPDDR5的仿真报告分析--02
嵌入式硬件·硬件工程·信号处理·pcb工艺
传感器与混合集成电路13 小时前
提升多轴同步精度:DSP+FPGA架构在高端特种装备伺服控制中的应用
嵌入式硬件·fpga开发·架构
贝塔实验室1 天前
新手如何使用Altium Designer创建第一张原理图(二)
arm开发·fpga开发·硬件工程·dsp开发·射频工程·基带工程·嵌入式实时数据库