Skip to main content


Showing posts from October, 2014

How to solve the cabal ld: library not found issue on Mac OS X

Today, after upgrading haskell platform, bumped onto a strange cabal installer problem:
$ cabal install distributive-0.4.4 Resolving dependencies...
[1 of 1] Compiling Main ( /var/folders/2k/6dnfg_x43_a21poayfbpnby40000gn/T/distributive-0.4.4-27117/distributive-0.4.4/dist/setup/setup.hs, /var/folders/2k/6dnfg_x43_a21poayfbpnby40000gn/T/distributive-0.4.4-27117/distributive-0.4.4/dist/setup/Main.o )
Linking /var/folders/2k/6dnfg_x43_a21poayfbpnby40000gn/T/distributive-0.4.4-27117/distributive-0.4.4/dist/setup/setup ...
Configuring distributive-0.4.4...
Building distributive-0.4.4...
Preprocessing library distributive-0.4.4...
[1 of 2] Compiling Data.Distributive.Generic ( src/Data/Distributive/Generic.hs, dist/build/Data/Distributive/Generic.o )
[2 of 2] Compiling Data.Distributive ( src/Data/Distributive.hs, dist/build/Data/Distributive.o )
ld: library not found for -lHStransformers-compat-
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Failed to …

How to program SPI flash memory on Digilent Nexys4 and other 7th generation devices using Vivado 2014.x

Update: The methods described below work also on Vivado 2015! Please let me know if you had any issues with other Vivado versions.

The information in the official user guides and tutorials seems to be fragmentary and sometimes out-of-date, that's why I decided to fill in this gap, not waiting for the official Xilinx updates. Our goal is to show how to program the SPI flash memory of the 7th generation Xilinx devices with Vivado 2014 on example of Nexys4 board.

Note: before we start, we assume you already have a working project, that means the generated bitstream file works on your device. If not, you may want to go directly to the Program the SPI flash section to test your Nexys4 board with prepared .mcs file.
PlanConfigure the hardware to work with SPI flash memoryRegenerate the bitstream fileConvert the bitstream file into the "Prom" formatProgram the SPI flashBoot the device Configure the hardware to work with SPI flash memory Open the synthesized or implemented design…

How to install and run Vivado 2014.x

Now I am going to share some experience in the FPGA area. It appears, the now-supported tool by Xilinx, Vivado, may be ridiculously tricky to install on Ubuntu.

The main gotcha is actually to run the installer. So if you use the web-installer (approx 73MB), you may run into a "no file found" problem while installer self extracting. Looking around the official Xilinx support site, you will find a "fix". For the sake of installation, you need to temporarily replace /bin/sh -> /bin/dash with /bin/bash.

$ sudo rm /bin/sh $ sudo ln -s /bin/bash /bin/sh
Then you may wonder how to run the Vivado machinery. To simplify things, I have created a simple shell script in my home:

source /[installation path]/Xilinx/Vivado/2014.[x]/[installation path]/Xilinx/Vivado/2014.[x]/bin/vivado
Do not forget to

$ chmod +x .
And voila

./ ****** Vivado v2014.2 (64-bit) **** SW Build 932637 on Wed Jun 11 13:08:52 MDT 2014 **** IP Build 924643 on…