开发图型界面--TK

文摘   2023-03-29 14:31   韩国  

tcl 在IC 行业是使用非常广的一个脚本语言,很多EDA tool 也都是支持tcl的,所以tcl tk的学习资料可以找到很多。

像Synopsys的ICC DC CustomCompile Laker FC等等,或验证calibre Ansys的Totem RedHawk以及国产一些EDA tool.tcl/TK开发的脚本很容易集成到EDA工具中.

Tk GUI工具包最初是为TCL脚本语言编写的,现在几乎其他语言都有tk的扩展.

工作中对于一些复杂的command不方便记忆或一些自己开发的一些扩展我们都可以开发简易的GUI来包装下。

比如前面分享的p2p的功能,GUI部分就是TK写的。

下面举个简单的TK实例一个简陋的桌面挂件:

>wish clock.tcl

           

                                                                               


#!/usr/bin/env tclshpackage require Tkproc every {ms body} {eval $body; after $ms [info level 0]}proc drawhands w {    $w delete hands    set secSinceMidnight [expr {[clock sec]-[clock scan 00:00:00]}]    foreach divisor {60 3600 43200} length {45 40 30} width {1 3 7} {       set angle [expr {$secSinceMidnight * 6.283185 / $divisor}]       set x [expr {50 + $length * sin($angle)}]       set y [expr {50 - $length * cos($angle)}]       $w create line 50 50 $x $y -width $width -tags hands    }}proc toggle {w1 w2} {    if [winfo ismapped $w2] {        foreach {w2 w1} [list $w1 $w2] break ;# swap    }    pack forget $w1    pack $w2}#-- Creating the analog clock:canvas .analog -width 100 -height 100 -bg whiteevery 1000 {drawhands .analog}pack .analog#-- Creating the digital clock:label .digital -textvar ::time -font {Courier 24}every 1000 {set ::time [clock format [clock sec] -format %H:%M:%S]}bind . <1> {toggle .analog .digital}


IC模拟版图设计
IC 设计后端知识分享 EDA使用心得 Linux 环境 脚本分享 Perc开发 Custom compiler