refactor: refactor Makefiles and related scripts for improved readability and consistency

- Adjusted variable alignment in Makefiles for better readability.
- Ensured consistent formatting across various Makefiles and scripts.
- Added a new .bake.toml file to define project formatting policies for mbake.
- Updated paths and variable definitions in multiple configuration files to enhance clarity.
- Removed unnecessary comments and whitespace for cleaner code.
This commit is contained in:
maksyuki committed 2026-07-21 11:21:39 +08:00
1 parent f5b373fd65
commit 7418acfe42
21 files changed
+227 -225

No files matched your search

+5
View File
@@ -0,0 +1,5 @@
# Project formatting policy for mbake.
[formatter]
# Align adjacent assignments, but start a new alignment group at comments.
align_variable_assignments = true
align_across_comments = false
+40 -40
View File
@@ -2,9 +2,9 @@ SHELL := /bin/bash
.DEFAULT_GOAL := help .DEFAULT_GOAL := help
.DELETE_ON_ERROR: .DELETE_ON_ERROR:
ROOT_PATH ?= $(abspath $(dir $(firstword $(MAKEFILE_LIST)))) ROOT_PATH ?= $(abspath $(dir $(firstword $(MAKEFILE_LIST))))
CONFIG ?= CONFIG ?=
LOCK_FILE ?= $(ROOT_PATH)/config/dependencies.lock.json LOCK_FILE ?= $(ROOT_PATH)/config/dependencies.lock.json
ifneq ($(strip $(CONFIG)),) ifneq ($(strip $(CONFIG)),)
CONFIG_PATH := $(if $(filter /%,$(CONFIG)),$(CONFIG),$(ROOT_PATH)/$(CONFIG)) CONFIG_PATH := $(if $(filter /%,$(CONFIG)),$(CONFIG),$(ROOT_PATH)/$(CONFIG))
@@ -14,14 +14,14 @@ endif
include $(CONFIG_PATH) include $(CONFIG_PATH)
PROFILE_NAME := $(basename $(notdir $(CONFIG_PATH))) PROFILE_NAME := $(basename $(notdir $(CONFIG_PATH)))
else else
CONFIG_PATH := CONFIG_PATH :=
PROFILE_NAME := manual PROFILE_NAME := manual
endif endif
SOC ?= MINI SOC ?= MINI
SIMU ?= VCS SIMU ?= VCS
SYNTH ?= NONE SYNTH ?= NONE
STA ?= NONE STA ?= NONE
# HW # HW
PDK ?= IHP130 PDK ?= IHP130
@@ -31,36 +31,36 @@ HAVE_SRAM_MACRO ?= NO
HAVE_SVA ?= NO HAVE_SVA ?= NO
WAVE ?= NO WAVE ?= NO
RTL_SIM_CORESEL ?= 0 RTL_SIM_CORESEL ?= 0
RTL_SIM_TIMEOUT ?= -1 RTL_SIM_TIMEOUT ?= -1
SIM_FIRMWARE_NAME ?= $(FIRMWARE_NAME) SIM_FIRMWARE_NAME ?= $(FIRMWARE_NAME)
SIM_SUCCESS_MARKER ?= retroSoC: A Customized ASIC for Retro Stuff SIM_SUCCESS_MARKER ?= retroSoC: A Customized ASIC for Retro Stuff
RTL_PATH := $(ROOT_PATH)/rtl/mini RTL_PATH := $(ROOT_PATH)/rtl/mini
CORE ?= HAZARD3 CORE ?= HAZARD3
IP ?= NONE IP ?= NONE
RTL_TOP ?= retrosoc_tb RTL_TOP ?= retrosoc_tb
# SW # SW
ISA ?= RV32IM ISA ?= RV32IM
HAVE_CSR ?= NO HAVE_CSR ?= NO
FIRMWARE_NAME ?= retrosoc_fw FIRMWARE_NAME ?= retrosoc_fw
APP ?= shell APP ?= shell
LINK_TYPE ?= ld2_sram LINK_TYPE ?= ld2_sram
BUILD_ROOT ?= $(ROOT_PATH)/build BUILD_ROOT ?= $(ROOT_PATH)/build
CACHE_ROOT ?= $(ROOT_PATH)/.cache/retrosoc CACHE_ROOT ?= $(ROOT_PATH)/.cache/retrosoc
BUILD_TIMESTAMP ?= $(shell date '+%Y-%m-%d-%H-%M') BUILD_TIMESTAMP ?= $(shell date '+%Y-%m-%d-%H-%M')
MAX_JOBS ?= 16 MAX_JOBS ?= 16
HOST_CC ?= cc HOST_CC ?= cc
CLANG_FORMAT ?= clang-format-14 CLANG_FORMAT ?= clang-format-14
JOBS ?= $(shell count=$$(nproc 2>/dev/null || printf '1'); \ JOBS ?= $(shell count=$$(nproc 2>/dev/null || printf '1'); \
if [ "$$count" -gt "$(MAX_JOBS)" ]; then printf '%s' '$(MAX_JOBS)'; \ if [ "$$count" -gt "$(MAX_JOBS)" ]; then printf '%s' '$(MAX_JOBS)'; \
else printf '%s' "$$count"; fi) else printf '%s' "$$count"; fi)
CONFIG_KEY_VARS := SOC CORE IP PDK HAVE_PLL HAVE_SRAM_IF HAVE_SRAM_MACRO HAVE_SVA \ CONFIG_KEY_VARS := SOC CORE IP PDK HAVE_PLL HAVE_SRAM_IF HAVE_SRAM_MACRO HAVE_SVA \
ISA HAVE_CSR APP LINK_TYPE RTL_TOP FIRMWARE_NAME ISA HAVE_CSR APP LINK_TYPE RTL_TOP FIRMWARE_NAME
VARIANT_ID := $(strip $(shell python3 $(ROOT_PATH)/scripts/config_key.py \ VARIANT_ID := $(strip $(shell python3 $(ROOT_PATH)/scripts/config_key.py \
--lock $(LOCK_FILE) --profile $(PROFILE_NAME) --timestamp $(BUILD_TIMESTAMP) \ --lock $(LOCK_FILE) --profile $(PROFILE_NAME) --timestamp $(BUILD_TIMESTAMP) \
$(foreach var,$(CONFIG_KEY_VARS),--value $(var)=$($(var))))) $(foreach var,$(CONFIG_KEY_VARS),--value $(var)=$($(var)))))
ifeq ($(VARIANT_ID),) ifeq ($(VARIANT_ID),)
@@ -68,13 +68,13 @@ $(error Failed to calculate build variant ID)
endif endif
LOCK_DIGEST := $(strip $(shell python3 $(ROOT_PATH)/scripts/dependency_lock.py --lock $(LOCK_FILE) --digest)) LOCK_DIGEST := $(strip $(shell python3 $(ROOT_PATH)/scripts/dependency_lock.py --lock $(LOCK_FILE) --digest))
export BUILD_TIMESTAMP export BUILD_TIMESTAMP
VARIANT_ROOT := $(abspath $(BUILD_ROOT))/$(VARIANT_ID) VARIANT_ROOT := $(abspath $(BUILD_ROOT))/$(VARIANT_ID)
SW_BUILD_DIR := $(VARIANT_ROOT)/sw SW_BUILD_DIR := $(VARIANT_ROOT)/sw
SIM_TOOL_NAME := $(shell printf '%s' '$(SIMU)' | tr '[:upper:]' '[:lower:]') SIM_TOOL_NAME := $(shell printf '%s' '$(SIMU)' | tr '[:upper:]' '[:lower:]')
SIM_BUILD_ROOT := $(VARIANT_ROOT)/sim/$(SIM_TOOL_NAME) SIM_BUILD_ROOT := $(VARIANT_ROOT)/sim/$(SIM_TOOL_NAME)
SYN_BUILD_ROOT := $(VARIANT_ROOT)/syn/yosys SYN_BUILD_ROOT := $(VARIANT_ROOT)/syn/yosys
STA_BUILD_ROOT := $(VARIANT_ROOT)/sta/opensta STA_BUILD_ROOT := $(VARIANT_ROOT)/sta/opensta
META_DIR := $(VARIANT_ROOT)/meta META_DIR := $(VARIANT_ROOT)/meta
ifeq ($(SYNTH),YOSYS) ifeq ($(SYNTH),YOSYS)
FLOW_FILELIST_DIR := $(SYN_BUILD_ROOT)/filelists FLOW_FILELIST_DIR := $(SYN_BUILD_ROOT)/filelists
else else
@@ -126,10 +126,10 @@ $(error OpenSTA currently supports PDK=IHP130 only)
endif endif
endif endif
DEF_LIST ?= +define+PDK_$(PDK) DEF_LIST ?= +define+PDK_$(PDK)
DEF_LIST += +define+CORE_$(CORE) DEF_LIST += +define+CORE_$(CORE)
DEF_LIST += +define+IP_$(IP) DEF_LIST += +define+IP_$(IP)
DEF_LIST += +define+SIMU_$(SIMU) DEF_LIST += +define+SIMU_$(SIMU)
ifeq ($(HAVE_PLL), YES) ifeq ($(HAVE_PLL), YES)
DEF_LIST += +define+HAVE_PLL DEF_LIST += +define+HAVE_PLL
@@ -162,9 +162,9 @@ ifeq ($(STA), OPENSTA)
endif endif
.PHONY: help config doctor setup setup-mpw setup-core setup-clusterip setup-ip setup-pdk setup-app \ .PHONY: help config doctor setup setup-mpw setup-core setup-clusterip setup-ip setup-pdk setup-app \
clean-all purge-cache manifest check-warnings metrics check-metrics package \ clean-all purge-cache manifest check-warnings metrics check-metrics package \
regress-pr regress-nightly sim-asm sw-format sw-format-check sw-policy-check sw-host-test \ regress-pr regress-nightly sim-asm sw-format sw-format-check sw-policy-check sw-host-test \
pin-map check-pin-map pin-map check-pin-map
.NOTPARALLEL: setup .NOTPARALLEL: setup
help: help:
@@ -288,4 +288,4 @@ regress-nightly:
sim-asm: asm sim-asm: asm
$(MAKE) SIM_FIRMWARE_NAME=$(ASM_FIRMWARE_NAME) \ $(MAKE) SIM_FIRMWARE_NAME=$(ASM_FIRMWARE_NAME) \
SIM_SUCCESS_MARKER='Mem wr/rd test success' sim SIM_SUCCESS_MARKER='Mem wr/rd test success' sim
+1 -1
View File
@@ -14,4 +14,4 @@ APP_INC_DIRS += $(ROOT_PATH)/app/media/include
include $(ROOT_PATH)/app/middleware/fatfs/fatfs.mk include $(ROOT_PATH)/app/middleware/fatfs/fatfs.mk
include $(ROOT_PATH)/app/benchmark/coremark/coremark.mk include $(ROOT_PATH)/app/benchmark/coremark/coremark.mk
include $(ROOT_PATH)/app/network/userip/userip.mk include $(ROOT_PATH)/app/network/userip/userip.mk
+8 -8
View File
@@ -2,15 +2,15 @@
GCC = riscv32-unknown-elf- GCC = riscv32-unknown-elf-
AS = $(GCC)as AS = $(GCC)as
LD = $(GCC)ld LD = $(GCC)ld
OBJDUMP = $(GCC)objdump OBJDUMP = $(GCC)objdump
OBJCOPY = $(GCC)objcopy OBJCOPY = $(GCC)objcopy
AS_FLAGS = -fno-pic -march=rv32im -mabi=ilp32 AS_FLAGS = -fno-pic -march=rv32im -mabi=ilp32
LDFLAGS = -T flash.ld -melf32lriscv LDFLAGS = -T flash.ld -melf32lriscv
APP ?= hello APP ?= hello
OUT_DIR ?= . OUT_DIR ?= .
APP_ALL = $(OUT_DIR)/$(APP)-asm APP_ALL = $(OUT_DIR)/$(APP)-asm
all: $(APP).s all: $(APP).s
@mkdir -p $(OUT_DIR) @mkdir -p $(OUT_DIR)
@@ -21,4 +21,4 @@ all: $(APP).s
$(OBJCOPY) -S -I binary -O verilog $(APP_ALL).bin $(APP_ALL).flash $(OBJCOPY) -S -I binary -O verilog $(APP_ALL).bin $(APP_ALL).flash
clean: clean:
rm -rf $(APP_ALL).o $(APP_ALL).elf $(APP_ALL).txt $(APP_ALL).bin $(APP_ALL).flash rm -rf $(APP_ALL).o $(APP_ALL).elf $(APP_ALL).txt $(APP_ALL).bin $(APP_ALL).flash
+1 -1
View File
@@ -6,4 +6,4 @@ APP_SRCS += $(ROOT_PATH)/app/coremark/coremark-main/core_util.c
APP_SRCS += $(ROOT_PATH)/app/benchmark/coremark/core_portme.c APP_SRCS += $(ROOT_PATH)/app/benchmark/coremark/core_portme.c
APP_INC_DIRS += $(ROOT_PATH)/app/coremark/coremark-main APP_INC_DIRS += $(ROOT_PATH)/app/coremark/coremark-main
APP_INC_DIRS += $(ROOT_PATH)/app/benchmark/coremark APP_INC_DIRS += $(ROOT_PATH)/app/benchmark/coremark
+1 -1
View File
@@ -3,4 +3,4 @@ APP_SRCS += $(ROOT_PATH)/app/fatfs/ff16/source/ff.c
APP_SRCS += $(ROOT_PATH)/app/fatfs/ff16/source/ffsystem.c APP_SRCS += $(ROOT_PATH)/app/fatfs/ff16/source/ffsystem.c
APP_SRCS += $(ROOT_PATH)/app/fatfs/ff16/source/ffunicode.c APP_SRCS += $(ROOT_PATH)/app/fatfs/ff16/source/ffunicode.c
APP_INC_DIRS += $(ROOT_PATH)/app/fatfs/ff16/source APP_INC_DIRS += $(ROOT_PATH)/app/fatfs/ff16/source
+2 -2
View File
@@ -1,5 +1,5 @@
# User IP is optional and is linked only for MDD configurations. # User IP is optional and is linked only for MDD configurations.
ifeq ($(IP), MDD) ifeq ($(IP), MDD)
APP_SRCS += $(ROOT_PATH)/app/network/userip/userip.c APP_SRCS += $(ROOT_PATH)/app/network/userip/userip.c
APP_INC_DIRS += $(ROOT_PATH)/app/network/userip APP_INC_DIRS += $(ROOT_PATH)/app/network/userip
endif endif
+1 -1
View File
@@ -5,4 +5,4 @@ APP_SRCS += $(ROOT_PATH)/app/ports/lvgl/lv_port_disp.c
APP_SRCS += $(ROOT_PATH)/app/ports/lvgl/lv_port_indev.c APP_SRCS += $(ROOT_PATH)/app/ports/lvgl/lv_port_indev.c
APP_INC_DIRS += $(LVGL_SDK_DIR) APP_INC_DIRS += $(LVGL_SDK_DIR)
APP_INC_DIRS += $(ROOT_PATH)/app/ports/lvgl APP_INC_DIRS += $(ROOT_PATH)/app/ports/lvgl
+11 -11
View File
@@ -1,12 +1,12 @@
SOC := MINI SOC := MINI
CORE := HAZARD3 CORE := HAZARD3
IP := NONE IP := NONE
PDK := IHP130 PDK := IHP130
HAVE_PLL := NO HAVE_PLL := NO
HAVE_SRAM_IF := NO HAVE_SRAM_IF := NO
HAVE_SRAM_MACRO := NO HAVE_SRAM_MACRO := NO
HAVE_SVA := NO HAVE_SVA := NO
ISA := RV32IM ISA := RV32IM
HAVE_CSR := YES HAVE_CSR := YES
APP := shell APP := shell
LINK_TYPE := ld2_psram LINK_TYPE := ld2_psram
+11 -11
View File
@@ -1,12 +1,12 @@
SOC := MINI SOC := MINI
CORE := HAZARD3 CORE := HAZARD3
IP := NONE IP := NONE
PDK := IHP130 PDK := IHP130
HAVE_PLL := NO HAVE_PLL := NO
HAVE_SRAM_IF := NO HAVE_SRAM_IF := NO
HAVE_SRAM_MACRO := NO HAVE_SRAM_MACRO := NO
HAVE_SVA := NO HAVE_SVA := NO
ISA := RV32IM ISA := RV32IM
HAVE_CSR := NO HAVE_CSR := NO
APP := bringup APP := bringup
LINK_TYPE := ld2_psram LINK_TYPE := ld2_psram
+11 -11
View File
@@ -1,12 +1,12 @@
SOC := MINI SOC := MINI
CORE := MDD CORE := MDD
IP := NONE IP := NONE
PDK := IHP130 PDK := IHP130
HAVE_PLL := NO HAVE_PLL := NO
HAVE_SRAM_IF := NO HAVE_SRAM_IF := NO
HAVE_SRAM_MACRO := NO HAVE_SRAM_MACRO := NO
HAVE_SVA := NO HAVE_SVA := NO
ISA := RV32IM ISA := RV32IM
HAVE_CSR := NO HAVE_CSR := NO
APP := bringup APP := bringup
LINK_TYPE := ld2_psram LINK_TYPE := ld2_psram
+11 -11
View File
@@ -1,12 +1,12 @@
SOC := MINI SOC := MINI
CORE := HAZARD3 CORE := HAZARD3
IP := NONE IP := NONE
PDK := ICS55 PDK := ICS55
HAVE_PLL := NO HAVE_PLL := NO
HAVE_SRAM_IF := NO HAVE_SRAM_IF := NO
HAVE_SRAM_MACRO := NO HAVE_SRAM_MACRO := NO
HAVE_SVA := NO HAVE_SVA := NO
ISA := RV32IM ISA := RV32IM
HAVE_CSR := NO HAVE_CSR := NO
APP := bringup APP := bringup
LINK_TYPE := ld2_psram LINK_TYPE := ld2_psram
+11 -11
View File
@@ -1,12 +1,12 @@
SOC := MINI SOC := MINI
CORE := PICORV32 CORE := PICORV32
IP := NONE IP := NONE
PDK := IHP130 PDK := IHP130
HAVE_PLL := NO HAVE_PLL := NO
HAVE_SRAM_IF := NO HAVE_SRAM_IF := NO
HAVE_SRAM_MACRO := NO HAVE_SRAM_MACRO := NO
HAVE_SVA := NO HAVE_SVA := NO
ISA := RV32IM ISA := RV32IM
HAVE_CSR := NO HAVE_CSR := NO
APP := bringup APP := bringup
LINK_TYPE := ld2_psram LINK_TYPE := ld2_psram
+29 -29
View File
@@ -1,29 +1,29 @@
GENERATED_FL_DIR := $(FLOW_FILELIST_DIR) GENERATED_FL_DIR := $(FLOW_FILELIST_DIR)
MEMORY_MAP_SOURCE := $(RTL_PATH)/address_map/memory_map.json MEMORY_MAP_SOURCE := $(RTL_PATH)/address_map/memory_map.json
MEMORY_MAP_SCRIPT := $(RTL_PATH)/address_map/generate_memory_map.py MEMORY_MAP_SCRIPT := $(RTL_PATH)/address_map/generate_memory_map.py
MEMORY_MAP_DIR := $(VARIANT_ROOT)/generated/memory_map MEMORY_MAP_DIR := $(VARIANT_ROOT)/generated/memory_map
MEMORY_MAP_STAMP := $(MEMORY_MAP_DIR)/.stamp MEMORY_MAP_STAMP := $(MEMORY_MAP_DIR)/.stamp
MEMORY_MAP_RTL_DIR := $(MEMORY_MAP_DIR)/rtl MEMORY_MAP_RTL_DIR := $(MEMORY_MAP_DIR)/rtl
MEMORY_MAP_C_DIR := $(MEMORY_MAP_DIR)/include MEMORY_MAP_C_DIR := $(MEMORY_MAP_DIR)/include
MEMORY_MAP_LINKER_DIR := $(MEMORY_MAP_DIR)/linker MEMORY_MAP_LINKER_DIR := $(MEMORY_MAP_DIR)/linker
MEMORY_MAP_FILELIST := $(MEMORY_MAP_DIR)/memory_map.fl MEMORY_MAP_FILELIST := $(MEMORY_MAP_DIR)/memory_map.fl
PIN_MAP_SOURCE := $(RTL_PATH)/pin_map/pin_map.json PIN_MAP_SOURCE := $(RTL_PATH)/pin_map/pin_map.json
PIN_MAP_SCRIPT := $(RTL_PATH)/pin_map/generate_pin_map.py PIN_MAP_SCRIPT := $(RTL_PATH)/pin_map/generate_pin_map.py
PIN_MAP_DIR := $(VARIANT_ROOT)/generated/pin_map PIN_MAP_DIR := $(VARIANT_ROOT)/generated/pin_map
PIN_MAP_STAMP := $(PIN_MAP_DIR)/.stamp PIN_MAP_STAMP := $(PIN_MAP_DIR)/.stamp
PIN_MAP_FILELIST := $(PIN_MAP_DIR)/pin_map.fl PIN_MAP_FILELIST := $(PIN_MAP_DIR)/pin_map.fl
MPW_STAMP := $(CACHE_ROOT)/stamps/mpw-$(LOCK_DIGEST).prepared MPW_STAMP := $(CACHE_ROOT)/stamps/mpw-$(LOCK_DIGEST).prepared
MPW_OUTPUT_DIR := $(VARIANT_ROOT)/generated/mpw/$(SIM_TOOL_NAME) MPW_OUTPUT_DIR := $(VARIANT_ROOT)/generated/mpw/$(SIM_TOOL_NAME)
MPW_VARIANT_STAMP := $(MPW_OUTPUT_DIR)/.stamp MPW_VARIANT_STAMP := $(MPW_OUTPUT_DIR)/.stamp
FILELIST_STAMP := $(GENERATED_FL_DIR)/.stamp FILELIST_STAMP := $(GENERATED_FL_DIR)/.stamp
FILELIST_TEMPLATES := $(sort $(wildcard $(ROOT_PATH)/rtl/filelist/pdk_*.fl) \ FILELIST_TEMPLATES := $(sort $(wildcard $(ROOT_PATH)/rtl/filelist/pdk_*.fl) \
$(wildcard $(RTL_PATH)/filelist/*.fl) $(RTL_PATH)/lint.msg) $(wildcard $(RTL_PATH)/filelist/*.fl) $(RTL_PATH)/lint.msg)
$(MPW_STAMP): $(MPW_STAMP):
@test -d $(ROOT_PATH)/rtl/managed/mpw/.git || { \ @test -d $(ROOT_PATH)/rtl/managed/mpw/.git || { \
echo "missing $(ROOT_PATH)/rtl/managed/mpw; run 'make setup-mpw' first" >&2; \ echo "missing $(ROOT_PATH)/rtl/managed/mpw; run 'make setup-mpw' first" >&2; \
exit 1; \ exit 1; \
} }
python3 $(ROOT_PATH)/scripts/prepare_mpw.py \ python3 $(ROOT_PATH)/scripts/prepare_mpw.py \
--lock-file $(CACHE_ROOT)/locks/mpw-prepare.lock --lock-file $(CACHE_ROOT)/locks/mpw-prepare.lock
@mkdir -p $(@D) @mkdir -p $(@D)
@@ -58,7 +58,7 @@ check-pin-map:
python3 $(PIN_MAP_SCRIPT) --map $(PIN_MAP_SOURCE) --check python3 $(PIN_MAP_SCRIPT) --map $(PIN_MAP_SOURCE) --check
$(FILELIST_STAMP): $(FILELIST_TEMPLATES) $(RTL_PATH)/script/generate_filelist.py \ $(FILELIST_STAMP): $(FILELIST_TEMPLATES) $(RTL_PATH)/script/generate_filelist.py \
$(RTL_PATH)/script/filelist.py $(MEMORY_MAP_STAMP) $(PIN_MAP_STAMP) $(RTL_PATH)/script/filelist.py $(MEMORY_MAP_STAMP) $(PIN_MAP_STAMP)
python3 $(RTL_PATH)/script/generate_filelist.py \ python3 $(RTL_PATH)/script/generate_filelist.py \
--output-dir $(GENERATED_FL_DIR) \ --output-dir $(GENERATED_FL_DIR) \
$(foreach define,$(DEF_LIST),--define $(define)) $(foreach define,$(DEF_LIST),--define $(define))
@@ -80,15 +80,15 @@ else ifeq ($(PDK), GF180)
NET_FLIST := -f $(GENERATED_FL_DIR)/pdk_gf180.fl NET_FLIST := -f $(GENERATED_FL_DIR)/pdk_gf180.fl
endif endif
NET_FLIST += -f $(GENERATED_FL_DIR)/def.fl NET_FLIST += -f $(GENERATED_FL_DIR)/def.fl
NET_FLIST += -f $(GENERATED_FL_DIR)/sys_def.fl NET_FLIST += -f $(GENERATED_FL_DIR)/sys_def.fl
NET_FLIST += -f $(GENERATED_FL_DIR)/commonip.fl NET_FLIST += -f $(GENERATED_FL_DIR)/commonip.fl
NET_FLIST += -f $(GENERATED_FL_DIR)/inc.fl NET_FLIST += -f $(GENERATED_FL_DIR)/inc.fl
RTL_FLIST := -f $(MEMORY_MAP_FILELIST) -f $(PIN_MAP_FILELIST) $(NET_FLIST) RTL_FLIST := -f $(MEMORY_MAP_FILELIST) -f $(PIN_MAP_FILELIST) $(NET_FLIST)
RTL_FLIST += -f $(GENERATED_FL_DIR)/clusterip.fl RTL_FLIST += -f $(GENERATED_FL_DIR)/clusterip.fl
RTL_FLIST += -f $(GENERATED_FL_DIR)/ip.fl RTL_FLIST += -f $(GENERATED_FL_DIR)/ip.fl
RTL_FLIST += -f $(GENERATED_FL_DIR)/tech.fl RTL_FLIST += -f $(GENERATED_FL_DIR)/tech.fl
ifeq ($(CORE), PICORV32) ifeq ($(CORE), PICORV32)
RTL_FLIST += -f $(GENERATED_FL_DIR)/core_picorv32.fl RTL_FLIST += -f $(GENERATED_FL_DIR)/core_picorv32.fl
@@ -113,4 +113,4 @@ else ifeq ($(SIMU), IVERILOG)
include $(RTL_PATH)/mk/iverilog.mk include $(RTL_PATH)/mk/iverilog.mk
endif endif
.PHONY: gen_mpw_code generate_filelist memory-map check-memory-map pin-map check-pin-map firmware .PHONY: gen_mpw_code generate_filelist memory-map check-memory-map pin-map check-pin-map firmware
+20 -20
View File
@@ -1,24 +1,24 @@
IVERILOG ?= iverilog IVERILOG ?= iverilog
VVP ?= vvp VVP ?= vvp
GTKWAVE ?= gtkwave GTKWAVE ?= gtkwave
NETLIST_PATH ?= $(SYN_BUILD_ROOT)/out/retrosoc_asic_yosys.v NETLIST_PATH ?= $(SYN_BUILD_ROOT)/out/retrosoc_asic_yosys.v
POST_PATH ?= $(ROOT_PATH)/pd/sdf/retrosoc_asic.v POST_PATH ?= $(ROOT_PATH)/pd/sdf/retrosoc_asic.v
SDF_PATH ?= $(ROOT_PATH)/pd/sdf/retrosoc_asic_CTS_MIN.sdf.gz SDF_PATH ?= $(ROOT_PATH)/pd/sdf/retrosoc_asic_CTS_MIN.sdf.gz
SDF_SCOPE ?= $(RTL_TOP).u_retrosoc_asic SDF_SCOPE ?= $(RTL_TOP).u_retrosoc_asic
IVERILOG_ROOT := $(SIM_BUILD_ROOT) IVERILOG_ROOT := $(SIM_BUILD_ROOT)
IVERILOG_BEHV_DIR := $(IVERILOG_ROOT)/behv IVERILOG_BEHV_DIR := $(IVERILOG_ROOT)/behv
IVERILOG_NETL_DIR := $(IVERILOG_ROOT)/netl IVERILOG_NETL_DIR := $(IVERILOG_ROOT)/netl
IVERILOG_POST_DIR := $(IVERILOG_ROOT)/post IVERILOG_POST_DIR := $(IVERILOG_ROOT)/post
IVERILOG_BEHV_FLIST := $(IVERILOG_BEHV_DIR)/iverilog.fl IVERILOG_BEHV_FLIST := $(IVERILOG_BEHV_DIR)/iverilog.fl
IVERILOG_NETL_FLIST := $(IVERILOG_NETL_DIR)/iverilog.fl IVERILOG_NETL_FLIST := $(IVERILOG_NETL_DIR)/iverilog.fl
IVERILOG_POST_FLIST := $(IVERILOG_POST_DIR)/iverilog.fl IVERILOG_POST_FLIST := $(IVERILOG_POST_DIR)/iverilog.fl
CONVERTED_SOC := $(IVERILOG_BEHV_DIR)/converted_soc.v CONVERTED_SOC := $(IVERILOG_BEHV_DIR)/converted_soc.v
CONVERTED_DEPFILE := $(IVERILOG_BEHV_DIR)/converted_soc.d CONVERTED_DEPFILE := $(IVERILOG_BEHV_DIR)/converted_soc.d
IVERILOG_BEHV_SIMV := $(IVERILOG_BEHV_DIR)/simv IVERILOG_BEHV_SIMV := $(IVERILOG_BEHV_DIR)/simv
IVERILOG_NETL_SIMV := $(IVERILOG_NETL_DIR)/simv IVERILOG_NETL_SIMV := $(IVERILOG_NETL_DIR)/simv
IVERILOG_POST_SIMV := $(IVERILOG_POST_DIR)/simv IVERILOG_POST_SIMV := $(IVERILOG_POST_DIR)/simv
IVERILOG_BEHV_DEPFILE := $(IVERILOG_BEHV_DIR)/simv.d IVERILOG_BEHV_DEPFILE := $(IVERILOG_BEHV_DIR)/simv.d
IVERILOG_NETL_DEPFILE := $(IVERILOG_NETL_DIR)/simv.d IVERILOG_NETL_DEPFILE := $(IVERILOG_NETL_DIR)/simv.d
IVERILOG_POST_DEPFILE := $(IVERILOG_POST_DIR)/simv.d IVERILOG_POST_DEPFILE := $(IVERILOG_POST_DIR)/simv.d
@@ -128,4 +128,4 @@ postwave:
clean: clean:
python3 $(ROOT_PATH)/scripts/clean.py --root $(ROOT_PATH) --path $(IVERILOG_ROOT) python3 $(ROOT_PATH)/scripts/clean.py --root $(ROOT_PATH) --path $(IVERILOG_ROOT)
.PHONY: convt_sv2v gen_iverilog_filelist comp netcomp postcomp sim netsim postsim wave netwave postwave clean .PHONY: convt_sv2v gen_iverilog_filelist comp netcomp postcomp sim netsim postsim wave netwave postwave clean
+13 -13
View File
@@ -1,12 +1,12 @@
# Software SDK and application build # Software SDK and application build
CROSS ?= riscv32-unknown-elf- CROSS ?= riscv32-unknown-elf-
CP = $(CROSS)cpp CP = $(CROSS)cpp
CC = $(CROSS)gcc CC = $(CROSS)gcc
OBJC = $(CROSS)objcopy OBJC = $(CROSS)objcopy
DUMP = $(CROSS)objdump DUMP = $(CROSS)objdump
GCC_FLAGS := -std=gnu11 -Wall -Wextra \ GCC_FLAGS := -std=gnu11 -Wall -Wextra \
-Wl,-Bstatic,-T,$(LINK_TYPE).lds,--strip-debug -O3 \ -Wl,-Bstatic,-T,$(LINK_TYPE).lds,--strip-debug -O3 \
-ffreestanding -nostdlib -ffreestanding -nostdlib
SW_WARN_FLAGS := -Wformat=2 -Wshadow -Wstrict-prototypes -Wmissing-prototypes \ SW_WARN_FLAGS := -Wformat=2 -Wshadow -Wstrict-prototypes -Wmissing-prototypes \
@@ -91,9 +91,9 @@ CRT_SRCS += $(ROOT_PATH)/crt/src/core/system_irq_handler.c
CRT_SRCS += $(ROOT_PATH)/crt/src/core/irq.c CRT_SRCS += $(ROOT_PATH)/crt/src/core/irq.c
endif endif
APP_SRCS := APP_SRCS :=
APP_INC_DIRS := APP_INC_DIRS :=
APP_MK := $(ROOT_PATH)/app/apps/$(APP)/app.mk APP_MK := $(ROOT_PATH)/app/apps/$(APP)/app.mk
ifeq ($(wildcard $(APP_MK)),) ifeq ($(wildcard $(APP_MK)),)
$(error Application profile not found: $(APP_MK)) $(error Application profile not found: $(APP_MK))
@@ -110,17 +110,17 @@ CRT_SRCS += $(ROOT_PATH)/crt/arch/riscv/libgcc/muldi3.S
CRT_SRCS += $(ROOT_PATH)/crt/arch/riscv/libgcc/mulsi3.c CRT_SRCS += $(ROOT_PATH)/crt/arch/riscv/libgcc/mulsi3.c
endif endif
INC_PATH := -I$(SW_BUILD_DIR)/include \ INC_PATH := -I$(SW_BUILD_DIR)/include \
-I$(MEMORY_MAP_C_DIR) \ -I$(MEMORY_MAP_C_DIR) \
-I$(ROOT_PATH)/crt/include \ -I$(ROOT_PATH)/crt/include \
$(addprefix -I,$(APP_INC_DIRS)) $(addprefix -I,$(APP_INC_DIRS))
SRC_PATH := $(CRT_SRCS) $(APP_SRCS) SRC_PATH := $(CRT_SRCS) $(APP_SRCS)
LDS_PATH := $(ROOT_PATH)/crt/linker/$(LINK_TYPE).lds LDS_PATH := $(ROOT_PATH)/crt/linker/$(LINK_TYPE).lds
MEMORY_REGIONS_LD := $(MEMORY_MAP_LINKER_DIR)/memory_regions.ld MEMORY_REGIONS_LD := $(MEMORY_MAP_LINKER_DIR)/memory_regions.ld
VERSION_HEADER := $(SW_BUILD_DIR)/include/socver.h VERSION_HEADER := $(SW_BUILD_DIR)/include/socver.h
FIRMWARE_ELF := $(SW_BUILD_DIR)/firmware FIRMWARE_ELF := $(SW_BUILD_DIR)/firmware
ASM_FIRMWARE_NAME ?= retrosoc_asm ASM_FIRMWARE_NAME ?= retrosoc_asm
SW_HEADERS := $(shell find $(ROOT_PATH)/crt/include $(ROOT_PATH)/app -type f \ SW_HEADERS := $(shell find $(ROOT_PATH)/crt/include $(ROOT_PATH)/app -type f \
\( -name '*.h' -o -name '*.hpp' \) 2>/dev/null) \( -name '*.h' -o -name '*.hpp' \) 2>/dev/null)
$(VERSION_HEADER): FORCE_VERSION $(ROOT_PATH)/crt/ver.py $(ROOT_PATH)/crt/ver.tmpl $(VERSION_HEADER): FORCE_VERSION $(ROOT_PATH)/crt/ver.py $(ROOT_PATH)/crt/ver.tmpl
@@ -139,7 +139,7 @@ asm: $(MPW_VARIANT_STAMP)
cp $(SW_BUILD_DIR)/asm/hello-asm.txt $(SW_BUILD_DIR)/$(ASM_FIRMWARE_NAME)_all.txt cp $(SW_BUILD_DIR)/asm/hello-asm.txt $(SW_BUILD_DIR)/$(ASM_FIRMWARE_NAME)_all.txt
$(FIRMWARE_ELF): $(MPW_VARIANT_STAMP) $(MEMORY_MAP_STAMP) $(VERSION_HEADER) $(SRC_PATH) $(SW_HEADERS) $(LDS_PATH) \ $(FIRMWARE_ELF): $(MPW_VARIANT_STAMP) $(MEMORY_MAP_STAMP) $(VERSION_HEADER) $(SRC_PATH) $(SW_HEADERS) $(LDS_PATH) \
$(ROOT_PATH)/rtl/mini/mk/software.mk $(ROOT_PATH)/rtl/mini/mk/software.mk
@mkdir -p $(SW_BUILD_DIR) @mkdir -p $(SW_BUILD_DIR)
cd $(SW_BUILD_DIR) && $(CP) -P -o $(LINK_TYPE).lds $(LDS_PATH) cd $(SW_BUILD_DIR) && $(CP) -P -o $(LINK_TYPE).lds $(LDS_PATH)
cp $(MEMORY_REGIONS_LD) $(SW_BUILD_DIR)/memory_regions.ld cp $(MEMORY_REGIONS_LD) $(SW_BUILD_DIR)/memory_regions.ld
@@ -153,4 +153,4 @@ firmware: $(FIRMWARE_ELF)
firmware asm: | manifest firmware asm: | manifest
.PHONY: FORCE_VERSION .PHONY: FORCE_VERSION
+20 -21
View File
@@ -1,20 +1,20 @@
# tools & paths # tools & paths
NOVAS ?= /nfs/tools/synopsys/verdi/V-2023.12-SP1-1/share/PLI/VCS/LINUX64 NOVAS ?= /nfs/tools/synopsys/verdi/V-2023.12-SP1-1/share/PLI/VCS/LINUX64
VCS_RUNNER ?= bsub -Is VCS_RUNNER ?= bsub -Is
VCS ?= vcs VCS ?= vcs
VERDI ?= verdi VERDI ?= verdi
EXTRA ?= -P $(NOVAS)/novas.tab $(NOVAS)/pli.a EXTRA ?= -P $(NOVAS)/novas.tab $(NOVAS)/pli.a
SIM_TOOL := $(VCS_RUNNER) $(VCS) SIM_TOOL := $(VCS_RUNNER) $(VCS)
SIM_BINY := $(VCS_RUNNER) ./simv SIM_BINY := $(VCS_RUNNER) ./simv
VERDI_TOOL := $(VCS_RUNNER) $(VERDI) VERDI_TOOL := $(VCS_RUNNER) $(VERDI)
COMP_LOG := -l compile.log COMP_LOG := -l compile.log
SIM_LOG := -l sim.log SIM_LOG := -l sim.log
# netlist file path # netlist file path
NETLIST_PATH := -v $(SYN_BUILD_ROOT)/out/retrosoc_asic_yosys.v NETLIST_PATH := -v $(SYN_BUILD_ROOT)/out/retrosoc_asic_yosys.v
POST_PATH := -v $(ROOT_PATH)/pd/sdf/retrosoc_asic.v POST_PATH := -v $(ROOT_PATH)/pd/sdf/retrosoc_asic.v
SDF_PATH := "$(ROOT_PATH)/pd/sdf/retrosoc_asic_CTS_MIN.sdf.gz" SDF_PATH := "$(ROOT_PATH)/pd/sdf/retrosoc_asic_CTS_MIN.sdf.gz"
# testbench filelist # testbench filelist
TB_FLIST := -f $(GENERATED_FL_DIR)/tb.fl TB_FLIST := -f $(GENERATED_FL_DIR)/tb.fl
## vcs option ## vcs option
# -debug_region=cell+lib # -debug_region=cell+lib
@@ -23,7 +23,7 @@ TB_FLIST := -f $(GENERATED_FL_DIR)/tb.fl
# -error=all(turn all warning into error) # -error=all(turn all warning into error)
# +vcs+loopreport+100000 \ # +vcs+loopreport+100000 \
# --- Compilation Flags --- # --- Compilation Flags ---
COMMON_OPTS := -full64 +v2k -sverilog -timescale=1ns/10ps \ COMMON_OPTS := -full64 +v2k -sverilog -timescale=1ns/10ps \
$(EXTRA) \ $(EXTRA) \
-kdb \ -kdb \
-debug_access+all \ -debug_access+all \
@@ -35,7 +35,7 @@ COMMON_OPTS := -full64 +v2k -sverilog -timescale=1ns/10ps \
-reportstats \ -reportstats \
-work DEFAULT -work DEFAULT
POST_OPTS := -sdf min:retrosoc_tb.u_retrosoc_asic:$(SDF_PATH) \ POST_OPTS := -sdf min:retrosoc_tb.u_retrosoc_asic:$(SDF_PATH) \
+delay_mode_path \ +delay_mode_path \
+sdfverbose \ +sdfverbose \
+neg_tchk \ +neg_tchk \
@@ -48,12 +48,12 @@ TIME_OPTION := +notimingcheck +nospecify
SIM_OPTS := +vcs+loopreport+1000 -suppress=ASLR_DETECTED_INFO \ SIM_OPTS := +vcs+loopreport+1000 -suppress=ASLR_DETECTED_INFO \
+core_sel=$(RTL_SIM_CORESEL) +sim_timeout=$(RTL_SIM_TIMEOUT) +wave_$(WAVE) +core_sel=$(RTL_SIM_CORESEL) +sim_timeout=$(RTL_SIM_TIMEOUT) +wave_$(WAVE)
VCS_BEHV_DIR := $(SIM_BUILD_ROOT)/behv VCS_BEHV_DIR := $(SIM_BUILD_ROOT)/behv
VCS_NETL_DIR := $(SIM_BUILD_ROOT)/netl VCS_NETL_DIR := $(SIM_BUILD_ROOT)/netl
VCS_POST_DIR := $(SIM_BUILD_ROOT)/post VCS_POST_DIR := $(SIM_BUILD_ROOT)/post
VCS_BEHV_SIMV := $(VCS_BEHV_DIR)/simv VCS_BEHV_SIMV := $(VCS_BEHV_DIR)/simv
VCS_NETL_SIMV := $(VCS_NETL_DIR)/simv VCS_NETL_SIMV := $(VCS_NETL_DIR)/simv
VCS_POST_SIMV := $(VCS_POST_DIR)/simv VCS_POST_SIMV := $(VCS_POST_DIR)/simv
VCS_BEHV_DEPFILE := $(VCS_BEHV_DIR)/simv.d VCS_BEHV_DEPFILE := $(VCS_BEHV_DIR)/simv.d
VCS_NETL_DEPFILE := $(VCS_NETL_DIR)/simv.d VCS_NETL_DEPFILE := $(VCS_NETL_DIR)/simv.d
VCS_POST_DEPFILE := $(VCS_POST_DIR)/simv.d VCS_POST_DEPFILE := $(VCS_POST_DIR)/simv.d
@@ -86,7 +86,6 @@ wave: DIR := $(SIM_BUILD_ROOT)/behv
netwave: DIR := $(SIM_BUILD_ROOT)/netl netwave: DIR := $(SIM_BUILD_ROOT)/netl
postwave: DIR := $(SIM_BUILD_ROOT)/post postwave: DIR := $(SIM_BUILD_ROOT)/post
comp: $(VCS_BEHV_SIMV) comp: $(VCS_BEHV_SIMV)
netcomp: $(VCS_NETL_SIMV) netcomp: $(VCS_NETL_SIMV)
postcomp: $(VCS_POST_SIMV) postcomp: $(VCS_POST_SIMV)
@@ -121,4 +120,4 @@ wave netwave postwave:
clean: clean:
python3 $(ROOT_PATH)/scripts/clean.py --root $(ROOT_PATH) --path $(SIM_BUILD_ROOT) python3 $(ROOT_PATH)/scripts/clean.py --root $(ROOT_PATH) --path $(SIM_BUILD_ROOT)
.PHONY: comp netcomp postcomp sim netsim postsim wave clean .PHONY: comp netcomp postcomp sim netsim postsim wave clean
+8 -10
View File
@@ -5,11 +5,9 @@ SOC_CXXFILES += $(sort $(wildcard $(SOC_CSRC_HOME)/*.cpp))
SOC_CSRC_INCLPATH += -I$(SOC_CSRC_HOME) SOC_CSRC_INCLPATH += -I$(SOC_CSRC_HOME)
SOC_CSRC_INCLPATH += $(foreach val, $(SOC_CSRC_LIB_HOME), -I$(val)) SOC_CSRC_INCLPATH += $(foreach val, $(SOC_CSRC_LIB_HOME), -I$(val))
SOC_VSRC_TOP := retrosoc_top SOC_VSRC_TOP := retrosoc_top
SOC_VSRC_HOME += $(RTL_PATH)/dv/verilator/rtl SOC_VSRC_HOME += $(RTL_PATH)/dv/verilator/rtl
SOC_COMPILE_HOME := $(BUILD_DIR)/emu_compile SOC_COMPILE_HOME := $(BUILD_DIR)/emu_compile
SOC_VXXFILES := $(RTL_FLIST) SOC_VXXFILES := $(RTL_FLIST)
SOC_VXXFILES += $(RTL_PATH)/dv/model/ESP_PSRAM64H.sv SOC_VXXFILES += $(RTL_PATH)/dv/model/ESP_PSRAM64H.sv
@@ -29,10 +27,10 @@ VERILATOR_FLAGS += -o $(BUILD_DIR)/emu
VERILATOR_FLAGS += -Mdir $(SOC_COMPILE_HOME) VERILATOR_FLAGS += -Mdir $(SOC_COMPILE_HOME)
VERILATOR_FLAGS += $(SOC_VSRC_INCLPATH) $(SOC_CXXFILES) $(SOC_VXXFILES) VERILATOR_FLAGS += $(SOC_VSRC_INCLPATH) $(SOC_CXXFILES) $(SOC_VXXFILES)
SOC_SIM_TIME ?= 40 SOC_SIM_TIME ?= 40
VERILATOR_STAMP := $(BUILD_DIR)/verilate.stamp VERILATOR_STAMP := $(BUILD_DIR)/verilate.stamp
VERILATOR_DEPFILE := $(BUILD_DIR)/verilate.d VERILATOR_DEPFILE := $(BUILD_DIR)/verilate.d
VERILATOR_EMU := $(BUILD_DIR)/emu VERILATOR_EMU := $(BUILD_DIR)/emu
VERILATOR_EXTRA_SOURCES := $(RTL_PATH)/dv/model/ESP_PSRAM64H.sv \ VERILATOR_EXTRA_SOURCES := $(RTL_PATH)/dv/model/ESP_PSRAM64H.sv \
$(RTL_PATH)/dv/verilator/rtl/flash_read_binder.sv \ $(RTL_PATH)/dv/verilator/rtl/flash_read_binder.sv \
$(RTL_PATH)/dv/verilator/rtl/QSPIFlash.sv \ $(RTL_PATH)/dv/verilator/rtl/QSPIFlash.sv \
@@ -86,4 +84,4 @@ wave:
clean: clean:
python3 $(ROOT_PATH)/scripts/clean.py --root $(ROOT_PATH) --path $(BUILD_DIR) python3 $(ROOT_PATH)/scripts/clean.py --root $(ROOT_PATH) --path $(BUILD_DIR)
.PHONY: comp sim clean .PHONY: comp sim clean
+12 -12
View File
@@ -1,15 +1,15 @@
OPENSTA ?= sta OPENSTA ?= sta
OPENSTA_THREADS ?= $(JOBS) OPENSTA_THREADS ?= $(JOBS)
OPENSTA_NETLIST ?= $(SYN_BUILD_ROOT)/out/retrosoc_asic_yosys.v OPENSTA_NETLIST ?= $(SYN_BUILD_ROOT)/out/retrosoc_asic_yosys.v
OPENSTA_LIBERTY ?= $(ROOT_PATH)/pdk/IHP-Open-PDK/ihp-sg13g2/libs.ref/sg13g2_stdcell/lib/sg13g2_stdcell_typ_1p20V_25C.lib OPENSTA_LIBERTY ?= $(ROOT_PATH)/pdk/IHP-Open-PDK/ihp-sg13g2/libs.ref/sg13g2_stdcell/lib/sg13g2_stdcell_typ_1p20V_25C.lib
OPENSTA_IO_LIB ?= $(ROOT_PATH)/pdk/IHP-Open-PDK/ihp-sg13g2/libs.ref/sg13g2_io/lib/sg13g2_io_typ_1p2V_3p3V_25C.lib OPENSTA_IO_LIB ?= $(ROOT_PATH)/pdk/IHP-Open-PDK/ihp-sg13g2/libs.ref/sg13g2_io/lib/sg13g2_io_typ_1p2V_3p3V_25C.lib
OPENSTA_SRAM_LIBS ?= $(wildcard $(ROOT_PATH)/pdk/IHP-Open-PDK/ihp-sg13g2/libs.ref/sg13g2_sram/lib/*_typ_1p20V_25C.lib) OPENSTA_SRAM_LIBS ?= $(wildcard $(ROOT_PATH)/pdk/IHP-Open-PDK/ihp-sg13g2/libs.ref/sg13g2_sram/lib/*_typ_1p20V_25C.lib)
OPENSTA_SDC ?= $(ROOT_PATH)/sta/opensta/gen2.sdc OPENSTA_SDC ?= $(ROOT_PATH)/sta/opensta/gen2.sdc
OPENSTA_REPORT ?= $(STA_BUILD_ROOT)/retrosoc_sta.log OPENSTA_REPORT ?= $(STA_BUILD_ROOT)/retrosoc_sta.log
OPENSTA_LOG ?= $(STA_BUILD_ROOT)/opensta.log OPENSTA_LOG ?= $(STA_BUILD_ROOT)/opensta.log
OPENSTA_METRICS ?= $(STA_BUILD_ROOT)/timing_metrics.rpt OPENSTA_METRICS ?= $(STA_BUILD_ROOT)/timing_metrics.rpt
OPENSTA_CONFIG ?= $(SYN_BUILD_ROOT)/out/retrosoc_asic_yosys.config OPENSTA_CONFIG ?= $(SYN_BUILD_ROOT)/out/retrosoc_asic_yosys.config
sta: sta:
@mkdir -p $(STA_BUILD_ROOT) @mkdir -p $(STA_BUILD_ROOT)
@@ -19,7 +19,7 @@ sta:
@grep -qx 'PDK=$(PDK)' $(OPENSTA_CONFIG) || { \ @grep -qx 'PDK=$(PDK)' $(OPENSTA_CONFIG) || { \
echo "OpenSTA netlist configuration does not match PDK=$(PDK); rerun synthesis" >&2; \ echo "OpenSTA netlist configuration does not match PDK=$(PDK); rerun synthesis" >&2; \
exit 1; \ exit 1; \
} }
python3 $(ROOT_PATH)/scripts/run_flow.py --tool opensta --log $(OPENSTA_LOG) \ python3 $(ROOT_PATH)/scripts/run_flow.py --tool opensta --log $(OPENSTA_LOG) \
--result $(STA_BUILD_ROOT)/result-sta.json \ --result $(STA_BUILD_ROOT)/result-sta.json \
--env OPENSTA_NETLIST=$(OPENSTA_NETLIST) --env OPENSTA_LIBERTY=$(OPENSTA_LIBERTY) \ --env OPENSTA_NETLIST=$(OPENSTA_NETLIST) --env OPENSTA_LIBERTY=$(OPENSTA_LIBERTY) \
@@ -30,4 +30,4 @@ sta:
sta: | manifest sta: | manifest
.PHONY: sta .PHONY: sta
+3 -3
View File
@@ -14,7 +14,7 @@ export YOSYS_BLACKBOX_MODULES := "*tc_sram_blackbox*"
# flatten hierarchy (except for below selections) # flatten hierarchy (except for below selections)
export YOSYS_FLATTEN_HIER := 1 export YOSYS_FLATTEN_HIER := 1
# a list of yosys selection strings, all selected instances will be # a list of yosys selection strings, all selected instances will be
# kept as a seperate hierarchical element, all others will be flattened # kept as a seperate hierarchical element, all others will be flattened
# https://yosyshq.readthedocs.io/projects/yosys/en/latest/cmd/select.html # https://yosyshq.readthedocs.io/projects/yosys/en/latest/cmd/select.html
export YOSYS_KEEP_HIER_INST := "t:tc_clk*$$*" \ export YOSYS_KEEP_HIER_INST := "t:tc_clk*$$*" \
@@ -24,7 +24,7 @@ export YOSYS_KEEP_HIER_INST := "t:tc_clk*$$*" \
"t:ip_natv_wrapper*$$*" \ "t:ip_natv_wrapper*$$*" \
"t:ip_apb_wrapper*$$*" \ "t:ip_apb_wrapper*$$*" \
"t:apb_spi_master*$$*" \ "t:apb_spi_master*$$*" \
"t:spi_flash*$$*" \ "t:spi_flash*$$*" \
"t:mem2apb*$$*" \ "t:mem2apb*$$*" \
"t:apb4_archinfo*$$*" \ "t:apb4_archinfo*$$*" \
"t:apb4_rng*$$*" \ "t:apb4_rng*$$*" \
@@ -36,4 +36,4 @@ export YOSYS_KEEP_HIER_INST := "t:tc_clk*$$*" \
# the paths (full names) of all instances matching these strings is reported # the paths (full names) of all instances matching these strings is reported
# for floorplaning or writing constraints # for floorplaning or writing constraints
export YOSYS_REPORT_INSTS := "t:*core_wrapper*" export YOSYS_REPORT_INSTS := "t:*core_wrapper*"
+8 -8
View File
@@ -27,15 +27,15 @@ YOSYS_RPT := $(YOSYS_BUILD)/rpt
include $(YOSYS_DIR)/synth_config.mk include $(YOSYS_DIR)/synth_config.mk
TOP_DESIGN ?= retrosoc_asic TOP_DESIGN ?= retrosoc_asic
RTL_NAME ?= retrosoc_asic RTL_NAME ?= retrosoc_asic
SV_FLIST := $(GENERATED_FL_DIR)/yosys.fl SV_FLIST := $(GENERATED_FL_DIR)/yosys.fl
NETLIST := $(YOSYS_OUT)/$(RTL_NAME)_yosys.v NETLIST := $(YOSYS_OUT)/$(RTL_NAME)_yosys.v
NETLIST_DEBUG := $(YOSYS_OUT)/$(RTL_NAME)_yosys_debug.v NETLIST_DEBUG := $(YOSYS_OUT)/$(RTL_NAME)_yosys_debug.v
NETLIST_CONFIG := $(YOSYS_OUT)/$(RTL_NAME)_yosys.config NETLIST_CONFIG := $(YOSYS_OUT)/$(RTL_NAME)_yosys.config
YOSYS_DEPFILE := $(YOSYS_BUILD)/yosys.d YOSYS_DEPFILE := $(YOSYS_BUILD)/yosys.d
YOSYS_SCRIPTS := $(wildcard $(YOSYS_DIR)/script/*) $(YOSYS_DIR)/synth_config.mk $(YOSYS_DIR)/yosys.mk YOSYS_SCRIPTS := $(wildcard $(YOSYS_DIR)/script/*) $(YOSYS_DIR)/synth_config.mk $(YOSYS_DIR)/yosys.mk
-include $(YOSYS_DEPFILE) -include $(YOSYS_DEPFILE)
@@ -69,4 +69,4 @@ synth_clean:
.PHONY: gen_synth_filelist synth_clean synth .PHONY: gen_synth_filelist synth_clean synth
synth: | manifest synth: | manifest