This repository contains architecture, compiler and design space exploration framework for FLEX, a novel CGRA architecture with flexible execution spectrum. FLEX introduces spatio-temporal vector dataflow execution for variable vector length(v). For each application kernel, FLEX DSE framework will perform exploration and will choose the best execution mode/ vector length(v). Please find the paper for more details.
Blockwise_Morpher_Mapper/
: FLEX Blockwise mapper implementation.Kernels/
: Application kernels with architecture description in JSON.Microarchitecture/
: FLEX architecture RTL with scripts for synthesis, simulation and power estimation with Cadence tools.scripts/
: Scripts used for DSE.README.md
: This instructions file.install.sh
: Script for building the tool.run_flex_dse.py
: Python script for performing automated design space exploration.
Tested on C++ 8.5.0
Install JSON: https://blog.csdn.net/jiaken2660/article/details/105155257
git clone https://github.com/nlohmann/json.git
mkdir build
cd build
cmake ../
make -j2
sudo make install
_NOTE:-
Please update all the tool scripts in the Microarchitecture/
folder with your local tool setup. Find the following list for setup files.
setproj.sh
: Contains cadence tool locations.makepaths.mk
: Standard cell library specifics.Makefile
: Change gen command according to your memory compilers.flex.sv
,configurator.sv
: Change memories according to your generated memories.
source venv/bin/activate
chmod +x install.sh
./install.sh
python run_flex_dse.py <Kernel name
> <Max vector size supported by kernel
> <Max vector size supported by hardware
>
python run_flex_dse.py fir 32 8