This C/C++ shared library enables interaction with the BBN QDSP firmware for the Innovative Integration X6-1000 FPGA card as a data acquisition card for superconducting qubit experiments.
The libx6 shared library binaries are available for windows and linux in BBN's conda channel. These libraries depend on Innovative Integration's Malibu library, which must be obtained directly from the vendor. After following the Malibu installation instructions below, you can install libx6 by simply executing:
conda install -c bbn-q libx6
This command installs the shared libraries, header files, and python libx6
module into your Anaconda environment folder. To use libx6 from C++, MATLAB, or
Julia you must add ~/anaconda3/lib
to LD_LIBRARY_PATH
on linux/mac, or add
HOMEDIR/Anaconda3/Library/bin
to the PATH
on windows. The MATLAB and Julia
wrappers can be obtained by cloning the source repository:
git clone --recursive https://github.com/BBN-Q/libx6.git
or downloading and unzipping the most recent release.
N.B. This is only necessary if you wish to develop the library. BBN ships a pre-compiled shared library via our conda channel.
strings -a libFramework_Mb.a | grep GCC
to discover). We have used mingw-w64 and the
mingw-builds installer to get the x86_64-4.8.1-posix-seh-rt_v3_rev2
stack
which is compatible with the compiler II used. It is easiest to run this
within the MSYS2 environment for access to cmake and make.If you already have II software installed and want to start from scratch try the following modified from the end of this forum thread.
C:\Innovative\Driver
(not wdreg as the forum says and might be "Drivers").\wdreg_gui.exe -inf .\windrvr6.inf uninstall
(might be IIWDrvr1190.inf
).\wdreg_gui.exe -name kp_malibu uninstall
(may not be there).\wdreg_gui.exe -name memdrv uninstall
(may not be there)C:\Windows\INF
that contain 1303 and remove them.C:\windows\system32\drivers
folder, delete: kp_malibu.sys, memdrv.sys, and windrvr6.sysC:\Innovative
folder.Use pacman package manager to install some additional tools and libraries:
pacman -S make
pacman -S mingw64/mingw-w64-x86_64-cmake
Put the mingw-w64 gcc 4.8.1 compiler on the path
export PATH=/c/Program\ Files/mingw-w64/x86_64-4.8.1-posix-seh-rt_v3-rev2/mingw64/bin:$PATH
Assuming a default install of the II software into C:\Innovative
:
mkdir build
cd build
cmake -G "MSYS Makefiles" -DINNOVATIVE_PATH="C:\\Innovative" ../src/
make
/usr/Innovative
/usr/src
: sudo ln -s kernels/3.10.0-514.2.2.el7.x86_64 linux
Setup.sh
scriptcd /usr/Innovative/Lib/Gcc
sudo ln -s libippcore-9.0.a libippcore.a
sudo ln -s libipps-9.0.a libipps.a
/usr/Innovative
to some user folderqt5-qtbase-devel
.pro
files to add LIBS += -ldl
cd /path/to/X6-1000M/Applets/Finder/Qt
qmake-qt5 Finder.pro
make
./Release/Finder
Load the kernel driver on boot
Add a file to /etc/systemd/system
called iix6.service
[Unit] Description=Load Kernel driver for II X6
[Service] Type=oneshot ExecStart=/bin/sh -c "/usr/Innovative/WinDriver/util/wdreg windrvr1221;chmod 666 /dev/windrvr1221;insmod /usr/Innovative/KerPlug/linux/LINUX*/kp_malibu_module.ko"
[Install] WantedBy=multi-user.target
Enable the service sudo systemctl enable iix6.service
git clone --recursive https://github.com/BBN-Q/libx6.git
cd libx6
mkdir build
cd build
cmake ../src
make -j4
./run_tests
Licensed under the Apache License v2.
This software was funded in part by the Office of the Director of National Intelligence (ODNI), Intelligence Advanced Research Projects Activity (IARPA), through the Army Research Office contract No. W911NF-10-1-0324 and No. W911NF-14-1-0114. All statements of fact, opinion or conclusions contained herein are those of the authors and should not be construed as representing the official views or policies of IARPA, the ODNI, or the US Government.