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]
相关推荐
我爱C编程1 小时前
【仿真测试】基于FPGA的2ASK扩频通信链路实现,包含帧同步,定时点,扩频伪码同步,信道,误码统计
fpga开发·帧同步·定时点·ask·扩频通信·扩频伪码同步
minglie15 小时前
Wokwi组件
fpga开发
智源研究院官方账号6 小时前
众智FlagOS 1.6发布,以统一架构推动AI硬件、软件技术生态创新发展
数据库·人工智能·算法·架构·编辑器·硬件工程·开源软件
qq_337599467 小时前
FPGA知识点
经验分享·fpga开发
s09071367 小时前
连通域标记:从原理到数学公式全解析
图像处理·算法·fpga开发·连通域标记
FPGA_小田老师7 小时前
FPGA例程(4):按键消抖实验
fpga开发·verilog·fpga demo·fpga例程
FPGA小c鸡7 小时前
FPGA摄像头采集处理显示完全指南:从OV5640到HDMI实时显示(附完整工程代码)
fpga开发
jz_ddk8 小时前
[学习] NCO原理与误差分析
fpga开发·gps·gnss·北斗
unicrom_深圳市由你创科技8 小时前
专业fpga定制开发解决方案
fpga开发·fpga
ALINX技术博客8 小时前
【ALINX 教程】FPGA 10G 以太网实现——基于 Zynq US+ Z7-P 开发板+FH1223 子卡
fpga开发