openXC7 / scratchpad

Project for sharing random stuff, discussions, etc.
2 stars 0 forks source link

minimal IOB18 support for xc7k325t #8

Closed kazkojima closed 1 year ago

kazkojima commented 2 years ago

Hi,

I'm trying to add a limited IOB18 support to nextpnr-xilinx based on @hansfbaier's new database.

Now I'm testing IOBUF, IDELAYE2, and {I,O}SERDESE2 with minimal test cases. This is because these components and SSTL135 iostandard would be needed for litedram DDR3 on xc7k325t. It seems missing database stuff may be as follows.

[missing bits?]
segbits_riob18.db:
RIOB18.IOB_Y0.LVCMOS12_LVCMOS15_SSTL135_SSTL15.STEPDOWN
RIOB18.IOB_Y1.LVCMOS12_LVCMOS15_SSTL135_SSTL15.STEPDOWN
RIOB18.IOB_Y1.LVCMOS12_LVCMOS15_LVCMOS18.IN
RIOB18.IOB_Y0.SSTL135_SSTL15.IN

segbits_hclk_ioi.db:
HCLK_IOI.STEPDOWN

segbits_rioi.db:
segbits_rioi_tbyteterm.db:
segbits_rioi_tbytesrc.db:
RIOI.IDELAY_Y0.IDELAY_TYPE_FIXED
RIOI.IDELAY_Y1.IDELAY_TYPE_FIXED

[missing DBs?]
ppips_riob18.db
ppips_riob18_sing.db
ppips_rioi_tbyteterm.db
ppips_rioi_tbytesrc.db
ppips_rioi.db

I saw a conflict on segbis_rioi.db with the litedram build.

RIOI.ILOGIC_Y1.ISERDES.NETWORKING.DDR.W8 !26_15 !26_17 !26_19 !27_12 !27_16 !27_26 !28_02 !28_04 !29_01 26_25 26_29 26_57 27_06 27_18 27_20 27_56 28_60 29_17
RIOI.ILOGIC_Y1.IFF.ZINV_C 28_02 28_04 29_01

Another conflict happens on segbits_int_r.db and segbits_riob18.db, though this could be a flaws in my xc7k325t/tilegrid.json which is crafted manually ATM.

INT_R_X95Y132.IMUX34.FAN_BOUNCE7
RIOB18_X95Y131.IOB_Y0.SSTL135.DRIVE.I_FIXED

conflict on bit (4206489, 65, 21)
kazkojima commented 2 years ago

BTW, with removing suspicious bits !28_02 !28_04 !29_01 from RIOI.ILOGIC_Y1.ISERDES.NETWORKING.DDR.W8 and !25_85 from RIOB18.IOB_Y0.SSTL135.DRIVE.I_FIXED, there is no more conflict during building litedram. Now there are many "Segment DB XXX, key YYY not found from line ZZZ" failures. Here is a list of missing keys, though they could be artifacts by my incomplete nextpnr-xilinx iob18 support.

HCLK_IOI.HCLK_IOI_CK_IGCLK0.HCLK_IOI_CK_BUFHCLK0
HCLK_IOI.HCLK_IOI_CK_IGCLK10.HCLK_IOI_CK_BUFHCLK10
HCLK_IOI.HCLK_IOI_CK_IGCLK4.HCLK_IOI_CK_BUFHCLK4
HCLK_IOI.HCLK_IOI_LEAF_GCLK_BOT0.HCLK_IOI_CK_IGCLK0
HCLK_IOI.HCLK_IOI_LEAF_GCLK_BOT1.HCLK_IOI_CK_IGCLK4
HCLK_IOI.HCLK_IOI_LEAF_GCLK_TOP0.HCLK_IOI_CK_IGCLK0
HCLK_IOI.HCLK_IOI_LEAF_GCLK_TOP1.HCLK_IOI_CK_IGCLK4
HCLK_IOI.HCLK_IOI_LEAF_GCLK_TOP2.HCLK_IOI_CK_IGCLK10
HCLK_IOI.STEPDOWN
RIOB18.IOB_Y0.IN_TERM.UNTUNED_SPLIT_40
RIOB18.IOB_Y0.LVCMOS12_LVCMOS15_LVCMOS18_SSTL135_SSTL15.STEPDOWN
RIOB18.IOB_Y0.LVCMOS12_LVCMOS15_SSTL135_SSTL15.STEPDOWN
RIOB18.IOB_Y0.SSTL135_SSTL15.IN
RIOB18.IOB_Y1.IN_TERM.UNTUNED_SPLIT_40
RIOB18.IOB_Y1.LVCMOS12_LVCMOS15_LVCMOS18_SSTL135_SSTL15.STEPDOWN
RIOB18.IOB_Y1.LVCMOS12_LVCMOS15_SSTL135_SSTL15.STEPDOWN
RIOB18.IOB_Y1.LVDS_SSTL135_SSTL15.IN_DIFF
RIOI.ILOGIC_Y0.ISERDES.MODE.MASTER
RIOI.ILOGIC_Y0.ISERDES.NUM_CE.N1
RIOI.IOI_ILOGIC0_CLK.IOI_LEAF_GCLK0
RIOI.IOI_ILOGIC0_CLKB.IOI_LEAF_GCLK0
RIOI.IOI_ILOGIC1_CLK.IOI_LEAF_GCLK0
RIOI.IOI_ILOGIC1_CLKB.IOI_LEAF_GCLK0
RIOI.IOI_OCLKM_0.IOI_LEAF_GCLK0
RIOI.IOI_OCLKM_1.IOI_LEAF_GCLK0
RIOI.IOI_OCLK_0.IOI_LEAF_GCLK0
RIOI.IOI_OCLK_1.IOI_LEAF_GCLK0
RIOI.IOI_OLOGIC0_CLKDIV.IOI_LEAF_GCLK1
RIOI.IOI_OLOGIC1_CLKDIV.IOI_LEAF_GCLK1
RIOI_TBYTESRC.IOI_OCLKM_0.IOI_LEAF_GCLK0
RIOI_TBYTESRC.IOI_OCLKM_0.IOI_LEAF_GCLK2
RIOI_TBYTESRC.IOI_OCLKM_1.IOI_LEAF_GCLK0
RIOI_TBYTESRC.IOI_OCLK_0.IOI_LEAF_GCLK0
RIOI_TBYTESRC.IOI_OCLK_0.IOI_LEAF_GCLK2
RIOI_TBYTESRC.IOI_OCLK_1.IOI_LEAF_GCLK0
RIOI_TBYTESRC.IOI_OLOGIC0_CLKDIV.IOI_LEAF_GCLK1
RIOI_TBYTESRC.IOI_OLOGIC1_CLKDIV.IOI_LEAF_GCLK1
RIOI_TBYTETERM.ILOGIC_Y0.ISERDES.MODE.MASTER
RIOI_TBYTETERM.ILOGIC_Y0.ISERDES.NUM_CE.N1
RIOI_TBYTETERM.IOI_ILOGIC0_CLK.IOI_LEAF_GCLK0
RIOI_TBYTETERM.IOI_ILOGIC0_CLKB.IOI_LEAF_GCLK0
RIOI_TBYTETERM.IOI_OCLKM_0.IOI_LEAF_GCLK0
RIOI_TBYTETERM.IOI_OCLKM_1.IOI_LEAF_GCLK0
RIOI_TBYTETERM.IOI_OCLK_0.IOI_LEAF_GCLK0
RIOI_TBYTETERM.IOI_OCLK_1.IOI_LEAF_GCLK0
RIOI_TBYTETERM.IOI_OLOGIC0_CLKDIV.IOI_LEAF_GCLK1
RIOI_TBYTETERM.IOI_OLOGIC1_CLKDIV.IOI_LEAF_GCLK1
hansfbaier commented 1 year ago

IOB18 support is working. This ticket is obsolete.