mirror of
https://github.com/fpganinja/taxi.git
synced 2025-12-07 16:28:40 -08:00
92 lines
3.9 KiB
Makefile
92 lines
3.9 KiB
Makefile
# SPDX-License-Identifier: MIT
|
|
#
|
|
# Copyright (c) 2025 FPGA Ninja, LLC
|
|
#
|
|
# Authors:
|
|
# - Alex Forencich
|
|
#
|
|
|
|
# FPGA settings
|
|
FPGA_PART = xcux35-vsva1365-3-e
|
|
FPGA_TOP = fpga
|
|
FPGA_ARCH = virtexuplus
|
|
|
|
RTL_DIR = ../rtl
|
|
LIB_DIR = ../lib
|
|
TAXI_SRC_DIR = $(LIB_DIR)/taxi/src
|
|
|
|
# Files for synthesis
|
|
SYN_FILES = $(RTL_DIR)/fpga_x3522.sv
|
|
SYN_FILES += $(RTL_DIR)/fpga_core.sv
|
|
SYN_FILES += $(TAXI_SRC_DIR)/eth/rtl/us/taxi_eth_mac_25g_us.f
|
|
SYN_FILES += $(TAXI_SRC_DIR)/xfcp/rtl/taxi_xfcp_if_uart.f
|
|
SYN_FILES += $(TAXI_SRC_DIR)/xfcp/rtl/taxi_xfcp_switch.sv
|
|
SYN_FILES += $(TAXI_SRC_DIR)/xfcp/rtl/taxi_xfcp_mod_stats.f
|
|
SYN_FILES += $(TAXI_SRC_DIR)/axis/rtl/taxi_axis_async_fifo.f
|
|
SYN_FILES += $(TAXI_SRC_DIR)/sync/rtl/taxi_sync_reset.sv
|
|
SYN_FILES += $(TAXI_SRC_DIR)/sync/rtl/taxi_sync_signal.sv
|
|
SYN_FILES += $(TAXI_SRC_DIR)/io/rtl/taxi_debounce_switch.sv
|
|
|
|
# XDC files
|
|
XDC_FILES = ../fpga_x3522.xdc
|
|
XDC_FILES += $(TAXI_SRC_DIR)/eth/syn/vivado/taxi_eth_mac_fifo.tcl
|
|
XDC_FILES += $(TAXI_SRC_DIR)/axis/syn/vivado/taxi_axis_async_fifo.tcl
|
|
XDC_FILES += $(TAXI_SRC_DIR)/sync/syn/vivado/taxi_sync_reset.tcl
|
|
XDC_FILES += $(TAXI_SRC_DIR)/sync/syn/vivado/taxi_sync_signal.tcl
|
|
|
|
# IP
|
|
IP_TCL_FILES = $(TAXI_SRC_DIR)/eth/rtl/us/taxi_eth_phy_25g_us_gty_25g_161.tcl
|
|
|
|
# Configuration
|
|
CONFIG_TCL_FILES = ./config.tcl
|
|
|
|
include ../common/vivado.mk
|
|
|
|
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 256 -interface SPIx4 -loadbit {up 0x00000000 $*.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;
|
|
|
|
flash: $(PROJECT).mcs $(PROJECT).prm
|
|
echo "open_hw_manager" > flash.tcl
|
|
echo "connect_hw_server" >> flash.tcl
|
|
echo "open_hw_target" >> flash.tcl
|
|
echo "current_hw_device [lindex [get_hw_devices] 0]" >> flash.tcl
|
|
echo "refresh_hw_device -update_hw_probes false [current_hw_device]" >> flash.tcl
|
|
echo "create_hw_cfgmem -hw_device [current_hw_device] [lindex [get_cfgmem_parts {mt25qu02g-spi-x1_x2_x4}] 0]" >> flash.tcl
|
|
echo "current_hw_cfgmem -hw_device [current_hw_device] [get_property PROGRAM.HW_CFGMEM [current_hw_device]]" >> flash.tcl
|
|
echo "set_property PROGRAM.FILES [list \"$(PROJECT).mcs\"] [current_hw_cfgmem]" >> flash.tcl
|
|
echo "set_property PROGRAM.PRM_FILES [list \"$(PROJECT).prm\"] [current_hw_cfgmem]" >> flash.tcl
|
|
echo "set_property PROGRAM.ERASE 1 [current_hw_cfgmem]" >> flash.tcl
|
|
echo "set_property PROGRAM.CFG_PROGRAM 1 [current_hw_cfgmem]" >> flash.tcl
|
|
echo "set_property PROGRAM.VERIFY 1 [current_hw_cfgmem]" >> flash.tcl
|
|
echo "set_property PROGRAM.CHECKSUM 0 [current_hw_cfgmem]" >> flash.tcl
|
|
echo "set_property PROGRAM.ADDRESS_RANGE {use_file} [current_hw_cfgmem]" >> flash.tcl
|
|
echo "set_property PROGRAM.UNUSED_PIN_TERMINATION {pull-none} [current_hw_cfgmem]" >> flash.tcl
|
|
echo "create_hw_bitstream -hw_device [current_hw_device] [get_property PROGRAM.HW_CFGMEM_BITFILE [current_hw_device]]" >> flash.tcl
|
|
echo "program_hw_devices [current_hw_device]" >> flash.tcl
|
|
echo "refresh_hw_device [current_hw_device]" >> flash.tcl
|
|
echo "program_hw_cfgmem -hw_cfgmem [current_hw_cfgmem]" >> flash.tcl
|
|
echo "boot_hw_device [current_hw_device]" >> flash.tcl
|
|
echo "exit" >> flash.tcl
|
|
vivado -nojournal -nolog -mode batch -source flash.tcl
|