Quartus II中添加Tk程序的几个关键语句
0赞Quartus II支持Tcl程序并且提供了很多专用的Tcl扩展命令。Virtual JTAG的用户接口就需要通过Tcl和Virtual JTAG的Tcl API来编写。
通过Tcl编写的Virtual JTAG用户接口是通过命令行来实现的,Tcl程序提示并且捕获用户的输入来完成与用户的对话。当需要输入较多的参数时,命令行的串行输入方式效率很低。
Tk(Tool Kit)是基于Tcl的图形程序开发工具箱。通过Tk可以编写简易的用户界面,提高与用户交互的速度,方便用户的使用。
在最近的工作中,我开发 了一个Virtual JTAG工具,用于捕获CPU对FPGA寄存器的写入操作。最初只是简单地采用了命令行的提示方式,不方便使用。最近我把这个 Tcl程序改写成了Tk程序,给这个工具添加了图形化用户界面。
在改写过程中,我发现通过Quartus II的命令行可执行命令(比如quartus_stp -t)启动包含Tk语句的Tcl脚本时,需要注意两点:
1. 在Tcl脚本中调用Tk语句之前,需要添加一条init_tk命 令。不添加这条命令,Quartus II是不能识别Tk语句的。这一问题,在Altera的网站上给出了解释。
2. 在退出Tcl脚本之前,需要添加一条vwaitvariable命令。如果不添加这条命令的话,Quartus II会认为脚本已经执行完毕,并立即退出。采用vwait命令后,只 有当variable取值变为1时,脚本才会正常退出。所以需要初 始化该变量为0,在需要退出时置该变量为1。这一问题,在Altera的网站上查不到,我是在Quartus II的安装目录下逐个查找Tcl程序才找到答案的。
以上两点,在编写Modelsim中执行的包含Tk命令的脚本时都是不需要添加的。这 与Modelsim的用户界面是采用Tk编写实现的是有关的。
相关链接:
Error: "invalid command name" when running a Tcl script that uses Tk widgets
Debug a microcontroller-to-FPGA interface from the FPGA sideGUI界面的源程序可以在这篇文章中找到。