Python做上位机通过JTAG控制FPGA(1):如何使用quartus的tcl

时间:2024-04-07 22:51:27

参考资料:quartus handbook, Tcl scripting小节

quartus中有个In-System Sources & Probes的IP核,让我们可以使用spf通过jtag向FPGA写入数据和读取数据。但是如果我们要写入大量的数据,这种手动的方式是不行的,好在quartus提供了Tcl命令控制的方式。

那么问题来了,这个命令在哪里执行呢? Quartus中有个Tcl scripting的工具可以,但是需要打开Quartus软件,而且Python也调不了。

打开quartus安装路径下的bin64文件夹,如下图,可以看到有很多的可执行文件。双击打开他们都会闪退,需要先打开其中的tclsh.exe,然后再tcl命令环境下打开他们。
Python做上位机通过JTAG控制FPGA(1):如何使用quartus的tcl

因为tclsh.exe是通用的tcl shell,不包含quartus命令package,所以我们要用的其实是其他的.exe。
Python做上位机通过JTAG控制FPGA(1):如何使用quartus的tcl
比如这里包含In-System Sources & Probes的IP核package的quartus_stp.exe,在tclsh中用quartus_stp -s命令打开它,如下图。
Python做上位机通过JTAG控制FPGA(1):如何使用quartus的tcl
输入help可以看到已经load了的package,可以看到insystem_source_probe已经load完成
Python做上位机通过JTAG控制FPGA(1):如何使用quartus的tcl
这样我们就可以在这里写入命令完成对In-System Sources & Probes的IP核的读写了。

那么问题又来了,如何使用Python执行tcl命令呢?
把bin64文件夹路径加入环境变量,就可以通过cmd命令窗口中直接打开quartus_stp了,这样就可以在Python中使用os.system或者os.popen以执行cmd命令的方式执行tcl命令了。
.
.
.
.
.
.
.
.