Update submodule reference
diff --git a/.gitmodules b/.gitmodules index fa12f5f..093d49f 100644 --- a/.gitmodules +++ b/.gitmodules
@@ -1,3 +1,3 @@ -[submodule "caravel"] +[submodule "caravel-lite"] path = caravel - url = https://github.com/efabless/caravel-lite + url = https://github.com/Manarabdelaty/caravel-lite
diff --git a/Makefile b/Makefile index 4f75f8b..888c9d1 100644 --- a/Makefile +++ b/Makefile
@@ -14,8 +14,7 @@ # # SPDX-License-Identifier: Apache-2.0 -CARAVEL_ROOT?=$(shell pwd)/caravel -UPRJ_ROOT?=$(shell pwd) +CARAVEL_ROOT?=caravel # Install lite version of caravel, (1): caravel-lite, (0): caravel CARAVEL_LITE?=1 @@ -55,7 +54,7 @@ install: ifeq ($(SUBMODULE),1) @echo "Installing $(CARAVEL_NAME) as a submodule.." - #git submodule add $(CARAVEL_REPO) $(CARAVEL_ROOT) + @git submodule add --name $(CARAVEL_NAME) $(CARAVEL_REPO) $(CARAVEL_ROOT) @git submodule update --init $(MAKE) simlink else @@ -66,8 +65,8 @@ # Create symbolic links to caravel's main files .PHONY: simlink simlink: check-caravel - @ln -sf $(CARAVEL_ROOT)/openlane/Makefile openlane/Makefile - @ln -sf $(CARAVEL_ROOT)/openlane/user_project_wrapper_empty/pin_order.cfg openlane/user_project_wrapper/pin_order.cfg + @ln -f $(CARAVEL_ROOT)/openlane/Makefile openlane/Makefile + @ln -f $(CARAVEL_ROOT)/openlane/user_project_wrapper_empty/pin_order.cfg openlane/user_project_wrapper/pin_order.cfg # Update Caravel .PHONY: update_caravel
diff --git a/openlane/Makefile b/openlane/Makefile deleted file mode 120000 index aad81ae..0000000 --- a/openlane/Makefile +++ /dev/null
@@ -1 +0,0 @@ -/home/ma/ef/caravel_project_example/caravel-lite/openlane/Makefile \ No newline at end of file
diff --git a/openlane/Makefile b/openlane/Makefile new file mode 100644 index 0000000..e406d3b --- /dev/null +++ b/openlane/Makefile
@@ -0,0 +1,85 @@ +# SPDX-FileCopyrightText: 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 + +BLOCKS = $(shell find * -maxdepth 0 -type d) +CONFIG = $(foreach block,$(BLOCKS), ./$(block)/config.tcl) +CLEAN = $(foreach block,$(BLOCKS), clean-$(block)) + +OPENLANE_TAG ?= rc7 +OPENLANE_IMAGE_NAME ?= efabless/openlane:$(OPENLANE_TAG) +OPENLANE_BASIC_COMMAND = "cd /project/openlane && flow.tcl -design ./$* -save_path .. -save -tag $* -overwrite" +OPENLANE_INTERACTIVE_COMMAND = "cd /project/openlane && flow.tcl -it -file ./$*/interactive.tcl" + +all: $(BLOCKS) + +$(CONFIG) : + @echo "Missing $@. Please create a configuration for that design" + @exit 1 + +$(BLOCKS) : % : ./%/config.tcl FORCE +ifeq ($(OPENLANE_ROOT),) + @echo "Please export OPENLANE_ROOT" + @exit 1 +endif +ifeq ($(PDK_ROOT),) + @echo "Please export PDK_ROOT" + @exit 1 +endif + @echo "###############################################" + @sleep 1 + + @if [ -f ./$*/interactive.tcl ]; then\ + docker run -it -v $(OPENLANE_ROOT):/openLANE_flow \ + -v $(PDK_ROOT):$(PDK_ROOT) \ + -v $(PWD)/..:/project \ + -e PDK_ROOT=$(PDK_ROOT) \ + -u $(shell id -u $(USER)):$(shell id -g $(USER)) \ + $(OPENLANE_IMAGE_NAME) sh -c $(OPENLANE_INTERACTIVE_COMMAND);\ + else\ + docker run -it -v $(OPENLANE_ROOT):/openLANE_flow \ + -v $(PDK_ROOT):$(PDK_ROOT) \ + -v $(PWD)/..:/project \ + -e PDK_ROOT=$(PDK_ROOT) \ + -u $(shell id -u $(USER)):$(shell id -g $(USER)) \ + $(OPENLANE_IMAGE_NAME) sh -c $(OPENLANE_BASIC_COMMAND);\ + fi + mkdir -p ../signoff/$*/ + cp $*/runs/$*/OPENLANE_VERSION ../signoff/$*/ + cp $*/runs/$*/PDK_SOURCES ../signoff/$*/ + cp $*/runs/$*/reports/final_summary_report.csv ../signoff/$*/ + +.PHONY: openlane +openlane: +ifeq ($(OPENLANE_ROOT),) + @echo "Please export OPENLANE_ROOT" + @exit 1 +endif + git clone https://github.com/efabless/openlane.git --branch=$(OPENLANE_TAG) --depth=1 $(OPENLANE_ROOT) && \ + cd $(OPENLANE_ROOT) && \ + make openlane + +FORCE: + +clean: + @echo "Use clean_all to clean everything :)" + +clean_all: $(CLEAN) + +$(CLEAN): clean-% : + rm -rf runs/$* + rm -rf ../gds/$** + rm -rf ../mag/$** + rm -rf ../lef/$**
diff --git a/openlane/user_project_wrapper/pin_order.cfg b/openlane/user_project_wrapper/pin_order.cfg deleted file mode 120000 index ae292ce..0000000 --- a/openlane/user_project_wrapper/pin_order.cfg +++ /dev/null
@@ -1 +0,0 @@ -/home/ma/ef/caravel_project_example/caravel-lite/openlane/user_project_wrapper_empty/pin_order.cfg \ No newline at end of file
diff --git a/openlane/user_project_wrapper/pin_order.cfg b/openlane/user_project_wrapper/pin_order.cfg new file mode 100644 index 0000000..6de1406 --- /dev/null +++ b/openlane/user_project_wrapper/pin_order.cfg
@@ -0,0 +1,157 @@ +#BUS_SORT +#NR +analog_io\[15\] +io_in\[15\] +io_out\[15\] +io_oeb\[15\] +analog_io\[16\] +io_in\[16\] +io_out\[16\] +io_oeb\[16\] +analog_io\[17\] +io_in\[17\] +io_out\[17\] +io_oeb\[17\] +analog_io\[18\] +io_in\[18\] +io_out\[18\] +io_oeb\[18\] +analog_io\[19\] +io_in\[19\] +io_out\[19\] +io_oeb\[19\] +analog_io\[20\] +io_in\[20\] +io_out\[20\] +io_oeb\[20\] +analog_io\[21\] +io_in\[21\] +io_out\[21\] +io_oeb\[21\] +analog_io\[22\] +io_in\[22\] +io_out\[22\] +io_oeb\[22\] +analog_io\[23\] +io_in\[23\] +io_out\[23\] +io_oeb\[23\] + +#S +wb_.* +wbs_.* +la_.* +user_clock2 + +#E +analog_io\[0\] +io_in\[0\] +io_out\[0\] +io_oeb\[0\] +analog_io\[1\] +io_in\[1\] +io_out\[1\] +io_oeb\[1\] +analog_io\[2\] +io_in\[2\] +io_out\[2\] +io_oeb\[2\] +analog_io\[3\] +io_in\[3\] +io_out\[3\] +io_oeb\[3\] +analog_io\[4\] +io_in\[4\] +io_out\[4\] +io_oeb\[4\] +analog_io\[5\] +io_in\[5\] +io_out\[5\] +io_oeb\[5\] +analog_io\[6\] +io_in\[6\] +io_out\[6\] +io_oeb\[6\] +analog_io\[7\] +io_in\[7\] +io_out\[7\] +io_oeb\[7\] +analog_io\[8\] +io_in\[8\] +io_out\[8\] +io_oeb\[8\] +analog_io\[9\] +io_in\[9\] +io_out\[9\] +io_oeb\[9\] +analog_io\[10\] +io_in\[10\] +io_out\[10\] +io_oeb\[10\] +analog_io\[11\] +io_in\[11\] +io_out\[11\] +io_oeb\[11\] +analog_io\[12\] +io_in\[12\] +io_out\[12\] +io_oeb\[12\] +analog_io\[13\] +io_in\[13\] +io_out\[13\] +io_oeb\[13\] +analog_io\[14\] +io_in\[14\] +io_out\[14\] +io_oeb\[14\] + +#WR +analog_io\[24\] +io_in\[24\] +io_out\[24\] +io_oeb\[24\] +analog_io\[25\] +io_in\[25\] +io_out\[25\] +io_oeb\[25\] +analog_io\[26\] +io_in\[26\] +io_out\[26\] +io_oeb\[26\] +analog_io\[27\] +io_in\[27\] +io_out\[27\] +io_oeb\[27\] +analog_io\[28\] +io_in\[28\] +io_out\[28\] +io_oeb\[28\] +analog_io\[29\] +io_in\[29\] +io_out\[29\] +io_oeb\[29\] +analog_io\[30\] +io_in\[30\] +io_out\[30\] +io_oeb\[30\] +io_in\[31\] +io_out\[31\] +io_oeb\[31\] +io_in\[32\] +io_out\[32\] +io_oeb\[32\] +io_in\[33\] +io_out\[33\] +io_oeb\[33\] +io_in\[34\] +io_out\[34\] +io_oeb\[34\] +io_in\[35\] +io_out\[35\] +io_oeb\[35\] +io_in\[36\] +io_out\[36\] +io_oeb\[36\] +io_in\[37\] +io_out\[37\] +io_oeb\[37\]