EDN首页   博客首页

日志档案

发表于 2006-10-19 18:30:31

7

标签: JTAG  FPGA  

虚拟JTAG工具在FPGA调试中的应用(待续)

    最近学习了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

  1.     sld_virtual_jtag 的说明:rar。只给出了VHDL的例化方式,对于各个选项的配置给了说明。  riple
  2.     ::quartus::jtag Tcl命令包的说明:rar。每个命令都给了使用的例子,拷到一个空Tcl文件中,保存后用Quartus的Tcl scripts工具运行即可。
  3.   Altera提供的用户指南:太大了传不上来,给个链接,自己下吧。里面有JTAG协议的讲解和两个示例。 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

  1. JTAG协议中的接口(TDI、TDO、TCK)。TDI是IP core的输出;TDO是IP core的输入;没有TMS,这个引脚的功能被另一组接口解析并代替了;TCK是唯一没有变化的引脚。  riple
  2. 命令寄存器接口(IR_IN[]、IR_OUT[])。这组接口是Tcl命令和用户逻辑交互的接口,很有用。也可用来简单地传递数据。  riple
  3. 虚拟JTAG TAP控制器状态接口(virtual_state_...)。这组接口是虚拟JTAG的状态机输出,一个状态对应一个输出,可以看作状态信号灯。这组信号就是TMS的解析。如果需要实现复杂地数据传递功能,一定要理解这组信号的功能。  riple
  4. 硬件JTAG TAP控制器状态接口(jtag_state_...)。这组接口是硬件JTAG的状态机输出。这些功能暂时不会用,可能是用来实现更高级控制和数据传递功能的。 riple

 

    理解虚拟JTAG概念的关键有以下两点: riple

  1. 在IP core的背后有四根看不见的JTAG信号,这四根信号才是我们通常从外部理解的JTAG。  riple
  2. 看得见的TDI和TDO是两根等待连接的信号(就像墙上插座里的两根线),我们通过在这两根线之间或串接或并接或简单或复杂的逻辑,实现我们的JTAG链路。 riple

    理解了这些概念,看懂用户指南应该不成问题了。然后再看示例程序的verilog代码。 riple

    我的一个空想:如果Altera能够把用户不可见的硬件JTAG电路接口开放出来(用户可见),那么用户就可以把这个接口上的标准JTAG接口连接到PLD的引脚上,再把这组引脚连接到外部JTAG电路上,那么这个IP core就不再是“虚拟”的了。 riple

 

相关链接:Actel Application Note:How to Use UJTAG riple

系统分类: CPLD/FPGA   |   用户分类: Virtual JTAG   |   来源: 原创   |   【推荐给朋友】   |   【添加到收藏夹】

    阅读(2534)    回复(9)  

投一票您将和博主都有获奖机会!

最新评论

  • cocappjj

    2006-10-20 9:51:37

    原创的,赞一个

  • riple

    2006-11-13 16:46:14

    感谢,感谢支持。

  • speedboy

    2006-11-13 16:20:00

    不错

  • riple

    2006-11-1 19:06:50

    这几天忙着结婚。接下来的计划是把virtual jtag的verilog示例代码分析一下,把有共性和常用的东西提取出来。最终产出的可以通用的结果可能有五个:

    1. Tcl命令的模板。

    2. verilog代码的模板。

    3. jtag 串口的实现和代码。

    4. mc8051 调试工具的实现和代码。

    5. 自动jtag链插入的Tcl代码(这个目标比较大)。

  • wpjh

    2006-10-24 17:46:29

    有帮助.

  • wor

    2006-10-20 11:19:33

    不错!

  • 孙文豪

    2006-12-12 16:05:42

    最近也在研究JTAG,有问题还想向您请教

    不知道您的联系方式

    给个E-Mail吧

    我的是scorpion@mail.nankai.edu.cn

    谢谢

  • riple

    2006-12-13 10:39:54

    俺的邮箱ash_riple@hotmail.com

  • wn_0619

    2008-3-20 12:05:15

    这里的气氛和版主风格感觉很好,以后打算常来。