URL
https://opencores.org/ocsvn/yifive/yifive/trunk
Subversion Repositories yifive
Compare Revisions
- This comparison shows the changes necessary to convert path
/yifive/trunk/caravel_yifive/openlane
- from Rev 2 to Rev 9
- ↔ Reverse comparison
Rev 2 → Rev 9
/syntacore/config.tcl
0,0 → 1,138
# Global |
# ------ |
|
set script_dir [file dirname [file normalize [info script]]] |
# Name |
set ::env(DESIGN_NAME) scr1_top_axi |
|
# This is macro |
set ::env(DESIGN_IS_CORE) 0 |
|
# Diode insertion |
# Spray |
set ::env(DIODE_INSERTION_STRATEGY) 0 |
|
# Smart-"ish" |
#set ::env(DIODE_INSERTION_STRATEGY) 3 |
#set ::env(GLB_RT_MAX_DIODE_INS_ITERS) 10 |
|
# Timing configuration |
set ::env(CLOCK_PERIOD) "10" |
set ::env(CLOCK_PORT) "clk" |
|
|
# Sources |
# ------- |
|
# Local sources + no2usb sources |
set ::env(VERILOG_FILES) "\ |
$script_dir/../../verilog/rtl/syntacore_scr1/src/core/pipeline/scr1_pipe_top.sv \ |
$script_dir/../../verilog/rtl/syntacore_scr1/src/core/scr1_core_top.sv \ |
$script_dir/../../verilog/rtl/syntacore_scr1/src/core/scr1_dm.sv \ |
$script_dir/../../verilog/rtl/syntacore_scr1/src/core/scr1_tapc_synchronizer.sv \ |
$script_dir/../../verilog/rtl/syntacore_scr1/src/core/scr1_clk_ctrl.sv \ |
$script_dir/../../verilog/rtl/syntacore_scr1/src/core/scr1_scu.sv \ |
$script_dir/../../verilog/rtl/syntacore_scr1/src/core/scr1_tapc.sv \ |
$script_dir/../../verilog/rtl/syntacore_scr1/src/core/scr1_tapc_shift_reg.sv \ |
$script_dir/../../verilog/rtl/syntacore_scr1/src/core/scr1_dmi.sv \ |
$script_dir/../../verilog/rtl/syntacore_scr1/src/core/primitives/scr1_reset_cells.sv \ |
$script_dir/../../verilog/rtl/syntacore_scr1/src/core/pipeline/scr1_pipe_ifu.sv \ |
$script_dir/../../verilog/rtl/syntacore_scr1/src/core/pipeline/scr1_pipe_idu.sv \ |
$script_dir/../../verilog/rtl/syntacore_scr1/src/core/pipeline/scr1_pipe_exu.sv \ |
$script_dir/../../verilog/rtl/syntacore_scr1/src/core/pipeline/scr1_pipe_mprf.sv \ |
$script_dir/../../verilog/rtl/syntacore_scr1/src/core/pipeline/scr1_pipe_csr.sv \ |
$script_dir/../../verilog/rtl/syntacore_scr1/src/core/pipeline/scr1_pipe_ialu.sv \ |
$script_dir/../../verilog/rtl/syntacore_scr1/src/core/pipeline/scr1_pipe_lsu.sv \ |
$script_dir/../../verilog/rtl/syntacore_scr1/src/core/pipeline/scr1_pipe_hdu.sv \ |
$script_dir/../../verilog/rtl/syntacore_scr1/src/core/pipeline/scr1_pipe_tdu.sv \ |
$script_dir/../../verilog/rtl/syntacore_scr1/src/core/pipeline/scr1_ipic.sv \ |
$script_dir/../../verilog/rtl/syntacore_scr1/src/top/scr1_dmem_router.sv \ |
$script_dir/../../verilog/rtl/syntacore_scr1/src/top/scr1_imem_router.sv \ |
$script_dir/../../verilog/rtl/syntacore_scr1/src/top/scr1_tcm.sv \ |
$script_dir/../../verilog/rtl/syntacore_scr1/src/top/scr1_timer.sv \ |
$script_dir/../../verilog/rtl/syntacore_scr1/src/top/scr1_top_axi.sv \ |
$script_dir/../../verilog/rtl/syntacore_scr1/src/top/scr1_mem_axi.sv " |
|
set ::env(VERILOG_INCLUDE_DIRS) [glob $script_dir/../../verilog/rtl/syntacore_scr1/src/includes ] |
|
#set ::env(SYNTH_DEFINES) [list SCR1_DBG_EN ] |
|
|
# Need blackbox for cells |
set ::env(SYNTH_READ_BLACKBOX_LIB) 0 |
|
|
# Floorplanning |
# ------------- |
|
# Fixed area and pin position |
set ::env(FP_SIZING) "absolute" |
#actual die area is 0 0 2920 3520, given 500 micron extra margin |
set ::env(DIE_AREA) [list 0.0 0.0 2000.0 1200.0] |
set ::env(FP_PIN_ORDER_CFG) $::env(DESIGN_DIR)/pin_order.cfg |
|
# Halo around the Macros |
set ::env(FP_HORIZONTAL_HALO) 25 |
set ::env(FP_VERTICAL_HALO) 20 |
|
#set ::env(PDN_CFG) $::env(DESIGN_DIR)/pdn.tcl |
|
|
|
# Placement |
# --------- |
|
set ::env(PL_TARGET_DENSITY) 0.40 |
|
#set ::env(MACRO_PLACEMENT_CFG) $::env(DESIGN_DIR)/macro_placement.cfg |
|
|
# Routing |
# ------- |
|
#| `ROUTING_CORES` | Specifies the number of threads to be used in TritonRoute. <br> (Default: `4`) | |
set ::env(ROUTING_CORES) 4 |
|
#| `GLB_RT_ALLOW_CONGESTION` | Allow congestion in the resultign guides. 0 = false, 1 = true <br> (Default: `0`) | |
set ::env(GLB_RT_ALLOW_CONGESTION) 0 |
|
# | `GLB_RT_MINLAYER` | The number of lowest layer to be used in routing. <br> (Default: `1`)| |
set ::env(GLB_RT_MINLAYER) 1 |
|
# | `GLB_RT_MAXLAYER` | The number of highest layer to be used in routing. <br> (Default: `6`)| |
set ::env(GLB_RT_MAXLAYER) 6 |
|
# Obstructions |
# li1 over the SRAM areas |
# met5 over the whole design |
#set ::env(GLB_RT_OBS) "li1 0.00 22.68 1748.00 486.24, li1 0.00 851.08 1748.00 486.24, met5 0.0 0.0 1748.0 1360.0" |
|
#| `ROUTING_OPT_ITERS` | Specifies the maximum number of optimization iterations during Detailed Routing in TritonRoute. <br> (Default: `64`) | |
set ::env(ROUTING_OPT_ITERS) "64" |
|
#| `GLOBAL_ROUTER` | Specifies which global router to use. Values: `fastroute` or `cugr`. <br> (Default: `fastroute`) | |
set ::env(GLOBAL_ROUTER) "fastroute" |
|
#| `DETAILED_ROUTER` | Specifies which detailed router to use. Values: `tritonroute`, `tritonroute_or`, or `drcu`. <br> (Default: `tritonroute`) | |
set ::env(DETAILED_ROUTER) "tritonroute" |
|
# DRC |
# --- |
|
|
set ::env(MAGIC_DRC_USE_GDS) 1 |
|
|
# Tape Out |
# -------- |
|
set ::env(MAGIC_ZEROIZE_ORIGIN) 0 |
|
|
# Cell library specific config |
# ---------------------------- |
|
set filename $::env(DESIGN_DIR)/$::env(PDK)_$::env(STD_CELL_LIBRARY)_config.tcl |
if { [file exists $filename] == 1} { |
source $filename |
} |
syntacore/config.tcl
Property changes :
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: syntacore/pin_order.cfg
===================================================================
--- syntacore/pin_order.cfg (nonexistent)
+++ syntacore/pin_order.cfg (revision 9)
@@ -0,0 +1,115 @@
+#BUS_SORT
+#E
+clk
+cpu_rst_n
+irq_lines.*
+pwrup_rst_n
+rst_n
+rtc_clk
+soft_irq
+sys_rdc_qlfy_o
+sys_rst_n_o
+fuse_idcode.*
+fuse_mhartid.*
+
+#W
+tck
+tdi
+tdo
+tdo_en
+test_mode
+test_rst_n
+tms
+trst_n
+
+#S
+io_axi_imem_araddr.*
+io_axi_imem_arburst.*
+io_axi_imem_arcache.*
+io_axi_imem_arid.*
+io_axi_imem_arlen.*
+io_axi_imem_arlock
+io_axi_imem_arprot.*
+io_axi_imem_arqos.*
+io_axi_imem_arready
+io_axi_imem_arregion.*
+io_axi_imem_arsize.*
+io_axi_imem_aruser.*
+io_axi_imem_arvalid
+io_axi_imem_awaddr.*
+io_axi_imem_awburst.*
+io_axi_imem_awcache.*
+io_axi_imem_awid.*
+io_axi_imem_awlen.*
+io_axi_imem_awlock
+io_axi_imem_awprot.*
+io_axi_imem_awqos.*
+io_axi_imem_awready
+io_axi_imem_awregion.*
+io_axi_imem_awsize.*
+io_axi_imem_awuser.*
+io_axi_imem_awvalid
+io_axi_imem_bid.*
+io_axi_imem_bready
+io_axi_imem_bresp.*
+io_axi_imem_buser.*
+io_axi_imem_bvalid
+io_axi_imem_rdata.*
+io_axi_imem_rid.*
+io_axi_imem_rlast
+io_axi_imem_rready
+io_axi_imem_rresp.*
+io_axi_imem_ruser.*
+io_axi_imem_rvalid
+io_axi_imem_wdata.*
+io_axi_imem_wlast
+io_axi_imem_wready
+io_axi_imem_wstrb.*
+io_axi_imem_wuser.*
+io_axi_imem_wvalid
+
+io_axi_dmem_araddr.*
+io_axi_dmem_arburst.*
+io_axi_dmem_arid.*
+io_axi_dmem_arlen.*
+io_axi_dmem_arlock
+io_axi_dmem_arprot.*
+io_axi_dmem_arqos.*
+io_axi_dmem_arready
+io_axi_dmem_arregion.*
+io_axi_dmem_arsize.*
+io_axi_dmem_aruser.*
+io_axi_dmem_arvalid
+io_axi_dmem_arcache.*
+io_axi_dmem_awaddr.*
+io_axi_dmem_awburst.*
+io_axi_dmem_awid.*
+io_axi_dmem_awlen.*
+io_axi_dmem_awlock
+io_axi_dmem_awprot.*
+io_axi_dmem_awqos.*
+io_axi_dmem_awready
+io_axi_dmem_awregion.*
+io_axi_dmem_awsize.*
+io_axi_dmem_awuser.*
+io_axi_dmem_awvalid
+io_axi_dmem_awcache.*
+io_axi_dmem_bid.*
+io_axi_dmem_bready
+io_axi_dmem_bresp.*
+io_axi_dmem_buser.*
+io_axi_dmem_bvalid
+io_axi_dmem_rdata.*
+io_axi_dmem_rid.*
+io_axi_dmem_rlast
+io_axi_dmem_rready
+io_axi_dmem_rresp.*
+io_axi_dmem_ruser.*
+io_axi_dmem_rvalid
+io_axi_dmem_wdata.*
+io_axi_dmem_wlast
+io_axi_dmem_wready
+io_axi_dmem_wstrb.*
+io_axi_dmem_wuser.*
+io_axi_dmem_wvalid
+
Index: Makefile
===================================================================
--- Makefile (revision 2)
+++ Makefile (revision 9)
@@ -1 +1,85 @@
-../caravel/openlane/Makefile
\ No newline at end of file
+# 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 ?= v0.15
+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/$**