Actions

Difference between revisions of "Xilinx ISE Installation Instructions"

From HacDC Wiki

Line 91: Line 91:




What I (Elliot) did:
What I (Elliot) did on a Ubuntu system:
  sudo apt-get install fxload libusb-dev
  sudo apt-get install fxload libusb-dev
  git clone git://git.zerfleddert.de/usb-driver
  git clone git://git.zerfleddert.de/usb-driver
Line 101: Line 101:
  export LD_PRELOAD=/opt/Xilinx/10.1/ISE/libusb-driver.so
  export LD_PRELOAD=/opt/Xilinx/10.1/ISE/libusb-driver.so


You'll also need to double-check the USB ID of your board.  If it says something like <em>Bus 001 Device 007: ID 03fd:000d Xilinx, Inc.</em> you're almost thereiMPACT wants the device ID (the last bits) to be :0008.  So you must re-flash the USB firmware into your board to make it work:
You'll also need to double-check that your board has the right USB loader firmware on it.  You can do this by checking the USB ID of your board.  Run lsusb and look for a line like <em>Bus 001 Device 007: ID 03fd:000d Xilinx, Inc.</em>.  If the device ID (the last four digits) doesn't read 0008, you need to re-flash the USB firmware into your board to make it work:
   
   
  sudo /sbin/fxload -v -t fx2 -I /opt/Xilinx/10.1/ISE/bin/lin/xusbdfwu.hex -D /proc/bus/usb/001/007
  sudo /sbin/fxload -v -t fx2 -I /opt/Xilinx/10.1/ISE/bin/lin/xusbdfwu.hex -D /proc/bus/usb/001/007


where 001/007 is from the Bus and Device info presented in lsusb.
where 001/007 is from the Bus and Device info presented in lsusb. There's some code in the README that's supposed to make this happen by magic using the udev system, but I couldn't make it go. 


That's all.  Now when you run iMPACT, it'll detect the cable and the board.
You should now be able to run ISE (or iMPACT directly) and it'll detect the cable and the board.


[[Category:FPGAWorkshop]]
[[Category:FPGAWorkshop]]

Revision as of 01:32, 31 December 2009

ISE Installation Instructions

  1. Make sure you have a xilinx.com account
  2. Go to Xilinx.com, navigate to their ISE Webpack download page. Links can be found here ISE Webpack
  3. Once you sign in and register, you'll be at the Xilinx Entitlement center, and have several options to download software. On your left, under quick links, there is a link titled "Register and Download 10.1 and earlier software."
    1. You will receive a registration email. This will contain a registrationID which you'll need later. Save this email and keep it handy.
  4. Follow the screens to download the ISE Webpack. You'll be presented with either downloading the 2.5Gb image or the Webinstall client, which will download the files you'll need as it installs. You can choose either, I would recommend grabbing the 2.25Gb tarball. Instructions will be based on installing from the full tarball. Expect your vm drive to start growing.
  5. By default, your download (webpack_SFD.tar for the full file) will go to your ~/Desktop folder. Open up a terminal and unpack the tarball.
    1.  cd  ~/Desktop 
    2. tar -xvf webpack_SFD.tar 
    3. This creates the directory ~/Desktop/webpack containing the installation files for the webpack. These installation files will work for Linux and Windows.
    4.  UESC-Boomer:Public wgibb$ md5 webpack_SFD.tar ...results(webpack_SFD.tar) = 87c3452d36ef990930a8596acd6a4899 
  6. Now we're going to run the installer as root
    1.  cd webpack 
    2.  su (password is linux on the vm) 
    3.  ./setup 
  7. During the setup you'll be prompted for a registrationID. This is the registrationID in the email you got back in step 3. Enter it here.
  8. You'll then be presented with terms of service screens. Agree through them to proceed.
  9. Next you'll be presented with a choice of installation directory. The default choise, /opt/Xilinx/10.1 is fine
  10. Next is installation options You may as well choose all of them, but you must choose "All FPGA devices except Virtex 4 and Virtex 5" in order to design towards the Spartan 3E boards. You should be ready for your VM's disk to grow by 4 more gigs.
  11. You'll then be presented with a set of environmental variables which are set in a settings file for ise. They can be left at defaults.
  12. Select the cable drivers. Click through to confirm the settings and install the tools.
    1. You may uncheck the update feature, if you do not wish to immeadiately update the tools after installation. This will cause a large download to occur after installation, if it is checked.
  13. Wait for the tools to install. Play cards with a buddy.
  14. If you let XilinxUpdate run after installation, it will start up, and you'll need to tell it you want to download and install the 1.5gb of updates. Find a buddy and play cards.
  15. The cable drivers will fail to build. A solution for this is forthcoming (just need to test it).
  16. You can remove the folder from your desktop. You may want to keep the tarball around if you need to reinstall.
    1.  exit 
      To get out of su
    2.  rm -rf ./webpack 


Running the tools

  1. Open up a terminal and type the following commands
    1.  cd /opt/Xilinx/10.1/ISE 
    2.  source settings32.sh 
    3.  ise 
  2. You will now have launched Xilinx ISE.
    1. If this is your first time using Xilinx ISE, you should go through the in-depth tutorial linked to on the mainpage.

64 bit install

If the Xilinx ISE Webpack install file complains about not supporting your 64-bit computer:

The installer is just a shell script, edit out the test.

Since ISE is a 32-bit application, you'll need 32-bit libraries on your 64-bit system. `apt-get install ia32-libs` or equivalent for you distribution to get them. (Debian 'Lenny' doesn't have libuuid in its ia32-libs package. You'll have to scrounge those files up from the i386 libuuid1 package yourself. More recently libuuid is included in ia32-libs, so this wont be a problem in Debian 'Squeeze' and later.) Your 64-bit amd64 box will run 32-bit i386 binaries just fine.

Run the installer script. Things will work just fine.

Alternative to Digilent Adept Suite

Some basics:

USB cable plugged into laptop. With the Power Select jumper in the USB position, turning on the power switch lights the red power LED. With the Mode jumper on ROM, the board will load the demo code from ROM and light up the 7-segment LED displays and the switches will turn on and off the other LEDs. The Yellow Done LED lights when the load completes.

With the Mode jumper in the JTAG position the board starts up waiting for JTAG data. Yes, there is a JTAG cable header, but this setting also works for the USB JTAG interface.

A fine bit of clue: Programming Digilent Nexys 2 from Linux

That leads to the good stuff in nexys2prog.tar.gz (Note: UrJTAG is already in a Debian package [1]) This allows one to avoid needing to use the "Digilent Adept Suite", and thus, Windows.

The one can use the Xilinx ISE Webpack to convert some example verilog source files into a .bit file, then use the nexys2prog to load the board with that .bit file. Can even be done on a Debian laptop where the only non-free software is the Xilinx ISE Webpack..

Just hit the reset button, and the board is ready to get another bitfile load, run nexys2prog and reconfigure the hardware on the fly.

Programming the board through ISE in Linux: usb-driver

The Xilinx usb drivers don't quite work. There are two workarounds: install a loader (XUP, xc3sprog) or use alternative drivers. Three of us spent a few hours working on the former with no joy. The alternative driver worked with a little effort. [This site] describes how to do it. Note that there's some good info in the README.


What I (Elliot) did on a Ubuntu system:

sudo apt-get install fxload libusb-dev
git clone git://git.zerfleddert.de/usb-driver
cd usb-driver
make
cp libusb-driver.so /opt/Xilinx/10.1/ISE/

Then to run it, you'll need to link in the usb-driver before starting ISE. I did it by adding the following line to the tail end of my settings32.sh file:

export LD_PRELOAD=/opt/Xilinx/10.1/ISE/libusb-driver.so

You'll also need to double-check that your board has the right USB loader firmware on it. You can do this by checking the USB ID of your board. Run lsusb and look for a line like Bus 001 Device 007: ID 03fd:000d Xilinx, Inc.. If the device ID (the last four digits) doesn't read 0008, you need to re-flash the USB firmware into your board to make it work:

sudo /sbin/fxload -v -t fx2 -I /opt/Xilinx/10.1/ISE/bin/lin/xusbdfwu.hex -D /proc/bus/usb/001/007

where 001/007 is from the Bus and Device info presented in lsusb. There's some code in the README that's supposed to make this happen by magic using the udev system, but I couldn't make it go.

You should now be able to run ISE (or iMPACT directly) and it'll detect the cable and the board.