FireStorm — FPGA Pinout

Bank 2 — 0 free

Pin Name Function BANK DQS Configuration Function Differential Pair LVDS PG676A Ant64
IOR11A I/O 2 DQ23 True_of_IOR11B True G19 HR2_CS
IOR11B I/O 2 DQ23 Comp_of_IOR11A True F20 HR2_D0
IOR13A I/O 2 DQ23 True_of_IOR13B True H16 HR2_D1
IOR13B I/O 2 DQ23 Comp_of_IOR13A True G16 HR2_D2
IOR15A I/O 2 DQ22 True_of_IOR15B True C17 PCM_ADCLRCLK2
IOR15B I/O 2 DQ22 Comp_of_IOR15A True B17 PCM_DACDAT2
IOR17A I/O 2 DQ22 True_of_IOR17B True E16 PCM_LRCLK2
IOR17B I/O 2 DQ22 Comp_of_IOR17A True D16 PCM_BCLK2
IOR1A I/O 2 none none H17 SRAM_MODE
IOR20A I/O 2 DQS22 True_of_IOR20B True A17 DP_AUX_P
IOR20B I/O 2 DQS22 Comp_of_IOR20A True A18 DP_AUX_N
IOR22A I/O 2 DQ22 True_of_IOR22B True B19 DP_HPD
IOR22B I/O 2 DQ22 Comp_of_IOR22A True A19 PCIE_NRST
IOR24A/SGCLKT_1/RPLL0_T_FB0/RPLL1_T_FB0 I/O 2 DQ22 SGCLKT_1/RPLL0_T_FB0/RPLL1_T_FB0 True_of_IOR24B True E17 HR2_CLK
IOR24B/SGCLKC_1/RPLL0_C_FB0/RPLL1_C_FB0 I/O 2 DQ22 SGCLKC_1/RPLL0_C_FB0/RPLL1_C_FB0 Comp_of_IOR24A True E18 SRAM_OE
IOR26A/MGCLKT_1/RPLL0_T_FB1/RPLL1_T_FB1 I/O 2 DQ22 MGCLKT_1/RPLL0_T_FB1/RPLL1_T_FB1 True_of_IOR26B True D18 SRAM_BANK
IOR26B/MGCLKC_1/RPLL0_C_FB1/RPLL1_C_FB1 I/O 2 DQ22 MGCLKC_1/RPLL0_C_FB1/RPLL1_C_FB1 Comp_of_IOR26A True C18 SRAM_ADSP
IOR29A/SGCLKT_0/RPLL0_T_IN0/RPLL1_T_IN0 I/O 2 DQ21 SGCLKT_0/RPLL0_T_IN0/RPLL1_T_IN0 True_of_IOR29B True E20 SRAM_CLK
IOR29B/SGCLKC_0/RPLL0_C_IN0/RPLL1_C_IN0 I/O 2 DQ21 SGCLKC_0/RPLL0_C_IN0/RPLL1_C_IN0 Comp_of_IOR29A True D20 SRAM_CE
IOR2A I/O 2 DQ23 True_of_IOR2B True H14 HR2_D3
IOR2B I/O 2 DQ23 Comp_of_IOR2A True H15 HR2_D4
IOR31A/MGCLKT_0/RPLL0_T_IN1/RPLL1_T_IN1 I/O 2 DQ21 MGCLKT_0/RPLL0_T_IN1/RPLL1_T_IN1 True_of_IOR31B True D19 SRAM_ADSC
IOR31B/MGCLKC_0/RPLL0_C_IN1/RPLL1_C_IN1 I/O 2 DQ21 MGCLKC_0/RPLL0_C_IN1/RPLL1_C_IN1 Comp_of_IOR31A True C19 SRAM_ADV
IOR33A I/O 2 DQ21 True_of_IOR33B True C21 SRAM_BWa
IOR33B I/O 2 DQ21 Comp_of_IOR33A True B21 SRAM_BWb
IOR35A I/O 2 DQS21 True_of_IOR35B True B20 SRAM_BWc
IOR35B I/O 2 DQS21 Comp_of_IOR35A True A20 SRAM_BWd
IOR38A I/O 2 DQ21 True_of_IOR38B True B22 SRAM_BWE
IOR38B I/O 2 DQ21 Comp_of_IOR38A True A22 SRAM_A0
IOR40A I/O 2 DQ21 True_of_IOR40B True E21 SRAM_A1
IOR40B I/O 2 DQ21 Comp_of_IOR40A True D21 SRAM_A2
IOR42A I/O 2 DQ20 True_of_IOR42B True C22 SRAM_A3
IOR42B I/O 2 DQ20 Comp_of_IOR42A True C23 SRAM_A4
IOR44A I/O 2 DQS20 True_of_IOR44B True A23 SRAM_A5
IOR44B I/O 2 DQS20 Comp_of_IOR44A True A24 SRAM_A6
IOR47A I/O 2 DQ20 True_of_IOR47B True B25 SRAM_A7
IOR47B I/O 2 DQ20 Comp_of_IOR47A True A25 SRAM_A8
IOR49A I/O 2 DQ20 True_of_IOR49B True C26 SRAM_A9
IOR49B I/O 2 DQ20 Comp_of_IOR49A True B26 SRAM_A10
IOR4A I/O 2 DQ23 True_of_IOR4B True G17 HR2_D5
IOR4B I/O 2 DQ23 Comp_of_IOR4A True F17 HR2_D6
IOR51A I/O 2 DQ20 True_of_IOR51B True C24 SRAM_A11
IOR51B I/O 2 DQ20 Comp_of_IOR51A True B24 SRAM_A12
IOR53A I/O 2 DQ20 True_of_IOR53B True D23 SRAM_A13
IOR53B I/O 2 DQ20 Comp_of_IOR53A True D24 SRAM_A14
IOR55A I/O 2 none none E22 SRAM_A15
IOR6A I/O 2 DQ23 True_of_IOR6B True G15 HR2_D7
IOR6B I/O 2 DQ23 Comp_of_IOR6A True F15 PCM_ADCDAT2
IOR8A I/O 2 DQS23 True_of_IOR8B True F18 HR2_RWDS
IOR8B I/O 2 DQS23 Comp_of_IOR8A True F19 SRAM_A16

Bank 3 — 0 free

Pin Name Function BANK DQS Configuration Function Differential Pair LVDS PG676A
IOR101A I/O 3 DQ16 True_of_IOR101B True M14 I2S_BCLK
IOR101B I/O 3 DQ16 Comp_of_IOR101A True L14 I2S_LRCLK
IOR103A I/O 3 DQS16 True_of_IOR103B True K16 GPIO15
IOR103B I/O 3 DQS16 Comp_of_IOR103A True K17 SRAM_A17
IOR105A I/O 3 DQ16 True_of_IOR105B True J14 I2S_SDATA
IOR105B I/O 3 DQ16 Comp_of_IOR105A True J15 I2S_BCLK2
IOR107A/ADCINCK1 I/O 3 DQ16 ADCINCK1 True_of_IOR107B True K15 STICKY_UART_TX
IOR107B I/O 3 DQ16 Comp_of_IOR107A True J16 GPIO16
IOR109A I/O 3 none none K18 SRAM_A18
IOR56A I/O 3 DQ19 True_of_IOR56B True J25 SRAM_Da0
IOR56B I/O 3 DQ19 Comp_of_IOR56A True J26 SRAM_Da1
IOR58A I/O 3 DQS19 True_of_IOR58B True E26 SRAM_Da2
IOR58B I/O 3 DQS19 Comp_of_IOR58A True D26 SRAM_Da3
IOR60A I/O 3 DQ19 True_of_IOR60B True G25 SRAM_Da4
IOR60B I/O 3 DQ19 Comp_of_IOR60A True F25 SRAM_Da5
IOR62A I/O 3 DQ19 True_of_IOR62B True H26 SRAM_Da6
IOR62B I/O 3 DQ19 Comp_of_IOR62A True G26 SRAM_Da7
IOR65A I/O 3 DQ19 True_of_IOR65B True E25 SRAM_Da8
IOR65B I/O 3 DQ19 Comp_of_IOR65A True D25 SRAM_Db0
IOR67A I/O 3 DQ19 True_of_IOR67B True G24 SRAM_Db1
IOR67B I/O 3 DQ19 Comp_of_IOR67A True F24 SRAM_Db2
IOR69A I/O 3 DQ18 True_of_IOR69B True K22 SRAM_Db3
IOR69B I/O 3 DQ18 Comp_of_IOR69A True K23 SRAM_Db4
IOR71A I/O 3 DQ18 True_of_IOR71B True F23 SRAM_Db5
IOR71B I/O 3 DQ18 Comp_of_IOR71A True E23 SRAM_Db6
IOR73A I/O 3 none none L19 SRAM_Db7
IOR74A I/O 3 DQ18 True_of_IOR74B True J24 SRAM_Db8
IOR74B I/O 3 DQ18 Comp_of_IOR74A True H24 SRAM_Dc0
IOR76A I/O 3 DQS18 True_of_IOR76B True G22 SRAM_Dc1
IOR76B I/O 3 DQS18 Comp_of_IOR76A True F22 SRAM_Dc2
IOR78A/SGCLKT_3/RPLL2_T_FB0/RPLL3_T_FB0 I/O 3 DQ18 SGCLKT_3/RPLL2_T_FB0/RPLL3_T_FB0 True_of_IOR78B True J23 SRAM_Dc3
IOR78B/SGCLKC_3/RPLL2_C_FB0/RPLL3_C_FB0 I/O 3 DQ18 SGCLKC_3/RPLL2_C_FB0/RPLL3_C_FB0 Comp_of_IOR78A True H23 SRAM_Dc4
IOR80A/MGCLKT_3/RPLL2_T_FB1/RPLL3_T_FB1 I/O 3 DQ18 MGCLKT_3/RPLL2_T_FB1/RPLL3_T_FB1 True_of_IOR80B True H21 SRAM_Dc5
IOR80B/MGCLKC_3/RPLL2_C_FB1/RPLL3_C_FB1 I/O 3 DQ18 MGCLKC_3/RPLL2_C_FB1/RPLL3_C_FB1 Comp_of_IOR80A True H22 SRAM_Dc6
IOR83A/MGCLKT_2/RPLL2_T_IN1/RPLL3_T_IN1 I/O 3 DQ17 MGCLKT_2/RPLL2_T_IN1/RPLL3_T_IN1 True_of_IOR83B True K21 SRAM_Dc7
IOR83B/MGCLKC_2/RPLL2_C_IN1/RPLL3_C_IN1 I/O 3 DQ17 MGCLKC_2/RPLL2_C_IN1/RPLL3_C_IN1 Comp_of_IOR83A True J21 SRAM_Dc8
IOR85A/SGCLKT_2/RPLL2_T_IN0/RPLL3_T_IN0 I/O 3 DQ17 SGCLKT_2/RPLL2_T_IN0/RPLL3_T_IN0 True_of_IOR85B True G20 I2S_MCLK
IOR85B/SGCLKC_2/RPLL2_C_IN0/RPLL3_C_IN0 I/O 3 DQ17 SGCLKC_2/RPLL2_C_IN0/RPLL3_C_IN0 Comp_of_IOR85A True G21 SRAM_Dd0
IOR87A I/O 3 DQ17 True_of_IOR87B True J18 SRAM_Dd1
IOR87B I/O 3 DQ17 Comp_of_IOR87A True H18 SRAM_Dd2
IOR89A I/O 3 DQS17 True_of_IOR89B True K20 SRAM_Dd3
IOR89B I/O 3 DQS17 Comp_of_IOR89A True J20 SRAM_Dd4
IOR92A I/O 3 DQ17 True_of_IOR92B True L17 SRAM_Dd5
IOR92B I/O 3 DQ17 Comp_of_IOR92A True L18 SRAM_Dd6
IOR94A I/O 3 DQ17 True_of_IOR94B True J19 SRAM_Dd7
IOR94B I/O 3 DQ17 Comp_of_IOR94A True H19 SRAM_Dd8
IOR96A I/O 3 DQ16 True_of_IOR96B True M16 GPIO17
IOR96B I/O 3 DQ16 Comp_of_IOR96A True M17 GPIO18
IOR98A I/O 3 DQ16 True_of_IOR98B True M15 GPIO19
IOR98B I/O 3 DQ16 Comp_of_IOR98A True L15 GPIO20

Bank 4 — 0 free

Pin Name Function BANK DQS Configuration Function Differential Pair LVDS PG676A
IOB102A/MCS_N I/O 4 DQ12 MCS_N True_of_IOB102B True P18 FLASH_CS
IOB102B/D08/SO I/O 4 DQ12 D08/SO Comp_of_IOB102A True N18 PULSE_OPI_D1
IOB104A/PUDC_B I/O 4 DQS12 PUDC_B True_of_IOB104B True P15 HR1_RWDS
IOB104B/EMCCLK I/O 4 DQS12 EMCCLK Comp_of_IOB104A True P16 HR1_DQ5
IOB106A/CSI_B I/O 4 DQ13 CSI_B True_of_IOB106B True P19 HDMI0_D1P
IOB106B/D31 I/O 4 DQ13 D31 Comp_of_IOB106A True N19 HDMI0_D1N
IOB108A/D30 I/O 4 DQ13 D30 True_of_IOB108B True P23 HDMI0_D2P
IOB108B/D29 I/O 4 DQ13 D29 Comp_of_IOB108A True P24 HDMI0_D2N
IOB110A/RDWR I/O 4 DQS13 RDWR True_of_IOB110B True N23 HDMI1_D0P
IOB110B/DOUT_CSO_B I/O 4 DQS13 DOUT_CSO_B Comp_of_IOB110A True N24 HDMI1_D0N
IOB112A/D28 I/O 4 DQ13 D28 True_of_IOB112B True R20 HDMI1_D1P
IOB112B/D27 I/O 4 DQ13 D27 Comp_of_IOB112A True R21 HDMI1_D1N
IOB114A/SGCLKT_4/BPLL2_T_FB1/BPLL3_T_FB1 I/O 4 DQ13 SGCLKT_4/BPLL2_T_FB1/BPLL3_T_FB1 True_of_IOB114B True P20 VGA_CKP
IOB114B/SGCLKC_4/BPLL2_C_FB1/BPLL3_C_FB1 I/O 4 DQ13 SGCLKC_4/BPLL2_C_FB1/BPLL3_C_FB1 Comp_of_IOB114A True P21 VGA_CKN
IOB116A/MGCLKT_4/BPLL2_T_FB0/BPLL3_T_FB0 I/O 4 DQ13 MGCLKT_4/BPLL2_T_FB0/BPLL3_T_FB0 True_of_IOB116B True N21 PULSE_OPI_D5
IOB116B/MGCLKC_4/BPLL2_C_FB0/BPLL3_C_FB0 I/O 4 DQ13 MGCLKC_4/BPLL2_C_FB0/BPLL3_C_FB0 Comp_of_IOB116A True N22 HR1_DQ6
IOB120A/SGCLKT_5/BPLL2_T_IN0/BPLL3_T_IN0 I/O 4 DQ14 SGCLKT_5/BPLL2_T_IN0/BPLL3_T_IN0 True_of_IOB120B True L22 HDMI0_CKP
IOB120B/SGCLKC_5/BPLL2_C_IN0/BPLL3_C_IN0 I/O 4 DQ14 SGCLKC_5/BPLL2_C_IN0/BPLL3_C_IN0 Comp_of_IOB120A True L23 HDMI0_CKN
IOB122A/MGCLKT_5/BPLL2_T_IN1/BPLL3_T_IN1 I/O 4 DQ14 MGCLKT_5/BPLL2_T_IN1/BPLL3_T_IN1 True_of_IOB122B True M21 HDMI1_CKP
IOB122B/MGCLKC_5/BPLL2_C_IN1/BPLL3_C_IN1 I/O 4 DQ14 MGCLKC_5/BPLL2_C_IN1/BPLL3_C_IN1 Comp_of_IOB122A True M22 HDMI1_CKN
IOB124A/D09 I/O 4 DQ14 D09 True_of_IOB124B True K25 OPTICAL_OUT
*IOB124B/D10 I/O 4 DQ14 D10 Comp_of_IOB124A True K26 GPIO21
IOB126A/D11 I/O 4 DQ14 D11 True_of_IOB126B True M20 PULSE_OPI_INT
IOB126B/D12 I/O 4 DQ14 D12 Comp_of_IOB126A True L20 PULSE_OPI_D7
IOB129A/D14 I/O 4 DQ14 D14 True_of_IOB129B True M24 HDMI0_D0P
IOB129B/D15 I/O 4 DQ14 D15 Comp_of_IOB129A True M25 HDMI0_D0N
IOB131A/SSPI_CS_N I/O 4 DQS14 SSPI_CS_N True_of_IOB131B True L24 PULSE_OPI_CS
IOB131B/D13 I/O 4 DQS14 D13 Comp_of_IOB131A True L25 HR1_DQ7
IOB133A/D26 I/O 4 DQ15 D26 True_of_IOB133B True R25 HDMI1_D2P
IOB133B/D25 I/O 4 DQ15 D25 Comp_of_IOB133A True P25 HDMI1_D2N
IOB135A/CLKHOLD_N I/O 4 DQS15 CLKHOLD_N True_of_IOB135B True T24 PULSE_OPI_D3
IOB135B/D22 I/O 4 DQS15 D22 Comp_of_IOB135A True T25 PULSE_OPI_DQS
IOB138A/D24 I/O 4 DQ15 D24 True_of_IOB138B True N26 VGA_D0P
IOB138B/D23 I/O 4 DQ15 D23 Comp_of_IOB138A True M26 VGA_D0N
IOB140A/D21 I/O 4 DQ15 D21 True_of_IOB140B True R26 VGA_D1P
IOB140B/D20 I/O 4 DQ15 D20 Comp_of_IOB140A True P26 VGA_D1N
IOB142A/D19 I/O 4 DQ15 D19 True_of_IOB142B True T22 VGA_D2P
IOB142B/D18 I/O 4 DQ15 D18 Comp_of_IOB142A True R22 VGA_D2N
IOB144A/D17 I/O 4 DQ15 D17 True_of_IOB144B True T23 PULSE_OPI_D4
IOB144B/D16 I/O 4 DQ15 D16 Comp_of_IOB144A True R23 HR1_CS
IOB146A I/O 4 none none R18 PULSE_OPI_D6
*IOB92A I/O 4 none none M19 GPIO22
IOB93A/D00/MOSI I/O 4 DQ12 D00/MOSI True_of_IOB93B True R14 FLASH+HR1_IO0
IOB93B/D01/DIN I/O 4 DQ12 D01/DIN Comp_of_IOB93A True R15 FLASH+HR1_IO1
IOB95A/D02 I/O 4 DQ12 D02 True_of_IOB95B True P14 FLASH+HR1_IO2
IOB95B/D03 I/O 4 DQ12 D03 Comp_of_IOB95A True N14 FLASH+HR1_IO3
IOB97A/D04 I/O 4 DQ12 D04 True_of_IOB97B True N16 HR1_DQ4
IOB97B/D05/SI I/O 4 DQ12 D05/SI Comp_of_IOB97A True N17 PULSE_OPI_D0
IOB99A/D06/SSPI_CLK I/O 4 DQ12 D06/SSPI_CLK True_of_IOB99B True R16 PULSE_OPI_CK
IOB99B/D07/SSPI_WPN I/O 4 DQ12 D07/SSPI_WPN Comp_of_IOB99A True R17 PULSE_OPI_D2

Bank 5 — 0 free

Pin Name Function BANK DQS Configuration Function Differential Pair LVDS PG676A
IOB37A I/O 5 none none U17 GPIO8
IOB38A I/O 5 DQ8 True_of_IOB38B True V16 DDR_ADDR0
IOB38B I/O 5 DQ8 Comp_of_IOB38A True V17 DDR_ADDR1
IOB40A I/O 5 DQ8 True_of_IOB40B True T14 DDR_ADDR2
IOB40B I/O 5 DQ8 Comp_of_IOB40A True T15 DDR_ADDR3
IOB42A I/O 5 DQS8 True_of_IOB42B True T17 GPIO9
IOB42B I/O 5 DQS8 Comp_of_IOB42A True T18 GPIO10
IOB44A I/O 5 DQ8 True_of_IOB44B True U15 DDR_ADDR4
IOB44B I/O 5 DQ8 Comp_of_IOB44A True U16 DDR_ADDR5
IOB47A I/O 5 DQ8 True_of_IOB47B True U14 DDR_ADDR6
IOB47B I/O 5 DQ8 Comp_of_IOB47A True V14 DDR_ADDR7
IOB49A I/O 5 DQ8 True_of_IOB49B True V18 DDR_ADDR8
IOB49B I/O 5 DQ8 Comp_of_IOB49A True W18 DDR_ADDR9
IOB51A I/O 5 DQ9 True_of_IOB51B True AA24 DDR_ADDR10
IOB51B I/O 5 DQ9 Comp_of_IOB51A True AB25 DDR_ADDR11
IOB53A I/O 5 DQ9 True_of_IOB53B True AA22 DDR_ADDR12
IOB53B I/O 5 DQ9 Comp_of_IOB53A True AA23 DDR_ADDR13
IOB56A I/O 5 DQS9 True_of_IOB56B True AB24 GPIO11
IOB56B I/O 5 DQS9 Comp_of_IOB56A True AC24 GPIO12
IOB58A I/O 5 DQ9 True_of_IOB58B True V23 DDR_ADDR14
IOB58B I/O 5 DQ9 Comp_of_IOB58A True W23 DDR_ADDR15
IOB60A/SGCLKT_6/BPLL0_T_IN0/BPLL1_T_IN0 I/O 5 DQ9 SGCLKT_6/BPLL0_T_IN0/BPLL1_T_IN0 True_of_IOB60B True Y22 DDR_CLK
IOB60B/SGCLKC_6/BPLL0_C_IN0/BPLL1_C_IN0 I/O 5 DQ9 SGCLKC_6/BPLL0_C_IN0/BPLL1_C_IN0 Comp_of_IOB60A True Y23 DDR_CLK_N
IOB62A/MGCLKT_6/BPLL0_T_IN1/BPLL1_T_IN1 I/O 5 DQ9 MGCLKT_6/BPLL0_T_IN1/BPLL1_T_IN1 True_of_IOB62B True U22 DDR_BA0
IOB62B/MGCLKC_6/BPLL0_C_IN1/BPLL1_C_IN1 I/O 5 DQ9 MGCLKC_6/BPLL0_C_IN1/BPLL1_C_IN1 Comp_of_IOB62A True V22 DDR_BA1
IOB66A/MGCLKT_7/BPLL0_T_FB0/BPLL1_T_FB0 I/O 5 DQ10 MGCLKT_7/BPLL0_T_FB0/BPLL1_T_FB0 True_of_IOB66B True U21 DDR_BA2
IOB66B/MGCLKC_7/BPLL0_C_FB0/BPLL1_C_FB0 I/O 5 DQ10 MGCLKC_7/BPLL0_C_FB0/BPLL1_C_FB0 Comp_of_IOB66A True V21 DDR_RAS_N
IOB68A/SGCLKT_7/BPLL0_T_FB1/BPLL1_T_FB1 I/O 5 DQ10 SGCLKT_7/BPLL0_T_FB1/BPLL1_T_FB1 True_of_IOB68B True W21 DDR_CAS_N
IOB68B/SGCLKC_7/BPLL0_C_FB1/BPLL1_C_FB1 I/O 5 DQ10 SGCLKC_7/BPLL0_C_FB1/BPLL1_C_FB1 Comp_of_IOB68A True Y21 DDR_WE_N
IOB70A I/O 5 DQS10 True_of_IOB70B True T20 GPIO13
IOB70B I/O 5 DQS10 Comp_of_IOB70A True U20 GPIO14
IOB72A I/O 5 DQ10 True_of_IOB72B True W20 DDR_CS0_N
IOB72B I/O 5 DQ10 Comp_of_IOB72A True Y20 DDR_CS1_N
IOB74A I/O 5 DQ10 True_of_IOB74B True V19 DDR_ODT0
IOB74B I/O 5 DQ10 Comp_of_IOB74A True W19 DDR_ODT1
IOB76A I/O 5 DQ10 True_of_IOB76B True T19 DDR_CKE0
IOB76B I/O 5 DQ10 Comp_of_IOB76A True U19 DDR_CKE1
IOB78A I/O 5 DQ11 True_of_IOB78B True U25 DDR_RESET_N
IOB78B I/O 5 DQ11 Comp_of_IOB78A True U26 DDR_DQ64
IOB80A I/O 5 DQ11 True_of_IOB80B True V26 DDR_DQ65
IOB80B I/O 5 DQ11 Comp_of_IOB80A True W26 DDR_DQ66
IOB83A I/O 5 DQ11 True_of_IOB83B True W25 DDR_DQ67
IOB83B I/O 5 DQ11 Comp_of_IOB83A True Y26 DDR_DQ68
IOB85A I/O 5 DQ11 True_of_IOB85B True V24 DDR_DQ69
IOB85B I/O 5 DQ11 Comp_of_IOB85A True W24 DDR_DQ70
IOB87A I/O 5 DQ11 True_of_IOB87B True Y25 DDR_DQ71
IOB87B I/O 5 DQ11 Comp_of_IOB87A True AA25 DDR_DQM8
IOB89A I/O 5 DQS11 True_of_IOB89B True AB26 DDR_DQS8
IOB89B I/O 5 DQS11 Comp_of_IOB89A True AC26 DDR_DQS_N8
IOB91A I/O 5 none none U24 GPIO6

Bank 6 — 0 free

Pin Name Function BANK DQS Configuration Function Differential Pair LVDS PG676A
IOL101A I/O 6 DQ7 True_of_IOL101B True R8 DDR_DQ48
IOL101B I/O 6 DQ7 Comp_of_IOL101A True P8 DDR_DQ49
IOL103A I/O 6 DQ7 True_of_IOL103B True R7 DDR_DQ50
IOL103B I/O 6 DQ7 Comp_of_IOL103A True R6 DDR_DQ51
IOL105A I/O 6 DQ7 True_of_IOL105B True T8 DDR_DQ52
IOL105B I/O 6 DQ7 Comp_of_IOL105A True T7 DDR_DQ53
IOL107A I/O 6 DQ7 True_of_IOL107B True P6 DDR_DQ54
IOL107B I/O 6 DQ7 Comp_of_IOL107A True P5 DDR_DQ55
IOL109A I/O 6 none none U4 GPIO0
IOL56A I/O 6 DQ4 True_of_IOL56B True K3 DDR_DQ40
IOL56B I/O 6 DQ4 Comp_of_IOL56A True J3 DDR_DQ41
IOL58A I/O 6 DQ4 True_of_IOL58B True M7 DDR_DQ42
IOL58B I/O 6 DQ4 Comp_of_IOL58A True L7 DDR_DQ43
IOL60A I/O 6 DQ4 True_of_IOL60B True M6 DDR_DQ44
IOL60B I/O 6 DQ4 Comp_of_IOL60A True M5 DDR_DQ45
IOL62A I/O 6 DQ4 True_of_IOL62B True L5 DDR_DQ46
IOL62B I/O 6 DQ4 Comp_of_IOL62A True K5 DDR_DQ47
IOL65A I/O 6 DQS4 True_of_IOL65B True M4 DDR_DQS5
IOL65B I/O 6 DQS4 Comp_of_IOL65A True L4 DDR_DQS_N5
IOL67A I/O 6 DQ4 True_of_IOL67B True N7 DDR_DQM5
IOL67B I/O 6 DQ4 Comp_of_IOL67A True N6 GPIO1
IOL69A I/O 6 DQS5 True_of_IOL69B True N1 DDR_DQS4
IOL69B I/O 6 DQS5 Comp_of_IOL69A True M1 DDR_DQS_N4
IOL71A I/O 6 DQ5 True_of_IOL71B True K1 DDR_DQ32
IOL71B I/O 6 DQ5 Comp_of_IOL71A True J1 DDR_DQ33
IOL73A I/O 6 none none N8 GPIO2
IOL74A I/O 6 DQ5 True_of_IOL74B True L3 DDR_DQ34
IOL74B I/O 6 DQ5 Comp_of_IOL74A True K2 DDR_DQ35
IOL76A I/O 6 DQ5 True_of_IOL76B True H2 DDR_DQ36
IOL76B I/O 6 DQ5 Comp_of_IOL76A True H1 DDR_DQ37
IOL78A/SGCLKT_8/LPLL2_T_IN0/LPLL3_T_IN0 I/O 6 DQ5 SGCLKT_8/LPLL2_T_IN0/LPLL3_T_IN0 True_of_IOL78B True M2 DDR_DQ38
IOL78B/SGCLKC_8/LPLL2_C_IN0/LPLL3_C_IN0 I/O 6 DQ5 SGCLKC_8/LPLL2_C_IN0/LPLL3_C_IN0 Comp_of_IOL78A True L2 DDR_DQ39
IOL80A/MGCLKT_8/LPLL2_T_IN1/LPLL3_T_IN1 I/O 6 DQ5 MGCLKT_8/LPLL2_T_IN1/LPLL3_T_IN1 True_of_IOL80B True N3 DDR_DQM4
IOL80B/MGCLKC_8/LPLL2_C_IN1/LPLL3_C_IN1 I/O 6 DQ5 MGCLKC_8/LPLL2_C_IN1/LPLL3_C_IN1 Comp_of_IOL80A True N2 GPIO3
IOL83A/MGCLKT_9/LPLL2_T_FB1/LPLL3_T_FB1 I/O 6 DQ6 MGCLKT_9/LPLL2_T_FB1/LPLL3_T_FB1 True_of_IOL83B True R3 DDR_DQ56
IOL83B/MGCLKC_9/LPLL2_C_FB1/LPLL3_C_FB1 I/O 6 DQ6 MGCLKC_9/LPLL2_C_FB1/LPLL3_C_FB1 Comp_of_IOL83A True P3 DDR_DQ57
IOL85A/SGCLKT_9/LPLL2_T_FB0/LPLL3_T_FB0 I/O 6 DQ6 SGCLKT_9/LPLL2_T_FB0/LPLL3_T_FB0 True_of_IOL85B True P4 DDR_DQ58
IOL85B/SGCLKC_9/LPLL2_C_FB0/LPLL3_C_FB0 I/O 6 DQ6 SGCLKC_9/LPLL2_C_FB0/LPLL3_C_FB0 Comp_of_IOL85A True N4 DDR_DQ59
IOL87A I/O 6 DQ6 True_of_IOL87B True T4 DDR_DQ60
IOL87B I/O 6 DQ6 Comp_of_IOL87A True T3 DDR_DQ61
IOL89A I/O 6 DQ6 True_of_IOL89B True T2 DDR_DQ62
IOL89B I/O 6 DQ6 Comp_of_IOL89A True R2 DDR_DQ63
IOL92A I/O 6 DQ6 True_of_IOL92B True U2 DDR_DQM7
IOL92B I/O 6 DQ6 Comp_of_IOL92A True U1 GPIO4
IOL94A I/O 6 DQS6 True_of_IOL94B True R1 DDR_DQS7
IOL94B I/O 6 DQS6 Comp_of_IOL94A True P1 DDR_DQS_N7
IOL96A I/O 6 DQS7 True_of_IOL96B True U6 DDR_DQS6
IOL96B I/O 6 DQS7 Comp_of_IOL96A True U5 DDR_DQS_N6
IOL98A I/O 6 DQ7 True_of_IOL98B True T5 DDR_DQM6
IOL98B I/O 6 DQ7 Comp_of_IOL98A True R5 GPIO5

Bank 7 — 0 free

Pin Name Function BANK DQS Configuration Function Differential Pair LVDS PG676A
IOL8A I/O 7 DQ0 True_of_IOL8B True F8 DDR_DQ8
IOL8B I/O 7 DQ0 Comp_of_IOL8A True F7 DDR_DQ9
IOL11A I/O 7 DQ0 True_of_IOL11B True H9 DDR_DQ10
IOL11B I/O 7 DQ0 Comp_of_IOL11A True G9 DDR_DQ11
IOL13A I/O 7 DQ0 True_of_IOL13B True H6 DDR_DQ12
IOL13B I/O 7 DQ0 Comp_of_IOL13A True G6 DDR_DQ13
IOL15A I/O 7 DQ1 True_of_IOL15B True B4 DDR_DQ0
IOL15B I/O 7 DQ1 Comp_of_IOL15A True A4 DDR_DQ1
IOL17A I/O 7 DQ1 True_of_IOL17B True D3 DDR_DQ2
IOL17B I/O 7 DQ1 Comp_of_IOL17A True C3 DDR_DQ3
IOL1A I/O 7 none none J8 GPIO7
IOL20A I/O 7 DQ1 True_of_IOL20B True F3 DDR_DQ4
IOL20B I/O 7 DQ1 Comp_of_IOL20A True E3 DDR_DQ5
IOL22A I/O 7 DQS1 True_of_IOL22B True B5 DDR_DQS0
IOL22B I/O 7 DQS1 Comp_of_IOL22A True A5 DDR_DQS_N0
IOL24A/MGCLKT_11/LPLL0_T_IN1/LPLL1_T_IN1 I/O 7 DQ1 MGCLKT_11/LPLL0_T_IN1/LPLL1_T_IN1 True_of_IOL24B True E5 DDR_DQ6
IOL24B/MGCLKC_11/LPLL0_C_IN1/LPLL1_C_IN1 I/O 7 DQ1 MGCLKC_11/LPLL0_C_IN1/LPLL1_C_IN1 Comp_of_IOL24A True D5 DDR_DQ7
IOL26A/SGCLKT_11/LPLL0_T_IN0/LPLL1_T_IN0 I/O 7 DQ1 SGCLKT_11/LPLL0_T_IN0/LPLL1_T_IN0 True_of_IOL26B True D4 DDR_DQM0
IOL26B/SGCLKC_11/LPLL0_C_IN0/LPLL1_C_IN0 I/O 7 DQ1 SGCLKC_11/LPLL0_C_IN0/LPLL1_C_IN0 Comp_of_IOL26A True C4 GPIO26
IOL29A/MGCLKT_10/LPLL0_T_FB1/LPLL1_T_FB1 I/O 7 DQ2 MGCLKT_10/LPLL0_T_FB1/LPLL1_T_FB1 True_of_IOL29B True G5 DDR_DQ24
IOL29B/MGCLKC_10/LPLL0_C_FB1/LPLL1_C_FB1 I/O 7 DQ2 MGCLKC_10/LPLL0_C_FB1/LPLL1_C_FB1 Comp_of_IOL29A True F5 DDR_DQ25
IOL2A/ADCINCK0 I/O 7 DQ0 ADCINCK0 True_of_IOL2B True E6 DDR_DQ14
IOL2B I/O 7 DQ0 Comp_of_IOL2A True D6 DDR_DQ15
IOL31A/SGCLKT_10/LPLL0_T_FB0/LPLL1_T_FB0 I/O 7 DQ2 SGCLKT_10/LPLL0_T_FB0/LPLL1_T_FB0 True_of_IOL31B True G4 DDR_DQ26
IOL31B/SGCLKC_10/LPLL0_C_FB0/LPLL1_C_FB0 I/O 7 DQ2 SGCLKC_10/LPLL0_C_FB0/LPLL1_C_FB0 Comp_of_IOL31A True F4 DDR_DQ27
IOL33A I/O 7 DQ2 True_of_IOL33B True J6 DDR_DQ28
IOL33B I/O 7 DQ2 Comp_of_IOL33A True J5 DDR_DQ29
IOL35A I/O 7 DQS2 True_of_IOL35B True J4 DDR_DQS3
IOL35B I/O 7 DQS2 Comp_of_IOL35A True H4 DDR_DQS_N3
IOL38A I/O 7 DQ2 True_of_IOL38B True L8 DDR_DQ30
IOL38B I/O 7 DQ2 Comp_of_IOL38A True K8 DDR_DQ31
IOL40A I/O 7 DQ2 True_of_IOL40B True K7 DDR_DQM3
IOL40B I/O 7 DQ2 Comp_of_IOL40A True K6 GPIO27
IOL42A I/O 7 DQ3 True_of_IOL42B True A3 DDR_DQ16
IOL42B I/O 7 DQ3 Comp_of_IOL42A True A2 DDR_DQ17
IOL44A I/O 7 DQ3 True_of_IOL44B True C2 DDR_DQ18
IOL44B I/O 7 DQ3 Comp_of_IOL44A True B2 DDR_DQ19
IOL47A I/O 7 DQ3 True_of_IOL47B True F2 DDR_DQ20
IOL47B I/O 7 DQ3 Comp_of_IOL47A True E2 DDR_DQ21
IOL49A I/O 7 DQS3 True_of_IOL49B True C1 DDR_DQS2
IOL49B I/O 7 DQS3 Comp_of_IOL49A True B1 DDR_DQS_N2
IOL4A I/O 7 DQS0 True_of_IOL4B True H7 DDR_DQS1
IOL4B I/O 7 DQS0 Comp_of_IOL4A True G7 DDR_DQS_N1
IOL51A I/O 7 DQ3 True_of_IOL51B True E1 DDR_DQ22
IOL51B I/O 7 DQ3 Comp_of_IOL51A True D1 DDR_DQ23
IOL53A I/O 7 DQ3 True_of_IOL53B True G2 DDR_DQM2
IOL53B I/O 7 DQ3 Comp_of_IOL53A True G1 GPIO23
IOL55A I/O 7 none none H3 GPIO24
IOL6A I/O 7 DQ0 True_of_IOL6B True H8 DDR_DQM1
IOL6B I/O 7 DQ0 Comp_of_IOL6A True G8 GPIO25

Bank 10 — 0 free

Pin Name Function BANK DQS Configuration Function Differential Pair LVDS PG676A
IOB169A/TDO I/O 10 none TDO True_of_IOB169B True J10 To DeMon GP20 JTAG_TDO/SPI1_SIO0 (MISO)
IOB169B/TMS I/O 10 none TMS Comp_of_IOB169A True H11 To DeMon GP17 JTAG_TMS/SPI1_CS1
IOB171A/READY I/O 10 none READY True_of_IOB171B True V11 To DeMon I/O expander PB1
IOB171B/DONE I/O 10 none DONE Comp_of_IOB171A True W10 To DeMon I/O expander PB2
IOB173A/TCK I/O 10 none TCK True_of_IOB173B True H12 To DeMon GP21 JTAG_TCK/SPI1_SLCK
IOB173B/TDI I/O 10 none TDI Comp_of_IOB173A True H10 To DeMon GP19 JTAG_TDI/SPI1_SIO1 (MOSI)
IOB175A/MODE0 I/O 10 none MODE0 True_of_IOB175B True AB7 MODE0 — driven by DeMon expander PA0; board resistor default = 1 (MSPI boot); DeMon overrides for SSPI reflash
IOB175B/CCLK I/O 10 none CCLK Comp_of_IOB175A True H13 FLASH+HR1_CLK
IOB177A/MODE1 I/O 10 none MODE1 True_of_IOB177B True Y9 MODE1 — DeMon expander PA5; resistor default = 0
IOB177B/MODE2 I/O 10 none MODE2 Comp_of_IOB177A True W9 MODE2 strap: 10 kΩ pull-down; post-configuration VSYNC_OUT
IOB179A/CFGBVS I/O 10 none CFGBVS True_of_IOB179B True AB15 Set to high via resistor, then output via diode?
IOB179B/RECONFIG_N I/O 10 none RECONFIG_N Comp_of_IOB179A True AE16 To DeMon I/O expander PA1

I've put the JTAG pins on DeMon pins that can either bitbang/PIO JTAG or DeMon can act as a 4 pin SPI master (depending on the FPGA image) after programming

MIPI ESP32-P4

The MIPI D-PHY receiver for Pulse's feed into FireStorm — one of the FPGA's two RX hardcells. Pulse (the ESP32-P4 supervisor) streams its per-frame display-layer descriptions and audio chunk over this link, frame-locked to the system vsync; the hardcell is 4-lane capable but Pulse drives only the lanes it needs.

Pin Name Function BANK DQS Configuration Function Differential Pair LVDS PG676A
M0_CKN DIO MIPI none none AA3
M0_CKP DIO MIPI none none Y3
M0_D0N DIO MIPI none none W1
M0_D0P DIO MIPI none none V1
M0_D1N DIO MIPI none none AA2
M0_D1P DIO MIPI none none Y2
M0_D2N DIO MIPI none none W3
M0_D2P DIO MIPI none none V3
M0_D3N DIO MIPI none none W4
M0_D3P DIO MIPI none none V4

MIPI Cartridge port

The second MIPI D-PHY receiver, brought out to the cartridge port. It lets an active cartridge — a camera, a video/capture device, or a co-processor rendering its own layer — feed a stream into FireStorm exactly as Pulse does, composited as another display layer. All four lanes are exposed on the cartridge edge.

Pin Name Function BANK DQS Configuration Function Differential Pair LVDS PG676A Ant64
M1_CKN DIO MIPI none none AF2
M1_CKP DIO MIPI none none AE2
M1_D0N DIO MIPI none none AC1
M1_D0P DIO MIPI none none AB1
M1_D1N DIO MIPI none none AE1
M1_D1P DIO MIPI none none AD1
M1_D2N DIO MIPI none none AF3
M1_D2P DIO MIPI none none AE3
M1_D3N DIO MIPI none none AF5
M1_D3P DIO MIPI none none AE5

PCIe

The bulk data path to DeMon (the Raspberry Pi CM5): a PCIe link (x1 to the CM5) on the Q0 SerDes quad. It carries high-throughput transfers between DeMon and FireStorm, complementing the low-latency QSPI control channel. All four lanes and both reference-clock pairs are provisioned, though a single lane serves the CM5.

Pin Name Function BANK DQS Configuration Function Differential Pair LVDS PG676A
Q0_LN0_RXM_I DIO Q0 none none AD12 DeMon 1x PCIE
Q0_LN0_RXP_I DIO Q0 none none AC12
Q0_LN0_TXM_O DIO Q0 none none AD10
Q0_LN0_TXP_O DIO Q0 none none AC10
Q0_LN1_RXM_I DIO Q0 none none AF13
Q0_LN1_RXP_I DIO Q0 none none AE13
Q0_LN1_TXM_O DIO Q0 none none AF9
Q0_LN1_TXP_O DIO Q0 none none AE9
Q0_LN2_RXM_I DIO Q0 none none AD14
Q0_LN2_RXP_I DIO Q0 none none AC14
Q0_LN2_TXM_O DIO Q0 none none AD8
Q0_LN2_TXP_O DIO Q0 none none AC8
Q0_LN3_RXM_I DIO Q0 none none AF11
Q0_LN3_RXP_I DIO Q0 none none AE11
Q0_LN3_TXM_O DIO Q0 none none AF7
Q0_LN3_TXP_O DIO Q0 none none AE7
Q0_REFCLKM_0 DIO Q0 none none AB13
Q0_REFCLKM_1 DIO Q0 none none AB11
Q0_REFCLKP_0 DIO Q0 none none AA13
Q0_REFCLKP_1 DIO Q0 none none AA11

Display port -> HDMI

The main display output — a DisplayPort link on the Q1 SerDes quad, converted to HDMI for the primary monitor. This is FireStorm's finished video to the outside world; its hot-plug-detect and AUX sideband lines are in the Display port / PCIe support table below.

Pin Name Function BANK DQS Configuration Function Differential Pair LVDS PG676A Ant64
Q1_LN0_RXM_I DIO Q1 none none A11 Display port
Q1_LN0_RXP_I DIO Q1 none none B11
Q1_LN0_TXM_O DIO Q1 none none A7
Q1_LN0_TXP_O DIO Q1 none none B7
Q1_LN1_RXM_I DIO Q1 none none C14
Q1_LN1_RXP_I DIO Q1 none none D14
Q1_LN1_TXM_O DIO Q1 none none C8
Q1_LN1_TXP_O DIO Q1 none none D8
Q1_LN2_RXM_I DIO Q1 none none A13
Q1_LN2_RXP_I DIO Q1 none none B13
Q1_LN2_TXM_O DIO Q1 none none A9
Q1_LN2_TXP_O DIO Q1 none none B9
Q1_LN3_RXM_I DIO Q1 none none C12
Q1_LN3_RXP_I DIO Q1 none none D12
Q1_LN3_TXM_O DIO Q1 none none C10
Q1_LN3_TXP_O DIO Q1 none none D10
Q1_REFCLKM_0 DIO Q1 none none E11
Q1_REFCLKM_1 DIO Q1 none none E13
Q1_REFCLKP_0 DIO Q1 none none F11
Q1_REFCLKP_1 DIO Q1 none none F13

Analog

The GW5AST's on-die ADC differential input pairs (ADCTP/N, ADCVP/N) — low-rate analogue measurement (supply/temperature monitoring or general sensor input) without an external ADC chip.

Pin Name Function BANK DQS Configuration Function Differential Pair LVDS PG676A
ADCTN DIO ADC none none R11
ADCTP DIO ADC none none R12
ADCVN DIO ADC none none P11
ADCVP DIO ADC none none N12

Lists of i/o for above

hdmi to vga

Signal-level pin lists for the interfaces above and the remaining board connectors — each table gives the connector-side signal names and how they map to the FPGA, with notes.

The retro analogue video output. FireStorm drives an HDMI/LVDS-style TMDS signal set (RGB + sync) that an external converter turns into VGA/SCART, giving the machine its retro RGB output alongside the main DisplayPort→HDMI feed.

# Signal Maps to / note
1 HDMI D0N BLUE, H/V SYNC HDMI (LDVS) -> VGA
2 HDMI D0P BLUE, H/V SYNC
3 HDMI D1N GREEN, CTL0/1
4 HDMI D1P GREEN, CTL0/1
5 HDMI D2N RED, CTL2/3
6 HDMI D2P RED, CTL2/3
7 HDMI CKN CTRL/STATUS
8 HDMI CKP CTRL/STATUS

FPGA flash boot + HyperRAM 1 (shared MSPI master bus)

The FPGA's MSPI master bus, shared between the boot flash and HyperRAM 1. FireStorm loads its bitstream from the SPI flash here; HyperRAM 1 rides the same IO0–3/CCLK lines and only widens to x8 when its own HR1_CS is selected, so the two never collide. HR1 is fast working memory; its RESET# comes from DeMon expander PA2. (The fully separate HyperRAM 2 is a private bus — see below.)

# Signal Maps to / note
1 Flash SPI CS Flash MCS_N#
2 Flash SPI WP (M2) D2
3 Flash SPI HOLD (M3) D3
4 Flash SPI MISO (MISO) D1
5 Flash SPI MOSI (MOSI) D0
6 Flash SPI CLK (CCLK) MCLK / CCLK
7 Hyperram RWDS
8 D4
9 D5
10 D6
11 D7
12 HYPERRAM CS

I2S to WM8960/2

The I2S link to the onboard Cirrus WM8960/WM8962 codec — the standard audio DAC path that carries Tempest's stereo output off the FPGA (MCLK/BCLK/LRCLK/SDATA).

# Signal Maps to / note
1 MCLK Dedicated I2S DAC out
2 BCLK Cirrus WM8960
3 LRCLK
4 SDATA
5 BCLK2

Audio expansion I2S (TI PCM3168A?)

The I2S link to the optional Studio I/O audio expansion (TI PCM3168A multichannel ADC/DAC) — the extra record/playback channels of the premium audio path, fitted as standard on the Ant64C and optional on the other models.

# Signal Maps to / note
1 I2S ADCDAT2 Add-on Audio out, in
2 I2S ADCCLRCLK2 TI PCM3168A
3 I2S DACDAT2
4 I2S LRCLK2
5 I2S BCLK2

DDR3 (on prototype SDRAM?) connector

The DDR3-800 main-memory interface — the machine's primary DRAM (1.125–4.5 GB by model), a 72-bit bus of nine byte lanes — the ninth is real data in a full 72-bit word, or a debug/break tag lane in some FPGA configurations (as with the SRAM's 9th bit). The table lists the full connector: control/command (CS#, RAS/CAS/WE, ODT, CKE, RESET#), address, and data. It is single-rank for now — CS1/ODT1 are kept low and CK1 is unused — but the rank-1 control pins (CS1, ODT1, CKE1) stay under FPGA control rather than tied off, so dual-rank support could be added later purely in the controller configuration (and by populating the second rank), with no board change (the module's second clock pair CK1/CK1#, mapped in the table, carries the same clock as CK0/CK0# — usually driven from the same source, often just tied to CK0 — so dual-rank needs CK1 wired, not a second independent clock).

# Signal Note DIMM pin SODIMM pin
1 DDR_CS0_N Chip select, rank 0 (active low) 193 127
2 DDR_CS1_N Chip select, rank 1 — unused now (single rank), FPGA-driven low — retained for possible future dual-rank 76 129
CK1 / CK1_N Second clock pair — same clock as CK0/CK0#, usually tied to it; wire for dual-rank, not a separate clock 63 / 64 112 / 114
3 DDR_RESET_N Reset (active low) — asynchronous DRAM reset 168 30
4 DDR_CAS_N Column-address strobe (active low) — command pin 74 125
5 DDR_RAS_N Row-address strobe (active low) — command pin 192 122
6 DDR_WE_N Write enable (active low) — command pin 73 121
7 DDR_ODT0 On-die termination enable, rank 0 195 126
8 DDR_ODT1 On-die termination, rank 1 — unused now, FPGA-driven low — retained for possible future dual-rank 77 128
9 DDR_CKE0 Clock enable, rank 0 50 87
10 DDR_CKE1 Clock enable, rank 1 — unused now, FPGA-driven low — retained for possible future dual-rank 169 89
11 DDR_CLK Differential clock, true (CK) 184 111
12 DDR_CLK_N Differential clock, complement (CK#) 185 113
13 DDR_DQ0 Data bus bit 0 — 72-bit bus, nine 8-bit lanes (lane = DQ÷8); lanes 0–7 data, lane 8 (DQ64–71) is data in a full 72-bit word or a debug/break tag lane 3 5
14 DDR_DQ1 Data bit 1 (byte lane 0) 4 7
15 DDR_DQ2 Data bit 2 (byte lane 0) 9 13
16 DDR_DQ3 Data bit 3 (byte lane 0) 10 15
17 DDR_DQ4 Data bit 4 (byte lane 0) 122 4
18 DDR_DQ5 Data bit 5 (byte lane 0) 123 6
19 DDR_DQ6 Data bit 6 (byte lane 0) 128 16
20 DDR_DQ7 Data bit 7 (byte lane 0) 129 18
21 DDR_DQ8 Data bit 8 (byte lane 1) 12 19
22 DDR_DQ9 Data bit 9 (byte lane 1) 13 21
23 DDR_DQ10 Data bit 10 (byte lane 1) 18 31
24 DDR_DQ11 Data bit 11 (byte lane 1) 19 33
25 DDR_DQ12 Data bit 12 (byte lane 1) 131 22
26 DDR_DQ13 Data bit 13 (byte lane 1) 132 24
27 DDR_DQ14 Data bit 14 (byte lane 1) 137 34
28 DDR_DQ15 Data bit 15 (byte lane 1) 138 36
29 DDR_DQ16 Data bit 16 (byte lane 2) 21 37
30 DDR_DQ17 Data bit 17 (byte lane 2) 22 39
31 DDR_DQ18 Data bit 18 (byte lane 2) 27 49
32 DDR_DQ19 Data bit 19 (byte lane 2) 28 51
33 DDR_DQ20 Data bit 20 (byte lane 2) 140 40
34 DDR_DQ21 Data bit 21 (byte lane 2) 141 42
35 DDR_DQ22 Data bit 22 (byte lane 2) 146 48
36 DDR_DQ23 Data bit 23 (byte lane 2) 147 50
37 DDR_DQ24 Data bit 24 (byte lane 3) 30 55
38 DDR_DQ25 Data bit 25 (byte lane 3) 31 57
39 DDR_DQ26 Data bit 26 (byte lane 3) 36 63
40 DDR_DQ27 Data bit 27 (byte lane 3) 37 65
41 DDR_DQ28 Data bit 28 (byte lane 3) 149 54
42 DDR_DQ29 Data bit 29 (byte lane 3) 150 56
43 DDR_DQ30 Data bit 30 (byte lane 3) 155 66
44 DDR_DQ31 Data bit 31 (byte lane 3) 156 68
45 DDR_DQ32 Data bit 32 (byte lane 4) 81 133
46 DDR_DQ33 Data bit 33 (byte lane 4) 82 135
47 DDR_DQ34 Data bit 34 (byte lane 4) 87 145
48 DDR_DQ35 Data bit 35 (byte lane 4) 88 147
49 DDR_DQ36 Data bit 36 (byte lane 4) 200 134
50 DDR_DQ37 Data bit 37 (byte lane 4) 201 136
51 DDR_DQ38 Data bit 38 (byte lane 4) 206 142
52 DDR_DQ39 Data bit 39 (byte lane 4) 207 144
53 DDR_DQ40 Data bit 40 (byte lane 5) 90 151
54 DDR_DQ41 Data bit 41 (byte lane 5) 91 153
55 DDR_DQ42 Data bit 42 (byte lane 5) 96 159
56 DDR_DQ43 Data bit 43 (byte lane 5) 97 161
57 DDR_DQ44 Data bit 44 (byte lane 5) 209 148
58 DDR_DQ45 Data bit 45 (byte lane 5) 210 150
59 DDR_DQ46 Data bit 46 (byte lane 5) 215 160
60 DDR_DQ47 Data bit 47 (byte lane 5) 216 162
61 DDR_DQ48 Data bit 48 (byte lane 6) 99 165
62 DDR_DQ49 Data bit 49 (byte lane 6) 100 167
63 DDR_DQ50 Data bit 50 (byte lane 6) 105 177
64 DDR_DQ51 Data bit 51 (byte lane 6) 106 179
65 DDR_DQ52 Data bit 52 (byte lane 6) 218 166
66 DDR_DQ53 Data bit 53 (byte lane 6) 219 168
67 DDR_DQ54 Data bit 54 (byte lane 6) 224 174
68 DDR_DQ55 Data bit 55 (byte lane 6) 225 176
69 DDR_DQ56 Data bit 56 (byte lane 7) 108 183
70 DDR_DQ57 Data bit 57 (byte lane 7) 109 185
71 DDR_DQ58 Data bit 58 (byte lane 7) 114 191
72 DDR_DQ59 Data bit 59 (byte lane 7) 115 193
73 DDR_DQ60 Data bit 60 (byte lane 7) 227 180
74 DDR_DQ61 Data bit 61 (byte lane 7) 228 182
75 DDR_DQ62 Data bit 62 (byte lane 7) 233 192
76 DDR_DQ63 Data bit 63 (byte lane 7) 234 194
77 DDR_DQ64 Data bit 64 — ninth byte lane: data in a full 72-bit word, or a debug/break tag bit in some FPGA configurations 39 69
78 DDR_DQ65 Data bit 65 — ninth byte lane: data in a full 72-bit word, or a debug/break tag bit in some FPGA configurations 40 71
79 DDR_DQ66 Data bit 66 — ninth byte lane: data in a full 72-bit word, or a debug/break tag bit in some FPGA configurations 45 81
80 DDR_DQ67 Data bit 67 — ninth byte lane: data in a full 72-bit word, or a debug/break tag bit in some FPGA configurations 46 83
81 DDR_DQ68 Data bit 68 — ninth byte lane: data in a full 72-bit word, or a debug/break tag bit in some FPGA configurations 158 72
82 DDR_DQ69 Data bit 69 — ninth byte lane: data in a full 72-bit word, or a debug/break tag bit in some FPGA configurations 159 74
83 DDR_DQ70 Data bit 70 — ninth byte lane: data in a full 72-bit word, or a debug/break tag bit in some FPGA configurations 164 80
84 DDR_DQ71 Data bit 71 — ninth byte lane: data in a full 72-bit word, or a debug/break tag bit in some FPGA configurations 165 82
85 DDR_DQM1 Data mask (write mask) for byte lane 1 134 28
86 DDR_DQM0 Data mask (write mask) for byte lane 0 125 11
87 DDR_DQM3 Data mask (write mask) for byte lane 3 152 59
88 DDR_DQM2 Data mask (write mask) for byte lane 2 143 44
89 DDR_DQM5 Data mask (write mask) for byte lane 5 212 157
90 DDR_DQM4 Data mask (write mask) for byte lane 4 203 140
91 DDR_DQM7 Data mask (write mask) for byte lane 7 230 189
92 DDR_DQM6 Data mask (write mask) for byte lane 6 221 172
93 DDR_DQM8 Data mask for the ninth byte lane (72-bit-word data / debug-break tag lane) 161 76
94 DDR_DQS_N1 Data strobe, complement (DQS#) for byte lane 1 15 25
95 DDR_DQS_N0 Data strobe, complement (DQS#) for byte lane 0 6 10
96 DDR_DQS_N3 Data strobe, complement (DQS#) for byte lane 3 33 60
97 DDR_DQS_N2 Data strobe, complement (DQS#) for byte lane 2 24 43
98 DDR_DQS_N5 Data strobe, complement (DQS#) for byte lane 5 93 154
99 DDR_DQS_N4 Data strobe, complement (DQS#) for byte lane 4 84 139
100 DDR_DQS_N7 Data strobe, complement (DQS#) for byte lane 7 111 186
101 DDR_DQS_N6 Data strobe, complement (DQS#) for byte lane 6 102 171
102 DDR_DQS_N8 Data strobe, complement, for the ninth byte lane (72-bit-word data / debug-break tag lane) 42 75
103 DDR_DQS1 Data strobe, true (DQS) for byte lane 1 16 27
104 DDR_DQS0 Data strobe, true (DQS) for byte lane 0 7 12
105 DDR_DQS3 Data strobe, true (DQS) for byte lane 3 34 62
106 DDR_DQS2 Data strobe, true (DQS) for byte lane 2 25 45
107 DDR_DQS5 Data strobe, true (DQS) for byte lane 5 94 156
108 DDR_DQS4 Data strobe, true (DQS) for byte lane 4 85 141
109 DDR_DQS7 Data strobe, true (DQS) for byte lane 7 112 188
110 DDR_DQS6 Data strobe, true (DQS) for byte lane 6 103 173
111 DDR_DQS8 Data strobe, true, for the ninth byte lane (72-bit-word data / debug-break tag lane) 43 77
112 DDR_BA0 Bank-address bit 0 — selects the DRAM internal bank 71 119
113 DDR_BA1 Bank-address bit 1 — selects the DRAM internal bank 190 108
114 DDR_BA2 Bank-address bit 2 — selects the DRAM internal bank 52 91
115 DDR_ADDR0 Multiplexed row/column address bit 0 188 107
116 DDR_ADDR1 Address bit 1 181 105
117 DDR_ADDR2 Address bit 2 61 106
118 DDR_ADDR3 Address bit 3 180 103
119 DDR_ADDR4 Address bit 4 59 104
120 DDR_ADDR5 Address bit 5 58 99
121 DDR_ADDR6 Address bit 6 178 100
122 DDR_ADDR7 Address bit 7 56 98
123 DDR_ADDR8 Address bit 8 177 97
124 DDR_ADDR9 Address bit 9 175 92
125 DDR_ADDR10 Address bit 10 / auto-precharge (A10/AP) 70 117
126 DDR_ADDR11 Address bit 11 55 96
127 DDR_ADDR12 Address bit 12 / burst-chop (A12/BC#) 174 95
128 DDR_ADDR13 Address bit 13 196 130
129 DDR_ADDR14 Address bit 14 172 90
130 DDR_ADDR15 Address bit 15 171 88

DIMM / SODIMM pin columns. Module pins are the JEDEC x72 ECC pinouts — 240-pin UDIMM (Micron MT18JSF…AZ) and 204-pin SODIMM (Micron MT18KSF…HZ). DQ0–63 map to the module DQ0–63, the ninth lane DQ64–71 to the module check-bit byte CB0–7, and DQS/DM follow their byte lane. The DQ-bit order within a byte lane is a free routing choice — any FPGA DQ may go to any module DQ pin of the same lane — so treat the per-bit rows as the identity default, not a fixed constraint. Rank-1 pins (CS1, ODT1, CKE1, CK1) are shown for the future dual-rank option.

SRAM

The wide-mode SRAM: two IS61LPS51236B synchronous SRAMs (512K×36 each) forming a 1M×36 space (~4.5 MB). This is the memory that makes wide mode possible — each 36-bit word carries four bits beyond a 32-bit instruction, which the EE uses as the Xwide register-extension nibble on fetch, and as a fast single-cycle scratchpad otherwise. Chip select: both chips share A0–A18, the 36-bit data bus and all timing/control; SRAM_CE (D20) enables both, and SRAM_BANK (D18) selects which one responds — chip 0 when 0, chip 1 when 1 — so the pair is addressed as one contiguous 1M×36 array with no external glue. (Full truth table in the Assignment summary.)

# Signal Maps to / note
1 SRAM CLOCK Master clock — address and control latched on the rising edge (36-bit SyncBurst SRAM)
2 SRAM /CE Chip enable (active low) — SRAM_CE drives both banks; SRAM_BANK picks which one responds
3 SRAM_BANK Shared bank-select signal: 0 = chip 0, 1 = chip 1
4 SRAM /ADSP Address status, processor — loads a new address and starts a burst; active low
5 SRAM /ADSC Address status, controller — loads a new address, starts a read or write burst; active low
6 SRAM /ADV Advance — steps the internal burst counter to the next word without reloading the address; active low
7 SRAM MODE Burst-order select — linear vs interleaved burst sequence
8 SRAM /OE Output enable — turns on the data-bus drivers during a read; active low
9 SRAM /BWa Byte-write select, lane a (Da0–8); active low
10 SRAM /BWb Byte-write select, lane b (Db0–8); active low
11 SRAM /BWc Byte-write select, lane c (Dc0–8); active low
12 SRAM /BWd Byte-write select, lane d (Dd0–8); active low
13 SRAM /BWE write enable Byte-write enable — write strobe asserted with /BWa–d to commit the selected lanes; active low
14 SRAM A0 Address bus LSB — A0–A18 = 19 bits = 512K locations, shared by both banks
15 SRAM A1 Address bit 1
16 SRAM A2 Address bit 2
17 SRAM A3 Address bit 3
18 SRAM A4 Address bit 4
19 SRAM A5 Address bit 5
20 SRAM A6 Address bit 6
21 SRAM A7 Address bit 7
22 SRAM A8 Address bit 8
23 SRAM A9 Address bit 9
24 SRAM A10 Address bit 10
25 SRAM A11 Address bit 11
26 SRAM A12 Address bit 12
27 SRAM A13 Address bit 13
28 SRAM A14 Address bit 14
29 SRAM A15 Address bit 15
30 SRAM A16 Address bit 16
31 SRAM A17 Address bit 17
32 SRAM A18 Address bus MSB (A18) — top of the 512K range
33 SRAM Da0 Data lane a, bit 0 — bus is four 9-bit lanes a/b/c/d (36 bit), each gated by its /BWx
34 SRAM Da1 Data lane a, bit 1
35 SRAM Da2 Data lane a, bit 2
36 SRAM Da3 Data lane a, bit 3
37 SRAM Da4 Data lane a, bit 4
38 SRAM Da5 Data lane a, bit 5
39 SRAM Da6 Data lane a, bit 6
40 SRAM Da7 Data lane a, bit 7
41 SRAM Da8 Data lane a, bit 8 (the 9th bit) — data in 36-bit mode, or a debug/break tag bit in some FPGA configurations
42 SRAM Db0 Data lane b, bit 0
43 SRAM Db1 Data lane b, bit 1
44 SRAM Db2 Data lane b, bit 2
45 SRAM Db3 Data lane b, bit 3
46 SRAM Db4 Data lane b, bit 4
47 SRAM Db5 Data lane b, bit 5
48 SRAM Db6 Data lane b, bit 6
49 SRAM Db7 Data lane b, bit 7
50 SRAM Db8 Data lane b, bit 8 (the 9th bit) — data in 36-bit mode, or a debug/break tag bit in some FPGA configurations
51 SRAM Dc0 Data lane c, bit 0
52 SRAM Dc1 Data lane c, bit 1
53 SRAM Dc2 Data lane c, bit 2
54 SRAM Dc3 Data lane c, bit 3
55 SRAM Dc4 Data lane c, bit 4
56 SRAM Dc5 Data lane c, bit 5
57 SRAM Dc6 Data lane c, bit 6
58 SRAM Dc7 Data lane c, bit 7
59 SRAM Dc8 Data lane c, bit 8 (the 9th bit) — data in 36-bit mode, or a debug/break tag bit in some FPGA configurations
60 SRAM Dd0 Data lane d, bit 0
61 SRAM Dd1 Data lane d, bit 1
62 SRAM Dd2 Data lane d, bit 2
63 SRAM Dd3 Data lane d, bit 3
64 SRAM Dd4 Data lane d, bit 4
65 SRAM Dd5 Data lane d, bit 5
66 SRAM Dd6 Data lane d, bit 6
67 SRAM Dd7 Data lane d, bit 7
68 SRAM Dd8 Data lane d, bit 8 (the 9th bit) — data in 36-bit mode, or a debug/break tag bit in some FPGA configurations

2x HDMI IN

The two HDMI receivers that bring DeMon's video into FireStorm. DeMon (the CM5) outputs its UI/display layers over HDMI rather than MIPI; FireStorm receives both streams here and composites them as layers, frame-locked to vsync like every other source.

# Signal Maps to / note
1 HDMI 0 D0N BLUE, H/V SYNC DeMon HDMI 0 IN
2 HDMI 0 D0P BLUE, H/V SYNC
3 HDMI 0 D1N GREEN, CTL0/1
4 HDMI 0 D1P GREEN, CTL0/1
5 HDMI 0 D2N RED, CTL2/3
6 HDMI 0 D2P RED, CTL2/3
7 HDMI 0 CKN CTRL/STATUS
8 HDMI 0 CKP CTRL/STATUS
1 HDMI 1 D0N BLUE, H/V SYNC DeMon HDMI 1 IN
2 HDMI 1 D0P BLUE, H/V SYNC
3 HDMI 1 D1N GREEN, CTL0/1
4 HDMI 1 D1P GREEN, CTL0/1
5 HDMI 1 D2N RED, CTL2/3
6 HDMI 1 D2P RED, CTL2/3
7 HDMI 1 CKN CTRL/STATUS
8 HDMI 1 CKP CTRL/STATUS

Pulse OPI (master) to FPGA (slave)

The runtime control/data bus between Pulse and FireStorm — an octal-SPI (OPI) link with Pulse as master and the FPGA as slave, on the FPGA's SSPI slave/config pins. It runs x4 QPI during boot configuration and widens to x8 OPI at runtime, with a dedicated interrupt line back to Pulse.

# Signal Maps to / note
1 SPI_CS Pulse slave opi
2 SPI_WP (IO2) D2
3 SPI_HOLD (IO3) D3
4 SPI_Q (IO1) D1
5 SPI_D (IO0) D0
6 SPI_CK
7 SPI_DQS
8 SPI_IO4 D4
9 SPI_IO5 D5
10 SPI_IO6 D6
11 SPI_IO7 D7
12 SPI interrupt Interrupt to pulse

Display port/PCie support

The low-speed sideband lines for the two SerDes interfaces above: DisplayPort hot-plug-detect and the AUX channel for the DP output, and PCIe_nRST for the DeMon PCIe link.

# Signal Maps to / note
1 Dp HPD
2 DP aux out P Aux channel on DP port
3 DP aux out N
4 PCIe_nRST PCIe support lines

Sticky UART TX to FPGA

The direct controller-input UART. Sticky (the joypad controller) streams normalised controller state straight into FireStorm over this one line, so a running personality reads input at UART latency with no supervisor in the path. (Clicky's keyboard does not use this route — its keys reach a core via DeMon.)

# Signal Maps to / note
1 Sticky UART TX

HyperRAM 2 (allocated in bank 2)

The second HyperRAM — a fully private, independent HyperBus with its own clock and DQS, carrying no flash or configuration traffic (unlike HyperRAM 1, which shares the MSPI flash bus). It serves as fast working memory that can be reset independently; its RESET# comes from DeMon expander PA4.

# Signal Maps to / note
1 HyperRam2 SPI CS MCS_N#
2 HyperRam2 SPI WP (M2) D2
3 HyperRam2 SPI HOLD (M3) D3
4 HyperRam2 SPI MISO (MISO) D1
5 HyperRam2 SPI MOSI (MOSI) D0
6 HyperRam2 SPI CLK (CCLK) MCLK / CCLK
7 HyperRam2 RWDS PSRAM DQS
8 HyperRam2 D4
9 HyperRam2 D5
10 HyperRam2 D6
11 HyperRam2 D7

Controller UART input streams

Sticky TX → FPGA K15 (STICKY_UART_TX). Clicky has no FPGA UART connection; its key stream goes to DeMon, which forwards events to FireStorm when needed. M15, L15 and J16 now carry restored header GPIO19, GPIO20 and GPIO16.


Assignment summary

SRAM bank selection and released pin

Two IS61LPS51236B chips share A0–A18, the 36-bit data bus and timing/control signals. FPGA D20 (SRAM_CE) drives both active-low /CE inputs. FPGA D18 (SRAM_BANK, formerly SRAM_CE2) selects the bank:

SRAM input Chip 0 Chip 1
/CE SRAM_CE SRAM_CE
CE2 Tie high to the SRAM I/O supply SRAM_BANK
/CE2 SRAM_BANK Tie low to ground

SRAM_BANK=0 selects chip 0; SRAM_BANK=1 selects chip 1, when enabled. No inverter is required. M17 (SRAM_CE_B) is released. Selection is synchronous: latch the bank during a valid address-load cycle and satisfy output-disable/read/write turnaround timing; changing the bank bit alone does not end a burst.

Spare-pin count

Counts below follow the bank tables after the ninth DDR3 byte lane was allocated. A spare is an unassigned general-purpose I/O ball. User-header signals and dedicated configuration functions are already allocated; unused SerDes, MIPI and ADC connections are not counted as GPIO spares.

Bank Listed I/O balls Allocated Unassigned spares Of allocated: user-header GPIO
2 50 50 0 0
3 50 50 0 6
4 50 50 0 2
5 50 50 0 8
6 50 50 0 6
7 50 50 0 6
10 12 12 0 0
Total 312 312 0 28

The 312 listed balls include dedicated configuration functions; this is not a claim of 312 independently usable GPIOs. All I/O balls are now allocated. Bank 3's six former spares (M17, M15, L15, K16, M16, J16) and bank 4's two (K26, M19) carry restored header GPIO15–22; the three former beyond-Pi extras GPIO28–30 (G1/H3/G8) are renumbered GPIO23–25. No unassigned spares remain.

Signal → pin assignments are in each bank's Ant64 column above. Bank allocation and I/O standards:

Bank(s) VCCIO I/O standard Contents
2, 3 3.3 V LVCMOS33 36-bit SRAM · HyperRAM 2 (private bus) · WM8960 + PCM3168A I²S · Sticky UART input to FPGA · DP HPD/AUX/nRST · restored header GPIO15–22 (3.3 V, direct)
4 3.3 V TMDS33 (HDMI) / LVCMOS33 Boot flash + HyperRAM 1 (MSPI master) · Pulse OPI on the SSPI slave bus (boot config QPI x4, runtime x8 OPI) · DeMon HDMI-0 in · HDMI-1 in · HDMI→VGA out
5, 6, 7 1.5 V SSTL15 DDR3-800 (72-bit): eight data lanes on 6 + 7 (DQS groups 0–7), ninth lane on bank 5 (DQS11), address/command/CK on 5; translated user GPIOs GPIO0–14 and GPIO23–27 ride 5/6/7 (1.5 V→3.3 V), while GPIO15–22 come off bank 3/4 at 3.3 V
10 config — JTAG / MODE / CCLK / DONE / RECONFIG; W9 becomes VSYNC_OUT after configuration
Q0 / Q1 SerDes PCIe / DP DeMon PCIe (Q0) · DisplayPort → PS176 (Q1)
M0 / M1 MIPI D-PHY Pulse ESP32-P4 (M0) · Cartridge (M1)

DDR3 logical byte lanes

Logical lane n is DQ[8n+7:8n], DQM[n] and DQS[n]/DQS_N[n]. Logical lane numbers are independent of the FPGA's physical DQS-group numbers. The first eight lanes retain their data-ball assignments with corrected logical mask/strobe names. Lane 8 uses former GPIO15–25 in bank 5; all eleven pins belong to physical DQS group 11. Apply these names consistently in the schematic and controller constraints.

Logical lane Data bits FPGA DQS group DQS positive ball DQS negative ball DQM ball
0 DQ0–7 1 B5 A5 D4
1 DQ8–15 0 H7 G7 H8
2 DQ16–23 3 C1 B1 G2
3 DQ24–31 2 J4 H4 K7
4 DQ32–39 5 N1 M1 N3
5 DQ40–47 4 M4 L4 N7
6 DQ48–55 7 U6 U5 T5
7 DQ56–63 6 R1 P1 U2
8 DQ64–71 11 AB26 AC26 AA25

The 72-bit interface uses 11 existing GPIO allocations: DQ64–71 = U26, V26, W26, W25, Y26, V24, W24, Y25; DQM8 = AA25; DQS8/DQS_N8 = AB26/AC26. Disconnect these FPGA balls from the user-header translators; they now carry the DDR3 ninth lane. The GPIO15–25 header contacts are re-driven from reassigned balls in banks 3/4/7 — see the User I/O Header section. DDR_RESET_N remains on U25. Validate the nine-lane controller configuration and DQS11 routing in Gowin EDA before committing the schematic.

Key pin choices

HR1 RWDS / PUDC_B pull-up

Fit 1 kΩ from FPGA ball P15 (HR1_RWDS / PUDC_B) to bank-4 VCCIO (3.3 V). Place it close to the FPGA, with a short branch from the RWDS trace. This is a pull-up, not a series termination; do not tie RWDS directly to the supply.

The resistor holds PUDC_B high during configuration, selecting high-impedance GPIO behaviour rather than the configuration-wide weak pull-ups. Other signals that need a defined boot level, especially flash and HyperRAM chip selects, therefore require their own external bias. Keep HR1 deselected and verify that its RWDS output remains high-impedance throughout power-up and FPGA reconfiguration.

After configuration, reclaim P15 for the HyperRAM PHY; the resistor stays fitted. At 3.3 V it adds approximately 3.3 mA load when RWDS is driven low. Verify low-level voltage, drive capability and RWDS timing for both FPGA and HyperRAM drivers with this load. If the boot-state or runtime checks fail, revisit the shared-pin arrangement.

The nominal 1 kΩ value follows the configuration-bias guidance in Gowin UG984 §3.3. It does not resolve the separate HR1 DQS-routing validation.

  • DDR3 — each SDRAM byte-lane's 8 DQ + DM + DQS± kept inside one FPGA DQS group (logical byte lanes 0–8 → physical DQS groups 1, 0, 3, 2, 5, 4, 7, 6, 11) so write-levelling stays legal; DRAM CK± on the SGCLK6 clock pair (Y22/Y23). Internal VREF (0.5·VCCIO = 0.75 V) — no VREF ball consumed.
  • HyperRAM 2 — RWDS on DQS23 (F18), CLK on SGCLK1 (E17): a fully private HyperBus, independent of DDR3/SRAM.
  • Pulse OPI (FPGA = slave) — runtime SSPI/OPI clock on R16 (SSPI_CLK; not a general-clock pin), SPI_DQS on DQS15 (T25). G20 is the codec/I²S MCLK connection.
  • HDMI — TMDS differential pairs; pixel clocks on SGCLK5 / MGCLK5 / SGCLK4; on-die 100 Ω differential termination on the two receive links.
  • SRAM clock on SGCLK0 (E20); WM8960 MCLK on G20. N21 is Pulse OPI data (D5).

HyperRAM 1 vs HyperRAM 2

  • HyperRAM 1 rides the MSPI master bus (shared with the boot flash): x4 base IO0–3 on R14/R15/P14/N14, flash MCS_N P18, clock CCLK H13. It widens to x8 only when its own CS is selected, on four separate nearby pins — DQ4–7 = N16/P16/N22/L25 — with RWDS on P15 (DQS12) and HR1_CS on R23. It never touches the SSPI set.
  • Pulse OPI = the SSPI slave bus (bank 4): CS L24 · CK R16 · D0–3 on N17/N18/R17/T24, widened to x8 at runtime with D4–7 on T23/N21/R18/L20, DQS T25, INT M20. At boot Pulse is the SSPI master and QPI-programs the FPGA (x4); post-config the same pins widen to Pulse's x8 OPI data. The bank-3 OPI was dropped and WM8960 I²S + Clicky/Sticky UART moved into the island (bank 3). Each SSPI pin needs a 4.7 kΩ pull-up to bank-4 VCCIO. Runtime OPI clock sits on the SSPI_CLK pin (not a GCLK) — DQS-based capture covers it, but confirm in timing.
  • Boot-mode straps: MODE0/1 (bank-10 AB7/Y9) remain DeMon-expander outputs (PA0/PA5). MODE2 (W9) is permanently strapped low with a 10 kΩ resistor; it is not connected to the expander because MSPI boot (001) and SSPI programming (010) both require MODE2=0. After configuration, W9 is reused as VSYNC_OUT; the FPGA image must release the MODE2 input and enable the output only after configuration. HSYNC is removed and optical S/PDIF remains on bank 4 (K25); together with shared SRAM enable/bank selection this freed K16, M16 and M17 — all three now reassigned as restored header GPIO15, GPIO17 and GPIO18.
  • HyperRAM 2 (assigned here, banks 2/3) is a private, independent HyperBus — no flash, no config traffic, own clock and DQS. RESET# from DeMon expander PA4 (HyperRAM 1 = PA2), each bank clearable independently.

Before fab — run in GoWin EDA for DRC

  • Set VCCIO per the table (2/3/4 = 3.3 V, 5/6/7 = 1.5 V); confirm DQS-group completeness and internal VREF on 5/6/7.
  • HDMI-in is the open electrical item: confirm the GW5AST-138 takes TMDS33 input directly on the 3.3 V bank, or whether the two DeMon links need AC-coupling + re-bias.
  • MSPI bus pull-ups (from the GW5A config-pin spec): MI2/WP (P14) and MI3/clock-lock (N14) gate MSPI validity — WP must read high for MSPI to be valid, and clock-lock is active-low with only a weak internal pull-up — so both need 4.7 kΩ pull-ups to bank-4 VCCIO (3.3 V) on the board. Confirm the flash/HR1 clock is EMCCLK (P16) vs CCLK, and pin down the x8 MI4–7, HyperRAM DQS/RWDS and 2nd CS against GoWin's MSPI-HyperRAM app note (the x4 MCSN/MOSI/MISO/MI2/MI3 are solid).
  • All banks are fully allocated — no unassigned spares remain. Bank 3's six former spares and bank 4's two now carry restored header GPIO15–22. Header GPIO assignments are not spare pins.


User I/O Header — Raspberry Pi layout

All 28 header GPIO are populated (GPIO0–27), a full 40-pin Raspberry-Pi-layout interface. GPIO0–14 and GPIO23–27 reach the header through the 1.5 V ↔ 3.3 V translators on banks 5/6/7; the restored GPIO15–22 come off bank-3/4 balls at 3.3 V and connect directly, no translator. GPIO15–25 no longer route to their original bank-5 balls — those now carry the DDR3 ninth byte lane — so they are re-driven from the reassigned balls (banks 3/4/7). The earlier beyond-Pi extras GPIO28–30 are dropped. Power/ground retain their existing positions.

Parallel-bus grouping. The full 18-bit SMI data bus (SD0–SD17 on GPIO8–25) is restored: GPIO8–14 on bank-5 balls, GPIO15–25 on the reassigned bank-3/4/7 balls. SA0–5 (GPIO0–5) and SOE_N/SWE_N (GPIO6/7) are unchanged. Caveat: the 18 data lines are no longer bank-contiguous — GPIO8–14 sit in bank 5 (1.5 V, translated), GPIO15–22 in banks 3/4 (3.3 V, direct) and GPIO23–25 in bank 7 (1.5 V, translated) — so per-line skew/delay tuning may be needed at high SMI clocks. The clean single-bank grouping is not recoverable while the DDR3 ninth lane occupies the original bank-5 balls.

Physical placement — rear-mounted, Raspberry Pi 400 / 500 style. The header sits on the rear edge of the case, horizontal and facing outward, the way the Pi 400 and Pi 500 expose theirs — the natural home for a keyboard-computer: reachable without opening the case, and a HAT or ribbon lies flat off the back. This does not change the pin-to-signal map below — it is the standard Pi electrical pinout (pin 1 = 3.3 V, pin 3 = GPIO2, … pin 40 = GPIO21). What it changes is orientation: a rear-facing connector is approached from the opposite side to a board-top header, so its physical pin-1 corner is flipped relative to a classic Pi — the same reason Pi-400 GPIO adapters are "reversed". Fix pin 1's physical corner in the mechanical layout, and if Pi-400/500-style adapters or cables should drop in, match their orientation and verify against a real unit.

Pin Signal RPi default function SMI function FPGA ball
1 3V3 3.3 V power — —
2 5V 5 V power — —
3 GPIO2 I2C1 SDA SA2 N8
4 5V 5 V power — —
5 GPIO3 I2C1 SCL SA3 N2
6 GND Ground — —
7 GPIO4 GPCLK0 SA4 U1
8 GPIO14 UART TXD SD6 U20
9 GND Ground — —
10 GPIO15 UART RXD SD7 K16
11 GPIO17 General-purpose I/O SD9 M16
12 GPIO18 PCM CLK / PWM0 SD10 M17
13 GPIO27 General-purpose I/O — K6
14 GND Ground — —
15 GPIO22 General-purpose I/O SD14 M19
16 GPIO23 General-purpose I/O SD15 G1
17 3V3 3.3 V power — —
18 GPIO24 General-purpose I/O SD16 H3
19 GPIO10 SPI0 MOSI SD2 T18
20 GND Ground — —
21 GPIO9 SPI0 MISO SD1 T17
22 GPIO25 General-purpose I/O SD17 G8
23 GPIO11 SPI0 SCLK SD3 AB24
24 GPIO8 SPI0 CE0 SD0 U17
25 GND Ground — —
26 GPIO7 SPI0 CE1 SWE_N J8
27 GPIO0 ID_SD (HAT EEPROM) SA0 U4
28 GPIO1 ID_SC (HAT EEPROM) SA1 N6
29 GPIO5 GPCLK1 SA5 R5
30 GND Ground — —
31 GPIO6 GPCLK2 SOE_N U24
32 GPIO12 PWM0 SD4 AC24
33 GPIO13 PWM1 SD5 T20
34 GND Ground — —
35 GPIO19 PCM FS / PWM1 SD11 M15
36 GPIO16 General-purpose I/O SD8 J16
37 GPIO26 General-purpose I/O — C4
38 GPIO20 PCM DIN SD12 L15
39 GND Ground — —
40 GPIO21 PCM DOUT SD13 K26

Accelerator adapter — optional Raspberry Pi co-processor

The user I/O header above is a general Raspberry-Pi-layout expansion — HATs, the 18-bit SMI bus, the Z80 bus, and user GPIO all live on it as documented. Plugging a Raspberry Pi in as a co-processor — the way the ZX Spectrum Next uses a Pi Zero "accelerator" — is a purist/enthusiast option, not a normal-use feature: the Ant64 already has a built-in companion computer (DeMon, the CM5), so an external Pi is a bonus, not the primary compute path.

To keep the base header general, Pi-accelerator support lives inside the add-on module — a small adapter or carrier board — not on the mainboard connector. That confines every accelerator-specific quirk — connector orientation, the 3.3 V cut, Pi-tuned power protection — to a cheap, revisable board, and leaves the mainboard header fully available for HAT / SMI / Z80 / user-GPIO use.

Module options

The socket is a fixed contract — a standard 40-pin Pi-GPIO header, rear-mounted, with power gated by DeMon (PB6 / PB7). What fills the add-on module is free to vary, provided it presents that same standard header back to the socket:

  • Pi Zero 1 / 2 W on the internal adapter (below) — mirrors the Next and reuses its NextPi ecosystem.
  • A Compute Module (CM4/CM5, or a CM4-form module) on a small carrier PCB inside the module — the carrier breaks the CM's GPIO out to the same standard 40-pin footprint, so it looks identical to the socket. This is usually less bulky than a full Pi 4/5 in a box, brings out no port cluster, and reuses the CM know-how the Ant64 already has from DeMon; the orientation question softens too, since a carrier routes GPIO deliberately rather than mating two fixed headers.

Both are modest-current, internal, GPIO-only co-processors (≈0.2–0.5 A for a Zero; a CM similar at idle, more under load) — comfortably within the switched 5 V path, so the socket contract and DeMon power control are identical either way.

What the adapter passes, cuts, and protects

Signal class Handling across the adapter
GPIO0–27 Straight through, GPIOx ↔ GPIOx. Both sides are 3.3 V logic; direction is software-defined on the FPGA and on the Pi, exactly as the Next does it. Add ~33–100 Ω series resistors per line.
GND (8 pins) Straight through — signal and power return.
5 V (pins 2, 4) Ant64 → Pi through a current-limited load switch / eFuse (soft-start, current limit, reverse-current block), enabled by DeMon's I/O expander (MCP23017 PB7) — off until the system sequences it up.
3.3 V (pins 1, 17) Not connected. The Pi regulates its own 3.3 V from the 5 V feed; leaving these open stops the Ant64's 3.3 V rail meeting the Pi's regulator output.

Physical pin order. Electrically the map is 1-to-1 by GPIO number, but the physical pin positions must match how a Next-style accelerator mounts — its Pi carries a female header on its underside and sits inverted over the host, so the position order is not necessarily a straight pass-through. Take the exact position translation from the ZX Spectrum Next's published Accelerator header pinout and verify it against the target Pi's inverted mount before committing the shim layout; do not assume a plain 1:1 physical pass-through. Note too that the base header is itself rear-mounted (Pi-400/500 orientation — see the header section), so the shim has two orientation factors to reconcile: the header's rear-facing hand and the accelerator Pi's inverted mount.

Power protection (why the shim, and the mainboard)

  • Back-feed on 5 V. The Pi's header 5 V pins connect straight to its 5 V rail with no input protection (the Pi's fuse/ideal-diode is only on its USB input). The load switch above blocks the Pi back-feeding the Ant64 (e.g. if a user also plugs USB power into the Pi) and trips on a Pi fault instead of sagging the board rail.
  • Phantom-powering through GPIO. Driving a GPIO high into a Pi whose 3.3 V rail is down leaks current through the Pi's ESD clamps into its rail (possible latch-up). Mitigate with the series resistors above and, ideally, an output-enable-gated buffer/translator held disabled until the Pi's 3.3 V is up. Sequence that across the two supervisors: DeMon enables 5 V (expander PB7), the Pi's 3.3 V comes up, and only then does FireStorm drive the header GPIO — coordinated over the DeMon↔FireStorm ready/done lines and QSPI channel.
  • Mainboard supplies. The header's 3.3 V and 5 V are switched, current-limited rails (load switch / eFuse) enabled by DeMon's I/O expander — PB6 = 3.3 V, PB7 = 5 V — defaulting off until DeMon powers them up. That gives current limiting and reverse-block protection for any HAT or a shorted header, not just the accelerator, and lets DeMon gate header power independent of FPGA state. Keep the switched header-pin 3.3 V separate from the 3.3 V powering the level translators, so cutting HAT power doesn't disable the FPGA's own GPIO / SMI / Z80 use of the header.

Packaging — rear-plug accelerator module

Because the header is rear-mounted and outward-facing (above), the whole accelerator — the adapter or carrier board plus its Pi or CM — can be a sealed rear-plug module that clips onto the back of the case like a dock or an oversized cartridge. Every awkward detail (the orientation flip, the 3.3 V cut, the series resistors, the Pi-specific load switch) is resolved inside the module, so the mainboard header stays fully general and the accelerator is a clean optional accessory.

Design intent for the enclosure:

  • The module hosts its own load switch. Size the eFuse / load switch (soft-start, current limit, reverse-current block) to the module's Pi or CM. The mainboard just presents the raw switched 5 V — still PB7-gated by DeMon for the coarse enable, power sequencing and header-short protection — plus the GPIO; it needn't know whether the module holds a Pi Zero or a CM, because the module owns its own tailored protection.
  • Key the connector. Once the shim is wired and boxed, a keyed/shrouded connector means the module can seat only one way — which retires the "two orientation factors" concern entirely for the user. Key it deliberately, since the header's rear-facing (reversed) hand makes a wrong-way insert plausible otherwise.
  • Take the mechanical load off the pins. A boxed module cantilevered off a single 40-pin connector has mass and leverage, and the contacts must not carry it. Plan retention — a clip, a thumbscrew, or a shroud/rails the module slides into and seats against the case.
  • Sealed, GPIO-only — thermals stay modest. Whether the module holds a Pi Zero on the adapter or a CM on a carrier, it's an internal co-processor that talks only over the header GPIO, so the box can be sealed with no ports to bring out. A Pi Zero runs happily passive; a CM under sustained load wants a small heatspreader and a thermal path to the case — but neither needs the airflow a boxed full Pi would.

Important: The Ant64 family of home computers are at early design/prototype stage, everything you see here is subject to change.