Tcl脚本语言基础(2)
一、简介
Tcl是一种被EDA工具广泛支持的脚本语言,通常作为EDA工具的shell实用。Tcl极其XDC扩展使用户可以利用Tcl语言在VIvado上完成一些系列开发操作,从而完成路径、时钟、端口的多重约束,从而快速实现FPGA设计工程测试与修正。这里简单介绍一下这些语句,具体的XDC专用语句在其余文章内说明解释。
二、Tcl变量
在Tcl中,所有的变量都是由ASCII字符串表达。变量使用set命令进行分配,其使用格式如下:
set a 1234; #注释:将1234作为值赋给变量a
使用符号$可以对变量进行处理,将其被赋予的值替换出,而当其在{}内,则不具备特殊含义。如下所示:
set a 1; #把1赋给变量a
set b {$a}; #把$a赋给b
puts a; #打印出字符a
puts $a; #打印出a被赋予的值1
puts b; #它的结果为$a
如果给一个变量名后增加上索引,则该变量自动转化为数组,索引可以是数字,也可以是字符串:
set a(1) 1; #数组a的索引1的值被赋为1
puts $a(1); #打印出的结果为1
puts $a; #如果不给出索引,则为无效命令;
set a(b) 2; #数组a的索引b的值赋为2
在这里买就必须特备注意$的用法,他将变量转化为其实际值。
三、Tcl列表
列表是对象的集合,可以进行添加、搜索等操作。
1.列表创建
set gates [list AND OR NOT NAND NOR];
set gates [{AND} {OR} {NOT} {NAND} {NOR}];
set gates [split "AND.OR.NOT.NAND.NOR" "."];
以上三种方法都可以创建一个Tcl列表,从上例可以看出:
1、list为列表创建的关键词;
2、AND OR等经过转义括号{}转义后作为普通字符串赋给列表;
3、split代表着字符串切割函数,它的返回值为列表。
2.列表操作关键字:lappend、lsearch
lappend实现向列表中添加一个新的元素:
set 列表名 [lappend 列表名 特定元素];
lsearch实现搜索列表中是否存在某个特定元素,如果存在,返回索引,如果不存在,返回-1
lsearch $列表名 元素名;
四、Tcl表达式与运算符
1.表达式求值
表达式求值使用关键字expr
expr 函数 数字;
例子:set x 10;expr $x+10;得到结果20
2.自加关键字: incr
incr 变量 数字;
将变量与数字相加,结果赋给变量。
3.运算符列表
Tcl中支持的运算符
运算符 | 描述 |
---|---|
-、 +、 ~ 、! | 一元减、一元加、按位取反、逻辑非 |
+ 、-、 *、 / | 加、减、乘、除 |
** | 指数 |
<、> 、<=、 >= 、==、 != | 小于、大于、小于等于、大于等于、等于、不等于 |
eq、ne | 比较两个字符串等于、不等于 |
in、ni | 检查列表中包含、不包含字符串的运算符 |
&、 | 、^ |
&& | 逻辑与 |
<<、>> | 左移、右移 |
五、控制流语句
1.列表遍历
列表遍历使用foreach结构
foreach 变量名 $列表名[];
在括号中卫循环体,将遍历列表中的所有元素,元素值赋给语句中定义的变量。
2.if语句
if{判别式}{语句}
elseif{判别式}{语句}
else{语句}
Tcl提供了break和contiune两个关键词与If语句结合,用于循环控制。
3.for语句
for 初值 判别式 步进变化{执行语句}
4.while语句
while 条件
{执行语句}
5.过程(函数)定义
proc 过程名{参数1 参数2 ...}
{过程体return 参量}
Tcl脚本语言基础(2)相关推荐
- TCL脚本语言基础介绍
Tcl简介(一):Tcl 语法 Tcl 语法 Tcl是一种很通用的脚本语言,它几乎在所有的平台上都可以释运行,其强大的功能和简单精妙的语法会使你感到由衷的喜悦,这片文章对 Tcl有很好的描述和说明.如 ...
- tcl计算机语言,Vivado之TCL脚本语言基本语法介绍
TCL脚本语言 Tcl(Tool Command Language)是一种很通用的脚本语言,它几乎在所有的平台上都可以解释运行,而且VIVADO也提供了TCL命令行.最近发现TCL脚本貌似比GUI下操 ...
- Vivado中的TCL脚本语言
本文介绍了Tcl在Vivado中的基础应用,希望起到抛砖引玉的作用,指引使用者在短时间内快速掌握相关技巧,更好地发挥Vivado在FPGA设计中的优势. Vivado TCL脚本语言 使用Tcl作为它 ...
- TCL脚本语言光速入门教程,一篇就够了(超全查表)
目录 引子:初见TCL 基本命令 置换命令 普通置换 变量置换 命令置换 反斜杠置换 其他置换 脚步命令 eval命令 source命令 语言命令 简单变量 数组变量 重构变量及其操作 补充概念 全局 ...
- EDA实验课课程笔记(四)——TCL脚本语言的学习2
EDA实验课课程笔记(四)--TCL脚本语言的学习2 控制流 if 循环命令 while for foreach break和continue命令 switch source 过程(procedure ...
- EDA实验课课程笔记(三)——TCL脚本语言的学习1
本文参考资料为<Tcl语言教程>,感谢作者的分享,这里仅仅作为简单常用语法的入门,若有需要后期对本文进行添加补充. EDA实验课课程笔记(三)--TCL脚本语言的学习 前言(TCL综述) ...
- VBScript脚本语言基础
VBScript脚本语言基础 2.1 vbs脚本语言简介 2.2 第一个vbs脚本语言–hello world 打开记事本程序,在编辑窗口填写,保存文件的扩展名为:.vbs 对话框: 输入框 inpu ...
- Java前端学习(一)JavaScript脚本语言基础
JavaScript脚本语言基础 前言 一.JavaScript简介 1.应用 2.特点 3.示例 4.补充 二.语法基础 1.数据类型 2.表达式和运算符 3.流程控制语句 4.函数 三.对话框 1 ...
- tcl脚本学习-基础语法
本文参考公众号 数字IC与硬件设计的两居室 文章目录 tcl介绍 语法学习 tcl介绍 复杂文本处理 Tcl可以把文本中的每一行变为一个列表,最简单的列表就是包含由任意个空格.制表符.换行符分隔开的任 ...
最新文章
- mysql创建表的时候显式申明存储引擎
- SLAM知识[7]:依赖项和安装
- SQLServer 事务复制中使用脚本添加某个对象的发布
- Most socially-distanced subsequence CodeForces - 1364B(贪心)
- 2012暑假最后两次组队赛总结
- 移动前端框架重构几个关键问题
- Revit二次开发之“为Ribbon设置快捷键”
- python入门——P39类和对象:拾遗
- Numpy系列(三)常用random随机函数汇总
- 基于MATLAB的有源三相滤波器的设计,基于MATLAB的电力系统有源滤波器设计
- 虚拟机CentOS-7修改ip地址
- 入侵检测领域数据集总结
- RN如何使用原生的AndroidUI组件
- Zotero文献管理软件入门使用方法:软件下载、文献导入、引文插入
- X站全称是什么_考不上高中上什么专业
- matlab relieff函数,数据挖掘 ReliefF和K-means算法的应用
- php开启curl,给PHP安装和开启curl扩展
- 【英语语法入门】 第12讲 代词:指示代词和不定代词
- 我在网吧上网用的QQ给好友狂发病毒
- DHT网络原理制作bt采集蜘蛛,开源版