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) <noreply@anthropic.com>
This commit is contained in:
@@ -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),
|
||||
|
||||
Reference in New Issue
Block a user