diff --git a/hardware/v2/constraints/v2_board_top.lpf b/hardware/v2/constraints/v2_board_top.lpf index 216c330..f3233d9 100644 --- a/hardware/v2/constraints/v2_board_top.lpf +++ b/hardware/v2/constraints/v2_board_top.lpf @@ -49,6 +49,9 @@ LOCATE COMP "pll_locked" SITE "L1"; IOBUF PORT "pll_locked" IO_TYPE=LVCMOS33; // ---- SDRAM interface (37 signals), unchanged from v2_unified.lpf, // real balls, banks 6/7 ---- +// sdram_clk: real clock-capable ball (GR_PCLK6_0, bank 6), found +// missing entirely during schematic review -- see fpga_neural_v2_top.v. +LOCATE COMP "sdram_clk" SITE "J4"; IOBUF PORT "sdram_clk" IO_TYPE=LVCMOS33; LOCATE COMP "sdram_cke" SITE "B5"; IOBUF PORT "sdram_cke" IO_TYPE=LVCMOS33; LOCATE COMP "sdram_cs_n" SITE "C5"; IOBUF PORT "sdram_cs_n" IO_TYPE=LVCMOS33; LOCATE COMP "sdram_ras_n" SITE "C4"; IOBUF PORT "sdram_ras_n" IO_TYPE=LVCMOS33; diff --git a/hardware/v2/nms/rtl/fpga_neural_v2_top.v b/hardware/v2/nms/rtl/fpga_neural_v2_top.v index 15a3688..6d2fd59 100644 --- a/hardware/v2/nms/rtl/fpga_neural_v2_top.v +++ b/hardware/v2/nms/rtl/fpga_neural_v2_top.v @@ -56,6 +56,12 @@ module fpga_neural_v2_top #( input wire spi_cs_n, // ---- single physical SDRAM (weights + activations + results) ---- + // sdram_clk: the real SDRAM chip's own CLK pin -- an external + // chip, it needs this driven from a real output ball, NOT just + // internal routing. Found missing entirely during this session's + // schematic review (clk_sys was purely internal, never reached a + // pad) -- added here, real free clock-capable ball (bank 6). + output wire sdram_clk, output wire sdram_cke, output wire sdram_cs_n, output wire sdram_ras_n, @@ -82,6 +88,8 @@ module fpga_neural_v2_top #( .clk_16mhz(osc_clk), .clk_sys(clk_sys), .locked(pll_locked) ); + assign sdram_clk = clk_sys; + wire clk = clk_sys; wire rst; reset_sync u_reset_sync (