09-08-2017 04:11 PM
[@admins: haven't found an appropriate section so please relocate]
I've had a Digilent Cmod A7 35T for a while now, and it always caused issues when programmed from Vivado. I blamed this on bad USB cables, broken Digilent cable drivers and at some point concluded that the board is just defective in this regard.
Now recently I acquired a second unit and coincidentally installed a new system without any Digilent drivers, just Vivado 2017.2 and all the stuff that comes with it. To my surprise, the board works out of the box but shows the same unreliable USB JTAG connection as the other one. No need to say that I tried a bunch of different USB cables and different USB ports, but the result is always the same.
For example, running the XADC Dashboard with all channels enabled for some time will always result in ...
ERROR: [Labtools 27-2312] Device xc7a35t_0 is no longer available.
Check cable connectivity and that the target board is powered up then
use the disconnect_hw_server and connect_hw_server to re-initialize the hardware target.
Use open_hw_target to re-register the hardware device.
Note that there is no indication at the OS level that the USB device has any problems or got reset or reconfigured and the Cmod A7 does not reset or reconfigure either, so it seems like the Hardware Manager just got confused and somehow dropped the connection.
Any ideas how to debug and ultimately fix this annoying issue?
Thanks in advance,
09-09-2017 07:06 AM
One item you haven't tried: the computer. See if a different pc has has the same issues. I had one of my dell laptops USB ports go flakey.
09-09-2017 08:05 AM
09-10-2017 07:19 AM
What bitstream are you loading? If the design exceeds the power supply's capacity, the Vccint may collapse, and you lose the JTAG link (may need to restart Vivado HWmanager.
09-10-2017 08:46 AM
I'm not loading a bitstream at all, I'm just running the XADC Dashboard.
But maybe the default demo code is over the limit.
Will test shortly with a minimal/empty design.
09-11-2017 10:47 PM
Took a little longer than expected, but I finally got to test with a rather minimal design ...
rgb <= (others => '1'); blink_proc : process(clk) variable count_v : unsigned(23 downto 0) := (others => '0'); begin if rising_edge(clk) then led <= std_logic_vector(count_v(23 downto 22)); count_v := count_v + "1"; end if; end process;
... the RGB LED is turned off and the other two LEDs show the counter MSBs.
It takes a little longer for the XADC dashboard to fail on that one, but it still fails sooner or later with ...
[Labtools 27-2269] No devices detected on target localhost:3121/xilinx_tcf/Digilent/210328A41652A. Check cable connectivity and that the target board is powered up then use the disconnect_hw_server and connect_hw_server to re-register this hardware target.
Note that the loaded design and the USB connection itself is completely unaffected.
Closing and reopening the target doesn't really work (Hardware Manager goes into some kind of endless loop).
Killing or terminating Vivado and restarting it makes it work again and the Hardware Manager can connect without problem.
10-11-2017 01:36 PM
Just tried with Vivado 2017.3 and the 'new' cable drivers.
Problem is similar, after some time, the XADC dashboard stops with zero values everywhere.
Vivado goes into an endless 'closing hardware target ...' loop.
Any new ideas?
Thanks in advance,