# SPDX-License-Identifier: MIT # # Copyright (c) 2025 FPGA Ninja, LLC # # Authors: # - Alex Forencich # # FPGA settings FPGA_PART = xc7a100tfgg484-2 FPGA_TOP = sync_top FPGA_ARCH = artix7 RTL_DIR = ../../rtl include ../../scripts/vivado.mk SYN_FILES += $(sort $(shell find ../../rtl/sampler/src -type f -name '*.sv')) SYN_FILES += $(sort $(shell find ../../rtl/generator/src -type f -name '*.sv')) SYN_FILES += sync_top.sv XCI_FILES += $(sort $(shell find ip/ -type f -name '*.xci')) XDC_FILES += ../../constraints/ax7102.xdc XDC_FILES += debug.xdc SYN_FILES += tb_sync_top.sv SIM_TOP = tb_top program: $(PROJECT).bit echo "open_hw_manager" > program.tcl echo "connect_hw_server" >> program.tcl echo "open_hw_target" >> program.tcl echo "current_hw_device [lindex [get_hw_devices] 0]" >> program.tcl echo "refresh_hw_device -update_hw_probes false [current_hw_device]" >> program.tcl echo "set_property PROGRAM.FILE {$(PROJECT).bit} [current_hw_device]" >> program.tcl echo "program_hw_devices [current_hw_device]" >> program.tcl echo "exit" >> program.tcl vivado -nojournal -nolog -mode batch -source program.tcl $(PROJECT).mcs $(PROJECT).prm: $(PROJECT).bit echo "write_cfgmem -force -format mcs -size 16 -interface SPIx4 -loadbit {up 0x0000000 $*.bit} -checksum -file $*.mcs" > generate_mcs.tcl echo "exit" >> generate_mcs.tcl vivado -nojournal -nolog -mode batch -source generate_mcs.tcl mkdir -p rev COUNT=100; \ while [ -e rev/$*_rev$$COUNT.bit ]; \ do COUNT=$$((COUNT+1)); done; \ COUNT=$$((COUNT-1)); \ for x in .mcs .prm; \ do cp $*$$x rev/$*_rev$$COUNT$$x; \ echo "Output: rev/$*_rev$$COUNT$$x"; done;