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