#!/bin/tcsh -f
# Copyright 2020 Efabless Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

#-------------------------------------------
# qflow variables for project ~/gits/caravel/qflow/digital_pll_controller
#-------------------------------------------

set qflowversion=1.4.80
set projectpath=~/gits/caravel/qflow/digital_pll_controller
set techdir=~/gits/caravel/qflow/digital_pll_controller/tech
set sourcedir=~/gits/caravel/qflow/digital_pll_controller/source
set synthdir=~/gits/caravel/qflow/digital_pll_controller/synthesis
set layoutdir=~/gits/caravel/qflow/digital_pll_controller/layout
set techname=sky130Ahd
set scriptdir=/usr/local/share/qflow/scripts
set bindir=/usr/local/share/qflow/bin
set logdir=~/gits/caravel/qflow/digital_pll_controller/log
#-------------------------------------------

