想了很久,昨天终于做成了——Avalon-MM总线上的vjtag master。 riple
Virtual JTAG可以很方便地用来向FPGA的内部逻辑输入激励,或者从FPGA的内部逻辑读取信息,输入和读取的动作可以完全受控于Tcl程序,而Tcl程序又可以实现很灵活的控制序列和友好的人机交互界面,Virtual JTAG + Tcl这样一种组合使得FPGA的调试具备了良好的可控性和可观测性。 riple
以往Avalon-MM总线的调试多借助Nios II CPU来实现,Nios II可以向总线上的从设备发起各种操作序列,并且可以把操作的结果通过UART反馈给调试者。但是这一调试环境是以一系列已经调试成功的代码作为先决条件的。为了一个很简单的调试,调试者也不得不编译一定量的代码;如果需要实现一定的人机交互功能,还需要UART的配合。对于像我这样从硬件角度入手学习Avalon-MM总线的人来说,这是一个不低的门槛。 riple
所以,如何把Virtual JTAG + Tcl这样易用的调试组合应用到Avalon-MM总线上,替代Nios II进行SOPC Builder的调试,一直是我在思考的一个问题。 riple
细想一下,其实也不难。只要把Virtual JTAG包装成一个Avalon-MM总线的主设备,并实现基本的主设备读写操作就成了。 riple
Virtual JTAG最适宜实现数据的操作,对于总线传输控制信号的操作不是很直接,需要采用边沿提取逻辑把Virtual JTAG的状态信号转化为Avalon-MM总线的同步操作信号,还需要结合waitrequest信号实现Avalon-MM总线的特定握手关系。 riple
采用这样的方式,Avalon-MM总线读操作可以分解为地址移入,读控制信号移入,waitrequest状态信息移出和判断,数据移出四步操作;Avalon-MM总线写操作可以分解为地址移入,数据移入,写控制信号移入,waitrequest状态信息移出和判断四步操作。 riple
实现了读写操作,再配合一段交互式命令输入的循环代码就可以实现在命令行控制Avalon-MM总线的目的了。 riple
此外,为了支持中断信号,还加入了中断信息读取的操作。 riple
压缩文件是添加好的SOPC Builder模块,操作很简单,在命令行运行quartus_stp -t avalon_vjtag_master.tcl即可。 riple
操作界面示例: riple
ash_riple_768180695 2009-6-27 21:41
用户1462585 2009-6-25 13:04
用户1109524 2007-7-24 17:22
ash_riple_768180695 2007-7-24 16:23
看看这个:http://www.ednchina.com/blog/riple/10862/category.aspx
用户1109524 2007-7-24 15:23
好,但是tcl用在什么地方了?
用户465637 2007-7-24 14:09
用户59221 2006-11-10 18:42
用户936143 2006-11-9 09:23
可以提供完整的底层USB驱动源码(c51),原理图及PCB,详细的设计手册。
用户936143 2006-11-8 15:19
有,而且得到了实际的产品应用,有兴趣的话可以联系:
Email:zxq914@sohu.com
用户63385 2006-11-8 14:45
有没有这样的实验板的成品啊