一、简介
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)相关推荐

  1. TCL脚本语言基础介绍

    Tcl简介(一):Tcl 语法 Tcl 语法 Tcl是一种很通用的脚本语言,它几乎在所有的平台上都可以释运行,其强大的功能和简单精妙的语法会使你感到由衷的喜悦,这片文章对 Tcl有很好的描述和说明.如 ...

  2. tcl计算机语言,Vivado之TCL脚本语言基本语法介绍

    TCL脚本语言 Tcl(Tool Command Language)是一种很通用的脚本语言,它几乎在所有的平台上都可以解释运行,而且VIVADO也提供了TCL命令行.最近发现TCL脚本貌似比GUI下操 ...

  3. Vivado中的TCL脚本语言

    本文介绍了Tcl在Vivado中的基础应用,希望起到抛砖引玉的作用,指引使用者在短时间内快速掌握相关技巧,更好地发挥Vivado在FPGA设计中的优势. Vivado TCL脚本语言 使用Tcl作为它 ...

  4. TCL脚本语言光速入门教程,一篇就够了(超全查表)

    目录 引子:初见TCL 基本命令 置换命令 普通置换 变量置换 命令置换 反斜杠置换 其他置换 脚步命令 eval命令 source命令 语言命令 简单变量 数组变量 重构变量及其操作 补充概念 全局 ...

  5. EDA实验课课程笔记(四)——TCL脚本语言的学习2

    EDA实验课课程笔记(四)--TCL脚本语言的学习2 控制流 if 循环命令 while for foreach break和continue命令 switch source 过程(procedure ...

  6. EDA实验课课程笔记(三)——TCL脚本语言的学习1

    本文参考资料为<Tcl语言教程>,感谢作者的分享,这里仅仅作为简单常用语法的入门,若有需要后期对本文进行添加补充. EDA实验课课程笔记(三)--TCL脚本语言的学习 前言(TCL综述) ...

  7. VBScript脚本语言基础

    VBScript脚本语言基础 2.1 vbs脚本语言简介 2.2 第一个vbs脚本语言–hello world 打开记事本程序,在编辑窗口填写,保存文件的扩展名为:.vbs 对话框: 输入框 inpu ...

  8. Java前端学习(一)JavaScript脚本语言基础

    JavaScript脚本语言基础 前言 一.JavaScript简介 1.应用 2.特点 3.示例 4.补充 二.语法基础 1.数据类型 2.表达式和运算符 3.流程控制语句 4.函数 三.对话框 1 ...

  9. tcl脚本学习-基础语法

    本文参考公众号 数字IC与硬件设计的两居室 文章目录 tcl介绍 语法学习 tcl介绍 复杂文本处理 Tcl可以把文本中的每一行变为一个列表,最简单的列表就是包含由任意个空格.制表符.换行符分隔开的任 ...

最新文章

  1. mysql创建表的时候显式申明存储引擎
  2. SLAM知识[7]:依赖项和安装
  3. SQLServer 事务复制中使用脚本添加某个对象的发布
  4. Most socially-distanced subsequence CodeForces - 1364B(贪心)
  5. 2012暑假最后两次组队赛总结
  6. 移动前端框架重构几个关键问题
  7. Revit二次开发之“为Ribbon设置快捷键”
  8. python入门——P39类和对象:拾遗
  9. Numpy系列(三)常用random随机函数汇总
  10. 基于MATLAB的有源三相滤波器的设计,基于MATLAB的电力系统有源滤波器设计
  11. 虚拟机CentOS-7修改ip地址
  12. 入侵检测领域数据集总结
  13. RN如何使用原生的AndroidUI组件
  14. Zotero文献管理软件入门使用方法:软件下载、文献导入、引文插入
  15. X站全称是什么_考不上高中上什么专业
  16. matlab relieff函数,数据挖掘 ReliefF和K-means算法的应用
  17. php开启curl,给PHP安装和开启curl扩展
  18. 【英语语法入门】 第12讲 代词:指示代词和不定代词
  19. 我在网吧上网用的QQ给好友狂发病毒
  20. DHT网络原理制作bt采集蜘蛛,开源版

热门文章

  1. golang 中 signal 包的 Notify 函数用法介绍
  2. html5 video自动播放下一个源码
  3. 做头条自媒体运营的4点技巧
  4. 六、完成Teigha.net在界面插入直线,多线段,弧线,圆形,点,图片,dwf文件等功能
  5. 中国共享汽车进军俄罗斯;华为在印度当地推进5G技术;传博通千亿美元收购高通丨价值早报
  6. Java微信扫码支付
  7. 中软面试:飞机加油飞地球一圈的问题
  8. 什么是期货反向跟单?
  9. 【机器学习】线性回归之波斯顿房价预测
  10. 使用 Jackson 操作 JSON 数据