2015-12-28 16:53:48 +01:00
|
|
|
PROJ = example
|
2017-01-03 02:19:29 +01:00
|
|
|
# PROJ = rs232demo
|
2017-07-21 16:56:15 +02:00
|
|
|
# PROJ = checker
|
2017-01-03 02:19:29 +01:00
|
|
|
|
2015-12-28 16:53:48 +01:00
|
|
|
PIN_DEF = icestick.pcf
|
2016-02-01 23:32:03 +01:00
|
|
|
DEVICE = hx1k
|
2015-12-08 12:54:20 +01:00
|
|
|
|
2016-01-17 11:40:22 +01:00
|
|
|
all: $(PROJ).rpt $(PROJ).bin
|
2015-12-08 12:54:20 +01:00
|
|
|
|
2015-12-28 16:53:48 +01:00
|
|
|
%.blif: %.v
|
|
|
|
|
yosys -p 'synth_ice40 -top top -blif $@' $<
|
2015-12-08 12:54:20 +01:00
|
|
|
|
2016-01-01 15:08:41 +01:00
|
|
|
%.asc: $(PIN_DEF) %.blif
|
2016-02-01 23:32:03 +01:00
|
|
|
arachne-pnr -d $(subst hx,,$(subst lp,,$(DEVICE))) -o $@ -p $^
|
2015-12-28 16:53:48 +01:00
|
|
|
|
2016-01-01 15:08:41 +01:00
|
|
|
%.bin: %.asc
|
2015-12-28 16:53:48 +01:00
|
|
|
icepack $< $@
|
2015-12-08 12:54:20 +01:00
|
|
|
|
2016-01-17 11:40:22 +01:00
|
|
|
%.rpt: %.asc
|
2016-02-01 23:32:03 +01:00
|
|
|
icetime -d $(DEVICE) -mtr $@ $<
|
2016-01-17 11:40:22 +01:00
|
|
|
|
2017-07-18 18:37:47 +02:00
|
|
|
%_tb: %_tb.v %.v
|
|
|
|
|
iverilog -o $@ $^
|
|
|
|
|
|
|
|
|
|
%_tb.vcd: %_tb
|
2017-07-21 16:56:15 +02:00
|
|
|
vvp -N $< +vcd=$@
|
2017-07-18 18:37:47 +02:00
|
|
|
|
|
|
|
|
%_syn.v: %.blif
|
2017-07-21 16:56:15 +02:00
|
|
|
yosys -p 'read_blif -wideports $^; write_verilog $@'
|
2017-07-18 18:37:47 +02:00
|
|
|
|
|
|
|
|
%_syntb: %_tb.v %_syn.v
|
|
|
|
|
iverilog -o $@ $^ `yosys-config --datdir/ice40/cells_sim.v`
|
|
|
|
|
|
|
|
|
|
%_syntb.vcd: %_syntb
|
2017-07-21 16:56:15 +02:00
|
|
|
vvp -N $< +vcd=$@
|
2017-07-18 18:37:47 +02:00
|
|
|
|
2019-02-14 02:45:25 +01:00
|
|
|
sim: $(PROJ)_tb.vcd
|
|
|
|
|
|
|
|
|
|
postsim: $(PROJ)_syntb.vcd
|
|
|
|
|
|
2015-12-28 19:43:02 +01:00
|
|
|
prog: $(PROJ).bin
|
|
|
|
|
iceprog $<
|
2015-12-08 12:54:20 +01:00
|
|
|
|
2015-12-30 12:40:20 +01:00
|
|
|
sudo-prog: $(PROJ).bin
|
|
|
|
|
@echo 'Executing prog as root!!!'
|
2016-01-17 11:40:22 +01:00
|
|
|
sudo iceprog $<
|
2015-12-30 12:40:20 +01:00
|
|
|
|
2015-12-08 12:54:20 +01:00
|
|
|
clean:
|
2016-01-17 11:40:22 +01:00
|
|
|
rm -f $(PROJ).blif $(PROJ).asc $(PROJ).rpt $(PROJ).bin
|
2015-12-08 12:54:20 +01:00
|
|
|
|
2016-01-17 11:40:22 +01:00
|
|
|
.SECONDARY:
|
2015-12-08 12:54:20 +01:00
|
|
|
.PHONY: all prog clean
|