原创 Visual Tcl——柳暗花明又一村!

2009-4-14 18:10 6314 5 12 分类: FPGA/CPLD
一年前由于项目的需要,开始用Tcl/Tk开发Modelsim中的GUI仿真工具。这一年来总共开发了4个基于Tcl的小工具,有用于控制仿真过程和参数的、有用于批量编译的、有用来控制串口的、还有用来控制JTAG接口的。其中两个是通过Tk提供图形界面的,一个是在命令行交互执行的,另外一个可以生成HTML格式的报告。这些,都算是提供用户界面的应用程序了。
在riple的带动下,同事们也开始对Tcl产生了兴趣。大家感兴趣的地方在于Tcl/Tk创建图形用户界面的能力:在Tcl中,不过十几行的代码就可以创建一个极其简单却具备一定实用性的图形用户界面。通过修改现成的示例,也可以依样画葫芦地创建一个比较美观的GUI。但是随着大家学习的深入,却发现用Tcl/Tk开发稍微复杂些的GUI变得困难起来。毕竟,不熟悉Tcl的基本语法和数据结构,一入门就编写Tk程序是很难的。(riple学习Tk是为了给已经很好用的Tcl脚本添加友好的用户界面,同事们却更多地是被Tk创建的用户界面吸引到Tcl语言的学习上来的。)
其实,在riple开发Tk程序的过程中,也发现创建复杂的图形界面很繁琐,学习曲线开始进入了平台期。一来是由于对Tk提供的控件及其众多的属性不熟悉,边用边学边查书既不系统又费力;二来是由于没有下功夫学习、参考现成的例子(深入地学习一个由经验丰富的开发人员创建的Tcl程序,可以起到事半功倍的效果,获得许多宝贵的编程思想和技巧。最初接触Tk时参考的一个MoreThanIP提供的Tcl/Tk程序就让我受益良多。);还有一个重要的原因,是缺乏易用的开发工具,手工维护大量的Proc和Widget很困难。

春节回家在书店里看到一本《基于SCILAB的ARM-LINUX嵌入式计算及应用》,由此了解接触到了Scilab这一开源的工程计算软件。也是在这本书中,我发现了一个用来开发Tcl/Tk图形用户界面的开源工具——Visual Tcl。
正在我对Tcl/Tk的学习进入“柳暗花明”阶段时,一个好工具偶然而及时的出现给我指明了努力的方向,让我接触到了更多Tcl同好的文章,给了我深入学习的动力,解除了我学习上的困惑。掌握了这个工具,一定会让我对Tcl/Tk的认识更深入一步,开发效率更上一层楼!

3cb73b66-fb39-42a3-9199-f8dcc8af2cc1.gif

相关链接:
Visual Tcl的介绍页面 这是在Google上搜索到的第一项,可是该页面上的链接却都失效了。
Visual Tcl的下载页面 这才是真正可用的!解压后再添加一个启动文件,就可以用了:rar
Visual Tcl的相关介绍 叫同一个名字的工具还真不少!
Tristan的日志 向Tristan前辈致敬!
vtcl-bin Tristan对Visual Tcl的改进和扩展开源项目!

文章评论7条评论)

登录后参与讨论

用户1601073 2009-11-13 20:46

我试过在midelsim中加载了,这个时候可以启动界面,但是modelsim界面没了,点击界面上的启动按钮,modelsim启动,又出现和以前一样的问题。你说的后一种思路我试试,谢谢啦

ash_riple_768180695 2009-11-13 17:08

请不要问我关于Linux的问题,我基本上不会!也请不要问我关于VTcl的问题,我基本上也不会。你的问题有关Modelsim和Tcl,我有一个建议,可能不适合你的情况,但是请你试一试,可能会帮你找到一些线索:尝试在Modelsim下启动你的Tk界面,效果应该会不同。如果效果不同的的话,应该是启动Modelsim后加载了某种Tcl/Tk的软件包(比如BWidget)。类似问题在Windows下使用Quartus II时调用Tk也会遇到。请你在Modelsim安装路径的tcl文件夹下,确认加载了哪一种Widget软件包。

用户1601073 2009-11-12 14:10

我在linux下使用vtcl编写一个界面,有一个功能是点击start按钮启动modelsim,用的语句是exec ./modelsim,这里的modelsim是一个linux环境下的快捷键,每次运行时,倒是可以启动modelsim,但是用vtcl编写的界面上的组件全部变得模糊,看不到了,只有关闭modelsim界面才重新恢复。大侠,这个问题怎么解决啊。我的邮箱是ycd2008@163.com 。在此先谢谢啦

coyoo 2009-8-14 15:22

这是作者对Visual Tcl 1.6.1 Enhance的说明,要是博主能继续写一个使用说明就好了。

coyoo 2009-8-14 15:21

Visual Tcl 1.6.1 加强版其实就是我为可视化开发工具 Visual Tcl 写的几个重要扩展的插件,并改进了部分代码之后打包而成的。不同的是,这个版本本身是只有一个可执行文件的绿色版软件,你不需要再安装任何 Tcl/Tk 运行环境如 ActiveTcl 就可以进行开发工作。另一个主要的改进是大大简化了 Tcl/Tk 程序员打包发布程序的繁琐步骤,只要选择 File->Save as With Binary... 即可方便地将 Tcl 脚本(比如文件名叫 demo.tcl)发布为一个单独的可执行文件,里面包括大部分平时编程所需要的 Tcl/Tk 扩展。当然你还可以自行添加与删除不需要的扩展以减小发布程序的大小,只需到该 demo.tcl 的相同目录下寻找自动生成的 ./demo.vfs/lib/ 目录,向其中添加或删除就扩展可以了,然后只要再选择 File->Save as With Binary... 就可以重新发布包含你自定义扩展的单独可执行文件了。单独可执行文件的好处是不需要运行该程序的电脑安装 Tcl/Tk 运行环境就可直接运行。这有点像 Python 中 py2exe 所做的,不同的是该功能已经集成到 Visual Tcl 的一个菜单中了,你所做的只是轻轻一点。 1. Tile 扩展中大多数常用的部件。 2. VU 扩展中的三维饼图等部件。 3. TkVideo 扩展。只支持 Windows 系统,可播放系统支持的任何视频。 4. 重写了打包 .tcl 为可执行文件的代码,支持直接生成 x86 平台下 Win32/Linux 的独立可执行文件,生成的程序使用 tclkit 8.5。 5. Visual Tcl 也被打包成了一个独立的可执行文件,使用 tclkit 8.4.17 作为运行时环境。 所有新插件都经过测试,并已经在几个行业软件中大量使用,稳定可靠。Tile 扩展提供的按钮、输入框、下拉列表框、滚动条等控件支持 Windows XP 和 Aqua 本地外观,另有多种跨平台外观选择。Tcl/Tk 写的程序也能有漂亮的外观啦!Visual Tcl 是免费的开源软件,不需要购买,也没有讨厌的插件。祝大家用的开心!

coyoo 2009-8-14 14:24

没弄明白Tristan哪个包是做什么用的?是不是有了Vtcl-bin就不需要Visual Tcl工具了?还有就是V-tcl和Active-tcl的关系是怎样的?是不是QuartusII和ISE的关系那样呢?

用户396103 2009-7-18 21:15

向riple前辈学习!呵呵
相关推荐阅读
ash_riple_768180695 2015-12-18 11:06
学习示例程序:FPGA快速系统原型设计--敏捷实践
        学习与开发板配套的示例程序,是敏捷实践的起点。示例程序是厂商针对开发板上提供的硬件资源和接口量身定做的工程,可以展示其FPGA芯片的功能和性能特点。从示例程序入手最大的好处就是:示...
ash_riple_768180695 2015-11-03 16:46
开发板选取:FPGA快速系统原型设计--敏捷实践
    既然是“实践”,就不能只谈编码和仿真,必须要上板运行、调试。这个虚拟项目的目标是实现一块兼容Intel82574L以太网控制器的千兆网卡,需要运行在一块具备PCIe接口和10/100/10...
ash_riple_768180695 2015-10-22 12:41
开篇:FPGA快速系统原型设计--敏捷实践
    虽然借用了 “系统原型开发”的标题,本系列文章将围绕FPGA IP级别的开发这个主题展开,如果可能的话,将扩展至FPGA System级别的开发。     先上一篇PPT:RSPwFP...
ash_riple_768180695 2013-08-26 10:21
学习SystemVerilog(二)——学习它的理由
    学习SystemVerilog的理由也很多,我在阅读SystemVerilog for Design 和 SystemVerilog for Verification两本书前言的过程中,总...
ash_riple_768180695 2013-08-26 10:19
学习SystemVerilog(一)——不学习它的理由
    想要学习SystemVerilog已经很久了。曾经尝试通过Accellera网站上给出的LRM学习,怎奈内容众多,找不出入手点和重点,只能望而却步。虽然手头有三本SystemVerilog...
ash_riple_768180695 2011-06-26 23:20
Hardware-Assisted IEEE1588 Implementation Analysis
06/18/11 11:00:05 PM         最近一段时间在研究IEEE1588-2008精确时间同步协议(PTP)。该协议可以在软件中实现,如果需要提高时间同步...
我要评论
7
5
关闭 站长推荐上一条 /2 下一条