最近学习了Altera的Virtual JTAG工具的使用。下面是我的使用心得。 riple
Altera在Quartus II 6.0中加入了一个sld_virtual_jtag 参数化宏单元模块,并提供了相应的Tcl程序包。有了这套工具,使用sld_virtual_jtag 和相应的Tcl命令,我们就可以构建自己的虚拟JTAG链路,并进行自定义的JTAG调试了。 riple
一、 相关文件 riple
后面的链接是Quartus帮助文件中的内容,前两个是我从Help里拷出来用Word保存的html文件,由于里面的一些链接指向本地文件,会被当作危险代码,不理就是了,不是病毒。 riple
二、 Virtual JTAG要点解析 riple
澄清一个概念:所谓虚拟JTAG,是Altera用PLD上的硬件JTAG电路和可编程逻辑资源搭建的一个IP core。这个IP core实现了JTAG接口电路的功能,但本身不是硬件JTAG电路的一部分,是用可编程逻辑“虚拟”出来的。 riple
这个IP core有两个接口:一个接口在布局布线时连接到硬件JTAG电路上,用户不可见;一个接口由用户通过电路图或者HDL例化到代码中,并通过这个接口自定义JTAG操作。 riple
这个IP core的功能 = JTAG信号hub + JTAG TAP控制器 + IR/DR IO。 riple
用户看到的是虚拟JTAG电路对内的接口,看不到硬件JTAG电路接口;并且这个接口是从JTAG TAP控制器引出的,信号方向和大家通常从外部对JTAG电路的理解不一样,所以容易引起混淆,理解上会有一定的困难。 riple
用户看到(可以利用)的接口有四组: riple
理解虚拟JTAG概念的关键有以下两点: riple
理解了这些概念,看懂用户指南应该不成问题了。然后再看示例程序的verilog代码。 riple
我的一个空想:如果Altera能够把用户不可见的硬件JTAG电路接口开放出来(用户可见),那么用户就可以把这个接口上的标准JTAG接口连接到PLD的引脚上,再把这组引脚连接到外部JTAG电路上,那么这个IP core就不再是“虚拟”的了。 riple
用户377235 2014-5-12 13:02
用户1739054 2014-3-24 17:43
用户377235 2012-3-22 09:55
ash_riple_768180695 2011-8-9 21:15
用户351126 2011-8-6 14:47
用户837343 2010-6-2 18:37
用户266529 2010-4-3 00:54
用户1542249 2010-3-17 23:25
ash_riple_768180695 2010-3-11 18:12
用户1542249 2010-3-11 13:11