(1)TCL 基础入门

介绍

TCL(Tool Command Language)是一种解释执行的脚本语言(Scripting Language)。它提供了通用的编程能力:支持变量、过程和控制结构;同时TCL还拥有一个功能强大的固有的核心命令集。
由于TCL的解释器是用一个C\C++语言的过程库实现的,因此在某种意义上我们又可以把TCL看作一个C库,这个库中有丰富的用于扩展TCL命令的C\C++过程和函数,每个应用程序都可以根据自己的需要对TCL语言进行扩展。
扩展后的TCL语言将可以集成TCL核心部分的所有功能,包括核心命令、控制结构、数据类型、对过程的支持等;TCL良好的可扩展性使得它能很好地适应产品测试的需要,目前已成为自动测试中事实上的标准。

linux下tcl运行准备

在linux下,可以执行tclsh来进入tcl的编译环境,在输入tclsh后,将看到一个%的提示符,这表明我们已经处在了tcl的环境中。
在这里插入图片描述
要通过tclsh进入tcl编译环境,首先得确认linux中安装了tcl解释器,其一般是/usr/bin/tclsh
对于任何的tcl文件,其第一行必须是类似于 #!/usr/bin/env tclsh的,用来指定脚本语言编译器的位置。

脚本学习核心

  1. TCL脚本执行依赖于解释器(逐行执行)。
  2. TCL有效命令行以命令+字符串(结合空格间隔符)形成。
  3. 明白置换($、[]、)和引用(""、{})的差别和联系。
  4. 理解命令eval、expr、source、exec的差别。
  5. 掌握{*}配合glob等返回list后的操作。

基础语法

一个TCL脚本可以包含一个或多个命令。命令之间必须用换行符或分号隔开,下面的两个脚本都是合法的:

set a 1
set b 2
或 set a 1;set b 2

//TCL在识别时,会把set识别为命令,其余均为字符串
TCL的每一个命令包含一个或几个单词,第一个单词代表命令名 ,另外的单词则是这个命令的参数,单词之间必须用空格或TAB键隔开。

TCL解释器在分析命令时,把所有的命令参数都当作字符串看待,例如:
在这里插入图片描述
上例的第二个命令中,x被看作字符串x+100的一部分,如果我们想使用x的值’10’,就必须告诉TCL解释器:我们在这里期望的是变量x的值,而非字符"x"。怎么告诉TCL解释器呢,这就要用到TCL语言中提供的置换功能

  • TCL提供三种形式的置换:
    1.变量置换
    2.命令置换
    3.反斜杠置换。

变量置换

变量置换由一个$符号标记,变量置换会导致变量的值插入一个单词中。例如:
在这里插入图片描述
这时,y的值还不是我们想要的值110,而是10+100,因为TCL解释器把10+100看成是一个字符串而不是表达式,y想要得到值110,还必须用命令置换,使得TCL会把10+100看成一个表达式求值。

命令置换

命令置换是由[]括起来的TCL命令及其参数,命令置换会导致某一个命令的所有或部分单词被另一个命令的结果所替代。例如:
在这里插入图片描述
y的值是110,这里当TCL解释器遇到字符’['时,它就会把随后的expr作为一个命令名,从而激活与expr对于的C/C++过程,并把’expr’和变量置换后得到的’10+100’传递给该命令过程进行处理。
如果在上例中我们去掉[],那么TCL会报错。因为在正常情况下,TCL解释器只把命令行中的第一个单词作为看作命令,其它的单词都作为普通字符串处理,看作是命令的参数。

反斜杠置换

TCL语言中的反斜杠置换类似于C语言中反斜杠的用法,主要用于在单词符号中插入诸如换行符、空格、[、$等被TCL解释器当作特殊符号对待的字符。例如:
在这里插入图片描述
如果没有’‘的话,TCL会报错,因为解释器会把这里最后两个单词之间的空格认为是分隔符,于是发现set命令有多于两个参数,从而报错。加入了’'后,空格不被当作分隔符,'multiple space’被认为是一个单词(word)。
在这里插入图片描述
在这里插入图片描述
除了使用反斜杠外,TCL提供另外两种方法来使得解释器把分隔符和置换符等特殊字符当作普通字符,而不做特殊处理,这就要使用双引号和花括号{}。

TCL解释器对双引号中的各种分隔符将不做处理,但是对换行符及$和[]两种置换符会照常处理。
在这里插入图片描述

注释符

TCL中的注释符’#’,’#'和直到所在行结尾的所有字符都被TCL看作注释,TCL解释器对注释将不做任何处理。

关注作者

  • 自述
    作者是一位中科大数字设计专业的研究生,水平有限,如有错误,请大家指正,想要与大家一同进步。
  • 经历
    曾获得国家奖学金,“高教社杯”数学建模国家二等奖等
  • 陆续更新:
    1.与verilog数字设计相关的一些基础模块设计
    2.SV与UVM
    3.数字IC设计/验证过程中一些工具及语言的用法
    4.保研与竞赛经历等
  • 微信公众号
    欢迎大家关注公众号“数字IC小白的日常修炼”,期待与大家一同仗剑遨游数字IC世界。
  • 5
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Vivado是一款由赛灵思(Xilinx)公司开发的综合性设计工具,用于FPGA的设计与开发。而Tcl(Tool Command Language)则是Vivado中使用的一种脚本语言,用于自动化执行一系列的命令和操作。 对于零基础的用户来说,学习Vivado/Tcl入门可以按照以下步骤进行: 1. 安装Vivado:首先,需要在电脑上安装Vivado软件。可以从Xilinx官方网站下载合适版本的Vivado,并按照安装向导进行安装。 2. 理解Vivado的基本概念:Vivado是一个功能复杂的工具,需要了解其中的基本概念和工作流程。可以阅读Vivado的官方文档和教程,了解项目、IP核、约束等概念。 3. 学习Tcl语法基础Tcl是Vivado中进行脚本编写的语言,需要学习Tcl的基本语法和结构。可以通过参考Tcl的官方文档或者在线教程,理解Tcl的变量、控制流、函数等概念。 4. 编写简单的Tcl脚本:学习Tcl语法后,可以编写一些简单的Tcl脚本来熟悉语言的使用。可以尝试定义变量、进行数值计算、使用条件语句等等。 5. 在Vivado中应用Tcl脚本:学习了Tcl基础后,可以将Tcl语言应用于Vivado工具中。可以尝试使用Tcl脚本自动创建项目、添加IP核、进行综合、实现和生成比特流等操作。 6. 提升Tcl脚本技巧:随着对Vivado和Tcl的进一步了解和实践,可以逐渐掌握更高级的Tcl编程技巧。例如,使用循环结构、使用自定义函数、调用Vivado中的API等。 通过不断的学习和实践,您可以逐渐成为一名熟练的Vivado/Tcl用户。同时,还可以查找更多的Tcl和Vivado的学习资源,如论坛、社区或相关课程,以便更深入地了解和应用这些工具。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

数字IC小白的日常修炼

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

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

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

打赏作者

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

抵扣说明:

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

余额充值