blob: 140e6e42c803bcf3d0d253b3a5d14496950f2f45 [file] [log] [blame]
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