Initial Commit

This commit is contained in:
Konstantin Gaydev
2026-09-04 11:40:42 -04:00
committed by Cooper Shaw
commit 49a639f69a
76 changed files with 3766 additions and 0 deletions
+101
View File
@@ -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