Skip to content

Commit df5368d

Browse files
committed
Add ZCU106 example design
1 parent 6aba3a7 commit df5368d

20 files changed

+2131
-0
lines changed

example/ZCU106/fpga/Makefile

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
# Targets
2+
TARGETS:=
3+
4+
# Subdirectories
5+
SUBDIRS = fpga
6+
SUBDIRS_CLEAN = $(patsubst %,%.clean,$(SUBDIRS))
7+
8+
# Rules
9+
.PHONY: all
10+
all: $(SUBDIRS) $(TARGETS)
11+
12+
.PHONY: $(SUBDIRS)
13+
$(SUBDIRS):
14+
cd $@ && $(MAKE)
15+
16+
.PHONY: $(SUBDIRS_CLEAN)
17+
$(SUBDIRS_CLEAN):
18+
cd $(@:.clean=) && $(MAKE) clean
19+
20+
.PHONY: clean
21+
clean: $(SUBDIRS_CLEAN)
22+
-rm -rf $(TARGETS)
23+
24+
program:
25+
#djtgcfg prog -d Atlys --index 0 --file fpga/fpga.bit

example/ZCU106/fpga/README.md

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
# Verilog Ethernet ZCU106 Example Design
2+
3+
## Introduction
4+
5+
This example design targets the Xilinx ZCU106 FPGA board.
6+
7+
The design by default listens to UDP port 1234 at IP address 192.168.1.128 and
8+
will echo back any packets received. The design will also respond correctly
9+
to ARP requests.
10+
11+
FPGA: xczu7ev-ffvc1156-2-e
12+
PHY: 10G BASE-R PHY IP core and internal GTY transceiver
13+
14+
## How to build
15+
16+
Run make to build. Ensure that the Xilinx Vivado toolchain components are
17+
in PATH.
18+
19+
## How to test
20+
21+
Run make program to program the ZCU106 board with Vivado. Then run
22+
netcat -u 192.168.1.128 1234 to open a UDP connection to port 1234. Any text
23+
entered into netcat will be echoed back after pressing enter.
24+
25+

example/ZCU106/fpga/common/vivado.mk

Lines changed: 123 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,123 @@
1+
###################################################################
2+
#
3+
# Xilinx Vivado FPGA Makefile
4+
#
5+
# Copyright (c) 2016 Alex Forencich
6+
#
7+
###################################################################
8+
#
9+
# Parameters:
10+
# FPGA_TOP - Top module name
11+
# FPGA_FAMILY - FPGA family (e.g. VirtexUltrascale)
12+
# FPGA_DEVICE - FPGA device (e.g. xcvu095-ffva2104-2-e)
13+
# SYN_FILES - space-separated list of source files
14+
# INC_FILES - space-separated list of include files
15+
# XDC_FILES - space-separated list of timing constraint files
16+
# XCI_FILES - space-separated list of IP XCI files
17+
#
18+
# Example:
19+
#
20+
# FPGA_TOP = fpga
21+
# FPGA_FAMILY = VirtexUltrascale
22+
# FPGA_DEVICE = xcvu095-ffva2104-2-e
23+
# SYN_FILES = rtl/fpga.v
24+
# XDC_FILES = fpga.xdc
25+
# XCI_FILES = ip/pcspma.xci
26+
# include ../common/vivado.mk
27+
#
28+
###################################################################
29+
30+
# phony targets
31+
.PHONY: clean fpga
32+
33+
# prevent make from deleting intermediate files and reports
34+
.PRECIOUS: %.xpr %.bit %.mcs %.prm
35+
.SECONDARY:
36+
37+
CONFIG ?= config.mk
38+
-include ../$(CONFIG)
39+
40+
SYN_FILES_REL = $(patsubst %, ../%, $(SYN_FILES))
41+
INC_FILES_REL = $(patsubst %, ../%, $(INC_FILES))
42+
XCI_FILES_REL = $(patsubst %, ../%, $(XCI_FILES))
43+
IP_TCL_FILES_REL = $(patsubst %, ../%, $(IP_TCL_FILES))
44+
45+
ifdef XDC_FILES
46+
XDC_FILES_REL = $(patsubst %, ../%, $(XDC_FILES))
47+
else
48+
XDC_FILES_REL = $(FPGA_TOP).xdc
49+
endif
50+
51+
###################################################################
52+
# Main Targets
53+
#
54+
# all: build everything
55+
# clean: remove output files and project files
56+
###################################################################
57+
58+
all: fpga
59+
60+
fpga: $(FPGA_TOP).bit
61+
62+
vivado: $(FPGA_TOP).xpr
63+
vivado $(FPGA_TOP).xpr
64+
65+
tmpclean:
66+
-rm -rf *.log *.jou *.cache *.hbs *.hw *.ip_user_files *.runs *.xpr *.html *.xml *.sim *.srcs *.str .Xil defines.v
67+
-rm -rf create_project.tcl run_synth.tcl run_impl.tcl generate_bit.tcl
68+
69+
clean: tmpclean
70+
-rm -rf *.bit program.tcl generate_mcs.tcl *.mcs *.prm flash.tcl
71+
72+
distclean: clean
73+
-rm -rf rev
74+
75+
###################################################################
76+
# Target implementations
77+
###################################################################
78+
79+
# Vivado project file
80+
%.xpr: Makefile $(XCI_FILES_REL) $(IP_TCL_FILES_REL)
81+
rm -rf defines.v
82+
touch defines.v
83+
for x in $(DEFS); do echo '`define' $$x >> defines.v; done
84+
echo "create_project -force -part $(FPGA_PART) $*" > create_project.tcl
85+
echo "add_files -fileset sources_1 defines.v" >> create_project.tcl
86+
for x in $(SYN_FILES_REL); do echo "add_files -fileset sources_1 $$x" >> create_project.tcl; done
87+
for x in $(XDC_FILES_REL); do echo "add_files -fileset constrs_1 $$x" >> create_project.tcl; done
88+
for x in $(XCI_FILES_REL); do echo "import_ip $$x" >> create_project.tcl; done
89+
for x in $(IP_TCL_FILES_REL); do echo "source $$x" >> create_project.tcl; done
90+
echo "exit" >> create_project.tcl
91+
vivado -nojournal -nolog -mode batch -source create_project.tcl
92+
93+
# synthesis run
94+
%.runs/synth_1/%.dcp: %.xpr $(SYN_FILES_REL) $(INC_FILES_REL) $(XDC_FILES_REL)
95+
echo "open_project $*.xpr" > run_synth.tcl
96+
echo "reset_run synth_1" >> run_synth.tcl
97+
echo "launch_runs synth_1" >> run_synth.tcl
98+
echo "wait_on_run synth_1" >> run_synth.tcl
99+
echo "exit" >> run_synth.tcl
100+
vivado -nojournal -nolog -mode batch -source run_synth.tcl
101+
102+
# implementation run
103+
%.runs/impl_1/%_routed.dcp: %.runs/synth_1/%.dcp
104+
echo "open_project $*.xpr" > run_impl.tcl
105+
echo "reset_run impl_1" >> run_impl.tcl
106+
echo "launch_runs impl_1" >> run_impl.tcl
107+
echo "wait_on_run impl_1" >> run_impl.tcl
108+
echo "exit" >> run_impl.tcl
109+
vivado -nojournal -nolog -mode batch -source run_impl.tcl
110+
111+
# bit file
112+
%.bit: %.runs/impl_1/%_routed.dcp
113+
echo "open_project $*.xpr" > generate_bit.tcl
114+
echo "open_run impl_1" >> generate_bit.tcl
115+
echo "write_bitstream -force $*.bit" >> generate_bit.tcl
116+
echo "exit" >> generate_bit.tcl
117+
vivado -nojournal -nolog -mode batch -source generate_bit.tcl
118+
mkdir -p rev
119+
EXT=bit; COUNT=100; \
120+
while [ -e rev/$*_rev$$COUNT.$$EXT ]; \
121+
do COUNT=$$((COUNT+1)); done; \
122+
cp $@ rev/$*_rev$$COUNT.$$EXT; \
123+
echo "Output: rev/$*_rev$$COUNT.$$EXT";

example/ZCU106/fpga/fpga.xdc

Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,94 @@
1+
# XDC constraints for the Xilinx ZCU106 board
2+
# part: xczu7ev-ffvc1156-2-e
3+
4+
# General configuration
5+
set_property BITSTREAM.GENERAL.COMPRESS true [current_design]
6+
7+
# System clocks
8+
# 125 MHz
9+
set_property -dict {LOC H9 IOSTANDARD LVDS} [get_ports clk_125mhz_p]
10+
set_property -dict {LOC G9 IOSTANDARD LVDS} [get_ports clk_125mhz_n]
11+
create_clock -period 8.000 -name clk_125mhz [get_ports clk_125mhz_p]
12+
13+
# LEDs
14+
set_property -dict {LOC AL11 IOSTANDARD LVCMOS12 SLEW SLOW DRIVE 8} [get_ports {led[0]}]
15+
set_property -dict {LOC AL13 IOSTANDARD LVCMOS12 SLEW SLOW DRIVE 8} [get_ports {led[1]}]
16+
set_property -dict {LOC AK13 IOSTANDARD LVCMOS12 SLEW SLOW DRIVE 8} [get_ports {led[2]}]
17+
set_property -dict {LOC AE15 IOSTANDARD LVCMOS12 SLEW SLOW DRIVE 8} [get_ports {led[3]}]
18+
set_property -dict {LOC AM8 IOSTANDARD LVCMOS12 SLEW SLOW DRIVE 8} [get_ports {led[4]}]
19+
set_property -dict {LOC AM9 IOSTANDARD LVCMOS12 SLEW SLOW DRIVE 8} [get_ports {led[5]}]
20+
set_property -dict {LOC AM10 IOSTANDARD LVCMOS12 SLEW SLOW DRIVE 8} [get_ports {led[6]}]
21+
set_property -dict {LOC AM11 IOSTANDARD LVCMOS12 SLEW SLOW DRIVE 8} [get_ports {led[7]}]
22+
23+
# Reset button
24+
set_property -dict {LOC G13 IOSTANDARD LVCMOS12} [get_ports reset]
25+
26+
# Push buttons
27+
set_property -dict {LOC AG13 IOSTANDARD LVCMOS12} [get_ports btnu]
28+
set_property -dict {LOC AK12 IOSTANDARD LVCMOS12} [get_ports btnl]
29+
set_property -dict {LOC AP20 IOSTANDARD LVCMOS12} [get_ports btnd]
30+
set_property -dict {LOC AC14 IOSTANDARD LVCMOS12} [get_ports btnr]
31+
set_property -dict {LOC AL10 IOSTANDARD LVCMOS12} [get_ports btnc]
32+
33+
# DIP switches
34+
set_property -dict {LOC A17 IOSTANDARD LVCMOS18} [get_ports {sw[0]}]
35+
set_property -dict {LOC A16 IOSTANDARD LVCMOS18} [get_ports {sw[1]}]
36+
set_property -dict {LOC B16 IOSTANDARD LVCMOS18} [get_ports {sw[2]}]
37+
set_property -dict {LOC B15 IOSTANDARD LVCMOS18} [get_ports {sw[3]}]
38+
set_property -dict {LOC A15 IOSTANDARD LVCMOS18} [get_ports {sw[4]}]
39+
set_property -dict {LOC A14 IOSTANDARD LVCMOS18} [get_ports {sw[5]}]
40+
set_property -dict {LOC B14 IOSTANDARD LVCMOS18} [get_ports {sw[6]}]
41+
set_property -dict {LOC B13 IOSTANDARD LVCMOS18} [get_ports {sw[7]}]
42+
43+
# UART
44+
set_property -dict {LOC AL17 IOSTANDARD LVCMOS12 SLEW SLOW DRIVE 8} [get_ports uart_txd]
45+
set_property -dict {LOC AH17 IOSTANDARD LVCMOS12} [get_ports uart_rxd]
46+
set_property -dict {LOC AM15 IOSTANDARD LVCMOS12} [get_ports uart_rts]
47+
set_property -dict {LOC AP17 IOSTANDARD LVCMOS12 SLEW SLOW DRIVE 8} [get_ports uart_cts]
48+
49+
# SFP+ Interface
50+
set_property -dict {LOC AA2 } [get_ports sfp0_rx_p] ;# MGTYRXP2_225 GTHE4_CHANNEL_X0Y10 / GTHE4_COMMON_X0Y2
51+
#set_property -dict {LOC AA1 } [get_ports sfp0_rx_n] ;# MGTYRXN2_225 GTHE4_CHANNEL_X0Y10 / GTHE4_COMMON_X0Y2
52+
set_property -dict {LOC Y4 } [get_ports sfp0_tx_p] ;# MGTYTXP2_225 GTHE4_CHANNEL_X0Y10 / GTHE4_COMMON_X0Y2
53+
#set_property -dict {LOC Y3 } [get_ports sfp0_tx_n] ;# MGTYTXN2_225 GTHE4_CHANNEL_X0Y10 / GTHE4_COMMON_X0Y2
54+
set_property -dict {LOC W2 } [get_ports sfp1_rx_p] ;# MGTYRXP3_225 GTHE4_CHANNEL_X0Y11 / GTHE4_COMMON_X0Y2
55+
#set_property -dict {LOC W1 } [get_ports sfp1_rx_n] ;# MGTYRXN3_225 GTHE4_CHANNEL_X0Y11 / GTHE4_COMMON_X0Y2
56+
set_property -dict {LOC W6 } [get_ports sfp1_tx_p] ;# MGTYTXP3_225 GTHE4_CHANNEL_X0Y11 / GTHE4_COMMON_X0Y2
57+
#set_property -dict {LOC W5 } [get_ports sfp1_tx_n] ;# MGTYTXN3_225 GTHE4_CHANNEL_X0Y11 / GTHE4_COMMON_X0Y2
58+
set_property -dict {LOC U10 } [get_ports sfp_mgt_refclk_0_p] ;# MGTREFCLK1P_226 from U56 SI570 via U51 SI53340
59+
#set_property -dict {LOC U9 } [get_ports sfp_mgt_refclk_0_n] ;# MGTREFCLK1N_226 from U56 SI570 via U51 SI53340
60+
#set_property -dict {LOC W10 } [get_ports sfp_mgt_refclk_1_p] ;# MGTREFCLK1P_225 from U20 CKOUT2 SI5328
61+
#set_property -dict {LOC W9 } [get_ports sfp_mgt_refclk_1_n] ;# MGTREFCLK1N_225 from U20 CKOUT2 SI5328
62+
#set_property -dict {LOC H11 IOSTANDARD LVDS} [get_ports sfp_recclk_p] ;# to U20 CKIN1 SI5328
63+
#set_property -dict {LOC G11 IOSTANDARD LVDS} [get_ports sfp_recclk_n] ;# to U20 CKIN1 SI5328
64+
set_property -dict {LOC AE22 IOSTANDARD LVCMOS12} [get_ports sfp0_tx_disable_b]
65+
set_property -dict {LOC AF20 IOSTANDARD LVCMOS12} [get_ports sfp1_tx_disable_b]
66+
67+
# 156.25 MHz MGT reference clock
68+
create_clock -period 6.400 -name sfp_mgt_refclk_0 [get_ports sfp_mgt_refclk_0_p]
69+
70+
# PCIe Interface
71+
#set_property -dict {LOC AE2 } [get_ports {pcie_rx_p[0]}] ;# MGTHRXP3_224 GTHE4_CHANNEL_X0Y7 / GTHE4_COMMON_X0Y1
72+
#set_property -dict {LOC AE1 } [get_ports {pcie_rx_n[0]}] ;# MGTHRXN3_224 GTHE4_CHANNEL_X0Y7 / GTHE4_COMMON_X0Y1
73+
#set_property -dict {LOC AD4 } [get_ports {pcie_tx_p[0]}] ;# MGTHTXP3_224 GTHE4_CHANNEL_X0Y7 / GTHE4_COMMON_X0Y1
74+
#set_property -dict {LOC AD3 } [get_ports {pcie_tx_n[0]}] ;# MGTHTXN3_224 GTHE4_CHANNEL_X0Y7 / GTHE4_COMMON_X0Y1
75+
#set_property -dict {LOC AF4 } [get_ports {pcie_rx_p[1]}] ;# MGTHRXP2_224 GTHE4_CHANNEL_X0Y6 / GTHE4_COMMON_X0Y1
76+
#set_property -dict {LOC AF3 } [get_ports {pcie_rx_n[1]}] ;# MGTHRXN2_224 GTHE4_CHANNEL_X0Y6 / GTHE4_COMMON_X0Y1
77+
#set_property -dict {LOC AE6 } [get_ports {pcie_tx_p[1]}] ;# MGTHTXP2_224 GTHE4_CHANNEL_X0Y6 / GTHE4_COMMON_X0Y1
78+
#set_property -dict {LOC AE5 } [get_ports {pcie_tx_n[1]}] ;# MGTHTXN2_224 GTHE4_CHANNEL_X0Y6 / GTHE4_COMMON_X0Y1
79+
#set_property -dict {LOC AG2 } [get_ports {pcie_rx_p[2]}] ;# MGTHRXP1_224 GTHE4_CHANNEL_X0Y5 / GTHE4_COMMON_X0Y1
80+
#set_property -dict {LOC AG1 } [get_ports {pcie_rx_n[2]}] ;# MGTHRXN1_224 GTHE4_CHANNEL_X0Y5 / GTHE4_COMMON_X0Y1
81+
#set_property -dict {LOC AG6 } [get_ports {pcie_tx_p[2]}] ;# MGTHTXP1_224 GTHE4_CHANNEL_X0Y5 / GTHE4_COMMON_X0Y1
82+
#set_property -dict {LOC AG5 } [get_ports {pcie_tx_n[2]}] ;# MGTHTXN1_224 GTHE4_CHANNEL_X0Y5 / GTHE4_COMMON_X0Y1
83+
#set_property -dict {LOC AJ2 } [get_ports {pcie_rx_p[3]}] ;# MGTHRXP0_224 GTHE4_CHANNEL_X0Y4 / GTHE4_COMMON_X0Y1
84+
#set_property -dict {LOC AJ1 } [get_ports {pcie_rx_n[3]}] ;# MGTHRXN0_224 GTHE4_CHANNEL_X0Y4 / GTHE4_COMMON_X0Y1
85+
#set_property -dict {LOC AH4 } [get_ports {pcie_tx_p[3]}] ;# MGTHTXP0_224 GTHE4_CHANNEL_X0Y4 / GTHE4_COMMON_X0Y1
86+
#set_property -dict {LOC AH3 } [get_ports {pcie_tx_n[3]}] ;# MGTHTXN0_224 GTHE4_CHANNEL_X0Y4 / GTHE4_COMMON_X0Y1
87+
#set_property -dict {LOC AB8 } [get_ports pcie_mgt_refclk_p] ;# MGTREFCLK0P_224
88+
#set_property -dict {LOC AB7 } [get_ports pcie_mgt_refclk_n] ;# MGTREFCLK0N_224
89+
#set_property -dict {LOC L8 IOSTANDARD LVCMOS33 PULLUP true} [get_ports pcie_reset_n]
90+
91+
# 100 MHz MGT reference clock
92+
#create_clock -period 10 -name pcie_mgt_refclk [get_ports pcie_mgt_refclk_p]
93+
94+

example/ZCU106/fpga/fpga/Makefile

Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
2+
# FPGA settings
3+
FPGA_PART = xczu7ev-ffvc1156-2-e
4+
FPGA_TOP = fpga
5+
FPGA_ARCH = zynquplus
6+
7+
# Files for synthesis
8+
SYN_FILES = rtl/fpga.v
9+
SYN_FILES += rtl/fpga_core.v
10+
SYN_FILES += rtl/debounce_switch.v
11+
SYN_FILES += rtl/sync_signal.v
12+
SYN_FILES += lib/eth/rtl/eth_mac_10g_fifo.v
13+
SYN_FILES += lib/eth/rtl/eth_mac_10g.v
14+
SYN_FILES += lib/eth/rtl/axis_xgmii_rx_64.v
15+
SYN_FILES += lib/eth/rtl/axis_xgmii_tx_64.v
16+
SYN_FILES += lib/eth/rtl/eth_phy_10g.v
17+
SYN_FILES += lib/eth/rtl/eth_phy_10g_rx.v
18+
SYN_FILES += lib/eth/rtl/eth_phy_10g_rx_if.v
19+
SYN_FILES += lib/eth/rtl/eth_phy_10g_rx_frame_sync.v
20+
SYN_FILES += lib/eth/rtl/eth_phy_10g_rx_ber_mon.v
21+
SYN_FILES += lib/eth/rtl/eth_phy_10g_tx.v
22+
SYN_FILES += lib/eth/rtl/eth_phy_10g_tx_if.v
23+
SYN_FILES += lib/eth/rtl/xgmii_baser_dec_64.v
24+
SYN_FILES += lib/eth/rtl/xgmii_baser_enc_64.v
25+
SYN_FILES += lib/eth/rtl/lfsr.v
26+
SYN_FILES += lib/eth/rtl/eth_axis_rx.v
27+
SYN_FILES += lib/eth/rtl/eth_axis_tx.v
28+
SYN_FILES += lib/eth/rtl/udp_complete_64.v
29+
SYN_FILES += lib/eth/rtl/udp_checksum_gen_64.v
30+
SYN_FILES += lib/eth/rtl/udp_64.v
31+
SYN_FILES += lib/eth/rtl/udp_ip_rx_64.v
32+
SYN_FILES += lib/eth/rtl/udp_ip_tx_64.v
33+
SYN_FILES += lib/eth/rtl/ip_complete_64.v
34+
SYN_FILES += lib/eth/rtl/ip_64.v
35+
SYN_FILES += lib/eth/rtl/ip_eth_rx_64.v
36+
SYN_FILES += lib/eth/rtl/ip_eth_tx_64.v
37+
SYN_FILES += lib/eth/rtl/ip_arb_mux.v
38+
SYN_FILES += lib/eth/rtl/arp.v
39+
SYN_FILES += lib/eth/rtl/arp_cache.v
40+
SYN_FILES += lib/eth/rtl/arp_eth_rx.v
41+
SYN_FILES += lib/eth/rtl/arp_eth_tx.v
42+
SYN_FILES += lib/eth/rtl/eth_arb_mux.v
43+
SYN_FILES += lib/eth/lib/axis/rtl/arbiter.v
44+
SYN_FILES += lib/eth/lib/axis/rtl/priority_encoder.v
45+
SYN_FILES += lib/eth/lib/axis/rtl/axis_fifo.v
46+
SYN_FILES += lib/eth/lib/axis/rtl/axis_async_fifo.v
47+
SYN_FILES += lib/eth/lib/axis/rtl/axis_async_fifo_adapter.v
48+
SYN_FILES += lib/eth/lib/axis/rtl/sync_reset.v
49+
50+
# XDC files
51+
XDC_FILES = fpga.xdc
52+
XDC_FILES += lib/eth/syn/eth_mac_fifo.tcl
53+
XDC_FILES += lib/eth/lib/axis/syn/axis_async_fifo.tcl
54+
XDC_FILES += lib/eth/lib/axis/syn/sync_reset.tcl
55+
56+
# IP
57+
IP_TCL_FILES = ip/gtwizard_ultrascale_0.tcl
58+
59+
include ../common/vivado.mk
60+
61+
program: $(FPGA_TOP).bit
62+
echo "open_hw" > program.tcl
63+
echo "connect_hw_server" >> program.tcl
64+
echo "open_hw_target" >> program.tcl
65+
echo "current_hw_device [lindex [get_hw_devices] 0]" >> program.tcl
66+
echo "refresh_hw_device -update_hw_probes false [current_hw_device]" >> program.tcl
67+
echo "set_property PROGRAM.FILE {$(FPGA_TOP).bit} [current_hw_device]" >> program.tcl
68+
echo "program_hw_devices [current_hw_device]" >> program.tcl
69+
echo "exit" >> program.tcl
70+
vivado -nojournal -nolog -mode batch -source program.tcl
71+
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
2+
create_ip -name gtwizard_ultrascale -vendor xilinx.com -library ip -module_name gtwizard_ultrascale_0
3+
4+
set_property -dict [list CONFIG.preset {GTH-10GBASE-R}] [get_ips gtwizard_ultrascale_0]
5+
6+
set_property -dict [list \
7+
CONFIG.CHANNEL_ENABLE {X0Y11 X0Y10} \
8+
CONFIG.TX_MASTER_CHANNEL {X0Y10} \
9+
CONFIG.RX_MASTER_CHANNEL {X0Y10} \
10+
CONFIG.TX_LINE_RATE {10.3125} \
11+
CONFIG.TX_REFCLK_FREQUENCY {156.25} \
12+
CONFIG.TX_USER_DATA_WIDTH {64} \
13+
CONFIG.TX_INT_DATA_WIDTH {32} \
14+
CONFIG.RX_LINE_RATE {10.3125} \
15+
CONFIG.RX_REFCLK_FREQUENCY {156.25} \
16+
CONFIG.RX_USER_DATA_WIDTH {64} \
17+
CONFIG.RX_INT_DATA_WIDTH {32} \
18+
CONFIG.RX_REFCLK_SOURCE {X0Y11 clk1+1 X0Y10 clk1+1} \
19+
CONFIG.TX_REFCLK_SOURCE {X0Y11 clk1+1 X0Y10 clk1+1} \
20+
CONFIG.FREERUN_FREQUENCY {125} \
21+
] [get_ips gtwizard_ultrascale_0]

example/ZCU106/fpga/lib/eth

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../../../../

0 commit comments

Comments
 (0)