PROJ ?= blinky TRELLIS_ROOT ?= ../.. export DEV_PACKAGE ?= QFN32 export JEDEC_BITSTREAM ?= 1 export COMPRESSED_BITSTREAM ?= 1 all: ${PROJ}.bit ${PROJ}-nextpnr.bit ${PROJ}.txt ${PROJ}-nextpnr.txt # Get proportion of known bits. stats: @python3 -c "import sys; print(\"{:.3f}\".format(int(sys.argv[1]) / int(sys.argv[2])))" \ `grep -e arc -e word -e enum ${PROJ}.txt | wc -l` \ `grep -e arc -e word -e enum -e unknown ${PROJ}.txt | wc -l` # Avoid intermediate files from being deleted. .PRECIOUS: %.txt %.bit %-roundtrip.txt %-roundtrip.bit %-comp.txt %-comp-roundtrip.bit # Test that a bitstream from Diamond survives a round-trip from .bit to .txt # back to .bit and .txt again. %-roundtrip.bit: %.txt ecppack --db ${TRELLIS_ROOT}/database $< $@ %-comp-roundtrip.bit: %-comp.txt ecppack --db ${TRELLIS_ROOT}/database --compress $< $@ %.txt: %.bit ecpunpack --db ${TRELLIS_ROOT}/database --input $< --textcfg $@ # Diamond rules. %.bit: %.v %.lpf ${TRELLIS_ROOT}/diamond.sh LCMXO2-1200HC ${PROJ}.v # FOSS rules. # yosys %.json: %.v %.lpf @true # ecppack --db ${TRELLIS_ROOT}/database --input $< $@ %-nextpnr.bit: %-nextpnr.txt @true # nextpnr-generic ${PROJ}-nextpnr.txt: ${PROJ}.json @true clean: rm -rf ${PROJ}.tmp ${PROJ}_out.ncl ${PROJ}*.bit ${PROJ}.jed ${PROJ}.dump \ ${PROJ}.twr ${PROJ}*.txt ${PROJ}.json ${PROJ}-nextpnr.* ${PROJ}*.hex