Merge branch 'mpw8' into main
diff --git a/Makefile b/Makefile index 295302d..ebea7fc 100644 --- a/Makefile +++ b/Makefile
@@ -262,23 +262,18 @@ export CUP_ROOT=$(shell pwd) -export TIMING_ROOT?=$(shell pwd)/deps/timing-scripts +export TIMING_ROOT?=$(shell pwd)/dependencies/timing-scripts export PROJECT_ROOT=$(CUP_ROOT) timing-scripts-repo=https://github.com/efabless/timing-scripts.git $(TIMING_ROOT): - @mkdir -p $(CUP_ROOT)/deps + @mkdir -p $(CUP_ROOT)/dependencies @git clone $(timing-scripts-repo) $(TIMING_ROOT) .PHONY: setup-timing-scripts setup-timing-scripts: $(TIMING_ROOT) @( cd $(TIMING_ROOT) && git pull ) @#( cd $(TIMING_ROOT) && git fetch && git checkout $(MPW_TAG); ) - @python3 -m venv ./venv - . ./venv/bin/activate && \ - python3 -m pip install --upgrade pip && \ - python3 -m pip install -r $(TIMING_ROOT)/requirements.txt && \ - deactivate ./verilog/gl/user_project_wrapper.v: $(error you don't have $@) @@ -291,34 +286,58 @@ .PHONY: create-spef-mapping create-spef-mapping: ./verilog/gl/user_project_wrapper.v - @. ./venv/bin/activate && \ + docker run \ + --rm \ + -u $$(id -u $$USER):$$(id -g $$USER) \ + -v $(PDK_ROOT):$(PDK_ROOT) \ + -v $(CUP_ROOT):$(CUP_ROOT) \ + -v $(CARAVEL_ROOT):$(CARAVEL_ROOT) \ + -v $(MCW_ROOT):$(MCW_ROOT) \ + -v $(TIMING_ROOT):$(TIMING_ROOT) \ + -w $(shell pwd) \ + efabless/timing-scripts:latest \ python3 $(TIMING_ROOT)/scripts/generate_spef_mapping.py \ -i ./verilog/gl/user_project_wrapper.v \ -o ./env/spef-mapping.tcl \ --pdk-path $(PDK_ROOT)/$(PDK) \ --macro-parent mprj \ - --project-root "$(CUP_ROOT)" && \ - deactivate + --project-root "$(CUP_ROOT)" .PHONY: extract-parasitics extract-parasitics: ./verilog/gl/user_project_wrapper.v - @. ./venv/bin/activate && \ + docker run \ + --rm \ + -u $$(id -u $$USER):$$(id -g $$USER) \ + -v $(PDK_ROOT):$(PDK_ROOT) \ + -v $(CUP_ROOT):$(CUP_ROOT) \ + -v $(CARAVEL_ROOT):$(CARAVEL_ROOT) \ + -v $(MCW_ROOT):$(MCW_ROOT) \ + -v $(TIMING_ROOT):$(TIMING_ROOT) \ + -w $(shell pwd) \ + efabless/timing-scripts:latest \ python3 $(TIMING_ROOT)/scripts/get_macros.py \ - -i ./verilog/gl/user_project_wrapper.v \ - -o ./tmp-macros-list \ - --project-root "$(CUP_ROOT)" \ - --pdk-path $(PDK_ROOT)/$(PDK) && \ - deactivate - @cat ./tmp-macros-list | cut -d " " -f2 \ - | xargs -I % bash -c "$(MAKE) -C $(TIMING_ROOT) \ - -f $(TIMING_ROOT)/timing.mk rcx-% || echo 'Cannot extract %. Probably no def for this macro'" + -i ./verilog/gl/user_project_wrapper.v \ + -o ./tmp-macros-list \ + --project-root "$(CUP_ROOT)" \ + --pdk-path $(PDK_ROOT)/$(PDK) + @cat ./tmp-macros-list | cut -d " " -f2 \ + | xargs -I % bash -c "$(MAKE) -C $(TIMING_ROOT) \ + -f $(TIMING_ROOT)/timing.mk rcx-% || echo 'Cannot extract %. Probably no def for this macro'" @$(MAKE) -C $(TIMING_ROOT) -f $(TIMING_ROOT)/timing.mk rcx-user_project_wrapper @cat ./tmp-macros-list @rm ./tmp-macros-list .PHONY: caravel-sta caravel-sta: ./env/spef-mapping.tcl - @$(MAKE) -C $(TIMING_ROOT) -f $(TIMING_ROOT)/timing.mk caravel-timing-typ - @$(MAKE) -C $(TIMING_ROOT) -f $(TIMING_ROOT)/timing.mk caravel-timing-fast - @$(MAKE) -C $(TIMING_ROOT) -f $(TIMING_ROOT)/timing.mk caravel-timing-slow + @$(MAKE) -C $(TIMING_ROOT) -f $(TIMING_ROOT)/timing.mk caravel-timing-typ -j3 + @$(MAKE) -C $(TIMING_ROOT) -f $(TIMING_ROOT)/timing.mk caravel-timing-fast -j3 + @$(MAKE) -C $(TIMING_ROOT) -f $(TIMING_ROOT)/timing.mk caravel-timing-slow -j3 + @echo =============================================Summary============================================= + @find $(PROJECT_ROOT)/signoff/caravel/openlane-signoff/timing/*/ -name "summary.log" | head -n1 \ + | xargs head -n5 | tail -n1 + @find $(PROJECT_ROOT)/signoff/caravel/openlane-signoff/timing/*/ -name "summary.log" \ + | xargs -I {} bash -c "head -n7 {} | tail -n1" + @echo ================================================================================================= @echo "You can find results for all corners in $(CUP_ROOT)/signoff/caravel/openlane-signoff/timing/" + @echo "Check summary.log of a specific corner to point to reports with reg2reg violations" + @echo "Cap and slew violations are inside summary.log file itself"
diff --git a/docs/source/index.rst b/docs/source/index.rst index de1083e..94931f4 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst
@@ -93,7 +93,7 @@ # export the PDK variant depending on your shuttle, if you don't know leave it to the default # for sky130 MPW shuttles.... - export PDK=sky130B + export PDK=sky130A # for the gf180 GFMPW shuttles... export PDK=gf180mcuC