Keyboard shortcuts

Press or to navigate between chapters

Press ? to show this help

Press Esc to hide this help

Global interconnect

The SiliconBlue devices have 8 global nets, GLOBAL.[0-7], that can be used to distribute clocks, clock enables, resets, and other high-fanout signals.

Global net sources

Each global net can be driven by one of two possible sources:

  • fabric (driven from an IMUX.IO.EXTRA wire in a particular IOI tile)

  • IO, which can resolve to:

    • HSOSC (for GLOBAL.4 on iCE40R04)
    • LSOSC (for GLOBAL.5 on iCE40R04)
    • HFOSC (for GLOBAL.4 on iCE40T0*)
    • LFOSC (for GLOBAL.5 on iCE40T0*)
    • PLL output (effectively overrides an IO pad or two when enabled)
    • direct input from IO pad (if none of the above apply)

The rough locations of global net sources for iCE65* and iCE40P0* are:

wirefabric sourceIO padPLL output
GLOBAL.0south edge middle (eastern)east edge middle (southern)-
GLOBAL.1north edge middle (eastern)west edge middle (southern)-
GLOBAL.2east edge middle (northern)north edge middle (eastern)north B
GLOBAL.3west edge middle (northern)south edge middle (eastern)south B
GLOBAL.4north edge middle (western)west edge middle (northern)-
GLOBAL.5south edge middle (western)east edge middle (northern)-
GLOBAL.6west edge middle (southern)south edge middle (western)south A
GLOBAL.7east edge middle (southern)north edge middle (western)north A

And for iCE40R04 and iCE40T0*:

wirefabric sourceIO padPLL output
GLOBAL.0south edge middle (eastern)south edge east quarter-
GLOBAL.1north edge middle (eastern)south edge west quarter-
GLOBAL.2north edge east quarternorth edge middle (eastern)north B
GLOBAL.3north edge west quartersouth edge middle (eastern)south B
GLOBAL.4north edge middle (western)HSOSC / HFOSC-
GLOBAL.5south edge middle (western)LSOSC / LFOSC-
GLOBAL.6south edge west quartersouth edge middle (western)south A
GLOBAL.7south edge east quarternorth edge middle (western)north A

The exact locations of fabric and IO pad sources can be obtained from the GB{i}_FABRIC and GB{i}_IO extra nodes in the database.

The 8 muxes selecting the active global net sources are located in a special GB_ROOT tile located in the very center of the device.

Column buffers

On most SiliconBlue devices, the global nets are not connected directly to the IMUX and GOUT multiplexers within interconnect tiles — they pass through "column buffers" instead. Such column buffers have to be enabled via bitstream bits when necessary.

Every interconnect column is partitioned into two or three "clock columns". Each clock column is further partitioned into two "clock sub-columns" around the middle. The middle row of the clock column contains two sets of column buffers, driving the GLOBAL wires in the sourthern and northern sub-columns.

The rows_colbuf field of a chip in the database describes how columns are divided into clock columns. Every clock column is defined by three rows:

  • the middle row M
  • the start row B
  • the end row T

Rows B..M make up the southern clock sub-column of the given clock column, and rows M..E make up the northern clock sub-column. The column buffers driving the southern sub-column are located in row M - 1, except for BRAM columns on iCE65L01 and iCE40P01 where they are located in row M - 2 instead. The column buffers driving the northern sub-column are located in row M.

The following devices do not have column buffers:

  • iCE65L04
  • iCE65L08
  • iCE65P04
  • iCE40P03

On these devices, the global nets are permanently connected to all consumers, and the column buffer enable bits don't have to be set.

Bitstream — GB_ROOT_L04

siliconblue GB_ROOT_L04 bittile 0
FrameBit
0 1
0 - -
1 - -
2 - -
3 - -
4 - -
5 - -
6 - -
7 - -
8 - -
9 - -
10 - -
11 - -
12 - -
13 - -
14 GB_ROOT:MUX.GLOBAL.6[0] GB_ROOT:MUX.GLOBAL.7[0]
15 GB_ROOT:MUX.GLOBAL.0[0] GB_ROOT:MUX.GLOBAL.1[0]
GB_ROOT:MUX.GLOBAL.0 0.15.0
GB_ROOT:MUX.GLOBAL.1 0.15.1
GB_ROOT:MUX.GLOBAL.2 1.1.0
GB_ROOT:MUX.GLOBAL.3 1.1.1
GB_ROOT:MUX.GLOBAL.4 1.0.0
GB_ROOT:MUX.GLOBAL.5 1.0.1
GB_ROOT:MUX.GLOBAL.6 0.14.0
GB_ROOT:MUX.GLOBAL.7 0.14.1
FABRIC 0
IO 1

Bitstream — GB_ROOT_L08

siliconblue GB_ROOT_L08 bittile 0
FrameBit
0 1
0 - -
1 - -
2 - -
3 - -
4 - -
5 - -
6 - -
7 - -
8 - -
9 - -
10 - -
11 - -
12 - -
13 - -
14 GB_ROOT:MUX.GLOBAL.0[0] GB_ROOT:MUX.GLOBAL.1[0]
15 GB_ROOT:MUX.GLOBAL.6[0] GB_ROOT:MUX.GLOBAL.7[0]
GB_ROOT:MUX.GLOBAL.0 0.14.0
GB_ROOT:MUX.GLOBAL.1 0.14.1
GB_ROOT:MUX.GLOBAL.2 1.0.0
GB_ROOT:MUX.GLOBAL.3 1.0.1
GB_ROOT:MUX.GLOBAL.4 1.1.0
GB_ROOT:MUX.GLOBAL.5 1.1.1
GB_ROOT:MUX.GLOBAL.6 0.15.0
GB_ROOT:MUX.GLOBAL.7 0.15.1
FABRIC 0
IO 1

Bitstream — COLBUF_L01

siliconblue COLBUF_L01 bittile 0
FrameBit
0 1 2
0 - COLBUF:GLOBAL.0 -
1 - - COLBUF:GLOBAL.1
2 - - -
3 - - -
4 - - -
5 - - COLBUF:GLOBAL.2
6 - - -
7 - - COLBUF:GLOBAL.3
8 - - -
9 - - COLBUF:GLOBAL.4
10 - - -
11 - - COLBUF:GLOBAL.5
12 - - -
13 - - COLBUF:GLOBAL.6
14 - - -
15 - - COLBUF:GLOBAL.7
COLBUF:GLOBAL.0 0.0.1
COLBUF:GLOBAL.1 0.1.2
COLBUF:GLOBAL.2 0.5.2
COLBUF:GLOBAL.3 0.7.2
COLBUF:GLOBAL.4 0.9.2
COLBUF:GLOBAL.5 0.11.2
COLBUF:GLOBAL.6 0.13.2
COLBUF:GLOBAL.7 0.15.2
non-inverted [0]

Bitstream — COLBUF_P08

siliconblue COLBUF_P08 bittile 0
FrameBit
0 1 2 3 4 5 6 7
0 - - - - - - - -
1 - - - - - - - -
2 - - - - - - - -
3 - - - - - - - -
4 - - - - - - - -
5 - - - - - - - -
6 - - - - - - - -
7 - - - - - - - -
8 - - - - - - - COLBUF:GLOBAL.1
9 - - - - - - - COLBUF:GLOBAL.0
10 - - - - - - - COLBUF:GLOBAL.3
11 - - - - - - - COLBUF:GLOBAL.2
12 - - - - - - - COLBUF:GLOBAL.5
13 - - - - - - - COLBUF:GLOBAL.4
14 - - - - - - - COLBUF:GLOBAL.7
15 - - - - - - - COLBUF:GLOBAL.6
COLBUF:GLOBAL.0 0.9.7
COLBUF:GLOBAL.1 0.8.7
COLBUF:GLOBAL.2 0.11.7
COLBUF:GLOBAL.3 0.10.7
COLBUF:GLOBAL.4 0.13.7
COLBUF:GLOBAL.5 0.12.7
COLBUF:GLOBAL.6 0.15.7
COLBUF:GLOBAL.7 0.14.7
non-inverted [0]

Bitstream — COLBUF_IO_W

siliconblue COLBUF_IO_W bittile 0
FrameBit
0 1 2 3 4 5 6 7 8
0 - - - - - - - - COLBUF:GLOBAL.1
1 - - - - - - - - COLBUF:GLOBAL.0
2 - - - - - - - - COLBUF:GLOBAL.3
3 - - - - - - - - COLBUF:GLOBAL.2
4 - - - - - - - - COLBUF:GLOBAL.5
5 - - - - - - - - COLBUF:GLOBAL.4
6 - - - - - - - - COLBUF:GLOBAL.7
7 - - - - - - - - COLBUF:GLOBAL.6
COLBUF:GLOBAL.0 0.1.8
COLBUF:GLOBAL.1 0.0.8
COLBUF:GLOBAL.2 0.3.8
COLBUF:GLOBAL.3 0.2.8
COLBUF:GLOBAL.4 0.5.8
COLBUF:GLOBAL.5 0.4.8
COLBUF:GLOBAL.6 0.7.8
COLBUF:GLOBAL.7 0.6.8
non-inverted [0]

Bitstream — COLBUF_IO_E

siliconblue COLBUF_IO_E bittile 0
FrameBit
0 1 2 3 4 5 6 7 8 9
0 - - - - - - - - - COLBUF:GLOBAL.1
1 - - - - - - - - - COLBUF:GLOBAL.0
2 - - - - - - - - - COLBUF:GLOBAL.3
3 - - - - - - - - - COLBUF:GLOBAL.2
4 - - - - - - - - - COLBUF:GLOBAL.5
5 - - - - - - - - - COLBUF:GLOBAL.4
6 - - - - - - - - - COLBUF:GLOBAL.7
7 - - - - - - - - - COLBUF:GLOBAL.6
COLBUF:GLOBAL.0 0.1.9
COLBUF:GLOBAL.1 0.0.9
COLBUF:GLOBAL.2 0.3.9
COLBUF:GLOBAL.3 0.2.9
COLBUF:GLOBAL.4 0.5.9
COLBUF:GLOBAL.5 0.4.9
COLBUF:GLOBAL.6 0.7.9
COLBUF:GLOBAL.7 0.6.9
non-inverted [0]