summaryrefslogtreecommitdiffstats
path: root/electronics/fpga-toolchain.page
diff options
context:
space:
mode:
authorbnewbold <bnewbold@robocracy.org>2016-06-11 17:16:54 -0400
committerbnewbold <bnewbold@robocracy.org>2016-06-11 17:16:54 -0400
commit556b3c33daa7a41550cb2bbe23d333ba39414be0 (patch)
tree2ded0998b2d7c48e30013795dbed844bceec7c32 /electronics/fpga-toolchain.page
parentca43c7b074d69b1d802090b12d4bf65fe21c3c92 (diff)
downloadknowledge-556b3c33daa7a41550cb2bbe23d333ba39414be0.tar.gz
knowledge-556b3c33daa7a41550cb2bbe23d333ba39414be0.zip
rework electronics pages
Diffstat (limited to 'electronics/fpga-toolchain.page')
-rw-r--r--electronics/fpga-toolchain.page185
1 files changed, 0 insertions, 185 deletions
diff --git a/electronics/fpga-toolchain.page b/electronics/fpga-toolchain.page
deleted file mode 100644
index f60062e..0000000
--- a/electronics/fpga-toolchain.page
+++ /dev/null
@@ -1,185 +0,0 @@
-FPGA Toolchain Notes
-==========================
-
-Setup Xilinx 13.3 WebPack on Ubuntu 11.10 64bit
--------------------------------------------------
-
-Installer archive is ~5gb, extracted will be about 5gb, install will be about
-14gb. You'll probably need root.
-
-Download the appropriate WebPack ISE archive from the Xilinx website; you'll
-need to create an `account <http://bugmenot.com>`_. While the download is
-running, generate a WebPack license file (Xilinx.lic) and save that to your
-home folder.
-
- $ mkdir /tmp/ise_install
- $ cd /tmp/ise_install
- $ tar xvf ~/Xilinx_ISE_DS_Lin_13.3_O.76xd.1.0.tar
- $ cd Xilinx_ISE_DS_Lin_13.3_O.76xd.1.0/
- $ sudo ./xsetup # install as root!
-
- # agree to license agreements
- #
- # select WebPack
- #
- # defaults for license: "Acquire or Manage..." and "Ensure Linux
- # System...". "Install Cable Drivers" failed for me.
- #
- # extract to /opt/Xilinx/13.3
- #
- # in the license manager that pops up, go straight to "manage licenses" and
- # import the one you generated
- #
- # done!
-
-To start the IDE run `/opt/Xilinx/13.3/ISE_DS/ISE/bin/lin64/ise` (set it up as
-an alias or with a wrapper script).
-
-Xilinx Vivado 2014.4 on Debian Wheezy 64bit
----------------------------------------------
-
-Download is 5.0GB; unziped installer is 5.2GB. /opt/Xilinx/Vivado/2014.4 is
-6.9GB; /opt/Xilinx/SDK/2014.4 is 4.9GB. So in total you'll want more than 22GB
-to download and install.
-
-Run the installer as sudo (no strictly necessary?). Select Vivado WebPACK.
-Install Cable Drivers and Software Development Kit (this later is big, another
-~5GB unextracted).
-
-When the install is done and license manager pops up, do the "Save link" thing
-(because you are running as root, browser probably won't work), then find that
-.html file and open it as your regular user; it will redirect. Select the
-Vivado WebPACK and SDK licenses (the ones with no expiration, not the
-evaluation ones).
-
-Create a ~/.profile or ~/.bashrc alias like:
-
- alias vivadoenv2014.4="source /opt/Xilinx/Vivado/2014.4/settings64.sh"
-
-
-Xilinx Platform Cable USB II Drivers on Debian Wheezy 64-bit
--------------------------------------------------------------
-
-Follow these directions:
-
-https://vjordan.info/log/fpga/setting-up-the-xilinx-platform-cable-under-gnulinux-debian-wheezy-74.html
-
-Use an alias like:
-
- alias xilinxenv147='source /opt/Xilinx/14.7/ISE_DS/settings64.sh; export LD_LIBRARY_PATH=:/usr/local/lib/libusb-driver.so'
-
-
-Lattice Diamond 3.1 on Debian Linux 64-bit
---------------------------------------------
-
-Lattice Semi offers no-cost software development tools for their FPGA parts,
-called Lattice Diamond. The toolchain is based on Synopsys Synplify Pro for
-synthesis and Aldec Active-HDL for simulation, and runs on Linux. The
-non-supscription version of the toolchain can target most parts, but not some
-of the LatticeECP2 product line, any LatticeECP3 parts, or the
-LatticeSC/LatticeSCM devices.
-
-First you need to register for an account to get a no-cost license, and agree
-to a EULA. Doves cry. Generate a free license following a link from the
-"Licensing" tab of the Diamond Software page. You won't get the license
-immediately, it will be emailed to you (after human approval?). It's a 1.2 GB
-download, which is way smaller than Xilinx ISE. The below was tested with
-version 3.1 for 64 bit linux.
-
-The IDE comes as an .rpm file for Fedora/RedHat. To install on debian/ubuntu,
-the 'alien' tool can be used to convert this to a .deb. This process can take a
-long time (20+ minutes?), particularly at the "debian/rules binary" step. Run::
-
- sudo alien --to-deb --scripts diamond_3_1-base_x64-96-x86_64-linux.rpm
-
-Unfortunately, this won't install as-is because the package will try to use
-``uname i`` to determine the architecture type, when it probably should use
-``uname -p`` (at least on linux/debian)[0]. So we need to extract, edit, and
-re-build the .deb:
-
- # extract
- chown $USER:$USER diamond-3-1-base-x64_3.1-97_amd64.deb
- dpkg-deb -x diamond-3-1-base-x64_3.1-97_amd64.deb diamond
- dpkg-deb --control diamond-3-1-base-x64_3.1-97_amd64.deb diamond/DEBIAN
-
- # edit: `uname -i` => `uname -m`
- $EDITOR diamond/DEBIAN/preinst
-
- # rebuild: this is slow
- dpkg -b diamond .
-
-Then (finally) install the package:
-
- sudo dpkg -i diamond-3-1-base-x64_3.1-97_amd64.deb
-
-You'll need to add the following to your $PATH (or could have edited the
-install prefix above):
-
- /usr/local/diamond/3.1_x64/bin/lin64
-
-Also install the license file which was emailed to you:
-
- sudo cp license.dat /usr/local/diamond/3.1_x64/license
-
-Then run ''diamond''.
-
-Ref: http://effluviaofascatteredmind.blogspot.com/2010/10/lattice-diamond-on-ubuntu-1004-64-bit.html
-[0] https://lists.debian.org/debian-user/2013/05/msg01416.html
-
-Diamond Programmer
-~~~~~~~~~~~~~~~~~~~~~~~~
-
-The programmer (for uploading bitfiles, eg via an FTDI chip on a breakout
-board or a JTAG cable) breaks if the ftdi_sio (FTDI USB-Serial) kernel module
-loaded for the bare USB device. This driver will automatically load on most
-linux platforms (which is normally the desired behavior), but we need to
-disable this to use the Lattice programmer. It's possible to disable the
-ftdi_sio driver system-wide using a blacklist entry in /etc/modprobe.d, but
-then no other FTDI-based devices (which are extremely common) will work. So
-instead we'll use a udev rule to match only on Lattice "upload cables".
-
-Setup:
-
- sudo vim /etc/udev/rules.d/10-lattice-diamond
-
- # Disable "ftdi_sio" driver for Lattice dev boards
- SUBSYSTEM=="usb",DRIVER=="ftdi_sio",ATTRS{interface}=="Lattice FTUSB Interface Cable",ATTRS{bInterfaceNumber}=="00",RUN+="/bin/sh -c 'basename %p > /sys/bus/usb/drivers/ftdi_sio/unbind'"
-
- sudo /etc/init.d/udev restart
-
-Then you can load the GUI:
-
- sudo /usr/local/diamond/3.1_x64/bin/lin64/programmer
-
-or via command line, if you already have a .xcf upload configuration file
-generated (NB: this is distinct from the .jed bitfiles which actually get
-uploaded, and can be created with the programmer GUI):
-
- sudo /usr/local/diamond/3.1_x64/bin/lin64/pgrcmd -infile program_breakout_example.xcf -cabletype USB2
-
-Troubleshooting Notes
-~~~~~~~~~~~~~~~~~~~~~~~~
-
-When programming, only the programmer GUI can be open; if the IDE is run at the
-same time it will connect to and block the device. Aka, "Another instance of
-this program is running".
-
-Perhaps a better way to handle permissions is with udev rules or a DIY script.
-To test udev rules, try:
-
- sudo udevadm test /dev/bus/usb/###/###
-
-A permissions problem that comes us is, eg:
-
- unable to open device '/sys/dev/bus/usb/003/004'
-
-An error that comes up with the bundled FTDI driver is:
-
- [122032.033366] pgrcmain[10879]: segfault at 50 ip 00007f4cf1508b5e sp 00007fffb86dc210 error 4 in libftd2xx.so[7f4cf14fe000+2c000]
-
-Other problems needing solutions:
-
- Board with FTDI USB Host Chip detected.
-
- Programming XCF Contents... Connected to Lattice Cable Server.
- Failed.