-
Notifications
You must be signed in to change notification settings - Fork 26
Digilent Atlys Board: Adept Setup for Xilinx ISE
These instructions are for setting up Adept tools for usage with Digilent Atlys board and the Xilinx ISE tools.
Download Xilinx ISE. The current version is 14.7 and released on the Oct 23, 2013.
http://www.xilinx.com/support/download/index.html/content/xilinx/en/downloadNav/design-tools.html
"Full Installer for Linux (TAR/GZIP - 6.09 GB)"
MD5 SUM Value: e8065b2ffb411bb74ae32efa475f9817
These instructions are based off of the instructions found at http://lighttomorrow.wordpress.com/2011/12/18/how-to-install-digilent-cable-driver-for-xilinx-design-suite-on-ubuntu-11-10/ and http://wiki.gentoo.org/wiki/Xilinx_USB_JTAG_Programmers#Digilent_Xilinx_USB_JTAG_cable but updated to use the latest Adept information.
digilent.adept.runtime_2.13.1-x86_64
digilent.adept.utilities_2.1.1-x86_64
libCseDigilent_2.5.2-x86_64
# This assumes that ISE was installed to /opt/Xilinx/
tar -zxvf libCseDigilent_2.5.2-x86_64.tar.gz
cd libCseDigilent_2.5.2-x86_64/ISE14x
sudo mkdir -p /opt/Xilinx/14.4/ISE_DS/ISE/lib/lin64/plugins/Digilent/libCseDigilent/
sudo cp plugin/* /opt/Xilinx/14.4/ISE_DS/ISE/lib/lin64/plugins/Digilent/libCseDigilent/
Running IMPACT
. /opt/Xilinx/14.4/ISE_DS/settings64.sh
impact
If you get errors like WARNING:iMPACT - Module windrvr6 is not loaded. Please reinstall the cable drivers. See Answer Record 22648.
or WARNING:iMPACT:923 - Can not find cable, check cable setup !
then the Digilent Adept plugin is not been successfully found. Try following the install instructions again.
You should get an image which looks like this;
INFO:iMPACT - Current time: 20/04/14 3:03 PM
// *** BATCH CMD : ReadIdcode -p 1
Maximum TCK operating frequency for this device chain: 0.
Validating chain...
Boundary-scan chain validated successfully.
'1': IDCODE is '01000100000000001000000010010011'
'1': IDCODE is '44008093' (in hex).
'1': : Manufacturer's ID = Xilinx xc6slx45, Version : 4
INFO:iMPACT - Current time: 20/04/14 3:05 PM
// *** BATCH CMD : ReadUsercode -p 1
Maximum TCK operating frequency for this device chain: 0.
Validating chain...
Boundary-scan chain validated successfully.
'1': Usercode is 'ffffffff'
INFO:iMPACT - Current time: 20/04/14 3:05 PM
// *** BATCH CMD : ReadStatusRegister -p 1
Maximum TCK operating frequency for this device chain: 0.
Validating chain...
Boundary-scan chain validated successfully.
'1': Reading bootsts register contents...
[0] VALID_0 - ERROR OR END OF STARTUP (EOS) DETECTED : 1
[1] FALLBACK_0 - FALLBACK RECONFIGURATION ATTEMPT DETECTED : 0
[2] RESERVED : 0
[3] WTO_ERROR_0 - WATCHDOG TIME OUT ERROR : 0
[4] ID_ERROR_0 - FPGA DEVICE IDCODE ERROR : 0
[5] CRC_ERROR_0 - CYCLIC REDUNDANCY CHECK (CRC) ERROR : 0
[6] VALID_1 - ERROR OR END OF STARTUP (EOS) DETECTED : 0
[7] FALLBACK_1 - FALLBACK RECONFIGURATION ATTEMPT DETECTED : 0
[8] RESERVED : 0
[9] WTO_ERROR_1 - WATCHDOG TIME OUT ERROR : 0
[10] ID_ERROR_1 - FPGA DEVICE IDCODE ERROR : 0
[11] CRC_ERROR_1 - CYCLIC REDUNDANCY CHECK (CRC) ERROR : 0
[12] STRIKE CNT - STRIKE COUNT FOR FALLBACK ATTEMPTS : 0
[13] STRIKE_CNT - STRIKE COUNT FOR FALLBACK ATTEMPTS : 0
[14] STRIKE_CNT - STRIKE COUNT FOR FALLBACK ATTEMPTS : 0
[15] STRIKE_CNT - STRIKE COUNT FOR FALLBACK ATTEMPTS : 0
'1': Reading status register contents...
[0] CRC ERROR : 0
[1] IDCODE ERROR : 0
[2] DCM LOCK STATUS : 1
[3] GTS_CFG_B STATUS : 1
[4] GWE STATUS : 1
[5] GHIGH STATUS : 1
[6] DECRYPTION ERROR : 0
[7] DECRYPTOR ENABLE : 0
[8] HSWAPEN PIN : 1
[9] MODE PIN M[0] : 1
[10] MODE PIN M[1] : 1
[11] RESERVED : 0
[12] INIT_B PIN : 1
[13] DONE PIN : 1
[14] SUSPEND STATUS : 0
[15] FALLBACK STATUS : 0
INFO:iMPACT - Current time: 20/04/14 3:06 PM
// *** BATCH CMD : readdna -p 1
Maximum TCK operating frequency for this device chain: 0.
Validating chain...
Boundary-scan chain validated successfully.
'1': DNA = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
The device DNA should be 57 bits long. You can use Python to convert the binary number to hexadecimal as follows;
>>> hex(int('XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX', 2))
'0x111111111111111'