tcl脚本
tcl,全名tool command language,是一种通用的工具语言。
1)每个命令之间,通过换行符或者分号隔开;
2)tcl的每个命令包含一个或者多个单词,默认第一个单词表示命令,第二个单词表示参数,
单词之间必须同空格或者tab键隔开;
3)tcl解释器的执行过程,分析阶段,对单词的拆分,同时进行必要的置换;
执行阶段,检查命令有效性,启动c/c++解释器,传递之后的单词作为参数,执行命令;
4)tcl中的注释,用###来表示,一个就可以。必须在一行的开头
5)同一行命令太长,转到下一行,使用\ //,先转义空格隔开单词,之后//表示转到下一行;
6)大括号,{}中,不做特殊字符的识别,所有字符作为普通字符来处理;
7)双引号,""""中,只有部分的特殊字符被处理,换行符,$,[],其他作为普通字符;
8)tcl对复杂的数据结构支持不好,数组的支持也很奇怪。本文只讨论变量;
9)tcl中的list 数据类型,不声明变量,直接放在{}中,也定义了一些list操作函数,直接对{}进行操作;
list中的不同对象之间用空格隔开;可以将list赋值给一个变量
tcl中的置换有三种:
1)变量置换,$只是进行变量的简单替换,并不进行运算;
set x 10; set y $x+100; 那y的值是10+100,被当做一个整体的字符来处理,而并没有进行运算;
2)命令置换,[,将最后一个命令的执行结果返回作为参数,内部可以有多条命令;
set y [expr $x+100;] 这时的y表示110;[]中的命令必须是若干tcl可识别的正确命令;
3)反斜杠置换,\,用来打出一些特殊的字符;如换行符\n,空格,[,$,并没有另一个方括号];
set msg money\ \$3333\ \nArray\ a\[2] 输出money $3333
Array a[2]
tcl中的操作数,整数,实数都可以,0x开头表示十六进制,o开头表示八进制;
运算符和优先级与C类似;
tcl中的控制流,while,for,if,foreach,switch,各个参数用空格隔开,可以使用{}包住各个分开的参数;
其中的{},{必须写在与命令一行的地方,避免tcl认为命令已经结束;
break和continue,来控制单个循环;
tcl中的默认命令:
1)set 设置变量,变量命令也遵守C的标准,字符,数字,下划线;
set a 2; $a表示该变量
2)unset,删掉某个变量;可以加多个变量 unset a b;表示都被删除
3)append,变量拼接, incr,操作数必须是整数,相加;
4)expr,数学计算命令,参数必须是数字,支持很多C的运算函数,可以直接调用;
tcl中的输入输出:
1)scan,可以实现格式化输入:
scan "some 26 34" "some %d %d" a b
2)puts,格式化输出:
puts [format "the value of c is %d, d is %d, e is %d, f is %d" $c $d $e $f]
tcl中的错误,异常处理:
1)catch command ? varname,执行command,返回之后的结果为命令返回值,或者直接赋值给变量var_name;并不会退出tcl
2)error message ? info ? code,将message作为一个错误信息,返回回去,
扔缺少procedure,文件,字符串处理部分,需要补充;
tcl脚本的更多相关文章
- Modelsim仿真tcl脚本与wave.do文件
Modelsim的仿真,如果一直使用图形界面建工程,编译,仿真,一个个加入观察波形的话,未免复杂了一些,尤其是当工程较大,需要观察的信号较多时,下面贴出一些常用的tcl脚本命令和wave.do常用语法 ...
- 使用Tcl脚本分配FPGA管脚
自己主动生成Tcl文件 Project -> Generate Tcl File for Project... 弹出例如以下对话框.设置脚本路径. 编辑引脚 使用set_location_ass ...
- Quartus16.0如何使用TCL脚本
前言 TCL脚本语言在EDA工具中使用频繁,本文主要介绍使用TCL脚本文件进行引脚分配,避免手动分配以及分配出错: 流程 1.准备好你的TCL脚本文件,举个栗子(脚本文件内容): 2.在Quartus ...
- Modelsim中使用TCL脚本编写do文件实现自动化仿真
通常我们使用Modelsim进行仿真,是通过图形界面点点点来进行操作,殊不知Modelsim完美支持TCL脚本语言及批处理命令do文件.简单来说就是从你修改完代码后到你重新编译把需要的信号拉出来查看, ...
- modelsim如何使用tcl脚本来写编译文件
对于modelsim进行仿真,可以通过GUI来进行仿真,当然更加快速的方法可以使用TCL脚本文件进行快速仿真. Modelsim采用TCL脚本文件仿真的具体流程如下所示: 具体的操作步骤如下 ...
- TCL脚本语言基础介绍
Tcl简介(一):Tcl 语法 Tcl 语法 Tcl是一种很通用的脚本语言,它几乎在所有的平台上都可以释运行,其强大的功能和简单精妙的语法会使你感到由衷的喜悦,这片文章对 Tcl有很好的描述和说明.如 ...
- 在Quartus中如何使用TCL脚本文件配制管脚
quartus软件分配管脚的方法有两种,一是选择菜单“assignments->pins”进入管脚分配视图手动分配:第二种方法是利用tcl脚本文件自动分配.这里我来介绍第二种方法. 1.生成tc ...
- 28nm工艺下,自动生成管脚排列文件,给设计加PAD,并在PAD上面打Label的流程(含Tcl脚本)
本文转自:自己的微信公众号<数字集成电路设计及EDA教程> 里面主要讲解数字IC前端.后端.DFT.低功耗设计以及验证等相关知识,并且讲解了其中用到的各种EDA工具的教程. 考虑到微信公众 ...
- ICC中用Tcl脚本给版图中的Port/Terminal加Label的方法
本文转自:自己的微信公众号<数字集成电路设计及EDA教程> 里面主要讲解数字IC前端.后端.DFT.低功耗设计以及验证等相关知识,并且讲解了其中用到的各种EDA工具的教程. 考虑到微信公众 ...
- tcl脚本直接执行脚本中中文识别不了的处理
上一篇说tcl中文乱码是因为我写了个bat调用该脚本,但是脚本中的中文路径是乱码.今天刚好有时间进行解决下: 首先看看调用代码 "./bin/base-tcl8.6-thread-win32 ...
随机推荐
- 关于服务器时区BEIST-8、GMT-8、Asia/Shanghai、CST、GMT+8:00等缩写的含义
http://www.talkwithtrend.com/Article/147961 AIX系统时区总结 字数 2078阅读 5844评论 0赞 0 前几天NTP的问题牵涉出时区问题,大家可能被眼花 ...
- 动态补丁构建工具nuwa中的“坑”
1. 继承android中的Application的类A1Application:并且A2Application继承自A1Application,并且配置在清单文件中name=".A2App ...
- html多文件上传,可支持预览
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- Innodb buffer 相关参数
buffer相关参数: show GLOBAL VARIABLES LIKE 'innodb_buffer_pool_instances'; show GLOBAL VARIABLES LIKE 'i ...
- SQL SERVER BCP的用法
转自:https://www.cnblogs.com/fishparadise/p/4809014.html 前言 SQL SERVER提供多种不同的数据导出导入的工具,也可以编写SQL脚本,使用存储 ...
- lsof 命令
[root@localhost ~]# lsof COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME init root cwd DIR , / in ...
- 前端HTML目录
前端 HTML 简介 前端 HTML文档结构介绍 前端 HTML文档 详解 前端 HTML 注释 前端 HTML标签介绍 前端 HTML的规范 前端 HTML 常用标签 head标签相关内容 前端 H ...
- UVA 1379 - Pitcher Rotation(DP + 贪心)
题目链接:option=com_onlinejudge&Itemid=8&page=show_problem&problem=4125" rel="nofo ...
- 对Python源码加密及反编译前后对比
关于python的加密 目前软件开发商对 Python 加密时可能会有两种形式,一种是对python转成的exe进行 保护,另一种是直接对.py或者.pyc文件进行保护,下面将列举两种形式的保护流程. ...
- sublime使用手册
1.怎么批量选中开头和结尾?将光标定位到区域的开头,ctrl+alt+下键(一直按下键). 2.怎么打开和关闭tab的自动补全?preferences->settings->User{ & ...