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]
相关推荐
Topplyz13 小时前
如何减小DCDC的纹波?
单片机·嵌入式硬件·硬件工程·电源·layout·dcdc
尤老师FPGA16 小时前
HDMI数据的接收发送实验(十八)
fpga开发
北京青翼科技18 小时前
青翼科技 JFM7K325T FPGA+FT-M6678 DSP 的全国产化信号处理平台丨FPGA开发板
fpga开发·数据采集卡·fmc子卡·fpga开发板·ad采集卡·图像处理卡·dsp信号处理
ICGOODFIND119 小时前
2026物联网模组选型指南:U-BLOX定位模组+SIMCOM芯讯通主流蜂窝通信模组参数与场景适配
嵌入式硬件·物联网·硬件工程·iot
zlinear数据采集卡1 天前
从0到1硬核拆解:工业级数据采集卡的隔离设计与Modbus通信实战
arm开发·单片机·嵌入式硬件·fpga开发·开源
米饭不加菜1 天前
NE555 定时器应用——声光控制/延时开关电路
经验分享·硬件工程
FakeOccupational1 天前
fpga系列 HDL:Microchip FPGA开发软件 Libero Soc FPGA 在线逻辑分析
fpga开发
ye150127774552 天前
220V转12V|18V1A非隔离电源芯片WT5110
单片机·嵌入式硬件·其他·硬件工程
FPGA技术联盟2 天前
如何在跨时钟域分析中处理好复位信号?
fpga开发
国科安芯2 天前
基于ASM1042S2S的箭载通信网络抗辐射加固方案研究
服务器·网络·嵌入式硬件·fpga开发·架构·信号处理