Files

3.2 KiB

Digilent Genesys 2 target

This directory contains only the Genesys 2 adaptation of the MAX2771 recorder. The protocol/capture/FIFO/MAC RTL comes from ../../rtl/common; no portable module is copied here.

Target-specific files

File Function
rtl/max2771_recorder_top.sv connects common blocks, status counters and LEDs
rtl/ethernet_clock_gen_xilinx.sv 200 MHz differential input and primitive MMCM for 125 MHz/125 MHz +90°
rtl/rgmii_tx_xilinx.sv Kintex-7 ODDR implementation for TXD/TXCTL/TXC
rtl/phy_init_rtl8211e.sv polls Genesys RTL8211E PHY address 1 and gates 1000/full link
constraints/genesys2_max2771_recorder.xdc verified clock, JA, Ethernet and LED pins
scripts/build_vivado.tcl in-memory/non-project synthesis, P&R, reports and bitstream
scripts/program_fpga.tcl volatile JTAG configuration

Wiring

Signal FPGA ball JA pin Standard
rf_clk_pmod U27 JA[0] LVCMOS33
rf_data_pmod[0] U28 JA[1] LVCMOS33
rf_data_pmod[1] T26 JA[2] LVCMOS33
rf_data_pmod[2] T27 JA[3] LVCMOS33
rf_data_pmod[3] T22 JA[4] LVCMOS33

Connect a common ground and use only a 3.3-V-compatible digital source.

Simulation

From the repository root:

make genesys2-sim

This runs the common FIFO/protocol/MAC regression. Xilinx primitives are guarded by SYNTHESIS, so vendor simulation libraries are not required for the common regression.

Build

make genesys2-build

Equivalent direct command:

vivado -mode batch -source targets/genesys2/scripts/build_vivado.tcl

Output:

build/genesys2/vivado/max2771_recorder.bit
build/genesys2/reports/

The build uses part xc7k325tffg900-2, top max2771_recorder_top, creates an in-memory project, fails on negative setup/hold slack or unexpected major CDC warnings and uses no block design or generated IP. A clean Vivado 2026.1 build on 1 August 2026 completed synthesis, placement, routing, DRC and bitstream generation with +0.212 ns worst setup slack and +0.090 ns worst hold slack.

Programming

Connect the Digilent JTAG USB port and run:

make genesys2-program

This configures the FPGA volatile SRAM. It does not write configuration flash. Power cycling removes the design.

Clocking and RGMII

The 200 MHz differential oscillator drives an MMCM with a 1000 MHz VCO. It generates 125 MHz at 0° for the MAC/data ODDRs and 125 MHz at +90° for the TXC ODDR. The resulting nominal +2 ns clock shift is required because the board straps RTL8211E transmit delay off.

PHY reset remains asserted for 10 ms, register access waits another 30 ms, and transmit starts only after PHY-specific status reports resolved 1000 Mb/s/full duplex link. Ethernet receive is not implemented.

LEDs

LED Meaning
0 MMCM locked/system ready
1 qualified 1000/full link
2 RF sample activity
3 FIFO non-empty
4 sample loss/overflow latched
5 frame activity
6 first PHY status read completed
7 Ethernet-domain heartbeat

See hardware assumptions and timing constraints before hardware sign-off.