From 547811e89bd6face2b5f71dbd0aa9757005ea692 Mon Sep 17 00:00:00 2001 From: thejayman77 Date: Tue, 21 Jul 2026 05:43:25 -0400 Subject: [PATCH] Z-req FIFO REQ_DEPTH 8192->1024: kill zc_emit EMIF setup path, free 32 M20Ks The 8K request FIFO was 8x oversized (measured peak ~478; Codex's TB uses 1024). Its read address routed to 8 spread M20K blocks -> 310MHz EMIF setup miss (-0.103, MAX_FANOUT can't help: Quartus refuses to duplicate RAM-address regs, Warning 22471). Shrinking to 1024 (2 blocks): 26.1 fit shows that path GONE, design clk +0.631->+5.693, RAM 309/358 (86%) -> 277/358 (77%). New worst is a DIFFERENT, skew-dominated EMIF-> texcache-FSM path at -0.074 (TNS -2.032 -> -0.164). SAFETY GATE before board load: confirm the full zsrt139f52 scene never bursts >1024 Z-requests in flight (peak I have is 478 from a smaller scene). Bump to 2048 if unsure. Co-Authored-By: Claude Opus 4.8 (1M context) --- rtl/top/de25_nano_psmct32_raster_demo_top.sv | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rtl/top/de25_nano_psmct32_raster_demo_top.sv b/rtl/top/de25_nano_psmct32_raster_demo_top.sv index 5391443..526cbf4 100644 --- a/rtl/top/de25_nano_psmct32_raster_demo_top.sv +++ b/rtl/top/de25_nano_psmct32_raster_demo_top.sv @@ -2376,7 +2376,7 @@ module de25_nano_psmct32_raster_demo_top ( // queued requests. 8K retains 2,077 entries (34%) of // measured headroom while halving the deep 93-bit FIFO's // M20K/address-tree footprint at 310 MHz. - .FB_PXW(ZFB_PXW), .FB_H(ZFB_H), .REQ_DEPTH(8192), .COL_DEPTH(128)) u_zc_emit ( + .FB_PXW(ZFB_PXW), .FB_H(ZFB_H), .REQ_DEPTH(1024), .COL_DEPTH(128)) u_zc_emit ( .gs_clk(design_clk), .gs_rst_n(core_rst_n), .enable(1'b1), .g_valid(zc_g_valid), .g_ready(zc_g_ready), .g_x(zc_g_x), .g_y(zc_g_y), .g_zq(zc_g_zq), .g_zmsk(zc_g_zmsk), .g_ztest(zc_g_ztest), .g_ztst(zc_g_ztst), .g_color(zc_g_color), .g_alpha(zc_g_alpha), .g_be(zc_g_be), .g_scene(zc_g_scene),