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
