Ubuntu 下Xilinx USB cable的驱动问题
解决方法来自这里:http://rmdir.de/~michael/xilinx/
问题缘由及解决办法:
When using XILINX JTAG software like Impact, Chipscope and XMD on Linux, the proprietary kernel module windrvr from Jungo is needed to access the parallel- or usb-cable. As this module does not work with current linux kernel versions (> 2.6.18) a library was developed, which emulates the module in userspace and allows the tools to access the JTAG cable without the need for a proprietary kernel module.
是的,就是需要编译这个库,来模仿module的行为,其他问题在上面的主页都好找,我是从git下的最新edition来用的,也不管稳定版还是开发版了:
1.新建个文件夹
2.git init
3.git clone git://git.zerfleddert.de/usb-driver
4.make
A:编译前需要先安装libusb-dev的包,否则报错找不到usb.h:sudo apt-get install libusb-dev
B:Built library is 64 bit. Run `make lib32' to build a 32 bit version,只是提醒,不影响结果
5.找个地方把库给copy过去,然后,在你source settings64.sh之后,打开ise之前,执行如下语句:
export LD_PRELOAD=/yourpath/libusb-driver.so
6.使用包里的脚本把usbcable的配置文件拷过去:sudo ./setup_pcusb /yourpath/12.4/ISE_DS/ISE
7.最后,安装一个不知道干嘛的程序:sudo apt-get install fxload
如果在git上找不到,可以看这里:/Files/pied/usb-driver.zip
我做完上面的动作之后,impact打开不再有找不到module的提示,但是仍然没有发现device,重新启动计算机。重启的时候提示usb加载有问题,是否跳过,按s跳过。。。
重启后启动impact,一切正常。
关于Chipscope analyzer
1.analyzer这个可执行文件在目录$ise_install_dir/ISE/bin/lin64/,所以需要把这个路径添加到PATH里:
sudo vi ~/.bashrc
export PATH=$PAHT:$ise_install_dir/ISE/bin/lin64/:
2.没法执行analyzer
原因:ubuntu里面使用bash,他脚本里面用的sh,需要改变它调用的程序:
解决:修改下面两个文件
$ise_install_dir/ISE/bin/lin64/unwrapped/analyzer
$ise_install_dir/ISE/bin/lin64/unwrapped/cs_common.sh
把第一行的#!/bin/sh替换成#!/bin/bash/
此时,没其他问题的话,在terminal中输入analyzer就可以运行chipscope pro analyzer。
经测试,此方法添加usb blaster之后,analyzer也可以正确识别usb blaster。
操作方法:JTAG Chain->Xilinx USB Cable...
如果已有给Cable上电,此时,analyzer软件会自动链接cable。你可以尝试在弹出的窗口中点击blink the LED,usb blaster旁边的LED就会闪烁。
选择合适参数,OK,然后你就可以使用chipscope了。
另外,这里的3Mhz,12Mhz什么的,和ILA没什么关系的,它由usb blaster的硬件决定,是ICON和电脑间的通信速率,数据都是存在ICON内后被电脑通过JTAG工具读出来。
使用问题记录:
1)The idcode read from the device does not match the idcode in the bsdl File
Xilinx官方的记录是供电或者是电磁兼容问题。最后通过降低了impact使用JTAG的速率(从6Mhz降为3Mhz),解决了问题。具体参考了文档AR#13529.