# 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.
# SPDX-License-Identifier: Apache-2.0

drc off
gds readonly true
gds rescale false

gds read chip_io.gds

gds read gpio_control_block.gds

gds read mgmt_protect.gds

gds read simple_por.gds

gds read digital_pll.gds
gds read DFFRAM.gds
gds read mgmt_core.gds

gds read storage.gds

gds read user_id_programming.gds

gds read sky130_fd_sc_hvl__lsbufhv2lv_1_wrapped.gds

# Your project goes aboard here
gds read user_project_wrapper.gds

load ../mag/caravel.mag -dereference
property GDS_FILE ""
property GDS_START ""
property GDS_END ""

save caravel

select top cell

# cif *hier write disable

gds write caravel.gds
