blob: dc9b2176b98bad4e13afec1d8ab9080796c7a7c3 [file] [log] [blame]
#!/bin/bash
# Copyright lowRISC contributors.
# Licensed under the Apache License, Version 2.0, see LICENSE for details.
# SPDX-License-Identifier: Apache-2.0
# Setup IP name and top module.
# When changing the top module, some parameters might not exist and
# tcl/yosys_run_synth.tcl might need to be adjusted accordingly.
# Known working top modules are: otbn_core, otbn
export LR_SYNTH_IP_NAME=otbn
export LR_SYNTH_TOP_MODULE=otbn_core
# Setup module parameters.
export LR_SYNTH_IMEM_SIZE_BYTE=4096
export LR_SYNTH_DMEM_SIZE_BYTE=4096
# Setup cell library path.
# Change the line below to set the path to an appropriate .lib file
#export LR_SYNTH_CELL_LIBRARY_PATH=/path/to/NangateOpenCellLibrary_typical.lib
export LR_SYNTH_CELL_LIBRARY_NAME=nangate
if [ -z "$LR_SYNTH_CELL_LIBRARY_PATH" ]; then
echo >&2 "You forgot to set LR_SYNTH_CELL_LIBRARY_PATH!";
exit 1;
fi
if [ ! -f "$LR_SYNTH_CELL_LIBRARY_PATH" ]; then
echo >&2 "Cannot find cell library $LR_SYNTH_CELL_LIBRARY_PATH";
echo >&2 "Check your LR_SYNTH_CELL_LIBRARY_PATH variable!";
exit 1;
fi
if [ -z "$LR_SYNTH_CELL_LIBRARY_NAME" ]; then
echo >&2 "You forgot to set LR_SYNTH_CELL_LIBRARY_NAME!";
exit 1;
fi
# Control synthesis flow.
export LR_SYNTH_TIMING_RUN=0
export LR_SYNTH_FLATTEN=1
# For timing runs, hierarchy flattening is needed.
if [[ $LR_SYNTH_TIMING_RUN == 1 ]] && [[ $LR_SYNTH_FLATTEN == 0 ]]; then
echo >&2 "LR_SYNTH_TIMING_RUN requires LR_SYNTH_FLATTEN!";
exit 1;
fi
# Output directory
if [ $# -eq 1 ]; then
export LR_SYNTH_OUT_DIR=$1
elif [ $# -eq 0 ]; then
export LR_SYNTH_OUT_DIR_PREFIX="syn_out/${LR_SYNTH_TOP_MODULE}"
LR_SYNTH_OUT_DIR=$(date +"${LR_SYNTH_OUT_DIR_PREFIX}_%Y_%m_%d_%H_%M_%S")
export LR_SYNTH_OUT_DIR
else
echo "Usage $0 [synth_out_dir]"
exit 1
fi