| # Copyright (C) 2017-2020  The Project X-Ray Authors. | 
 | # | 
 | # Use of this source code is governed by a ISC-style | 
 | # license that can be found in the LICENSE file or at | 
 | # https://opensource.org/licenses/ISC | 
 | # | 
 | # SPDX-License-Identifier: ISC | 
 | export XRAY_PART = xc7a35tcsg324-1 | 
 | export XRAY_PART_YAML = $(XRAY_DATABASE_DIR)/$(XRAY_DATABASE)/$(XRAY_PART).yaml | 
 | YOSYS = $(XRAY_DIR)/third_party/yosys/yosys | 
 | SOURCES = mem.init mem_1.init verilog/top.v verilog/VexRiscv.v | 
 |  | 
 | all: top.f2b.bit | 
 |  | 
 | clean: | 
 | 	@rm -f *.bit | 
 | 	@rm -f *.bin | 
 | 	@rm -f *.bits | 
 | 	@rm -f *.fasm | 
 | 	@rm -f *.frames* | 
 | 	@rm -f *.log | 
 | 	@rm -rf build | 
 |  | 
 | .PHONY: all clean | 
 |  | 
 | $(YOSYS): | 
 | 	cd $(XRAY_DIR)/third_party/yosys && make config-gcc && make -j$(shell nproc) | 
 |  | 
 | top.edif: $(YOSYS) synth.ys $(SOURCES) | 
 | 	$(YOSYS) -s synth.ys -l yosys.log | 
 |  | 
 | top.bit: $(VIVADO) $(SOURCES) top.xdc top.tcl | 
 | 	mkdir -p build | 
 | 	cd build && $(XRAY_VIVADO) -mode batch -source ../top.tcl -nojournal -tempDir build -log vivado.log -verbose | 
 | 	python3 $(XRAY_UTILS_DIR)/clean_json5.py < build/iobuf_report.json5 > build/iobuf_report.json | 
 | 	cp build/*.bit ./ | 
 |  | 
 | top.fasm: top.bit | 
 | 	$(XRAY_BIT2FASM) --verbose $< > $@ \ | 
 |         || (rm -f top.fasm && exit 1) | 
 |  | 
 | top.bits: top.bit | 
 | 	$(XRAY_BITREAD) -part_file $(XRAY_PART_YAML) -o top.bits -z -y top.bit | 
 |  | 
 | segprint.log: top.bits | 
 | 	$(XRAY_SEGPRINT) -z -D -b top.bits > segprint.log | 
 |  | 
 | top.frames: top.fasm | 
 | 	$(XRAY_FASM2FRAMES) $< $@ | 
 |  | 
 | top.bitread.frames: top.bit | 
 | 	$(XRAY_DIR)/build/tools/bitread --part_file $(XRAY_PART_YAML) $< > top.frames.bitread | 
 | 	python3 ./ExtractFrames.py top.frames.bitread > $@ | 
 |  | 
 | top.f2b.bit: top.frames | 
 | 	$(XRAY_DIR)/build/tools/xc7frames2bit --output_file $@ --part_name $(XRAY_PART) --part_file $(XRAY_PART_YAML) --frm_file $< | 
 |  | 
 | top.f2b.bitread.bit: top.bitread.frames | 
 | 	$(XRAY_DIR)/build/tools/xc7frames2bit --output_file $@ --part_name $(XRAY_PART) --part_file $(XRAY_PART_YAML) --frm_file $< | 
 |  | 
 | program: top.f2b.bit | 
 | 	xc3sprog -c nexys4 top.f2b.bit |