Klientský program pro obsluhu JTAG programátoru XVC_FT220X01A.
Program pro obsluhu XVC_FT220X01A z Windows se jmenuje mlab_xvcd.exe. Program se neinstaluje (je to jediný exe soubor), ale potřebuje aby na počítači byly nainstalované drivery FTDI.
Program při prvním spuštění potřebuje povolit ve firewallu Windows síťovou komunikaci (ve Win7 si o to systém sám řekne, ve starších verzích Windows je třeba spustit konfiguraci systému firewall ručně a povolit programu síťování). Připomínám, že nastavení je třeba zopakovat, když program přesunete do jiného adresáře, nebo přejmenujete, protože nastavení platí pro konkrétní program na konkrétním místě v systému.
Program po spuštění vypíše informace a nalezené obvody FTDI a spojí se se zadaným zařízením, a když není zadáno tak s prvním nalezeným. Na příkazové řádce lze zadat spojení podle názvu, sériového čísla, umístění na USB sběrnici nebo podle pořadí nalezených obvodů FTDI.
Listen znamená, že je program připraven k navázání spojení ze strany vývojového systému. Současně se rozsvítí LED indikace aktivity (na plošném spoji označená ACT).
Nyní je třeba ve vývojovém prostředí spustit program iMPACT a v něm nastavit plugin pro XVC protokol. Program mlab_xvcd.exe vypisuje přesně to, co je třeba v programu iMPACT nastavit. Lze použít clipboard, ale pozor aby na začátku nebyla mezera (není vidět, ale plugin se nenajde a nespustí). Nastavení je v položce Output / Cable Setup.
Po potvrzení dojde k navázání spojení a program mlab_xvcd.exe začne do terminálu vypisovat tečky (program IMPACT každou sekundu pošle data po síti). Současně zhasne indikační LED a jen poblikává při zpracování dat.
Pro použití XVC potřebujeme mít nainstalované vývojové prostředí Xilinx ISE. Modernější vývojové prostředí Vivado zatím není otestované.
XVC server spustíme nejlépe na nějakém ARM počítači pro architekturu ARM je připravena binárka v SVN mlab, kterou lze přímo spustit. Nejprve je ale potřeba od připojeného modulu XVC_FT220X02A v systému odpojit driver kernelu. Pokud nemáme ke stejnému počítači připojených víc USB převodníků. tak můžeme jednoduše odebrat modul z kernelu.
sudo rmmod ftdi_sio
Pak můžeme přímo spustit XVC server.
$ sudo ./mlab_xvcd_arm926vfp [sudo] password for odroid: Xilinx Virtual Cable Network Server =================================== (c) miho 2013 v 1.08 FTDI Connect Library Version 0x10112 Devices Found 1 JTAG Port Pins TCK->DBUS0(TXD) TDI->DBUS1(RXD) TDO->DBUS2(RTS) TMS->DBUS3(CTS) LED->CBUS3+DBUS7(RI) Device 0 Description "XVC_FT220X" SerialNumber "DAWK5P9H" Location 0x110 Selected Device Description "XVC_FT220X" SerialNumber "DAWK5P9H" Device Driver Ver 0x10112 Baud Rate 1000000 USB Latency 1 Starting Network Server Host Name SOCIS1 Host Address eth0: 10.1.1.201 Bound Socket 2542 Set in IMPACT xilinx_xvc host=SOCIS1:2542 disableversioncheck=true Listen
Pokud program vygeneruje takovýto výpis, tak se k serveru můžeme připojit z vývojového nástroje Xilinx.
Vývojové prostředí budeme spouštět ze složky, kam bylo nainstalované. Obvykle něco jako /opt/Xilinx/14.7/ISE_DS V této složce spustíme inicializační skript který aktivuje proměnné prostředí.
source settings64.sh
Nyní můžeme spustit program iMPACT.
impact
V něm je potřeba otevřít, nebo vytvořit nový projekt a nastavit připojení k FPGA přes XVC. To lze udělat v záložce Output → Cable Setup.
V otevřeném dialogu je potřeba zapnout Cable Plug-in a do konfiguračního řádku nakopírovat nastavení, které vypíše mlab_xvcd_arm926vfp při spuštění. V našem případě je to: xilinx_xvc host=SOCIS1.local:2542 disableversioncheck=true
Všimně te si, že vložená konfigurační řádka “xilinx_xvc host=SOCIS1.local:2542 disableversioncheck=true” je mírně modifikovaná od výpisu XVC serveru “xilinx_xvc host=SOCIS1:2542 disableversioncheck=true”. Konkrétně je za hostname přidáno “,local” to umožní použití překladu adres pomoci zero-conf.
Program impact při správném nastavení do stavového řádku vypíše:
INFO:iMPACT - Socket opened successfully
A XVC server začne čekat na příkazy a periodicky vypisovat tečky.
Listen Accepted 10.1.1.230:54919 Handle Data .........................................