Library of reusable VHDL components
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.

113 lines
3.5 KiB

  1. SIM_SRC := ../sim
  2. SYN_SRC := ../syn
  3. CMN_SRC := ../common
  4. OSVVM_SRC := ../lib/OSVVM
  5. VHD08_SRC := vhdl_2008
  6. VHD_STD := 08
  7. .PHONY: all
  8. all: queue dict stack sim wishbone uart
  9. OsvvmContext.o: $(OSVVM_SRC)/*.vhd
  10. ghdl -a --std=$(VHD_STD) --work=osvvm $(OSVVM_SRC)/NamePkg.vhd
  11. ghdl -a --std=$(VHD_STD) --work=osvvm $(OSVVM_SRC)/OsvvmGlobalPkg.vhd
  12. ghdl -a --std=$(VHD_STD) --work=osvvm $(OSVVM_SRC)/VendorCovApiPkg.vhd
  13. ghdl -a --std=$(VHD_STD) --work=osvvm $(OSVVM_SRC)/TranscriptPkg.vhd
  14. ghdl -a --std=$(VHD_STD) --work=osvvm $(OSVVM_SRC)/TextUtilPkg.vhd
  15. ghdl -a --std=$(VHD_STD) --work=osvvm $(OSVVM_SRC)/AlertLogPkg.vhd
  16. ghdl -a --std=$(VHD_STD) --work=osvvm $(OSVVM_SRC)/MessagePkg.vhd
  17. ghdl -a --std=$(VHD_STD) --work=osvvm $(OSVVM_SRC)/SortListPkg_int.vhd
  18. ghdl -a --std=$(VHD_STD) --work=osvvm $(OSVVM_SRC)/RandomBasePkg.vhd
  19. ghdl -a --std=$(VHD_STD) --work=osvvm $(OSVVM_SRC)/RandomPkg.vhd
  20. ghdl -a --std=$(VHD_STD) --work=osvvm $(OSVVM_SRC)/CoveragePkg.vhd
  21. ghdl -a --std=$(VHD_STD) --work=osvvm $(OSVVM_SRC)/MemoryPkg.vhd
  22. ghdl -a --std=$(VHD_STD) --work=osvvm $(OSVVM_SRC)/ScoreboardGenericPkg.vhd
  23. ghdl -a --std=$(VHD_STD) --work=osvvm $(OSVVM_SRC)/ScoreboardPkg_slv.vhd
  24. ghdl -a --std=$(VHD_STD) --work=osvvm $(OSVVM_SRC)/ScoreboardPkg_int.vhd
  25. ghdl -a --std=$(VHD_STD) --work=osvvm $(OSVVM_SRC)/ResolutionPkg.vhd
  26. ghdl -a --std=$(VHD_STD) --work=osvvm $(OSVVM_SRC)/TbUtilPkg.vhd
  27. ghdl -a --std=$(VHD_STD) --work=osvvm $(OSVVM_SRC)/OsvvmContext.vhd
  28. UtilsP.o: $(CMN_SRC)/UtilsP.vhd
  29. ghdl -a --std=$(VHD_STD) --work=libvhdl $<
  30. # Default rule for compiling packages
  31. %P.o: $(SIM_SRC)/%P.vhd
  32. ghdl -a --std=$(VHD_STD) --work=libvhdl $<
  33. queuet: OsvvmContext.o AssertP.o QueueP.o QueueT.vhd
  34. ghdl -a --std=$(VHD_STD) QueueT.vhd
  35. ghdl -e --std=$(VHD_STD) $@
  36. dictt: OsvvmContext.o DictP.o DictT.vhd
  37. ghdl -a --std=$(VHD_STD) DictT.vhd
  38. ghdl -e --std=$(VHD_STD) $@
  39. stackt: OsvvmContext.o AssertP.o StackP.o StackT.vhd
  40. ghdl -a --std=$(VHD_STD) StackT.vhd
  41. ghdl -e --std=$(VHD_STD) $@
  42. simt: OsvvmContext.o UtilsP.o AssertP.o QueueP.o SimP.o SimT.vhd
  43. ghdl -a --std=$(VHD_STD) SimT.vhd
  44. ghdl -e --std=$(VHD_STD) $@
  45. spit: OsvvmContext.o UtilsP.o $(SYN_SRC)/SpiSlaveE.vhd $(SYN_SRC)/SpiMasterE.vhd SpiT.vhd
  46. ghdl -a --std=$(VHD_STD) -fpsl $(SYN_SRC)/SpiSlaveE.vhd $(SYN_SRC)/SpiMasterE.vhd
  47. ghdl -a --std=$(VHD_STD) -fpsl SpiT.vhd
  48. ghdl -e --std=$(VHD_STD) $@
  49. uartt: OsvvmContext.o UtilsP.o $(SYN_SRC)/UartTx.vhd $(SYN_SRC)/UartRx.vhd UartT.vhd
  50. ghdl -a --std=$(VHD_STD) -fpsl $(SYN_SRC)/UartTx.vhd $(SYN_SRC)/UartRx.vhd
  51. ghdl -a --std=$(VHD_STD) -fpsl UartT.vhd
  52. ghdl -e --std=$(VHD_STD) $@
  53. .PHONY: spi
  54. spi: spit
  55. ghdl -r --std=$(VHD_STD) $@t --wave=$@t.ghw
  56. .PHONY: uart
  57. uart: uartt
  58. ghdl -r --std=$(VHD_STD) $@t --wave=$@t.ghw
  59. wishbonet: OsvvmContext.o AssertP.o SimP.o QueueP.o DictP.o UtilsP.o $(SYN_SRC)/WishBoneCheckerE.vhd \
  60. $(SYN_SRC)/WishBoneP.vhd $(SYN_SRC)/WishBoneMasterE.vhd $(SYN_SRC)/WishBoneSlaveE.vhd WishBoneT.vhd
  61. ghdl -a --std=$(VHD_STD) -fpsl $(SYN_SRC)/WishBoneP.vhd
  62. ghdl -a --std=$(VHD_STD) -fpsl $(SYN_SRC)/WishBoneCheckerE.vhd $(SYN_SRC)/WishBoneMasterE.vhd $(SYN_SRC)/WishBoneSlaveE.vhd
  63. ghdl -a --std=$(VHD_STD) -fpsl WishBoneT.vhd
  64. ghdl -e --std=$(VHD_STD) $@
  65. .PHONY: wishbone
  66. wishbone: wishbonet
  67. ghdl -r --std=$(VHD_STD) $@t --wave=$@t.ghw --psl-report=$@_psl_coverage.json
  68. # Default rule for running simulation
  69. %: %t
  70. ghdl -r --std=$(VHD_STD) $@t
  71. .PHONY: clean
  72. clean:
  73. rm -f *.o
  74. rm -f *.cf
  75. rm -f *.ghw
  76. rm -f queuet
  77. rm -f dictt
  78. rm -f stackt
  79. rm -f stringt
  80. rm -f simt
  81. rm -f spit
  82. rm -f uartt
  83. rm -f wishbonet
  84. rm -f *.json
  85. .PHONY: distclean
  86. distclean: clean