diff options
author | Nathan Ringo <nathan@remexre.com> | 2024-09-23 21:46:34 -0500 |
---|---|---|
committer | Nathan Ringo <nathan@remexre.com> | 2024-09-23 21:46:34 -0500 |
commit | fc1959bd9887ecc4d4ceb62a53e87abc6f49ef00 (patch) | |
tree | 801fad484692ca226eb2dfdf792338cabe218c72 /fpga/Makefile | |
parent | 777da6874bdbda1c83108024eb37dc901e04838e (diff) |
Adds README, moves fpga stuff to a subdirectory.
Diffstat (limited to 'fpga/Makefile')
-rw-r--r-- | fpga/Makefile | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/fpga/Makefile b/fpga/Makefile new file mode 100644 index 0000000..c9326a7 --- /dev/null +++ b/fpga/Makefile @@ -0,0 +1,41 @@ +BSC_COMP_FLAGS = -bdir tmp -p src:+ -simdir tmp -vdir tmp +BSC_LINK_FLAGS = -bdir tmp -simdir tmp -vdir tmp +BSC_SOURCES = BRAM2.v FIFO1.v FIFO10.v RevertReg.v SizedFIFO.v +TOPFILE = Top +TOPMODULE = mkTop +SRCS = $(shell find src -name '*.bs') + +all: tmp/$(TOPMODULE).bin +flash: tmp/$(TOPMODULE).bin + sudo iceprog $< +gtkwave: tmp/sim.vcd + gtkwave -A $< +.PHONY: all flash gtkwave + +tmp/sim.vcd: tmp/$(TOPMODULE)Sim.exe + tmp/$(TOPMODULE)Sim.exe -V $@ +tmp/%.bin: tmp/%.asc + # https://github.com/YosysHQ/icestorm/issues/114 + # icetime -d up5k -c 12 $< + icepack $< $@ +tmp/%.asc tmp/%-report.json: tmp/%.json src/icebreaker.pcf + nextpnr-ice40 -ql tmp/$*.nplog --up5k --package sg48 --freq 12 \ + --asc $@ --report tmp/$*-report.json \ + --pcf src/icebreaker.pcf --json $< +tmp/$(TOPMODULE).json: tmp/$(TOPMODULE).v $(addprefix $(BSC)/lib/Verilog/,$(BSC_SOURCES)) + yosys -ql tmp/$(TOPMODULE).yslog -p 'synth_ice40 -top mkTop -json $@' $^ +tmp/$(TOPMODULE)Sim.exe: tmp/$(TOPFILE).bo + bsc -u -sim -g $(TOPMODULE)Sim $(BSC_COMP_FLAGS) src/$(TOPFILE)Sim.bs + bsc -sim -e $(TOPMODULE)Sim $(BSC_LINK_FLAGS) -o $@ +tmp/$(TOPMODULE).v: tmp/$(TOPFILE).bo + bsc -g $(TOPMODULE) -verilog $(BSC_COMP_FLAGS) src/$(TOPFILE).bs +tmp/%.bo: + @mkdir -p $(dir $@) + bsc -verilog $(BSC_COMP_FLAGS) $< +# Hack around not having precise dependency information for Bluespec files. +.PHONY: tmp/$(TOPFILE).bo + +tmp/depends.mk: + @mkdir -p $(dir $@) + bluetcl -exec makedepend $(BSC_COMP_FLAGS) src/$(TOPFILE).bs > $@ +include tmp/depends.mk |