cva6/spyglass/Makefile

93 lines
2.3 KiB
Makefile

# Copyright 2024 Thales DIS France SAS
# Licensed under the Solderpad Hardware Licence, Version 2.1 (the "License");
# you may not use this file except in compliance with the License.
# SPDX-License-Identifier: Apache-2.0 WITH SHL-2.1
# You may obtain a copy of the License at https://solderpad.org/licenses/
#
# Makefile for Spyglass lint
#
# Original Author: Asmaa Kassimi (asmaa.kassimi@external.thalesgroup.com) - Thales
#
## Define variables
# Top design
TOP= cva6
# root path
mkfile_path := $(abspath $(lastword $(MAKEFILE_LIST)))
root-dir := $(dir $(mkfile_path))
# Relevent synthesis and simulation scripts/Makefiles must set the shell
# ENV variable CVA6_REPO_DIR.
ifndef CVA6_REPO_DIR
$(warning must set CVA6_REPO_DIR to point at the root of CVA6 sources -- doing it for you...)
export CVA6_REPO_DIR=$(abspath $(root-dir)../)
endif
ifndef DV_TARGET
$(error must set DV_TARGET to indicate CVA6 target to use)
endif
HPDCACHE_DIR=${CVA6_REPO_DIR}/core/cache_subsystem/hpdcache/
HPDCACHE_TARGET_CFG=${CVA6_REPO_DIR}/core/include/cva6_hpdcache_default_config_pkg.sv
FLIST_CVA6=${CVA6_REPO_DIR}/core/Flist.cva6
# Export List
EXPORT_LIST= CVA6_REPO_DIR=$(CVA6_REPO_DIR) TARGET_CFG=$(DV_TARGET) HPDCACHE_TARGET_CFG=$(HPDCACHE_TARGET_CFG) HPDCACHE_DIR=$(HPDCACHE_DIR)
# Use Spyglass design_read and lint_check commands, other commands could be added to check cdc, sdc and dft
design_read: run_checkvar
@echo "Building for $(DV_TARGET)"
@export ${EXPORT_LIST}; aipk_read -top=$(TOP) -srcfile=$(FLIST_CVA6)
lint_check: run_checkvar
@export ${EXPORT_LIST}; aipk_run -top=$(TOP) -goals=lint_rtl
gui: run_checkvar
aipk_run -top=$(TOP) -gui&
show_goals:
aipk_run -showgoals -top=$(TOP) | tee showgoals.log
open_docs:
firefox ${SPYGLASS_HOME}/htmlhelp/index.html
all: run_checkvar
make design_read
make lint_check
make gui
# clean logs
clean:
@\rm -rf *.log
run_checkvar:
ifeq (,$(TOP))
@echo "Variable TOP is undefined...EXITING THE RUN"
@exit 2
endif
ifeq (,$(CVA6_REPO_DIR))
@echo "Variable CVA6_REPO_DIR is undefined...EXITING THE RUN"
@exit 2
endif
ifeq (,$(HPDCACHE_DIR))
@echo "Variable HPDCACHE_DIR is undefined..."
endif
ifeq (,$(HPDCACHE_TARGET_CFG))
@echo "Variable HPDCACHE_TARGET_CFG is undefined..."
endif
ifeq (,$(TARGET_CFG))
@echo "Variable TARGET_CFG is undefined..."
endif
ifeq (,$(FLIST_CVA6))
@echo "Variable FLIST_CVA6 is undefined..."
endif