From 0c9b2bf5cd0b1ab3d26f858e7b98fa8713eec567 Mon Sep 17 00:00:00 2001 From: thejayman77 Date: Thu, 23 Jul 2026 12:31:31 -0400 Subject: [PATCH] QSF: set fitter placement SEED 3 (bounded sweep winner) RTL frozen at 6319d7c. The AW/W/R buffers + F_SETTLE drain multicycle removed every structural EMIF-handshake -> FSM setup family; the residual was a placement/route-marginal EMIF path (zc_emit QUAD_WIDTH4 Z-request FIFO read, ~-0.087 ns: 3.132 ns data / -0.100 ns skew vs 3.225 ns period). A bounded, Codex-authorized 4-seed fit+STA sweep (AGGRESSIVE AREA kept, no asm) resolved it by placement: seed 2 EMIF -0.087 (10 violated) seed 3 EMIF +0.132 (0 violated, ALL classes >=0) <- winner seed 4 EMIF +0.062 (0 violated, under +0.100 margin) seed 5 EMIF -0.130 (3 violated) SEED 3 is the best complete result: EMIF setup +0.132 (>= +0.100), design +5.561, hold/recovery/removal/MPW all nonnegative, no AWREADY / texture-fill R-return / texcache drain / scanout-diagnostic violations, RAM 317/358, ALM 85%. This is a fitter placement seed only -- no RTL or optimization-mode change. Per-seed reports preserved under synth/.../seed_sweep/ (not committed; build artifacts). Co-Authored-By: Claude Opus 4.8 (1M context) --- .../de25_nano_psmct32_raster_demo_top.qsf | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/synth/de25_nano/top_psmct32_raster_demo/de25_nano_psmct32_raster_demo_top.qsf b/synth/de25_nano/top_psmct32_raster_demo/de25_nano_psmct32_raster_demo_top.qsf index 910eb1f..f0ae918 100644 --- a/synth/de25_nano/top_psmct32_raster_demo/de25_nano_psmct32_raster_demo_top.qsf +++ b/synth/de25_nano/top_psmct32_raster_demo/de25_nano_psmct32_raster_demo_top.qsf @@ -995,8 +995,14 @@ set_global_assignment -name OPTIMIZATION_MODE "AGGRESSIVE AREA" # block cluster -> shorter routing. Surgical (no global area/placement disruption); ~a few ALMs. set_instance_assignment -name MAX_FANOUT 3 -to "u_zc_emit|u_req|raddr_hi1_q*" set_global_assignment -name AUTO_RESOURCE_SHARING ON -# Ch357 (Codex) — SEED left at default (1): seed 1 gave -0.019 (quasi-static EMIF-lock ONLY, all real datapaths met); -# seed 2 was worse (-0.155, exposed a different marginal path). The last sliver is closed via the scoped false-path in the SDC. +# Ch357 (Codex) — historical: at that netlist seed 1 gave -0.019 (quasi-static EMIF-lock only), seed 2 was worse. +# Ch443d (Codex) — after the AW/W/R buffers + F_SETTLE drain multicycle froze the functional netlist at 6319d7c, +# the residual failure was a placement/route-marginal EMIF path (zc_emit QUAD_WIDTH4 Z-req FIFO read, ~-0.087, +# 3.132ns data / -0.100 skew vs 3.225ns period). A bounded 4-seed sweep (fit+STA, AGGRESSIVE AREA kept) resolved it: +# seed2 -0.087 | seed3 +0.132 (0 violated, ALL classes >=0) | seed4 +0.062 | seed5 -0.130. +# SEED 3 is the reproducibility setting: EMIF setup +0.132 (>= +0.100 margin), no AWREADY/texcache-fill/drain/ +# scanout-diag violations, RAM 317/358, ALM 85%. This is a fitter placement seed, NOT an RTL/timing-mode change. +set_global_assignment -name SEED 3 set_global_assignment -name STRATIXV_CONFIGURATION_SCHEME "ACTIVE SERIAL X4" set_global_assignment -name ACTIVE_SERIAL_CLOCK AS_FREQ_125MHZ set_global_assignment -name USE_CONF_DONE SDM_IO16