fix: Rebuild docker image using newer versions and add a Makefile.
This commit is contained in:
49
Makefile
Normal file
49
Makefile
Normal file
@@ -0,0 +1,49 @@
|
||||
PODMAN_RUN=podman run --mount=type=bind,source=.,target=/root/code
|
||||
PODMAN_IMAGE=localhost/fmn-toolchain
|
||||
PODMAN=$(PODMAN_RUN) $(PODMAN_IMAGE)
|
||||
BUILD=build
|
||||
|
||||
create-image:
|
||||
podman build -t fmn-toolchain .
|
||||
|
||||
run:
|
||||
podman run --rm localhost/fmn-toolchain
|
||||
|
||||
CONSTRAINTS=example/adder.xdc
|
||||
SYSTEM_VERILOG=$(shell find example -name "*.sv")
|
||||
VERILOG=$(shell find example -name "*.v")
|
||||
SOURCES=$(patsubst %,$(BUILD)/%,$(VERILOG)) $(patsubst %.sv,$(BUILD)/%.v,$(SYSTEM_VERILOG))
|
||||
|
||||
$(BUILD):
|
||||
mkdir -p $(BUILD)
|
||||
|
||||
$(BUILD)/%.v: %.sv
|
||||
mkdir -p $(dir $@)
|
||||
$(PODMAN) sv2v $^ -w $@
|
||||
|
||||
$(BUILD)/%.v: %.v
|
||||
mkdir -p $(dir $@)
|
||||
cp $^ $@
|
||||
|
||||
$(BUILD)/synthesis.json: $(SOURCES)
|
||||
$(PODMAN) yosys $^ -p "synth_xilinx; write_json $@"
|
||||
|
||||
$(BUILD)/out.fasm: $(BUILD)/synthesis.json
|
||||
$(PODMAN) nextpnr-himbaechel --json $(filter %.json,$^) -o xdc=$(CONSTRAINTS) -o fasm=$@ --device xc7z010clg400-1
|
||||
|
||||
$(BUILD)/out.frames: $(BUILD)/out.fasm
|
||||
$(PODMAN) fasm2frames --part xc7z010clg400-1 --db-root /usr/share/xray/database/zynq7 $^ $@
|
||||
|
||||
$(BUILD)/out.bin: $(BUILD)/out.frames
|
||||
$(PODMAN) xc7frames2bit -frm_file $^ -part_file /usr/share/xray/database/zynq7/xc7z010clg400-1/part.yaml --output_file $@
|
||||
|
||||
bitstream: $(BUILD) $(BUILD)/out.bin
|
||||
|
||||
flash: bitstream
|
||||
$(eval USB = $(shell lsusb -d 0403:6010 | sed -E "s/Bus ([0-9]{3}) Device ([0-9]{3}).*/\/dev\/bus\/usb\/\1\/\2/g"))
|
||||
@if [ "$(USB)" = "" ]; then \
|
||||
echo "No USB device found !"; \
|
||||
else \
|
||||
$(PODMAN_RUN) --device=$(USB) \
|
||||
$(PODMAN_IMAGE) openFPGALoader -b zybo_z7_10 $(BUILD)/out.bin; \
|
||||
fi
|
||||
Reference in New Issue
Block a user