init commit
This commit is contained in:
@@ -0,0 +1,101 @@
|
||||
#--------------------------------------------------------------------
|
||||
# Cadence‑only Makefile (Xcelium / SimVision / IMC)
|
||||
#--------------------------------------------------------------------
|
||||
|
||||
#--------------------------------------------------------------------
|
||||
# Add the following to the testbench
|
||||
# initial begin
|
||||
# $shm_open("waves.shm");
|
||||
# $shm_probe("AC");
|
||||
# end
|
||||
#--------------------------------------------------------------------
|
||||
|
||||
# ===== User‑configurable variables =================================
|
||||
INCLUDE_FILE_NAME ?= cpu.include #this is a placeholder
|
||||
TOP ?= tb_processor
|
||||
|
||||
# ===== Paths =======================================================
|
||||
CURRENT_DIR := $(shell pwd)
|
||||
WORKSPACE := $(CURRENT_DIR)/WORKSPACE
|
||||
SCRIPT_DIR := ../../scripts
|
||||
PYTHON ?= python3
|
||||
|
||||
# ===== Dynamic macro definitions ===================================
|
||||
VERILOG_DEFINES := SIM=1 INST_FILE=\"$(INST_FILE)\"
|
||||
ifeq ($(INIT_DATA),1)
|
||||
VERILOG_DEFINES += INIT_DATA=1
|
||||
VERILOG_DEFINES += DATA_FILE=\"$(DATA_FILE)\"
|
||||
endif
|
||||
DEFINE_FLAGS := $(foreach def,$(VERILOG_DEFINES),+define+$(def))
|
||||
|
||||
# ===== Help Message ================================================
|
||||
.PHONY: help
|
||||
help:
|
||||
@echo "----------------------------------------------------------------"
|
||||
@echo "Administrative targets:"
|
||||
@echo " help - this message"
|
||||
@echo " clean - remove WORKSPACE directory"
|
||||
@echo
|
||||
@echo "Compilation targets:"
|
||||
@echo " link - generate WORKSPACE/sym_links/"
|
||||
@echo " xrun - compile & simulate using Cadence Xcelium"
|
||||
@echo " simvision - view waveform database"
|
||||
@echo " run_and_view - xrun + simvision"
|
||||
@echo " coverage - open coverage in IMC"
|
||||
@echo
|
||||
@echo " verify_onboarding - (DIGITAL DESIGN ONBOARDING ONLY) check your project for correctness"
|
||||
@echo "----------------------------------------------------------------"
|
||||
|
||||
# ===== Administrative Targets ======================================
|
||||
.PHONY: clean link
|
||||
clean:
|
||||
@rm -rf $(WORKSPACE)
|
||||
|
||||
link:
|
||||
@mkdir -p $(WORKSPACE)/sym_links
|
||||
@rm -rf $(WORKSPACE)/sym_links/*
|
||||
@$(PYTHON) link_files.py $(INCLUDE_FILE_NAME)
|
||||
|
||||
# ===== Simulation Targets ==========================================
|
||||
.PHONY: xrun simvision run_and_view coverage
|
||||
|
||||
XRUN_FLAGS = -64bit -sv -linedebug -access +rwc \
|
||||
-timescale 1ns/10ps \
|
||||
$(DEFINE_FLAGS) \
|
||||
+testname=$(TESTNAME) \
|
||||
+incdir+sym_links \
|
||||
-coverage all \
|
||||
-licqueue \
|
||||
-covoverwrite
|
||||
|
||||
SIM_PLUSARGS ?=
|
||||
|
||||
xrun: link
|
||||
cd $(WORKSPACE) && \
|
||||
xrun $(XRUN_FLAGS) -f sym_links/sim_no_path.include \
|
||||
-top $(TOP) -logfile simulation.log $(SIM_PLUSARGS)
|
||||
|
||||
simvision:
|
||||
cd $(WORKSPACE) && simvision waves.shm &
|
||||
|
||||
run_and_view: xrun simvision
|
||||
|
||||
# Need to change IMC path...
|
||||
coverage:
|
||||
cd $(WORKSPACE) && /tools/software/cadence/vmanager/latest/tools.lnx86/vmgr/bin/imc -load cov_work/scope/test &
|
||||
|
||||
# Generate memory pre and post state files but do not verify correctness
|
||||
gen_mem:
|
||||
$(MAKE) clean
|
||||
$(PYTHON) $(SCRIPT_DIR)/init_mem.py $(WORKSPACE)
|
||||
$(MAKE) xrun
|
||||
|
||||
verify_onboarding:
|
||||
$(MAKE) clean
|
||||
$(PYTHON) $(SCRIPT_DIR)/init_mem.py $(WORKSPACE)
|
||||
$(MAKE) xrun
|
||||
$(PYTHON) $(SCRIPT_DIR)/check_onboarding.py $(WORKSPACE)/memory_post_state_lower.txt $(WORKSPACE)/sim_memory_post_state_lower.txt
|
||||
$(PYTHON) $(SCRIPT_DIR)/check_onboarding.py $(WORKSPACE)/memory_post_state_upper.txt $(WORKSPACE)/sim_memory_post_state_upper.txt
|
||||
|
||||
# ===== Default Target ==============================================
|
||||
.DEFAULT_GOAL := run_and_view
|
||||
Reference in New Issue
Block a user