Framework Installation
Binary
Pre-requisites
To use the BondMachine framework, you need to have the following tools installed on your system:
- curl: to download the tools
Installation
To install the framework use the installer script downloadable from the web site. It contains all the tools and can be used on every system.
To get the framework choose the directory where the binaries have to be installed. The directory has to be writable and inserted in the user’s $PATH. There is no need of superuser access but the user has to have the rights to use the specific FPGA tools and board programming. Set the environment variable BONDMACHINE_DIR to point to this directory:
export BONDMACHINE_DIR=[the choosen directory]
and execute the install script with the bash shell:
bash <(curl -fsSL https://www.bondmachine.it/installer/install)
A similar uninstall script exists:
bash <(curl -fsSL https://www.bondmachine.it/installer/uninstall)
The install/uninstall script just copy/remove the framework executables, no other files are needed.
From sources
Pre-requisites
If you want to compile the framework from sources, you need to install the following tools:
-
Go (version 1.21 or higher) is needed to compile the framework. The go language is used to write the framework and to compile the tools.
-
Nodejs (version 16 or higher) is needed to compile the bmhelper tool. The bmhelper tool is used to assist the user in the creation of the BondMachine projects.
-
SDL2 development libraries are needed to compile the brvgasdl tool. The brvgasdl tool is used to simulate the BondMachine projects.
Installation
The installation of the framework from sources is a two-step process. First, you need to compile the bmhelper tool, and then you need to compile the BondMachine framework.
bmhelper
Clone the bmhelper repo at https://github.com/BondMachineHQ/bmhelper and compile the tool.
git clone https://github.com/BondMachineHQ/bmhelper.git
Move within the newly create bmhelper directory and execute npm to install the dependencies and compile the tool.
cd bmhelper
npm i
npm run compile && npm run build
The bmhelper tool is now available in the pkg_out directory.
BondMachine framework
Clone the main repo at https://github.com/BondMachineHQ/BondMachine.git and compile the tools.
git clone https://github.com/BondMachineHQ/BondMachine.git
Move within the newly create BondMachine directory and execute make to build all the tools.
cd BondMachine/cmd ; make
Environment
The check that the framework is correctly installed and that all the needed tools are available, execute the command bmhelper doctor. It should print an output similar to the following:
$ bmhelper doctor
[ OK ] Mandatory dependency found: make
[ OK ] Mandatory dependency found: dot
[ OK ] Mandatory dependency found: curl
[ OK ] BondMachine tool basm found
[ OK ] BondMachine tool bmanalysis found
[ OK ] BondMachine tool bmnumbers found
[ OK ] BondMachine tool bmstack found
[ OK ] BondMachine tool bondgo found
[ OK ] BondMachine tool bondmachine found
[ OK ] BondMachine tool melbond found
[ OK ] BondMachine tool neuralbond found
[ OK ] BondMachine tool procbuilder found
[ OK ] BondMachine tool simbox found
[ OK ] All BondMachine tools has been found.
[ WARNING ] Optional tool found: vivado
[ WARNING ] Optional tool found: icepack
[ WARNING ] Optional tool not found: yosys
[ WARNING ] Optional tool not found: quartus
[ OK ] Dependencies checked
If some of the prerequisites are missing, the framework will not work correctly. Install the missing ones according to the distro you are using and repeat the check. The optional tools are needed only for specific boards, so if you don’t have the board, you can ignore the warning. At this point the framework is ready to be used.