aboutsummaryrefslogtreecommitdiffstats
path: root/fpga_interchange/examples/template.mk
diff options
context:
space:
mode:
Diffstat (limited to 'fpga_interchange/examples/template.mk')
-rw-r--r--fpga_interchange/examples/template.mk64
1 files changed, 64 insertions, 0 deletions
diff --git a/fpga_interchange/examples/template.mk b/fpga_interchange/examples/template.mk
new file mode 100644
index 00000000..819cdb1f
--- /dev/null
+++ b/fpga_interchange/examples/template.mk
@@ -0,0 +1,64 @@
+include ../common.mk
+
+.DELETE_ON_ERROR:
+.PHONY: all debug clean netlist_yaml phys_yaml
+
+all: build/$(DESIGN).dcp
+
+build:
+ mkdir build
+
+build/$(DESIGN).netlist: build/$(DESIGN).json
+ /usr/bin/time -v python3 -mfpga_interchange.yosys_json \
+ --schema_dir $(INTERCHANGE_PATH) \
+ --device $(DEVICE) \
+ --top $(DESIGN_TOP) \
+ build/$(DESIGN).json \
+ build/$(DESIGN).netlist
+
+build/$(DESIGN)_netlist.yaml: build/$(DESIGN).netlist
+ /usr/bin/time -v python3 -mfpga_interchange.convert \
+ --schema_dir $(INTERCHANGE_PATH) \
+ --schema logical \
+ --input_format capnp \
+ --output_format yaml \
+ build/$(DESIGN).netlist \
+ build/$(DESIGN)_netlist.yaml
+
+netlist_yaml: build/$(DESIGN)_netlist.yaml
+
+build/$(DESIGN).phys: build/$(DESIGN).netlist
+ $(NEXTPNR_BIN) \
+ --chipdb $(BBA_PATH) \
+ --xdc $(DESIGN).xdc \
+ --netlist build/$(DESIGN).netlist \
+ --phys build/$(DESIGN).phys \
+ --package $(PACKAGE) \
+
+build/$(DESIGN)_phys.yaml: build/$(DESIGN).phys
+ /usr/bin/time -v python3 -mfpga_interchange.convert \
+ --schema_dir $(INTERCHANGE_PATH) \
+ --schema physical \
+ --input_format capnp \
+ --output_format yaml \
+ build/$(DESIGN).phys \
+ build/$(DESIGN)_phys.yaml
+
+phys_yaml: build/$(DESIGN)_phys.yaml
+
+debug: build/$(DESIGN).netlist
+ gdb --args $(NEXTPNR_BIN) \
+ --chipdb $(BBA_PATH) \
+ --xdc $(DESIGN).xdc \
+ --netlist build/$(DESIGN).netlist \
+ --phys build/$(DESIGN).phys \
+ --package $(PACKAGE)
+
+build/$(DESIGN).dcp: build/$(DESIGN).netlist build/$(DESIGN).phys $(DESIGN).xdc
+ RAPIDWRIGHT_PATH=$(RAPIDWRIGHT_PATH) \
+ $(RAPIDWRIGHT_PATH)/scripts/invoke_rapidwright.sh \
+ com.xilinx.rapidwright.interchange.PhysicalNetlistToDcp \
+ build/$(DESIGN).netlist build/$(DESIGN).phys $(DESIGN).xdc build/$(DESIGN).dcp
+
+clean:
+ rm -rf build