This is in-progress work for HP-FFT
FCCM25: HP-FFT: A General High-Performance FFT Generator Using High-Level Synthesis
This repository contains High-Level Synthesis (HLS) implementations and automation scripts for evaluating HP-FFT (High-Performance FFT) designs using various configurations and FFT sizes.
common.tcl: Common Vivado HLS settings and scripts used across all configurations.env.sh: Environment setup script (modify this to match your local paths).run.sh: Main script for executing HLS and RTL synthesis.submit.batch: Batch submission script for running on clusters.n256/: Contains HLS source code for 256-point FFT.n1024/: Contains HLS source code for 1024-point FFT.results/: Stores generated synthesis results (both HLS and RTL).
Each FFT size directory (n256, n1024) includes subdirectories with different HLS implementations:
original_C_styleno_StagePipelineUF1UF2UF4UF8UF16UF32
Each subdirectory corresponds to a specific optimization approach or loop unrolling factor.
Modify paths in env.sh to match your local environment and tool paths.
In run.sh, specify the desired configuration by editing the CONFIGS variable. For example:
CONFIGS=("1024 Baseline2_no_StagePipeline")To start synthesis, run:
sbatch submit.batchIf you don't have SRUM cluster, just run ./run.sh directly
After execution, all synthesis reports (both HLS and RTL) will be available under the build/ directory.
We have prepared synthesis reports under results/. You can also view the reports we have prepared, without having to run synthesis yourself.
Important Note:
- The RTL synthesis report counts BRAM usage as 18K per BRAM. However, in paper, BRAM is counted as 36K.