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
}
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

硬码农二毛哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值