Jason
|
af1af3bb91
|
Fix XDC for timing closure: add hold waivers, remove stale constraints
Build 3 on XC7A200T-2FBG484I achieves full timing closure:
- WNS +0.040ns (setup), WHS +0.036ns (hold), 0 failing endpoints
- Add 3 hold false-path waivers for ODDR/BUFIO I/O boundaries
(DAC clk_120m→dac_clk_fwd, FT601 ft601_clk_in→ft601_clk_fwd,
ADC adc_d_p→adc_dco_p) — all artifacts of STA modeling
- Comment out ft601_be[2:3] pins (RTL only drives [1:0])
- Remove CIC multicycle paths (DSP48E1 cells not matchable)
- Add -quiet to IOB properties for tristate/optimized registers
|
2026-03-16 23:04:16 +02:00 |
|
Jason
|
1acedf494c
|
Migrate hardware platform from XC7A50T to XC7A200T-2FBG484I
Production FPGA: Artix-7 XC7A200T-2FBG484I (33,650 slices, 740 DSP48E1,
365 BRAM, -2 speed grade). Pin-mapped across 6 banks with proper VCCO
assignment (3.3V/2.5V/1.8V).
RTL timing primitives added for clean timing closure:
- ad9484_interface_400m.v: BUFIO for IDDR capture at 400MHz DDR,
BUFG for fabric logic, reset synchronizer (P1-7)
- dac_interface_single.v: ODDR for dac_clk forwarding + dac_data[7:0]
output registration, eliminates clock-forwarding insertion delay
- usb_data_interface.v: ODDR for ft601_clk_out forwarding, FSM runs
on ft601_clk_in domain with CDC synchronizers
Constraints:
- New production XDC (xc7a200t_fbg484.xdc): 182 pins, generated clocks
for ODDR outputs, BUFIO/DDR input delays, fixed false_path strategy
(from reset source, not to CLR pins), IOB packing on cells not ports
- Preserved upstream XDC as xc7a50t_ftg256.xdc for reference
- Updated cntrt.xdc with DRC fixes (I/O standards, missing constraints)
|
2026-03-16 22:24:22 +02:00 |
|