- Fixed 10GigE firmware communication issues and sequence errors for TX - Multiple changes to help ease timing closure - Cleaned up build scripts - Switched to Xilinx ISE 14.7 as the default build tool for X300 Original-commit: 64d71dcbc5fa6790385b288de25224d386b047b0
184 lines
5.1 KiB
PHP
184 lines
5.1 KiB
PHP
#
|
|
# Copyright 2008-2012 Ettus Research LLC
|
|
#
|
|
|
|
##################################################
|
|
# Project Setup
|
|
##################################################
|
|
TOP_MODULE = x300
|
|
BUILD_DIR = build-$(NAME)
|
|
|
|
# set me in a custom makefile
|
|
CUSTOM_SRCS =
|
|
CUSTOM_DEFS =
|
|
|
|
##################################################
|
|
# Include other makefiles
|
|
##################################################
|
|
|
|
include ../Makefile.common
|
|
include coregen/Makefile.srcs
|
|
include coregen_dsp/Makefile.srcs
|
|
include ../../lib/control/Makefile.srcs
|
|
include ../../lib/fifo/Makefile.srcs
|
|
include ../../lib/simple_gemac/Makefile.srcs
|
|
include ../../lib/timing/Makefile.srcs
|
|
include ../../lib/zpu/Makefile.srcs
|
|
include ../../lib/wishbone/Makefile.srcs
|
|
include ../../lib/packet_proc/Makefile.srcs
|
|
include ../../lib/vita/Makefile.srcs
|
|
include ../../lib/xge/Makefile.srcs
|
|
include ../../lib/xge_interface/Makefile.srcs
|
|
include ../../lib/dsp/Makefile.srcs
|
|
include ../../lib/io_port2/Makefile.srcs
|
|
include ../../lib/axi/Makefile.srcs
|
|
|
|
promgen: $(BIT_FILE)
|
|
promgen -w -p bin -o $(BIN_FILE) -u 0 $<
|
|
|
|
##################################################
|
|
# Project Properties
|
|
##################################################
|
|
export PROJECT_PROPERTIES := \
|
|
family "Kintex7" \
|
|
device $(DEVICE) \
|
|
package ffg900 \
|
|
speed -2 \
|
|
top_level_module_type "HDL" \
|
|
synthesis_tool "XST (VHDL/Verilog)" \
|
|
simulator "ISim (VHDL/Verilog)" \
|
|
"Preferred Language" "Verilog" \
|
|
"Enable Message Filtering" FALSE \
|
|
"Display Incremental Messages" FALSE
|
|
|
|
##################################################
|
|
# Sources
|
|
##################################################
|
|
TOP_SRCS = \
|
|
x300.v \
|
|
x300_pcie_int.v \
|
|
x300_core.v \
|
|
x300_zpu_config.vhd \
|
|
soft_ctrl.v \
|
|
dbuf_bootram.v \
|
|
capture_ddrlvds.v \
|
|
gen_ddrlvds.v \
|
|
radio.v \
|
|
bus_int.v \
|
|
x300.ucf \
|
|
stc3.ucf \
|
|
timing.ucf
|
|
|
|
ONE_GIG_SRCS = $(COREGEN_ONE_GIG_SRCS) \
|
|
gige_phy/gige_phy_mdio.v \
|
|
gige_phy/gige_sfp_mdio_block.v \
|
|
gige_phy/gige_sfp_mdio_reset_sync.v \
|
|
gige_phy/gige_sfp_mdio_sync_block.v \
|
|
gige_phy/transceiver/gige_sfp_mdio_transceiver.v \
|
|
gige_phy/transceiver/gige_sfp_mdio_gtwizard.v \
|
|
gige_phy/transceiver/gige_sfp_mdio_gtwizard_gt.v \
|
|
gige_phy/transceiver/gige_sfp_mdio_gtwizard_init.v \
|
|
gige_phy/transceiver/gige_sfp_mdio_tx_startup_fsm.v \
|
|
gige_phy/transceiver/gige_sfp_mdio_rx_startup_fsm.v \
|
|
gige_phy/transceiver/gige_sfp_mdio_recclk_monitor.v \
|
|
|
|
TEN_GIG_SRCS = $(COREGEN_TEN_GIG_SRCS) \
|
|
ten_gige_phy/ten_gig_eth_pcs_pma_x300_top.v \
|
|
ten_gige_phy/ten_gig_eth_pcs_pma_x300_top.ucf \
|
|
ten_gige_phy/ten_gig_eth_pcs_pma_block.v \
|
|
ten_gige_phy/ten_gig_eth_pcs_pma_mod.v \
|
|
ten_gige_phy/gtx/ten_gig_eth_pcs_pma_gt_usrclk_source.v \
|
|
ten_gige_phy/gtx/ten_gig_eth_pcs_pma_gtwizard_10gbaser_gt.v \
|
|
ten_gige_phy/gtx/ten_gig_eth_pcs_pma_gtwizard_10gbaser.v \
|
|
|
|
ifeq ($(FLOORPLAN), 1)
|
|
ifeq ($(DEVICE), XC7K325T)
|
|
TOP_SRCS+=floorplan_X300.ucf
|
|
endif
|
|
|
|
ifeq ($(DEVICE), XC7K410T)
|
|
TOP_SRCS+=floorplan_X310.ucf
|
|
endif
|
|
endif
|
|
|
|
ifdef BUILD_10G
|
|
ETH_SRCS+=$(abspath $(TEN_GIG_SRCS)) $(XGE_SRCS) $(XGE_INTERFACE_SRCS) $(abspath x300_10ge.ucf)
|
|
endif
|
|
|
|
ifdef BUILD_1G
|
|
ETH_SRCS+=$(abspath $(ONE_GIG_SRCS)) $(abspath x300_1ge.ucf)
|
|
endif
|
|
|
|
ifdef ETH10G_PORT0
|
|
ETH_SRCS+=$(abspath x300_10ge_port0.ucf)
|
|
endif
|
|
|
|
ifdef ETH10G_PORT1
|
|
ETH_SRCS+=$(abspath x300_10ge_port1.ucf)
|
|
endif
|
|
|
|
ifndef NO_DRAM_FIFOS
|
|
DRAM_SRCS= \
|
|
$(abspath ddr3.ucf) \
|
|
$(COREGEN_DRAM_SRCS)
|
|
else
|
|
DRAM_SRCS=
|
|
endif
|
|
|
|
|
|
SOURCES = $(abspath $(TOP_SRCS)) $(FIFO_SRCS) \
|
|
$(CONTROL_LIB_SRCS) $(SDR_LIB_SRCS) $(SERDES_SRCS) \
|
|
$(SIMPLE_GEMAC_SRCS) $(TIMING_SRCS) $(COREGEN_DSP_SRCS) \
|
|
$(VRT_SRCS) $(UDP_SRCS) $(COREGEN_SRCS) $(EXTRAM_SRCS) \
|
|
$(ZPU_CORE_SRCS) $(WISHBONE_SRCS) \
|
|
$(ETH_SRCS) $(IOPORT2_SRCS) $(COREGEN_CHIPSCOPE_SRCS) \
|
|
$(PACKET_PROC_SRCS) $(VITA_SRCS) $(DSP_SRCS) $(DRAM_SRCS) $(AXI_SRCS)
|
|
|
|
|
|
##################################################
|
|
# Process Properties
|
|
##################################################
|
|
SYNTHESIZE_PROPERTIES = \
|
|
"Number of Clock Buffers" 8 \
|
|
"Pack I/O Registers into IOBs" Yes \
|
|
"Optimization Effort" High \
|
|
"Optimize Instantiated Primitives" TRUE \
|
|
"Register Balancing" Yes \
|
|
"Use Clock Enable" Auto \
|
|
"Use Synchronous Reset" Auto \
|
|
"Use Synchronous Set" Auto \
|
|
"Verilog Macros" "$(EXTRA_DEFS) $(CUSTOM_DEFS)"
|
|
|
|
TRANSLATE_PROPERTIES = \
|
|
"Macro Search Path" "$(shell pwd)/coregen"
|
|
|
|
MAP_PROPERTIES = \
|
|
"Generate Detailed MAP Report" TRUE \
|
|
"Allow Logic Optimization Across Hierarchy" TRUE \
|
|
"Pack I/O Registers/Latches into IOBs" "For Inputs and Outputs" \
|
|
"Combinatorial Logic Optimization" TRUE \
|
|
"Register Duplication" On \
|
|
"Placer Effort Level" High \
|
|
"Placer Extra Effort" Normal \
|
|
"Enable Multi-Threading" 2 \
|
|
"Starting Placer Cost Table (1-100)" $(shell awk 'BEGIN{srand();printf("%d", (100*rand()%100)+1)}')
|
|
|
|
PLACE_ROUTE_PROPERTIES = \
|
|
"Place & Route Effort Level (Overall)" High \
|
|
"Extra Effort (Highest PAR level only)" Normal \
|
|
"Enable Multi-Threading" 4
|
|
|
|
STATIC_TIMING_PROPERTIES = \
|
|
"Number of Paths in Error/Verbose Report" 10 \
|
|
"Report Type" "Error Report"
|
|
|
|
GEN_PROG_FILE_PROPERTIES = \
|
|
"Configuration Rate" 6 \
|
|
"Create Binary Configuration File" TRUE \
|
|
"Done (Output Events)" 5 \
|
|
"Enable Bitstream Compression" FALSE \
|
|
"Enable Outputs (Output Events)" 6 \
|
|
"Wait for DCI Match (Output Events)" NoWait
|
|
|
|
SIM_MODEL_PROPERTIES = ""
|