FPGA调试中常用TCL语法简介

本文转载自: 硬码农二毛哥微信公众号

使用Jtag Master调试FPGA程序时用到tcl语言,通过编写tcl脚本,可以实现对FPGA的读写,为调试FPGA程序带来极大的便利,下面对FPGA调试过程中常用的tcl语法进行介绍,并通过tcl读FIFO的例子,说明tcl在实际工程中的应用。

TCL语法

目录

D盘下tcl目录下文件test.tcl,在TCL中这样表示:

D:/tcl/test.tcl
cd D:/tcl/test.tcl ;#切换目录
pwd ;#显示当前路径

置换

set x 10 ;# 10
set y x+100 ;# x+100
set y $x+100 ;# 10+100
set y [expr $x+100] ;#110

数据写入文件

set f [open new.txt w+] ;# 读写方式打开文件,如文件存在则清空文件内容,否则创建新的空文件
set a 10
set b 100
puts $f "$a,$b" ;#将a、b写入文件
close $f ;#关闭文件

从文件中读取数据

proc read_file { } {
set f [open ./test.txt r] ;#打开文件
while { [gets $f line] >= 0 } { ;#获取文件每行数据
puts $line ;#将数据输出
}
}

获取文件中的内容

proc read_txt {} {
set f [open ./test.txt r]
gets $f line
puts $line
set num [split $line \t] ;#分割数据
puts [lindex $num 0] ;#输出分割后数据
puts [lindex $num 1]
}

TCL语句读FIFO

使用Verilog代码编写代码将数据写入FIFO,当写入一定量数据后,使用tcl脚本通过JTAG Master读取FIFO中的数据并存储到txt文件中,观察FIFO中数据是否正确,tcl脚本中读FIFO代码如下。

proc read_fifo { file } {
set num [jtag_read 0x000000dd] ;#读取FIFO中数据个数
set f [open $file w+]
for {set i 0} {$i <= $num} {incr i 1 } {
jtag_write 0x000000aa 1 ;#将FIFO读使能置1
jtag_write 0x000000aa 0 ;#将FIFO读使能置0,Verilog中使用该信号上升沿
set result [jtag_read 0x000000bb] ;#读取FIFO输出数据
set data "$i\t$result" ;#data为编号与输出数据
puts $f $data ;#保存数据到文件中
}
close $f
}

最新文章

最新文章