03_EDA工具课程之TCL.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
03_EDA工具课程之TCL

EDA技术实验 主要内容 四、控制结构 Switch switch 指令可用来比对许多样式 (pattern matching),并执行符合样式字符串的指令主体。switch 的语法为: switch flags value pattern1 body1 pattern2 body2 …?default defaultBody? 只有第一个样式比对符合的指令主体会被执行,其它则会被忽略。可以在switch指令最后加上一个default样式,代表如果没有任何一个样式比对符合的话,就执行default的指令主体。 你可以设定switch指令的flags,指定字符串的样式比对方法: -exact:使用完全相符的样式比对方法。即要比对的 value与比对的样式字符串完全相同才算比对成功。 -glob:使用glob style 的样式比对方法。请参考数据型态一节有关 string match的说明。glob style 样式比对是switch 指令的预设比对方法。 -regexp:使用『常规表示式 (Regular Expression)』的样式比对方法。有关常规表示式请见后述。 --:代表switch指令的flag设定已结束,接着的下一个字符串是要被比对的字符串 (value)。使用 -- 允许value是以 - 符号开头的字符串。通常我们会在value字符串前加上这个flag。 四、控制结构 值得注意一点是,switch样式比对有无使用大括号括住的影响,我们直接从底下的范例程序及执行结果来看: set x 5 set y 5 switch -glob -- $x \ $y { puts “x = y” } \ {[0-9]} { puts “ x = 5” } \ default { puts “x 10” } switch -glob -- $x { $y { puts “x = y” } [0-9] { puts “x = 5” } default { puts “x 10” } } 执行结果为: x = y x = 5 四、控制结构 While 指令语法: while booleanExpr body while 指令有两个参数,一是条件测试,一是指令主体。while指令会不断判断条件叙述,并在条件测试的结果为真时,执行指令主体。下列的程序会开启 autoexec.bat 档,读取档案中的内容并输出到Console中,程序中的gets指令会从指定的档案读取一行数据,并传回读取到的字符数,读到档案尾时传回 -1: set fileId [open c:/autoexec.bat r] while {[gets $fileId line] = 0} { puts stdout $line } close $fileId 四、控制结构 在使用while指令时要注意TCL的置换处理,例如底下的程序会是一个无穷循环,因为 TCL在执行while指令前,已将 $i 代换为 0才传递给while指令作为参数,因此while指令的条件测试结果永远为真: set i 0 ; while $i10 { incr I } 要避免请保持良好的写码习惯 (coding style),使用大括号来避免TCL的置换,避免非预期的错误: set i 0 ; while {$i 10} { incr I } 四、控制结构 For 指令语法: for initial test final body TCL 的for指令和C语言相类似,for 指令需要四个参数。第一个参数用来设定循环的起始状态,例如计数值的起始设定,第二个参数用来做条件测试,第三个参数是循环指令主体 (body) 每执行一次后要做的事,通常我们会在这边增减计数值。底下的范例使用循环印出三次目前的时间: for {set x 1} {$x = 3} {incr x } { puts [clock format [clock seconds] -format {%D %T} ] } =06/22/04 22:04:10 =06/22/04 22:04:11 =06/22/04 22:04:12 四、控制结构 其中clock seconds会以秒数为单位传回目前的时间,clock format则用来将指定的时间进行格式化,本例的格式化字符串为 {%D %T} 代表输出的时间格式为 %m/%d/%y %H:%M:%S。另外after 指令会让程序停留一段时间后继续进行,停留时间的单位为千分之一秒 (millisecond)。 之前while指令读取档案内容的范例,可以用for指令改写成 (可以看到此处在for指令的initial与fi

文档评论(0)

zw4044 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档