Examples and design pattern for VHDL verification
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

53 lines
2.0 KiB

OSVVM := ../../OSVVM
.PHONY: sim compile clean wave
sim \
work/osvvm_fsm_psl_coverage \
work/osvvm_fsm_psl_coverage.ghw: work/work/osvvm_fsm_psl_coverage.o log
@echo Run test ...
@cd work; ghdl -r --std=08 -fpsl osvvm_fsm_psl_coverage \
--psl-report=../log/osvvm_fsm_psl_coverage.json \
--wave=../log/osvvm_fsm_psl_coverage.ghw \
--stop-time=200ns
work/osvvm/%.o: work/osvvm
@echo "Analyse OSVVM library ..."
@cd work; ghdl -a --std=08 --work=osvvm --workdir=osvvm ../$(OSVVM)/NamePkg.vhd
@cd work; ghdl -a --std=08 --work=osvvm --workdir=osvvm ../$(OSVVM)/TranscriptPkg.vhd
@cd work; ghdl -a --std=08 --work=osvvm --workdir=osvvm ../$(OSVVM)/OsvvmGlobalPkg.vhd
@cd work; ghdl -a --std=08 --work=osvvm --workdir=osvvm ../$(OSVVM)/TextUtilPkg.vhd
@cd work; ghdl -a --std=08 --work=osvvm --workdir=osvvm ../$(OSVVM)/AlertLogPkg.vhd
@cd work; ghdl -a --std=08 --work=osvvm --workdir=osvvm ../$(OSVVM)/RandomBasePkg.vhd
@cd work; ghdl -a --std=08 --work=osvvm --workdir=osvvm ../$(OSVVM)/SortListPkg_int.vhd
@cd work; ghdl -a --std=08 --work=osvvm --workdir=osvvm ../$(OSVVM)/RandomPkg.vhd
@cd work; ghdl -a --std=08 --work=osvvm --workdir=osvvm ../$(OSVVM)/MessagePkg.vhd
@cd work; ghdl -a --std=08 --work=osvvm --workdir=osvvm ../$(OSVVM)/CoveragePkg.vhd
@cd work; ghdl -a --std=08 --work=osvvm --workdir=osvvm ../$(OSVVM)/MemoryPkg.vhd
compile \
work/work/osvvm_fsm_psl_coverage.o: osvvm_fsm_psl_coverage.vhd log work work/work work/osvvm/CoveragePkg.o
@echo "Analyse & elaborate test ..."
@cd work; ghdl -a --std=08 -fpsl --workdir=work -Posvvm ../osvvm_fsm_psl_coverage.vhd
@cd work; ghdl -e --std=08 -fpsl --workdir=work -Posvvm -o osvvm_fsm_psl_coverage osvvm_fsm_psl_coverage >& /dev/null
wave: work/osvvm_fsm_psl_coverage.ghw
@echo Run waveform viewer ...
@gtkwave log/osvvm_fsm_psl_coverage.ghw -S osvvm_fsm_psl_coverage.tcl &
work \
work/osvvm \
work/work \
log:
@mkdir $@
clean:
@echo Remove generated files ...
@rm -rf work log