main.mk 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. all: $(PROJ).rpt $(PROJ).bin
  2. %.blif: %.v $(ADD_SRC) $(ADD_DEPS)
  3. yosys -ql $*.log -p 'synth_ice40 -top top -blif $@' $< $(ADD_SRC)
  4. %.json: %.v $(ADD_SRC) $(ADD_DEPS)
  5. yosys -ql $*.log -p 'synth_ice40 -top top -json $@' $< $(ADD_SRC)
  6. ifeq ($(USE_ARACHNEPNR),)
  7. %.asc: $(PIN_DEF) %.json
  8. nextpnr-ice40 --$(DEVICE) --json $(filter-out $<,$^) --pcf $< --asc $@
  9. else
  10. %.asc: $(PIN_DEF) %.blif
  11. arachne-pnr -d $(subst up,,$(subst hx,,$(subst lp,,$(DEVICE)))) -o $@ -p $^
  12. endif
  13. %.bin: %.asc
  14. icepack $< $@
  15. %.rpt: %.asc
  16. icetime -d $(DEVICE) -mtr $@ $<
  17. %_tb: %_tb.v %.v
  18. iverilog -o $@ $^
  19. %_tb.vcd: %_tb
  20. vvp -N $< +vcd=$@
  21. %_syn.v: %.blif
  22. yosys -p 'read_blif -wideports $^; write_verilog $@'
  23. %_syntb: %_tb.v %_syn.v
  24. iverilog -o $@ $^ `yosys-config --datdir/ice40/cells_sim.v`
  25. %_syntb.vcd: %_syntb
  26. vvp -N $< +vcd=$@
  27. prog: $(PROJ).bin
  28. iceprog $<
  29. sudo-prog: $(PROJ).bin
  30. @echo 'Executing prog as root!!!'
  31. sudo iceprog $<
  32. clean:
  33. rm -f $(PROJ).blif $(PROJ).asc $(PROJ).rpt $(PROJ).bin $(PROJ).json $(PROJ).log $(ADD_CLEAN)
  34. .SECONDARY:
  35. .PHONY: all prog clean