QuickLogic-Corp / quicklogic-fpga-toolchain

Open Source FPGA toolchain and documentation for QuickLogic devices and eFPGA IP
https://quicklogic-quicklogic-fpga-toolchain.readthedocs-hosted.com/en/latest/index.html
Apache License 2.0
36 stars 8 forks source link

Quicklogic FPGA Toolchain

Contains SymbiFlow toolchain release packages for Quicklogic FPGAs

This guide describes everything you need to set up your system to develop for QuickLogic FPGA Toolchain. Currently, the SymbiFlow Installer runs only on Linux 64bit.

Note: Place a request for the installers that support QLF-K4N8 and QLF-K6N10. For EOS-S3 devices, the Release tag has installer which can be downloaded.

Symbiflow supports these QuickLogic devices - QLF-K4N8, QLF-K6N10 and EOS-S3

For more details on the symbiflow options refer the tutorial guide: Symbiflow_Tutorial <https://quicklogic-quicklogic-fpga-toolchain.readthedocs-hosted.com/en/latest/index.html>_

Ways to run Symbiflow on these devices are explained in the following sub-sections:

QLF-K4N8/QLF-K6N10 Device:

Below are some ways to run SymbiFlow for QLF-K4N8/QLF-K6N10 Devices:

1) Run an installer and run an example 2) Compile from source code and run example

.. _1-run-an-installer-and-run-an-example:

1) Run an installer and run an example

.. _2-compile-from-source-code-and-run-example:

2) Compile from source code and run example

This release package contains the following GitHub repositories that are compiled to create this package.

You may use the following command to get the source, compile and install it:

::

Checkout symbiflow-arch-defs repository (https://github.com/QuickLogic-Corp/symbiflow-arch-defs.git), branch: master.

git clone https://github.com/QuickLogic-Corp/symbiflow-arch-defs.git cd symbiflow-arch-defs make env cd build;make all_conda

Run any test case in the current terminal window. For example, follow these steps to run a test case:

cd build/quicklogic//tests/design_flow/counter_16bit

For qlf_k4n8

make counter_16bit-umc22-adder_route

For qlf_k6n10

make counter_16bit-gf12-adder_route

EOS-S3 Device:

Below are some ways to run SymbiFlow for EOS-S3 Device:

1) Run an installer and run an example 2) Compile from source code and run example 3) Run SymbiFlow in a container

For details on the usage of RAM, FIFO and Multiplier blocks, refer to the following document: Ram_Fifo_Mult_User_Document <https://quicklogic-fpga-tool-docs.readthedocs.io/en/latest/ram/S3BDeviceHardmacroResources.html>_

NOTE:

While running the compilation with the latest toolchain (v1.3.1), the following warning would be seen:

::

fasm/fasm/parser/init.py:27: RuntimeWarning: Falling back on slower textX parser implementation: ImportError: cannot import name 'tags' from 'fasm.parser' (/path/to/toolchain/install/quicklogic-arch-defs/tests/counter_16bit/fasm/fasm/parser/init.py) Please install all dependencies and reinstall with: pip uninstall pip install -v fasm ' pip install -v fasm'.format(e), RuntimeWarning) ['textx']

This is due to recent changes in the Symbiflow fasm <https://github.com/SymbiFlow/fasm>_ which adds support for the :code:antlr parser in place of :code:textx. This is not a problem, and current installation will continue to use :code:textx as the parser, as with previous releases. :code:antlr installation requires a few extra steps, which needs to be integrated into the toolchain installation. This is not yet incorporated in the current install, and will be added in a future release. Manual Installation of :code:antlr can be done from the instructions at the Symbiflow fasm <https://github.com/SymbiFlow/fasm>_ readme.
A brief of the steps for manual installation (optional), after toolchain installation is completed:

.. _1-run-an-installer-and-run-an-example:

1) Run an installer and run an example

Download Symbiflow_v1.3.2 <https://github.com/QuickLogic-Corp/quicklogic-fpga-toolchain/releases/download/v1.3.2/Symbiflow_v1.3.2.gz.run>__

This package installs these toolchains :

Steps:

::

export INSTALL_DIR="specify the installpath" bash Symbiflow_v1.3.2.gz.run

::

export INSTALL_DIR="specify the installpath" export PATH="$INSTALL_DIR/quicklogic-arch-defs/bin:$INSTALL_DIR/quicklogic-arch-defs/bin/python:$PATH" source "$INSTALL_DIR/conda/etc/profile.d/conda.sh" conda activate

::

ql_symbiflow -h

.. _2-compile-from-source-code-and-run-example:

2) Compile from source code and run example

This release package contains the following GitHub repositories that are compiled to create this package.

Note: Refer the repositories read.md pages for the prerequisites to build.

You may use the following command to get the source, compile and install it:

::

Checkout yosys repository (https://github.com/QuickLogic-Corp/yosys.git), branch: quicklogic-rebased.

git clone https://github.com/QuickLogic-Corp/yosys.git -b quicklogic-rebased quicklogic-yosys cd quicklogic-yosys

compiling using gcc

make config-gcc make install PREFIX='specify installation path' cd -

Checkout yosys-symbiflow-plugins (https://github.com/QuickLogic-Corp/yosys-symbiflow-plugins), branch: ql-ios.

git clone https://github.com/QuickLogic-Corp/yosys-symbiflow-plugins -b ql-ios cd yosys-symbiflow-plugins export PATH='specify Yosys installation path as specified in PREFIX in previous step':$PATH make install cd -

Checkout vpr repository (https://github.com/SymbiFlow/vtr-verilog-to-routing.git), branch: master.

git clone https://github.com/SymbiFlow/vtr-verilog-to-routing -b master cd vtr-verilog-to-routing make

Checkout symbiflow-arch-defs repository (https://github.com/QuickLogic-Corp/symbiflow-arch-defs.git), branch: quicklogic-upstream-rebase.

git clone https://github.com/QuickLogic-Corp/symbiflow-arch-defs.git -b quicklogic-upstream-rebase export YOSYS='path to Yosys binary, installed in first step' export VPR='path to vpr binary built' export GENFASM='path to genfasm binary built' cd symbiflow-arch-defs make env cd build make all_conda

Run any test case in the current terminal window. For example, follow these steps to run a test case:

cd quicklogic/pp3/tests/quicklogic_testsuite/bin2seven make bin2seven-ql-chandalar_fasm

Hardware features that are not supported in this release