feat: modify pdk file path

This commit is contained in:
maksyuki committed 2025-01-22 23:37:01 +08:00
1 parent e592303801
commit 064c7e8d71
4 files changed
+59 -54

No files matched your search

+1
View File
@@ -1,4 +1,5 @@
reports
out
WORK
tmp
*.log
+13 -13
View File
@@ -10,19 +10,19 @@ set yosys_dir [file dirname [file dirname [info script]]]
set root_dir [file dirname $yosys_dir]
if {[file exists "$root_dir/.cockpitrc"]} {
puts "0. Executing init_tech: load technology from ETHZ DZ cockpit"
set pdk_dir "$root_dir/technology"
set pdk_cells_lib ${pdk_dir}/lib
set pdk_sram_lib ${pdk_dir}/lib
set pdk_io_lib ${pdk_dir}/lib
puts "0. Executing init_tech: load technology from ETHZ DZ cockpit"
set pdk_dir "$root_dir/technology"
set pdk_cells_lib ${pdk_dir}/lib
set pdk_sram_lib ${pdk_dir}/lib
set pdk_io_lib ${pdk_dir}/lib
} else {
puts "0. Executing init_tech: load technology from Github PDK"
if {![info exists pdk_dir]} {
set pdk_dir "$root_dir/ihp13/pdk"
}
set pdk_cells_lib ${pdk_dir}/ihp-sg13g2/libs.ref/sg13g2_stdcell/lib
set pdk_sram_lib ${pdk_dir}/ihp-sg13g2/libs.ref/sg13g2_sram/lib
set pdk_io_lib ${pdk_dir}/ihp-sg13g2/libs.ref/sg13g2_io/lib
puts "0. Executing init_tech: load technology from Github PDK"
if {![info exists pdk_dir]} {
set pdk_dir "$root_dir/IHP-Open-PDK"
}
set pdk_cells_lib ${pdk_dir}/ihp-sg13g2/libs.ref/sg13g2_stdcell/lib
set pdk_sram_lib ${pdk_dir}/ihp-sg13g2/libs.ref/sg13g2_sram/lib
set pdk_io_lib ${pdk_dir}/ihp-sg13g2/libs.ref/sg13g2_io/lib
}
set tech_cells [list "$pdk_cells_lib/sg13g2_stdcell_typ_1p20V_25C.lib"]
@@ -44,5 +44,5 @@ set tech_cells_args [concat {*}$tech_cells_args_list]
# read library files
foreach file $lib_list {
yosys read_liberty -lib "$file"
yosys read_liberty -lib "$file"
}
+21 -15
View File
@@ -21,25 +21,31 @@ set abc_comb_script [processAbcScript $abc_combinational_script]
# read liberty files and prepare some variables
source $script_dir/init_tech.tcl
yosys plugin -i slang.so
# yosys plugin -i slang.so
# read design
yosys read_slang --top $top_design -f $sv_flist \
--compat-mode --keep-hierarchy \
--allow-use-before-declare --ignore-unknown-modules
# # read design
# yosys read_slang --top $top_design -f $sv_flist \
# --compat-mode --keep-hierarchy \
# --allow-use-before-declare --ignore-unknown-modules
yosys read_verilog ../../rtl/spram_model.v
yosys read_verilog ../../rtl/picorv32.v
yosys read_verilog ../../rtl/spimemio.v
yosys read_verilog ../../rtl/simpleuart.v
yosys read_verilog ../../rtl/picosoc.v
yosys read_verilog ../../rtl/retrosoc.v
# blackbox requested modules
if { [info exists ::env(YOSYS_BLACKBOX_MODULES)] } {
foreach sel $::env(YOSYS_BLACKBOX_MODULES) {
puts "Blackboxing the module ${sel}"
yosys select -list {*}$sel
yosys blackbox {*}$sel
yosys setattr -set keep_hierarchy 1 {*}$sel
}
}
# # blackbox requested modules
# if { [info exists ::env(YOSYS_BLACKBOX_MODULES)] } {
# foreach sel $::env(YOSYS_BLACKBOX_MODULES) {
# puts "Blackboxing the module ${sel}"
# yosys select -list {*}$sel
# yosys blackbox {*}$sel
# yosys setattr -set keep_hierarchy 1 {*}$sel
# }
# }
# preserve hierarchy of selected modules/instances
# # preserve hierarchy of selected modules/instances
if { [info exists ::env(YOSYS_KEEP_HIER_INST)] } {
foreach sel $::env(YOSYS_KEEP_HIER_INST) {
puts "Keeping hierarchy of selection: $sel"
+24 -26
View File
@@ -18,39 +18,37 @@ YOSYS_REPORTS := $(YOSYS_DIR)/reports
# Project variables
include $(YOSYS_DIR)/project-synth.mk
TOP_DESIGN ?= croc_chip
RTL_NAME ?= croc
TOP_DESIGN ?= retrosoc
RTL_NAME ?= retrosoc
PICKLE_OUT := $(realpath $(YOSYS_DIR)/..)/pickle
VLOG_FILES := $(PICKLE_OUT)/$(RTL_NAME)_sv2v.v
VLOG_FILES := $(RTL_NAME)_sv2v.v
NETLIST := $(YOSYS_OUT)/$(RTL_NAME)_yosys.v
NETLIST_DEBUG := $(YOSYS_OUT)/$(RTL_NAME)_debug_yosys.v
## Synthesize netlist using Yosys
yosys: $(NETLIST)
$(NETLIST) $(NETLIST_DEBUG): $(SV_FLIST)
@mkdir -p $(YOSYS_OUT)
@mkdir -p $(YOSYS_WORK)
@mkdir -p $(YOSYS_REPORTS)
SV_FLIST="$(SV_FLIST)" \
TOP_DESIGN="$(TOP_DESIGN)" \
PROJ_NAME="$(RTL_NAME)" \
WORK="$(YOSYS_WORK)" \
BUILD="$(YOSYS_OUT)" \
REPORTS="$(YOSYS_REPORTS)" \
NETLIST="$(NETLIST)" \
$(YOSYS) -c $(YOSYS_DIR)/scripts/yosys_synthesis.tcl \
2>&1 | TZ=UTC gawk '{ print strftime("[%Y-%m-%d %H:%M %Z]"), $$0 }' \
| tee "$(YOSYS_DIR)/$(RTL_NAME).log" \
| gawk -f $(YOSYS_DIR)/scripts/filter_output.awk;
$(NETLIST) $(NETLIST_DEBUG):
@mkdir -p $(YOSYS_OUT)
@mkdir -p $(YOSYS_WORK)
@mkdir -p $(YOSYS_REPORTS)
SV_FLIST="$(SV_FLIST)" \
TOP_DESIGN="$(TOP_DESIGN)" \
PROJ_NAME="$(RTL_NAME)" \
WORK="$(YOSYS_WORK)" \
BUILD="$(YOSYS_OUT)" \
REPORTS="$(YOSYS_REPORTS)" \
NETLIST="$(NETLIST)" \
$(YOSYS) -c $(YOSYS_DIR)/scripts/yosys_synthesis.tcl \
2>&1 | TZ=UTC gawk '{ print strftime("[%Y-%m-%d %H:%M %Z]"), $$0 }' \
| tee "$(YOSYS_DIR)/$(RTL_NAME).log" \
| gawk -f $(YOSYS_DIR)/scripts/filter_output.awk;
ys_clean:
rm -rf $(YOSYS_OUT)
rm -rf $(YOSYS_WORK)
rm -rf $(YOSYS_REPORTS)
rm -f $(YOSYS_DIR)/$(RTL_NAME).log
rm -rf $(YOSYS_OUT)
rm -rf $(YOSYS_WORK)
rm -rf $(YOSYS_REPORTS)
rm -f $(YOSYS_DIR)/$(RTL_NAME).log
.PHONY: ys_clean yosys synth yosys-slang
.PHONY: ys_clean yosys synth $(NETLIST) $(NETLIST_DEBUG)