TCL学习
文章平均质量分 56
记录自己学习TCL的过程
小苍蝇别闹
FPGA开发和电路设计;集成电路测试
展开
-
如何方便地使用TCL恢复带BD设计的Vivado工程
介绍了如何通过Vivado生成tcl脚本,并在稍加修改后用于恢复工程。原创 2023-08-02 19:45:29 · 1281 阅读 · 0 评论 -
TCL练习7:switch
TCL中switch有两种结构。 switch ?options? string pattern body ?pattern body ...? switch ?options? string {pattern body ?pattern body ...?}第一种和第二种之间的差别仅仅是一对大括号。正是由于这个区别,应用是要特别注意,否则程序无法输出正确结果。第一次使用switch时我写了下面这段程序。 switch $cmd { $::CMD_REPEAT..原创 2021-04-22 00:31:09 · 1580 阅读 · 0 评论 -
TCL练习6:通过递归方法搜索文件夹并返回指定后缀文件(包含子目录)
写这个TCL脚本的主要目的是搜索目标文件夹及其子文件夹下的所有文件,然后记录在指定的文件中。可以指定目标文件夹名称、信息记录位置和文件后缀等3种参数。该脚本将用于Vivado的non-project编译过程,被综合和布线脚本调用。define.tcl中定义了目标文件夹名称、信息记录位置、文件后缀类型、器件part等信息。findAllFiles.tcl脚本根据define.tcl中的参数搜索目标文件夹,当文件后缀类型参数(ext)为.hdl时,会搜索.v、.vh、.vhd、.sv等文件的路径和名称,原创 2021-04-13 14:41:42 · 3397 阅读 · 1 评论 -
TCL练习5:string、变量$的使用以及转义符何时发挥作用
目录练习string用法说明string compare ?-nocase? ?-length n? string1 string2string equal ?-nocase? ?-length n? string1 string2string first string1 string2 ?startindex?string index string charIndexstring last string1 string2 ?startinde...原创 2021-04-08 22:14:16 · 3033 阅读 · 0 评论 -
TCL练习4:递归和return
练习递归实现阶乘计算以及return的使用方法。proc recurrence { n } { if { ![string is integer $n] } { return -code error "This is not an integer!" } if { $n<=2 } { return $n } else { set val [expr $n*[recurrence [expr $n-1]]]原创 2021-04-07 10:51:43 · 1655 阅读 · 0 评论 -
TCL练习2:文件I/O
练习进行文件操作,包括打开文件、创建文件、读写文件等。set path [pwd]/Desktop/FileIO/set name "dont_touch.xdc"set newName "dont_touch_new.xdc"set optr "r"set optw "w+"set rdFile ""set retval [eval catch {{set fdr [eval open [append rdFile $path $name] $optr]}} msg]if { $re原创 2021-04-06 16:05:39 · 535 阅读 · 0 评论 -
TCL练习3:append、lappend
append将多个变元按顺序组合起来,并形成一个新的字符串。lappend将多个变元按顺序组合起来,形成一个新的List。set myCurrentLogVar1 ""set myCurrentLogVar2 ""set script1 { puts "logging now" lappend myCurrentLogVar1 "Say: "}set script2 { puts "logging out" append myCurrentLogVar2原创 2021-04-06 09:56:39 · 5246 阅读 · 0 评论 -
TCL练习1:open、eval和proc
简单使用open、eval和proc。open可用于打开、创建文件。eval带一个或多个变元,可以由一个或多个命令组成,eval采用concat命令的风格连接所有变元,执行命令并且返回执行结果。proc可以创建一个过程,以便在程序其他地方重复调用。proc create_report { reportName command } { set status "." append status $reportName ".fail" if { ![file exists $stat原创 2021-04-06 09:54:55 · 3158 阅读 · 0 评论