All Projects → CTSRD-CHERI → quartus-install

CTSRD-CHERI / quartus-install

Licence: other
Install Intel FPGA 'Quartus Prime' software on remote servers

Programming Languages

python
139335 projects - #7 most used programming language
shell
77523 projects

Projects that are alternatives of or similar to quartus-install

fpga-docker
Tools for running FPGA vendor toolchains with Docker
Stars: ✭ 54 (+63.64%)
Mutual labels:  fpga, quartus
HPS2FPGAmapping
SoCFPGA: Mapping HPS Peripherals, like I²C or CAN, over the FPGA fabric to FPGA I/O and using embedded Linux to control them (Intel Cyclone V)
Stars: ✭ 27 (-18.18%)
Mutual labels:  fpga, quartus-prime
sdram-controller
Generic FPGA SDRAM controller, originally made for AS4C4M16SA
Stars: ✭ 45 (+36.36%)
Mutual labels:  fpga, quartus
virtio
Virtio implementation in SystemVerilog
Stars: ✭ 38 (+15.15%)
Mutual labels:  fpga, quartus
opencl-hls-cnn-accelerator
OpenCL HLS based CNN Accelerator on Intel DE10 Nano FPGA.
Stars: ✭ 49 (+48.48%)
Mutual labels:  fpga
spydrnet
A flexible framework for analyzing and transforming FPGA netlists. Official repository.
Stars: ✭ 49 (+48.48%)
Mutual labels:  fpga
MobileNet-in-FPGA
Generator of verilog description for FPGA MobileNet implementation
Stars: ✭ 107 (+224.24%)
Mutual labels:  fpga
async fifo
A dual clock asynchronous FIFO written in verilog, tested with Icarus Verilog
Stars: ✭ 117 (+254.55%)
Mutual labels:  fpga
docker-fpga
Dockerized FPGA toolchain experiments
Stars: ✭ 18 (-45.45%)
Mutual labels:  fpga
Limago
Limago: an FPGA-based Open-source 100 GbE TCP/IP Stack
Stars: ✭ 95 (+187.88%)
Mutual labels:  fpga
no2muacm
Drop In USB CDC ACM core for iCE40 FPGA
Stars: ✭ 26 (-21.21%)
Mutual labels:  fpga
clash-compucolor2
Clash implementation of the Compucolor II home computer
Stars: ✭ 25 (-24.24%)
Mutual labels:  fpga
up5k
Upduino v2 with the ice40 up5k FPGA demos
Stars: ✭ 65 (+96.97%)
Mutual labels:  fpga
Home-Brew-Computer
SystemOT, yet another home brew cpu.
Stars: ✭ 21 (-36.36%)
Mutual labels:  fpga
pdp6
PDP-6 Emulator
Stars: ✭ 47 (+42.42%)
Mutual labels:  fpga
vivado-docker
Dockerfile with Vivado for CI
Stars: ✭ 22 (-33.33%)
Mutual labels:  fpga
Shuhai
Shuhai is a benchmarking-memory tool that allows FPGA programmers to demystify all the underlying details of memories, e.g., HBM and DDR4, on a Xilinx FPGA
Stars: ✭ 53 (+60.61%)
Mutual labels:  fpga
TinyMIPS
The Project TinyMIPS is dedicated to enabling undergraduates to build a complete computer system from scratch.
Stars: ✭ 29 (-12.12%)
Mutual labels:  fpga
FPGA-CNN
This repo is for ECE44x (Fall2015-Spring2016)
Stars: ✭ 17 (-48.48%)
Mutual labels:  fpga
t2sp
Productive and portable performance programming across spatial architectures (FPGAs, etc.) and vector architectures (GPUs, etc.)
Stars: ✭ 24 (-27.27%)
Mutual labels:  fpga

quartus-install.py

This script installs Intel FPGA's Quartus Prime software on remote servers which don't have a web browser or a GUI. It makes it easy to download across a number of servers, and to run as part of a scripted build.

Syntax:

usage: quartus-install.py [-h] [--download-only] [--install-only] [--prune]
                          version target device [device ...]

Download and install Quartus.

positional arguments (required):
  version          Quartus version, eg 18.0pro, 17.1lite, 16.1std.
                   Supplying an invalid version will return the supported versions.
  target           Directory to install Quartus in
  device           Device to download/install in Quartus.  Supported:
                           a2    Arria II
                           a5    Arria V
                           a5gz  Arria V GZ
                           a10   Arria 10
                           c4    Cyclone IV
                           c5    Cyclone V
                           c10gx Cyclone 10 GX
                           c10lp Cyclone 10 LP
                           m2    MAX II
                           m5    MAX V
                           m10   MAX 10
                           s4    Stratix IV
                           s5    Stratix V
                           s10   Stratix 10
                           dsp   DSP Builder
                           eds   ARM EDS
                           opencl OpenCL toolkit

optional arguments:
  -h, --help       show this help message and exit
  --list-versions  Print the Quartus versions supported
  --list-parts     Print the devices and other pieces we can download
  --download-only  Only download, don't install
  --install-only   Only install, don't download
  --prune          Delete install files when finished
  --nosetup        Don't download Quartus setup frontend
  --parallel PARALLEL, -j PARALLEL
                   Number of parallel download connections
  --fix-libpng     Build and add libpng12.so binary to Quartus library dir
                   (needed for recent Ubuntu among others)
  --check-urls     Check whether the URLs in the database are fetchable
  --foreign        EXPERIMENTAL support for emulating Quartus on aarch64
                   Ubuntu LTS (eg Apple M1 via UTM).  Requires sudo, see
                   below for details.

Example usage:

quartus-install.py 18.1std /opt/intelFPGA/18.1std a10 s4 s5 c4 c5 m10

You will also need the 'aria2' tool installed (available as a Ubuntu package) to perform parallel downloads (since the Akamai servers have limited per-file bandwidth, it is most efficient to download all the pieces in parallel if you are on a high-bandwidth link).

Please note that installing Quartus implies acceptance of Intel FPGA's EULA for the appropriate version(s) you download.

Since it's necessary to extract the URLs manaully from the Intel website, only a limited set of Quartus versions are supported. Patches/PRs welcome!

Theo Markettos

Quartus on arm64 / aarch64 / Apple Silicon

Quartus has native x86 binaries, and Intel only supplies those for Linux and Windows. So people with Arm-based systems, eg modern Macs, are out of luck? Quartus won't run in MacOS where Rosetta would help it, and Rosetta doesn't (currently) work in VMs. Performance in an emulated x86 VM is absolutely awful (20x worse build times than an x86 laptop, for a Cyclone V design).

This script has some hacks to emulate Quartus using QEMU's user-mode x86_64 emulation. When an x86 binary is detected, it'll run in the QEMU emulator but the rest of the system including kernel etc runs as arm64. On the medium sized Cyclone V design this was only 4x worse than the x86 laptop.

To install Quartus with patches for an aarch64 Ubuntu VM, install Quartus as above but pass the --foreign flag, which will install necessary packages and patch your install.

Caveats:

  • This is extremely experimental and fragile. It is highly likely to break. Assume it's already broken and hope for positive surprises.
  • Don't expect build performance to be amazing, but at least you can run Quartus (maybe).
  • This has only been tested with Quartus Lite 20.1.1, although in theory it should work for other versions, it may need some tweaking (especially Quartus Pro). Only the main Quartus and Platform Designer build flows have been tested, not all the many other pieces.
  • This is only tested on Ubuntu 20.04 and 22.04. It will probably work with other Ubuntu or Debian versions, but they haven't been tested. Other distros will need to install different packages.
  • Some Java parts (eg Platform Designer) will spin forever if more than one core is available to the VM. It is suspected this is due to a memory ordering difference between x86 (TSO) and Apple Silicon (weak ordering). While M1 can switch into a TSO mode (as it does when Rosetta is running), for Quartus Lite it's simpler to limit the VM to one core as it doesn't use multicore for builds anyway. Another option is to edit the wrapper scripts for binaries (eg in $QUARTUS_ROOTDIR/bin/) and prefix the invocation of the binary (at the bottom) with 'taskset 1 ' to force only Quartus binaries to use a single core. More experimentation needed here - it's possible the C++ parts of Quartus may work better multicore than the Java parts. [In case anyone asks, libccl_sqlite3_jdbc_jni_bridge.so uses the JNI so we can't just use the aarch64 JVM, as it needs to link with x86 libraries].
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].