# Default test DUT ?= aes # Path to ext deps EXT := ../ext ifeq (${DUT}, wishbone) TOPLEVEL := wishboneslavee SIM_ARGS := -gSimulation=true \ -gAddressWidth=8 \ -gDataWidth=16 else TOPLEVEL := ${DUT} endif ifeq (check, $(firstword $(MAKECMDGOALS))) ifeq (FIX, $(lastword $(MAKECMDGOALS))) RUFF_ARGS := --fix endif endif .PHONY: FIX: @# # Cocotb related MODULE := tb_${DUT} COCOTB_LOG_LEVEL := DEBUG CUSTOM_COMPILE_DEPS := results COCOTB_RESULTS_FILE := results/${MODULE}.xml # Simulator & RTL related SIM ?= ghdl TOPLEVEL_LANG := vhdl VHDL_SOURCES_libvhdl := ${EXT}/libvhdl/common/UtilsP.vhd VHDL_SOURCES := ${EXT}/libvhdl/syn/* \ ${EXT}/cryptocores/aes/rtl/vhdl/*.vhd SIM_BUILD := build ifeq (${SIM}, ghdl) COMPILE_ARGS := --std=08 SIM_ARGS += \ --wave=results/${MODULE}.ghw \ --psl-report=results/${MODULE}_psl.json \ --vpi-trace=results/${MODULE}_vpi.log else EXTRA_ARGS := --std=08 VHDL_LIB_ORDER := libvhdl endif check format: ifneq (, $(shell which ruff)) ruff $@ *.py $(RUFF_ARGS) else @echo "ERROR: ruff not found"; exit 1 endif ifneq (, $(shell which cocotb-config)) include $(shell cocotb-config --makefiles)/Makefile.sim else $(warning WARNING: cocotb not found) endif results: mkdir -p results clean:: rm -rf *.o __pycache__ uarttx uartrx wishboneslavee aes results $(SIM_BUILD) .PHONY: clean check format FIX